탐색의 시작: 암호통화 설계의 가장 근본적인 원리가 잘못됐다면? (2)
그저 개인적인 호기심 해소와 공붓거리의 하나로 조금씩 알아보려고 합니다. 아마 컴퓨터 공학이나 암호학을 전공한 사람이 여러 가지 방식의 통화 설계 프로젝트에 가담했거나 구경해 봤다면 훨씬 수월하게 추적하고 명료하게 이해할 수 있을 것입니다. 저는 그렇지 못합니다.
아래 출처는 이 자료 목록에 들어 있는 자료 중 하나입니다. 그중 조금만 읽고 국영문 혼용으로 그 아래에다 발췌합니다. 오해나 오역이 있을 수 있습니다. 지난번에 소개한 자료와 같은 지은이가 그보다 좀 더 일찍 작성한 내용입니다.
***
- 지은이: Arthur Brock
- 출처: "Flaws of Blockchains and Perspectives on Cryptocurrencies", Holochain's Medium Blog, 2016년 3월 16일.
***
탈중심과 합의에 관한 많은 문제를 풀기 위해 블록체인을 찾는 사람들이 많다. 나는 사람들이 찾고 있는 그러한 인프라스트럭처를 구축할 수 있다고 생각하지만, 지금까지 블록체인과 암호통화들이 접근하고 있는 방식으로는 불가능하다고 본다. 인기를 누리고 있는 현행 접근에는 근본적인 결함들이 있다 ( ... ... )
1. 논센스를 중단하라! (논센스인 합의는 이제 그만) Stop the Nonsense! (no more Nonsense Consensus):
독립된 행위자들의 국지적 행동에 대하여 글로벌한 합의를 요구하는 시스템은 절대로 규모를 확장할 수 없다. 예를 들어, 내가 당신에게서 무엇을 사고 싶을 때 경제 안에 돌아다니는 모든 돈이 어디에 있는지를 내가 알아야만 할 이유는 없다. 그래야 한다면, 지능과 능동성을 중심이 아니라 외곽으로 퍼트리는 원리를 따라야 할 일에 우스꽝스러운 복잡성을 쓸데없이 보태는 것이다. 마찬가지로, 원자 하나는 우주에 있는 모든 전자의 상태를 감안하지 않고도 다른 원자와 결합할 수 있어야 한다(아래 만화를 참조). 하지만 비트코인과 블록체인은 모든 거래와 기록에 단단히 고정되는 허가된 토큰을 중심으로 구축된다. 이렇게 하면 모든 상호작용 속에다 불필요한 복잡성과 규모 확장을 저해하는 제한을 심게 된다. 토큰은 탈중심 시스템을 작동시키는 요인이 아니다. 반면에, 암호화 서명과 자기 승인 데이터 구조는 탈중심 시스템을 작동시키는 요인이다.
2. 내재적 데이터 무결성(글로벌 원장이 아니라) Intrinsic Data Integrity (not global ledger):
오랫동안 데이터 무결성(data integrity)은 호스팅과 통제, 데이터 저장 기기에 대한 접근과 결합되어 왔다. 그래서 가령, 은행들은 해킹과 계좌 잔고의 변경을 막기 위해 방화벽을 사용해 왔다. 하지만 오늘날에는 우리에게 누가 데이터를 수정해서 구조적 무결성을 침해하면 그 증거를 남기는 해시체인(hash-chain)과 머클트리(Merkle-tree)와 같은 자기 승인 데이터 구조(self-validating data structures)라든가, 암호화 해시(cryptographic hash)라든가, 데이터 변경 시의 해당 상대방의 서명(counterparty signatures)과 같은 도구들이 있다. 이러한 도구를 사용하면, 데이터의 저장과 관리를 분산시킬 수 있고, 데이터를 소지하는 사람들이 데이터를 변경할 수 없게 할 수 있다. 달리 말해, 개인이 자신의 계좌 잔고를 출력시키는 권한을 가질 수는 있지만, 자기 계좌의 기록을 수정할 수는 없다. 적절하게 구축될 경우, 이러한 방법은 타당성을 검사할 수 있는 데이터를 어디에나/모든 곳에 저장할 수 있게 함으로써 저장과 처리량을 막대한 규모로 키울 수 있는 열쇠다. 즉, 단 하나의 공유된 원장을 만들어서 합의할 필요가 없다.
3. 분산된 승인 프로세스 (데이터를 합의하는 게 아니라) Distributed Validation Process (not data consensus):
자연과 현실 세계에서 확장성을 갖춘 시스템들이 어떻게 일을 처리하는가를 눈여겨보고 여기서 조금 배워 보자. 예를 들어, 세포들은 저마다 지시 집합(instruction set)인 DNA의 복제본을 품고 있다. 각 세포는 모든 세포의 상태에 대한 기록을 품고 있지 않다. 마찬가지로 어떤 언어의 발화자들은 저마다 필요한 문장들을 생성할 수단들을 품고 있다. 우리는 모종의 거대한 글로벌 원장에다 발화된 모든 문장을 저장하고 다니지 않는다. 집단적인 지능을 구축하기 위해 필요한 것은 합의에 의해 도달한 규칙에 따라 작동하는 신뢰 가능한 프로세스를 분산시키는 것이지, 데이터의 모든 요소에 대한 합의를 구축하는 것이 아니다. 그 프로세스에서 산출되는 데이터를 프로세스 실행의 무결성을 검증하는 데 사용하면 되는 것이지, 프로세스를 실행하는 매체(medium)가 데이터일 필요는 없다. 타당성이 승인된 프로세스의 복제본을 출발점으로 삼으면, 당신이 작동시킨 코드가 그 프로세스의 규칙들을 실행하고 타당한 산출물을 생산할 것이라는 신뢰하에 그 이후 처리 과정에 대한 권한을 부여할 수 있다. 네트워크의 나머지 전체가 타당성을 승인하고, 검증하고, 당신의 상태와 묶어서 한꺼번에 네트워크 전체를 갱신하기까지 기다릴 필요가 없다.
4. 행위자 중심(토큰 중심이 아니라) Agent-Centric (not token-centric):
암호화 코인이나 토큰을 존재하는 근본 요소로 삼아서 시작할 게 아니라, 행위자들/사람들/조직들(또는 이들의 암호와 계정 ID)을 존재하는 기본 요소로 삼아서 시작한다. 각자가 참여하는 데 필요한 프로세스의 복제본을 가지고 있고, 그 사람들의 기록이 변경 불가능한 내재적인 데이터 무결성을 갖추어 저장된다면, 임의의 두 사람은 다른 누구의 승인이나 합의를 요구하지 않고도 거래를 수행할 수 있다. 당신과 나, 두 사람 중 나에게 있는 프로세스가 당신이 거래를 진행할 타당한 상태에 있는지 확인하기 위해 당신의 거래 체인을 검증(audit)한다. 그리고 당신에게 있는 프로세스가 나의 체인을 검증한다. 만일 둘 가운데 어느 한쪽의 프로세스가 코드로 작성되어 있는 약속을 상대방이 위배하는 상태임을 발견하면 거래는 거부된다. (이러한 과정을 어떻게 확실하게 실행하는가에 대하여 질문이 많을 것으로 안다. 미래의 게시물에 그에 관해 상세히 다루겠다.)
5. 프랙털 패턴 (단일한 보편적 구조가 아니라) Fractal Pattern (not a singular universal structure): 아래에 일부 원문을 발췌.
You would think that the existence of the web would have taught us already that we can have shared access to pretty reliable, referenceable information without us all needing to have identical copies of it. Starting by creating a global ledger where each copy has to be in the same state is a totally different problem than having a fractal process for creating and organizing data which can be referenced by anyone, wherever that data lives. It can still provide globally accessible agreement about data, but that agreement is constructed from fractally assembled reliable parts instead of requiring each part to reach global (or majority) agreement to commit each element of data. One of the beautiful outcomes from this is such a massive reduction in the processing and storage requirements that it becomes feasible to run a full node on a mobile phone instead of requiring specialized mining hardware.
본 게시물 발행 후 수정 사항: 이 게시물을 발행하고 나서, 우리는 이제 홀로체인을 구축했다. 홀로체인은 블록체인이 안고 있는 위와 같은 설계 구조(architecture)상의 결함을 모두 감안한 우리의 대안이다.
***
※좀 더 많은 내용이 위 출처의 자료에 있습니다. 저자가 이 게시물 작성 후에 쓴 좀 더 구체적인 다른 게시물에 대한 링크도 제시되어 있습니다.
관심 주제글인데, 나중에 읽기 위해 표해둡니다.
자료 목록(https://steemit.com/money/@hsalbert/5r4uqm)을 채워 가면서 짬을 내어 조금씩 읽고 있습니다. 여러 사람들이 목록에 있는 자료와 유사한 자료들을 이해하여 적절한 방향을 잡아가거나 제시하거나 필요한 지식을 한국의 설계자들과 개발자들에게 연결해 주었으면 좋겠습니다.
아직 못읽어서 다시 와서 읽기 위해서 표해둠.
지은이의 이름을 핵심어로 기억해 둬 보세요. "Arthur Brock". 그런데 이 냥반이 쓴 글이 워낙 많아서 찾기가 어려우니 다른 핵심어 "Flaws of Blockchains"를 기억해 주시면 좋을 듯합니다. 위 두 키워드와 한국어 언어설정으로 구글 검색을 실행해 보니 바로 뜹니다. https://www.google.com/search?q=Arthur+Brock+flaws+of+blockchains&newwindow=1&client=firefox-b-ab&source=lnt&tbs=lr:lang_1ko&lr=lang_ko&sa=X&ved=0ahUKEwjC1abW3aTaAhVLfbwKHf0vD1UQpwUIHg&biw=1024&bih=475
Inspirational post! You know what they say.. "To handle yourself, use your head; to handle others, use your heart."
결론이 조금 허무한데요? 그래도 좋은글 쉽게 접할 수 있게 해주셔서 고맙습니다~
저도 궁금해서 조금씩 이해해 가는 중인데, 결론 찾기는 어려운 것 같습니다. 결론이라고 하면, 이 사람들의 조직이 지금 행동하고 있는 것들의 어떤 구조와, 의미와, 적용할 수 있는 영역들, 그것이 사람들의 행동과 경제적 질서에 어떤 영향을 미칠 것인지 하는 함축일 것 같습니다. 그런데 그것을 알아가기가 쉽지 않네요. 서서이 드러날 것으로 봅니다.
일각에서는 에어비앤비, 우버 같은 중심화 서비스를 해체한다거나 아마존의 호스팅 서비스가 수익의 10%라는데, 장기적으로 이런 자이언츠들의 하부구조의 일부를 허물 수 있다는 조심스러운 전망을 봤습니다.
위 발췌 내용에 설명돼 있는 블록체인의 아키텍처가 안고 있는 구조적인 문제의 일부를 에드워드 스노든이 두루뭉술하게나마 지적한 것 같다. http://m.zdnet.co.kr/news_view.asp?article_id=20180323154527&re=#imadnews
지은이가 오래전에 "EDIT(게시물 발행 후 수정 사항)"으로 추가했던 텍스트를 보면 이러하다.
EDIT: Since publishing this post we have built Holochain — our blockchain alternative that addresses all these architectural flaws of blockchain.
These cover some of the basic differences in the assumptions of how we’re approaching cryptocurrencies. I’m sure for some they create more questions than answers, so I intend to follow up quickly with a few more posts: