블록체인 기반 서비스, 어디로 가야할까? #리뷰1. THE DAO
블록체인 기반 서비스가 쏟아지고 있습니다.
많은 기업들이 분산원장기술인 블록체인 도입을 검토하고 있는 가운데, 올해에만 50곳 이상의 기업이 ICO를 참여할것이라는 전망도 나오고 있습니다.
그리고 Iass, Sass, Pass를 넘어 '서비스로서의 블록체인 = Baas'라는 신조어도 등장했습니다.
블록체인 물결은 아직 초기라는 의견과 거품이라는 의견이 팽팽한 가운데, 오픈소스 프로젝트로 완성도를 높혀가면서 블록체인의 서비스로서의 가능성도 성장하고 있습니다.
스팀잇도 대표적인 블록체인 기반 서비스인데요, '비트코인'이라는 가상화폐가 등장한지 3년만이었습니다. 그 전까지도 다양한 연구개발이 있었지만, 아직까지도 대부분의 케이스들이 '서비스를 위한 블록체인'이라는 숙제를 해결중인것으로 보여집니다.
실패는 성공의 어머니라 했습니다. 기존의 문제를 짚어보면 현재의 방향이 나올거라 생각하는 가운데 첫번째 온라인 스터디를 시작합니다. '서비스를 위한 블록체인', 어느 방향으로 가고 무엇을 하지 말아야 할까요?
이번 글에서는 해킹사건으로 유명했던(그리고 망했던) THE DAO를 다뤄보려 합니다. 그리고 앞으로 스팀잇을 통해 많은 분들과 의견을 나눌 수 있기를 바래봅니다.
THE-DAO
탈중앙화된 자율조직 Decentralized Autonomous Organization:DAO
THE-DAO는 이더리움 창시자인 비탈릭 부테린(Vitalik Buterin)을 필두로 이더리움 개발진들이 개발한 시스템입니다. 비트코인의 핵심 가치 중 DAO에 대한 철학을 이어받은 이더리움기반 프로젝트로, 당시 기준 2천억 가량의 투자금을 모았습니다. 하지만 얼마안가 Ether를 환불(Split)받는 기능의 취약점을 이용한 해킹공격을 받았고 서비스가 문을 닫은 역사가 있습니다. 현재는 깃헙코드와 백서밖에 남아 있지 않죠. 하지만 그때의 시도와 아이디어는 현재의 블록체인 에코시스템의 밑거름이 되고 있습니다.
THE DAO는 이더리움 블록체인을 활용하여 구성원들이 출자한 자금을 실시간으로 관리하고, 제안과 투표 등의 의사표시를 통해 자율적으로 규제를 만들 수 있게 했습니다. 이를 통해 주주들의 미세한 경영권 행사가 가능하다는것도 큰 특징입니다. 이런 Micromanagement의 가장 큰 장점은 구성원들의 참여가 자발적으로 이루어진다는 것입니다.
이것은 구성원들의 UGC(사용자가 직접 제작한 콘텐츠)에 의해 운용되는 콘텐츠 기업이 활용할 수 있는 부분입니다. 최근 소비자들은 더이상 수동적인 위치에 머무르지 않고 체험적 소비자를 자처합니다. 제공된 제품을 자신의 취향에 맞게 바꾸고 새롭게 창조해냅니다. 그리고 이러한 모든 활동은 콘텐츠 기업의 자산이 될 수 있습니다. 예를 들면 체험형 콘텐츠에 사진과 글을 댓글로 달 수 있게 함으로써 인증형 공감을 가능하게 할수도 있습니다. 이는 공감을 받은 제작자에게는 경제적 인센티브와 다른 콘텐츠 제작에 대한 동기부여를 주며, 콘텐츠를 제작하기에는 부족하지만 활동하고 싶은 구성원들에게 활동의 기회를 줄 수 있습니다.
THE-DAO 백서 요약
1# Background
모든 기업은 사람이 주체가 되어왔으며, 사내 규율에 의해서 관리되었습니다. 이는 사람들이 언제나 그 규율을 따르는 것은 아니며, 사람들이 그 규율에 항상 동의하는 것도 아니다라는 근본적인 문제를 가져왔습니다. 또한, 법인 형태 없이 운영하는 것은 이러한 문제들의 해결방안이 아니며, 또다른 문제를 불러올 수도 있습니다. 법인으로서 받을 수 있는 법적 보호를 받지 못하며, 비공식적 ‘이해’가 사내 규율을 대신하여 규칙 위반의 기준이 불분명해질 수 있습니다. 크라우드 펀딩의 경우 소규모 투자자들의 투자를 용이하게 해주었지만 투자 기업에 대한 권한 부족으로 피해를 볼 수 있습니다.이 백서는 Smart contract 처리 기능과 Turning complete 프로그래밍 언어을 통합하는 블록체인 기술인 이더리움을 활용하여 최초로 참가자들이 직접 출자 금액을 실시간 통제하고, 소프트웨어를 사용하여 규율을 형식화, 자동화, 강제화함으로써 가능성 있는 해결방안을 제시합니다.
또한 기본적인 구성과 구조, 생성, 의결권을 포함하는 지배구조에 초점을 두고 어떻게 DAO’s 코드가 작동되는지 설명합니다. 첫 번째로 DAO의 기능 측면에서 생성단계와 기본을 설명합니다. 그리고 소수의 소유권이 논의되고, ‘DAO Split’을 ‘Majority Robbing the Minority Attack’의 해결책으로 제시합니다. 그다음 smart contract code를 자세히 설명하고, ‘DAO split’에 대한 설명과 구체적인 내용으로 마무리됩니다.Smart contract code : https://github.com/slockit/DAO/
주의 : DAO는 여전히 법적/기술적 논쟁거리로 남아있습니다.
2# DAO CONCEPT
‘Solidity’ 프로그래밍 언어로 쓰여진 DAO코드는 이더리움 블록체인에서 거래에 참여하기 위해 비즈니스 조건으로 Ether를 요구합니다. ‘Ether’는 이더리움 네트워크의 디지털 연료로서 DAO의 Smart contract 주소로 전송됩니다. 이후 DAO코드는 전송된 Ether 양에 비례하여 토큰을 만들고 Ether를 전송한 계정에 할당합니다. 토큰은 소유자에게 소유권과 의결권을 부여합니다. 생성된 토큰은 이더리움 블록체인에서 자유롭게 양도가능하며, 분할 가능하고 서로 구분할 수 없습니다. 배포 시 최소 DAO 생성 목표와 생성 단계의 시간 주기를 DAO 코드의 매개변수로 설정하여 생성 단계가 끝나고 목표에 도달하지 못하면 Ether가 전부 반환되고, 도달했을 경우 총 Ether와 생성된 토큰 양이 표시됩니다.Ether를 사용하여 새로운 목적을 달성하기 위해서는 계약자가 필요하며, DAO 토큰 소유자 누구든지 제안을 제출함으로써 계약자가 될 수 있습니다. 제안이 승인될 경우 제안된 프로젝트를 나타내는 Smart contract에 Ether를 전송하고 이를 매개변수로 DAO가 지원하는 프로젝트와 상호작용합니다.
DAO의 구성원들은 각자의 토큰의 양에 가중하고 투표권을 가집니다. 모든 회원들의 행동은 익명성을 가지며, 제안서 작성자가 설정한 시간 체계인 tp내에서 제안에 대해 토론하고 투표합니다. (정기적인 제안에 대해서는 2주가 필요합니다.)‘제안 스팸’을 방지하기 위해 제안서를 작성할 때 최소 예치금을 요구할 수도 있으며, 그 가치는 다른 제안의 DAO 기본값에 따라 유동적입니다. tp후 찬성표가 정족수에 도달하면 실행되고, 그렇지 않다면 예치금을 환불하고 제안이 철회됩니다.
3# Majority robs minority attack : 소액 투자자에 대한 보호
소규모 투자자들은 투표권과 퇴장하여 반대 의사를 나타내거나 그들의 자본을 쉽게 회수할 능력이 부족하기 때문에 그들의 권리를 보호하는 많은 방법들은 실패했습니다. 이 백서는 그에 대한 해결책으로 DAO코드를 제시합니다.DAO가 해결해야 하는 문제는 다수가 DAO를 형성한 뒤 지배구조나 소유권 규칙을 변경하여 소수를 약탈하는 것입니다. 이를 해결하기 위해서 소수는 항상 그들의 자금을 회수할 수 있어야 합니다. 따라서 우리는 DAO를 두 개로 나누고자 합니다. 개인 또는 그룹의 토큰 소유자가 제안에 반대하여 실행되기 전에 자신의 몫을 회수하기 위해서 특수 유형의 제안서를 제출하여 새 DAO를 형성하고, 새 DAO에 투표하여 자신의 몫을 이동시키면 됩니다.
이 해결책의 문제는 유권자들의 무관심입니다. 투자금을 회수하고 DAO를 분열시킬 기회를 소수에게 준다고 해도 이에 무관심하다면 소용이 없습니다. 따라서 비활성 토큰 소유자도 그들의 ether를 잃어버리지 않도록 보호함으로써 안전한 DAO를 만들고자 합니다. 이를 위해 각각의 개별 DAO를 큐레이터가 제한합니다. 큐레이터는 모든 제안서의 DAO로부터 ether를 받을 수 있는 주소목록을 관리하며, 큐레이터의 권력 남용을 예방하기 위해 DAO가 새로운 큐레이터를 뽑는 것이 가능하게 하여 권력남용을 피해 분리될 수 있게 합니다.
모든 토큰 사용자는 새로운 큐레이터에 대한 제안서를 제출할 수 있는데 이 경우 공격자가 높은 예치금에 투표하여 분열을 막는 것을 방지하기 위해 예치금이 없습니다. 정기 제안서보다 짧은 7일 동안 토론과 투표를 진행하고, 종적 수에 대한 요구사항이 없으므로 누구나 DAO를 분할 가능하고, 언제든지 자금을 회수할 수 있습니다. 이 투표 결과는 구속력이 없습니다.4# Token Price
DAO 생성의 초기 활동이 불확실성으로 인한 리스크가 더 크다는 가정을 반영하여 DAO 토큰 생성률은 시간이 지나면서 감소합니다. 생성 단계 동안의 생성률 감소는 ether 공급자 간의 공급 시기 차이로 인한 생성률 차이로 인풋보다 아웃풋이 커지는 상황을 만들 수 있습니다. 따라서 이를 방지하기 위해 초기 생성률보다 높은 생성률에 사용된 모든 ether는 extraBalance라는 별도 계정에 전송되며, 최소한 양이 소비된 후에 제안서를 통해 DAO로 돌려보낼 수 있습니다.5# Contracts
계약은 Solidity 프로그래밍언어로 작성되었습니다. 각각의 계약은 member variables과 DAO계약 주소를 수신자로 하고 메서드 ID(매개 변수 선택 사항)를 데이터로 하여 이더리움 네트워크로 트랜잭션을 전송하여 외부적으로 호출할 수 있는 기능을 가지고 있습니다.주 계약인 DAO는 DAO의 내부 작동을 정의하며, '토큰' 및 '토큰 생성'에서 member variables 및 기능을 얻습니다. 토큰은 DAO토큰의 내부 작동을 정의하고, 토큰 생성은 DAO에 Ether를 주입하여 DAO토큰을 만드는 방법을 정의합니다. ManagedAccount 계약은 토큰 소유자와 extraBalance에 토큰을 분배하기 위해 보상을 저장하는 도우미 계약입니다. SampleOffer 계약은 계약자에서 DAO까지의 제안서가 어떤 모습일지 보여 주는 예시입니다.
6# Reward Tokens
이 섹션에서는 계약에서 토큰 보상이 어떻게 적용되는지 설명합니다. 보상토큰은 DAO가 ether를 사용하는 트랜젝션을 만들 때 생성되며, DAO가 Ether를 지급할 때 DAOrewardAccount로 전송에 참여하는 DAO 네트워크 기여자들에게 분배합니다. 보상토큰은 DAO 분열이나 계약 갱신 시에만 전송되며, 오리지널이나 오리지널의 파생 DAO에만 전송됩니다.DAO들의 토큰 소유자들은 getMyReward 기능을 통해 보상토큰을 발행한 DAO에 기여 대가 ether를 회수하기 위해서 toMembers 매개 변수를 true로 설정하고, DAOpaidOut에서의 지급액을 추적하고 rewardAccount에 보상을 전송하는 retrieveDAOReward 기능으로부터 자신의 보상을 회수합니다. 이 투자회수금은 어떤 토큰 소유자가 그들의 정당한 보상을 요구하는지 추적하는 paidOut 맵을 통해 추적됩니다. 이러한 프로세스는 토큰 소유자가 분열 후에도 결과물에 투자한 ether의 약정된 보상을 받을 수 있도록 보장해줍니다.
7# Split
보상 토큰의 총량은 분열 중에서도 일정하며, 사라지지 않습니다. 따라서 토큰 소유자들은 DAO를 떠나더라도 언제든지 미래 보상을 손실없이 회수할 수 있습니다.8# Updates
이더리움 블록체인의 특정 주소에 명시된 계약의 코드는 변경할 수 없지만, 단일 회원이나 DAO 전체가 계약을 변경할 수는 있습니다. 모든 개별회원들은 위에 설명한대로 DAO를 나누고 새 DAO로 자금을 옮길 수 있습니다. 또, 그 곳에서 새로운 smart contract를 이용하여 다른 새로운 DAO에 자금을 옮길 수 있습니다. 하지만 전체 DAO에 새로운 코드를 적용하기 위해서는 필요한 기능들을 포함하는 새로운 DAO계약을 생성하고, 블록체인에서 사용되며 새로운 계약 주소를 매개변수로 하는 newContract 기능을 호출하기 위한 제안서를 만들어야 합니다. 만약 승인된다면, 전체 DAO가 새로운 계약으로 움직이게 되어 모든 ether와 보상 토큰이 새로운 계약으로 이전됩니다. 거기서 기존의 DAO 토큰을 사용하기 위해서는 approve 기능을 사용하여 새로운 DAO에 토큰을 이전시킬 권리를 줘야 합니다. 하지만 새로운 계약에서 이 권한은 토큰 소유자만 호출할 수 있는 제한된 기능에서만 사용할 수 있습니다. 그러므로 예전 계약에서의 토큰 분배를 기반으로 새로운 계약에서 새로운 코튼을 만들어야 합니다. 이것은 예전 토큰이 없앤(0주소로 보낸) 증거를 통해서도 할 수 있습니다. 이 프로세스를 이용하면 DAO가 정적인 불변 코드를 유지하면서 필요시 업데이트도 가능합니다.THE DAO에서 전송한 Ether에 비례하여 발행된 토큰 모두 동일한 가치를 가지며 토큰의 수와 비례하여 의결권을 부여받습니다. 토큰소유자나 계약자 등 누구나 제안서를 제출할 수 있으며, 일정시간동안 토론하고 토큰으로 투표를 하여 다수결로 실행 여부가 결정됩니다. 또한, 다수의 토큰을 가진 이들의 횡포를 막기위해 토큰 소유자는 언제든지 DAO를 환불(split) 요청할 수 있으며 이를 통해 제안서에 투자한 것을 언제든지 회수할 수 있습니다. 큐레이터는 토큰 소유자들의 요청사항에 대한 실제 이행 여부나 제안된 코드의 내용을 확인하는 작업을 하며, Ether를 받을 수 있는 주소목록을 관리함으로서 권한을 갖지만 DAO들이 큐레이터를 선발할 수 있게 함으로써 규제하고 있습니다.
THE DAO. 블록체인 위의 협업 시스템
DAO는 블록체인 위에서 스마트 컨트랙트를 통해 일종의 법인과도 같은 협업시스템을 만들었습니다. 프로젝트 제안을 통해 좋은 아이디어를 발굴하고, 이에 협력하는 사람들을 위한 보상체계가 담겨있습니다. 또한 이 가상의 조직 운영에 필요한 자금(Ether)을 마련할 수 있으며, 반대로 지지하는 프로젝트에 펀딩으로 참여할 수 있습니다. 그리고 모여진 이 자금을 어떻게 사용할것인지, 조직 운영에 대한 제안과 투표를 할 수 있는 블록체인 최초의 시스템입니다.
토큰은 주식과 같은 역할을 하며, 이를 가진 이들은 DAO운영에 관해 의결권을 가집니다. 정해진 시간동안 제안에 대해서 토론하고 투표를 통해 실행여부가 결정되는 형태는 주주총회와 유사합니다. DAO는 토큰을 가진 모두가 DAO 운영에 능동적으로 참여가능하고 투자에 대한 손실없는 보상을 받을 수 있을 것이라 말합니다. 하지만 Ether로 얻은 토큰을 가진 모두를 의사결정자로 설정하는 것은 이사회나 주주총회의 결론에 따라 결정되는 현실과 다른 문제를 발생시킵니다.
THE DAO, 어떤 문제가 있었을까?
백서에도 나와있듯이 위 해결책의 첫번째 맹점은 무관심한 토큰 소유자도 존재한다는 것입니다. 이러한 무관심은 투자자금의 회수에 국한되지 않습니다. DAO 자체에 대한 무관심, 본인의 이익 외 다른 것에 대한 무관심 등 다양할 것입니다. 이런 경우, 정족수 부족으로 프로젝트 실행 자체가 불가능할 수도 있습니다.
두 번째는 DAO를 하는 사람들은 다양한 문화와 목적을 가지고 모였다는 것입니다. 그렇다보니 다양한 제안이 제시될 수 있고 이는 결국 그 어떤 것도 채택되지 못하는 결과가 나올 수 있습니다.
세 번째는 한정된 토큰 수와 Ether의 가치의 상관관계입니다. 주식의 경우 기업의 내/외부 가치에 따른 시장의 수요공급 법칙에 의해서 주가가 결정됩니다. 또한, 주가나 기업의 자금상황에 따라 증자를 하기도 합니다. 하지만 토큰의 경우 총량이 한정되어 있고, Ether의 인풋에 비례하여 발행되는 형식입니다. 이는 향후 DAO가 활성화되어 많은 이들이 사용하고 다양한 제안서들이 실행되면서 토큰의 가치가 올라가게 될 경우 문제가 발생할 수 있습니다. 기업 전체의 이익을 분배하는 주식과 달리 토큰은 자신이 투자한 제안서에 따라 보상이 결정됩니다. 그렇기 때문에 토큰의 정확한 가치를 산정하기 힘듭니다.
생각해볼 점
콘텐츠 기업도 DAO와 같이 이용자들의 무관심이라는 문제가 있습니다. 특히나 콘텐츠와 그에 대한 반응에 비례하여 인센티브를 지급받는 형식이기 때문에 이용자들의 능동적인 참여가 전제되야 합니다. 대부분의 사람들은 자신의 컨텐츠가 처음이라는 사실에 부담을 느낍니다. 이 때문에 허허벌판에서 이용자들에게 ‘컨텐츠를 생성하세요.’라고 하면 활성화의 성공여부는 불확실해질 것입니다. 따라서 이용자들이 플랫폼에서 콘텐츠를 생성하고 타인의 콘텐츠를 소비하는데 자연스러움을 느낄 수 있도록 우선적으로 운영자들이 해당 플랫폼에서 지속적인 활동을 할 필요가 있습니다.
스팀잇과 같은 콘텐츠 기업은 구성원들의 활동량에 비례하여 경제적인 인센티브를 제공합니다. 이러한 형태는 DAO와 비교해봤을때, 콘텐츠 기업은 콘텐츠와 그에 대한 반응을 보상하는것에 강점이 있습니다. DAO는 Ether로 토큰을 활용해 플랫폼 내 '기획', '제안', '투표'와 같은 활동을 기획하고 실행에 참여시킵니다. 스팀잇은 '댓글', '추천'과도 같은 작은 참여에 대한 플랫폼의 보상과 그를 통한 플랫폼 활성화를 포함한것에 차이가 있습니다.
다음 글
다음은 The DAO는 왜 망했으며, 해킹 이외에도 어떤 시스템적 문제가 있었는지 좀 더 자세히 파 볼 예정입니다.
본 리뷰 시리즈는 온라인 포스팅을 통한 자유로운 아이디어의 교환을 위한, 스터디의 목적으로 작성되었습니다. 같은 관심사로 재미있게 이야기 나누실 분들을 기다립니다. 피드백 환영합니다.
Congratulations @jenna.pulse9, you have decided to take the next big step with your first post! The Steem Network Team wishes you a great time among this awesome community.
The proven road to boost your personal success in this amazing Steem Network
Do you already know that awesome content will get great profits by following these simple steps, that have been worked out by experts?