NFT가 더 큰 소프트웨어의 일부라면 메타데이터는 중앙화 되어 있어야 한다
지난 'NFT의 기술적, 법적 문제해결 상황'의 기술적 측면에서 메타데이터를 중앙화 해 가챠박스를 안전하게 만드는 이야기를 했었습니다. 중앙화된 메타데이터를 통해 동작하는 NFT는 분명 NFT의 특성 중 하나인 대체 불가능함이 보장되지 않기 때문에 탈중앙화 옹호론자들로부터 비판의 여지가 있습니다. 하지만 NFT의 실체가 단순히 아트웍과 이 아트웍에 대한 권한을 구매자에게 전달하는데 그치지 않고 NFT가 더 큰 소프트웨어의 일부로써 역할을 해야 한다면 중앙화된 메타데이터가 개발에 더 유리하다고 생각합니다.
이전에 게임을 개발하면서 지금 당장 결정할 필요가 없는 결정은 최대한 뒤로 미루곤 했습니다. 미래에 이런 기능이 들어갈지 말지를 개발 초기부터 답하기를 요구 받곤 했습니다. 경력 초기에는 여기에 답하지 못해 고통받곤 했습니다. 시간이 흐르면서 그런 질문은 애초에 대답할 수 없다는 것을 깨닫게 됐습니다. 어떤 중요한 결정을 내리는데 필요한 미래의 사양은 당연히 개발 초기부터 알려져 있어야 합니다. 하지만 대부분의 미래는 지금 확실하지 않습니다. 그런 미래는 일단 없다고 가정하고 개발을 진행한 다음 미래를 예측할 수 있을 만한 정보가 모였을 때 확정해야 합니다. 시간이 갈수록 지금 중요하지 않거나 명백히 지금 판단할 수 없는 미래를 알 필요 없도록 개발을 진행 시키는데 익숙해졌습니다.
게임에 블록체인이 추가되면서 오래 전에 겪었던 난처한 요구를 다시 받게 됐습니다. 스마트 컨트랙트는 한 번 배포하고 나면 수정이 아주 어렵기 때문에 컨트랙트에 포함될 사양을 미리 결정해야 한다는 것이었습니다. 개발 초기에 특정 기능을 예측하는 일은 불가능하지는 않았지만 꽤 어려웠습니다. 불확실성을 줄이는 데는 시간이 필요했습니다. 블록체인은 종종 사용자에게 적대적인 환경으로 온보딩을 어렵게 한다는 평가를 받곤 하는데 이런 일을 몇 번 겪다 보니 블록체인이나 스마트 컨트랙트는 사용자들에게만 적대적인 것이 아니라 이를 기반으로 한 개발에도 적대적인 것이 아닌가 하는 생각이 들었습니다. 수정할 수 없는 뭔가에 게임을 붙이기 위해 미래의 의사결정을 지금 당장 해야 한다는 점은 합리적이지 않습니다.
컨트랙트 문제를 당장 어떻게 할 수는 없지만 이런 일을 겪으면서 NFT가 단순히 아트웍을 전달하는데 그치지 않고 미래에 개발될 게임의 캐릭터나 함선 같은 더 큰 소프트웨어의 일부로써 동작한다면 미래의 게임 개발에 따라 변경될 여지가 있어야 합니다. 지금 구입한 NFT는 개발 진행에 따라 자잘한 수정이 필요할 수 있습니다. 만약 함선이라면 처음에는 워프 기능이 없었는데 개발 진행에 따라 이 함선에 워프 기능을 추가해야 할 수도 있습니다. 워프 기능이 있음을 의미하는 추진기를 함선 디자인에 추가하고 싶은데 탈중앙화된 스토리지에 메타데이터가 올라가 있다면 더 이상 할 수 있는 일이 없습니다. 어쩔 수 없이 이 NFT를 포함한 세대를 1새대라고 부르고 2세대 NFT를 발매하거나 이런 상황을 대비해 컨트랙트에 추가해 놓은 코드를 통해 NFT를 소각하고 재발급 해야 할 수도 있습니다. 소각 및 재발급은 NFT 관점에서는 합리적이지만 이를 소유한 고객 관점에서는 그다지 합리적이지 않습니다.
물론 이런 의견은 NFT의 특징을 손상 시키고 이 특징으로부터 오는 가치를 떨어뜨릴 수 있다는 점을 알고 있습니다. 다만 지금은 소프트웨어 개발에 참여하는 사람 입장에서 NFT 프로토콜을 사용하기는 해야 하지만 미래의 결정에도 대비해야 하므로 개발자 입장에서 더 유리한 의견을 가지게 되었습니다.