비트코인, 이더리움이 PoW (작업 증명) 방식으로 블록을 생성하고 블록 생성 보상을 준다는 사실은 널리 알려져있다. 그럼 네트워크 참여자가 네트워크에 도움이 되는 행위를 하면 네트워크에서 발행한 토큰으로 보상해 준다는 아이디어도 가능하지 않을까? 생각보다 쉽지 않다.
우선 아무 작업이나 작업 증명에 사용할 수 있는 게 아니다. 비트코인의 경우 SHA256 해시 함수를 작업 증명에 사용하고 있는데, 타겟을 만족시키는 논스 값을 찾을 때는 상당한 계산이 필요하지만 이미 찾은 논스 값이 맞는지 검증에 필요한 계산은 아주 간단하다. 바꿔 말해, 마이너 입장에서 실제로 많은 계산을 하지 않고서 논스 값을 찾을 수 있는 방법이 없고 검증 노드 입장에서는 간단한 계산 한 번으로 작업 증명을 검증할 수 있기 때문에 이러한 방식은 작업 증명에 적합하다.
오늘자 매일경제에 실린 사막 한복판서도 버퍼링 없다…유튜브 위협하는 블록체인TV
기사는작업 증명을 잘못 이해하고 있는 대표적인 예다. 이 프로젝트의 아이디어는 간단하다. P2P로 트위치와 같은 스트리밍 서비스를 제공할 예정인데, 컴퓨팅 파워와 네트웍 대역폭을 제공한 유저들에게는 토큰 보상을 제공한다.
문제는 유저가 실제로 컴퓨팅 파워와 네트웍 대역폭을 제공했는지 검증하기가 쉽지 않다는 점이다. 비트코인, 이더리움이 엄청난 양의 컴퓨팅 파워를 쓸모도 없는 해시 계산 따위에 낭비하고 있는 이유는 이러한 방식이 작업 증명에 효율적이기 때문이다. 어떤 노드가 동영상 인코딩, 디코딩이 컴퓨팅 파워를 사용했다는 사실을 제 3자에게 어떻게 증명할 수 있는가? 어떤 노드가 다른 노드에게 실제로 유용한 콘텐츠를 제공했다는 사실을 어떻게 검증할 수 있는가? 이러한 질문에 제대로 된 답변을 내놓지 못하면 이 서비스는 기술적 불가능하다.
다른 유저가 인증을 해주는 방법도 생각해 볼 수 있지만, 익명성을 보장하는 P2P 네트워크의 특성상 시빌 공격(Sybil Attack)에 취약하다. 한 유저가 여러 개의 계정을 생성해서 서로 보상을 주기 시작하면 네트워크에 아무런 유용한 일을 하지 않고서도 토큰을 보상으로 받을 수 있는 문제가 생기기 때문이다. 이를 해결하기 위해 중앙화된 인증 수단을 도입하는 순간 더 이상 분산 네트워크라고 부를 수 없게 된다.
블로그 글을 열심히 쓰면 보상을 주거나, 게임을 열심히 하면 보상을 주는 시스템도 모두 같은 이유로 어뷰징에 취약하다. 흔히 블록체인 기술을 어뷰징 혹은 핵을 방지하는 기술로 설명하는 경우가 많은데 사실 블록체인은 어뷰징에 무척 취약하고 어뷰징을 막기 위해 많은 고민을 해야만 하는 기술이다. 어떤 행위를 보상하는 이코노미를 설계하기 전에 그 행위를 객관적으로 검증할 수 있는지 먼저 확인해야 한다.
특정부분들에 대해 의문이 들어 글을 남깁니다. 예를들어 비트코인의 작업증명은 10분마다 트랜잭션들을 하나의 블럭으로 만들고 그 과정에서 해시퍼즐을 풀어 마이닝을 하게 되는데.. 본문의 내용에서 글을 쓴다던가(우선 어뷰징 문제는 논외로 하고)하는 것을 비트코인에 비교한다면 트랜잭션에 해당한다고 봐야하지 않을까요?
.
간략하게 … 비트코인의 작업증명과 스팀잇의 지분증명을 비교하면서 내용이 전개되어야 하는데 비트코인에서는 작업증명, 스팀잇과같은 블로그류에서는 트랜잭션단에 해당하는 내용을 상호 비교하시고 있는 것 같아보여서 이와같은 의문을 갖게 되었습니다.