이 문제는 개발자들이 모호하게나마 느끼고 있던 문제다.
‘온체인 상에서는 쓸모있는 타임스탬프를 찍기 어렵다.’
그 이유가 무엇일까? 결론부터 이야기한다면 ‘온체인’ 상에는 시간이라는 차원이 존재하지 않기 때문이다. 헐.. 이건 또 무슨 이야기일까? 분명 블록들은 순차적으로 생성되고, 과거의 블록과 현재의 블록이 있는데, 시간이 없다니..
‘온체인’은 Balance의 세계다. 대차대조표 상에서 시간은 오직 서수적으로만 존재한다. 회계학에서 존재하는 시간은 단지 ‘장부 바깥에 있는 시간을 참조한 프로토콜 중 하나’일 뿐이다. 회계 장부라는 계(system) 내에서 보자면 감가상각이나 이자율 같은 '시간 개념'을 포함한 요소는 장부 바깥에서 주어진 프로토콜이다. 대차대조표 상에서 시간은 아무일도 스스로 하지 않는다. 다른 방식으로 설명하자면 이렇다.
‘온체인 상에서는 과거가 계(system) 전반에 걸친 영향을 주지 못한다.’
현실에서는 현재란 과거에서 출발된 미래의 징후다. 하지만 온체인의 모든 것은 ‘개별 상태에 대한 기록’일 뿐이다. ‘온체인’은 언제나 initial condition에 서있다. 그러나 현실의 사람은 ‘온체인’ 상의 그것에 ‘시간’을 부여하여 인식한다. 하지만 그것은 대개 인지적 오류로 귀결된다.
이 이유때문에 크립토 이코노미스트는 온체인 상에서 ‘시간’을 창조해야 한다. 화폐의 유통 속도를 ‘만들어 냄으로써’ 오프체인에 있는 시간을 강제로 온체인에 주입한다. 크립토 이코노미스트가 이런 장치를 만들어주지 않으면 온체인에는 시간이 존재하지 않는다. 즉, ‘시간’이란 오프체인 상의 존재다.
그런 점에서 온체인 상에서 작동하는 시간은 오직 ‘프로토콜’에 의해서 ‘최초의 계획’에 따라 컴퓨팅 머신이 ‘외부로부터’ 일정한 주기로 가져오는 시간이다. 마치 이는 회계에서 장부 밖의 요소인 ‘시간’을 참조하여 ‘감가상각’이나 ‘이자율’ 같은 ‘화폐의 시간가치’ 프로토콜을 작동시키는 것과 비슷한 방식으로 작동한다.
아직 이 문제에 대해서는 생각해 봐야할 요소가 많다. 포괄적으로 보자면, 이것은 컴퓨팅 세계에서 계속 있었던 문제였고, 도구적 의미의 컴퓨팅에서는 현실 세계의 시간을 참조하는 방식으로 ‘무시할 수 있었던’ 문제였다. 그러나 크립토 월드를 창조한 순간, 우리는 더이상 ‘시간성’ 문제를 무시할 수 없게 되었다.
기술적으로 블록체인을 구현하려는 상황에서는, ‘트랜잭션의 처리 순서’가 타임 스탬프와 독립적이게 되면서 생기는 여러가지 문제들, TCP/IP에서는 ‘세션’ 개념이 있기 때문에 패킷의 시퀀스 넘버링으로 처리할 수 있었지만 블록체인에서는 P2P 노드들 간의 전파시간이 보장적이지 않아서 생기는 문제들, ‘화폐적 가치’를 다루기 때문에 나타나는 순서의 중요성에 비해 블록체인의 오차허용 범위가 커서 생기는 문제들(ICO나 도박, 경매 등의 상황에서)이 나타난다. 그런 '현상적 문제들'의 근원에 ‘블록체인의 시간성’ 문제가 도사리고 있다.
이 문제가 최종적으로 ‘무시할 수 있는’ 문제가 될 가능성도 있다. 그러나 하나만은 분명하다. ‘온체인의 시간성’은 저절로 사라질 문제가 아니라는 점이다. 계속 의식적으로 ‘시간성’을 외부에서 다양한 방식으로 주입해서 ‘온체인 상의 시간성’을 구성해주어야, 우리는 그것을 무시할 수 있게 될 것이다. 블록체인이 사라지지 않는다면, 100년이 지나도 현 시점에 만들어진 장부의 결과는 동일하게 유지된다.
이 문제에 대해서는 아마도 몇 번에 걸쳐 생각을 업데이트하게 될 듯 하다.
항상
그렇게 봐주시니 저도 감사^^