Handshake의 의미있는 시도

Santony Choi
Tokenomia
Published in
12 min readSep 28, 2018

Handshake는 Lightning Network의 Founder인 조셉 푼이 참여한 것으로 유명한 블록체인 프로젝트입니다. 이 프로젝트가 풀고자 하는 문제는 바로 인터넷의 DNS 시스템이며, DNS의 기반인 CA(Certificate Authority)를 탈중앙화 함으로써 보다 안전하고 공정한 인터넷을 만드는 것이 목표입니다.

사실 DNS는 Handshake 외에도 많은 프로젝트들이 블록체인을 접목하고자 시도하는 분야이기도 합니다. 많은 프로젝트들이 Handshake보다 먼저 등장했으며 현재까지도 활발히 개발중입니다. 오늘은 Handshake가 그 중에서도 특히 관심을 모으는 이유에 대해 이야기하려 합니다.

이야기를 진행하기에 앞서 블록체인이 도입되기 이전의 DNS에 대해 먼저 살펴보겠습니다.

블록체인 이전의 DNS

DNS(Domain Name System)는 한 마디로 “자원의 이름을 해석해주는 시스템”입니다. 우리가 읽는 미디엄의 글이나 뉴스기사 등은 ‘172.217.15.78’과 같이 숫자로 이루어진 IP 주소 아래에 존재합니다. IP 주소는 자원 식별자로서 인터넷 상의 자원의 위치를 효율적으로 나타내는 방법이지만 사람이 읽고 외우기에 용이하지 않습니다. 이를 보완하기 위해 우리는 IP의 숫자 주소를 “www.medium.com” 혹은 “www.google.com”과 같이 사람에게 의미있는(Human-meaningful) 이름, 즉 도메인 이름(Domain Name)으로 변환해 사용합니다. DNS 서버들은 이렇게 변환된 “IP 주소 <-> 도메인 이름”의 정보를 저장해두었다가 우리가 요청할 때마다 찾아서 반환해줍니다.

도메인 이름 정보는 DNS를 구성하는 여러 단계의 계층 구조를 통해 유지됩니다. 일반 사용자는 각 국의 인터넷 서비스 업체나 구글과 같은 인터넷 기업에서 마련한 DNS 서버를 통해 도메인 이름 정보를 얻습니다. 각 기업의 DNS서버는 다시 한 번 상위의 DNS 서버로부터 정보를 받아옵니다. 이런 식으로 정보가 여러 계층에 걸쳐중첩되어 있는 것이 현재의 인터넷 구조입니다.

이 계층의 최상위에는 ICANN 이라는 비영리 국제기구가 있습니다. ICANN은 1998년에 설립된 기구로, 모든 DNS 서버가 참조하는 DNS Root zone file을 관리하고 있습니다. 이 파일을 관리하는 주체는 인터넷의 도메인 이름을 마음대로 할당할 수 있는 권한이 생깁니다. .com이나 .org 등 URL에서 가장 기본이 되는 최상위 도메인(top-level domain) 역시 ICANN이 심사하고 할당합니다. 쉽게 예상할 수 있듯, ICANN의 이러한 막강한 권한에는 늘 논란이 있었습니다.

주코의 삼각형

많은 논란에도 불구하고 ICANN이 이렇게 막강한 권한을 가지게 된 원인은 ‘주코의 삼각형’이라는 유명한 트릴레마를 통해 설명할 수 있습니다.

출처: 위키피디아

이 삼각형은 좋은 이름(식별자)에 요구되는 세 특성이 동시에 충족될 수 없음을 나타냅니다. 예를 들어 숫자의 조합으로 된 주소는 분산 환경에서 활용 가능하면서도 안전하지만 사람이 읽고 외우기에는 용이하지 않습니다. 사람에게 의미가 있는 이름을 두기 위해서는 이름을 번역해주는 중앙화된 서비스가 필요한데 그러면 탈중앙화라는 특성을 포기해야 합니다. 그렇다고 아무나 이름을 번역할 수 있게 허용한다면 인터넷은 각종 피싱(Phishing)으로부터 안전하지 않게 됩니다. 그 결과 오늘날 인터넷은, ‘Decentralization’을 포기하고 ICANN이라는 중앙화된 기구를 두는 대신 ‘Secure’와 ‘Human-meaningful’이라는 특성을 취한 것입니다.

블록체인 DNS 아이디어의 등장

주코의 삼각형은 오랜 기간 말 그대로 트릴레마라고 여겨졌습니다. 하지만 블록체인이 등장하면서 세 특성을 동시에 충족할 가능성에 대한 논의가 시작됩니다. 물론 Byzantine-fault tolerant(BFT) 한 상황에서 이 트릴레마가 해결될 수 있다는 것은 이전에도 존재하는 아이디어였습니다. 그러나 블록체인 기술이 등장하면서 인터넷과 같은 환경에서 중앙화된 주체가 네트워크의 상태(State)에 대한 결정권한을 독점하지 않더라도 네트워크에 존재하는 다수의 참여자가 같은 상태에 있다는 것을 보장하는 것이 가능해졌습니다. 즉 분산화된 인터넷 환경하에서도 BFT를 보장할 수 있음을 블록체인이 증명했고, DNS를 포함하는 네트워크 상의 신뢰와 관련된 문제들 역시 여기서 해결의 실마리를 찾은 것입니다. 비트코인 이후 가장 먼저 등장한 블록체인의 응용 중 하나가 Namecoin과 같은 DNS 관련 프로젝트였던 점도 놀라운 일이 아닙니다. 뒤이어 이더리움의 ENS나 Blockstack같은 프로젝트들이 연달아 등장했고 현재도 활발히 개발중입니다.

Handshake

Handshake는 DNS와 관련된 블록체인 프로젝트들 가운데 가장 최근에 등장한 프로젝트입니다.

기술적으로는 비트코인의 것을 개선한 PoW 컨센서스 알고리즘에 UTXO 모델을 활용하며, Covenant라는 독특한 구조를 통해 (다소 제한적이긴 하지만) 비트코인보다 개선된 스마트 컨트랙트 기능을 추가했습니다. DNS를 운영하기 위해 필요한 이름 경매 등의 지정된 기능 역시 컨센서스 레벨에서 지원합니다.

SHA3 Hashcash PoW function

컨센서스 알고리즘으로는 비트코인과 유사한 형태의 PoW를 활용합니다. 전통적인 Hashcash를 활용하며 해시함수로는 SHA3를 쓰고, 난이도 조절은 매 블록마다 합니다.

단, SHA3를 활용한다는 점 외에는 ASIC에 의한 네트워크 독점에 대한 대처 방안은 명확하지 않습니다. 순수하게 하드웨어의 해시파워에 의존하는 PoW의 단점에 대한 보완책도 없습니다. PoW에 많은 문제가 있음이 널리 알려졌음에도 불구하고 이처럼 전통적인 방식을 활용하는 이유는 PoW가 블록체인계에서 유일하게 ‘검증’된 알고리즘이기 때문이라고 합니다.

FFMT (Flat-File Merkle Tree)

더 적은 용량으로 더 빠른 검증을 수행하기 위해 Handshake는 FFMT라는 고유한 트리를 고안했습니다. 이 트리는 이더리움의 Base-16 Trie에 비해 50배 빠른 속도와 4배 적은 용량의 proof를 가진다고 합니다.

Covenant

비트코인 개발자 그룹에서 먼저 제안된 Covenant라는 개념이 적용되었습니다. Covenant는 쉽게 말해 UTXO의 소비 조건을 설정하는 경량화된 스마트 컨트랙트라고 할 수 있습니다. Handshake는 Covenant를 활용해 이름 경매, 전달, 소유권 증명 등을 수행하게 됩니다.

이름 경매

ICANN의 가장 큰 권한은 최상위 도메인의 관리자를 임의로 선정할 수 있다는 것입니다. Handshake는 이 과정을 탈중앙화해 경매를 통해 도메인의 소유권을 결정합니다. 이 탈중앙화된 경매는 바로 위에 언급된 Covenant를 통해서 진행됩니다.

경매의 진행은 아래와 같은 절차로 진행됩니다.

경매는 어떤 참가자든 시작할 수 있습니다. BID 타입의 Covenant를 가진 tx를 발생시키면 Bidding period가 시작됩니다. Bidding period는 시스템에서 설정된 기간이며 Bidding period가 끝나기 전까지 도메인을 원하는 어떤 참가자도 자신이 입찰하는 가격을 BID 타입의 Covenant로 제시할 수 있습니다.

Bidding period가 끝나면 Reveal period가 시작됩니다. BID Covenant를 실행한 참가자들은 REVEAL을 통해 자신이 입찰했던 가격을 공개합니다. Reveal period가 종료되면 승자가 결정됩니다.

경매의 승자는 REGISTER를 통해 도메인의 소유권을 가져갈 수 있습니다. 이 때 행사하는 가격은 본인이 제시한 가격이 아니라 두 번째로 높은 가격을 제시한 참가자의 가격으로 지불하는 Vickrey 경매 방식을 따릅니다. 차액은 입찰자에게 돌아갑니다.

반면, 경매에 낙찰되지 못한 참가자들은 REDEEM을 통해 자신이 제시했던 금액을 되찾아갑니다.

경매가 종료된 후에는 소유권의 유지를 위한 UPDATE, 전달을 위한 TRANSFER 등의 Covenant를 통해 도메인 이름과 관련된 다양한 동작이 체인 상에서 가능해집니다.

판매보다 효율적인 토큰 분배

출처: handshake.org

Hanshake의 토큰 분배 방식은 참신하면서도 현실적입니다. 위의 차트는 총 발행량 1.36 Billion의 HNS 토큰이 어떻게 분배되는지를 보여줍니다.

Handshake는 최근 10.2M USD 규모의 토큰 판매를 마쳤습니다. 재미있게도 이렇게 분배된 토큰 양은 전체의 7.5% 규모에 불과합니다. 오히려 가장 많은 양의 토큰은 FOSS(Free and Open Source Software) 개발자에게 “아무 대가 없이" 돌아가도록 되어 있습니다.

오픈 소스 그룹에게 분배되는 토큰

오픈 소스 개발자와 커뮤니티에 분배되는 토큰은, “그 동안 인터넷 발전에 기여해주신 공로를 치하하고 전 인류의 복지를 위해서 노력해주십사”하는 선의에 의한 선택은 아닙니다. 현실적인 이유가 숨어있습니다.

DNS 체계를 수정하는 작업은 생각보다 굉장한 노력이 집약되는 작업입니다. 인터넷에 참여하는 소프트웨어들은 다양한 소프트웨어 라이브러리의 집합이며, 라이브러리 역시 다른 라이브러리에 의존성을 가지는 형태로 복잡하게 얽혀있습니다. 이 글을 읽는 브라우저나 핸드폰과 PC의 운영체제, 심지어 스마트 기능이 들어간 냉장고와 TV까지 오늘날 쓰이는 모든 소프트웨어들은 특수한 경우를 제외하고 ICANN의 Root zone으로부터 시작하는 DNS 계층을 참조하도록 작성되어 있습니다. 참조하는 Root zone의 위치를 바꾸거나, 최소한 추가하도록 하려면 관련있는 모든 소프트웨어와 라이브러리를 수정해야합니다. 어마어마한 작업입니다. 단순히 작업량이 많을 뿐만 아니라 개별 소프트웨어를 담당하는 오픈소스 관리자들의 허가까지 맡아야하는 복잡한 절차입니다.

Handshake는 FOSS 개발자 그룹이 토큰 보유자가 되어 자발적으로 자신이 작업하는 소프트웨어에 Handshake를 반영하고, 토큰 가치를 상승시키는 선순환을 유도합니다. ICO 를 통해 모집된 자금으로는 실현 가능한 프로토콜의 틀을 갖추고, 실제 소프트웨어에 적용하는 대규모 작업은 오픈소스 개발자들이 자발적으로 진행하도록 유도하는 것입니다.

기존 인터넷 사업자 유입

기존 도메인 보유자(Domain Name Holders)와 업체 및 프로젝트(CA/Naming Corporations and Other Blockchain Projects)에 분배하는 부분도 인상적입니다. Handshake가 성공하기 위해 참여해야하는 이해당사자들이 자연스럽게 참여할 수 있도록 토큰으로 유도하는 방식입니다.

Handshake가 추구하는 도메인 이름 시스템의 개편은 기존 도메인 관리 업체 및 보유자에게는 위협이 될 수 있습니다. 새로운 시스템으로 옮겨가는 과정에서 임의대로 모든 도메인을 초기화하고 재분배할 수 있기 때문입니다. 이런 상황하에서는, 주로 기업이 해당되는, 최상위 도메인 혹은 유명 도메인을 보유한 주체는 새로운 시스템을 받아들일 유인이 사라지고 Handshake는 기존 인터넷과 분리된 또 하나의 망으로 남는 결과를 초래할 수 있습니다.

이런 위협때문에 기존의 DNS 관련 프로젝트들은 해당 프로젝트에 의해 관리되는 최상위 도메인을 마련해두고 해당 도메인 아래의 하위 도메인(sub domain)부터 네트워크를 구성하는 형태를 만들곤 했습니다. 하지만 ICANN의 Root zone을 대체하려는 Handshake의 지향점과는 다릅니다.

이를 해소하기 위해 Handshake는 기존 도메인 보유자를 위해 ICANN의 root zone file을 그대로 보존함과 동시에 Alexa top 10k에 속하는 유명 도메인의 경우 현재의 도메인 보유 정보를 유지하기로 결정합니다. 도메인은 일종의 자산이기 때문에 이를 보장하는 것은 지극히 합리적인 판단으로 보입니다. 뿐만 아니라 전체 토큰의 7.5%를 아무 대가 없이 기존 도메인 보유자에게 제공해 도메인 보유자들이 Handshake를 지지할 수 있도록 유도합니다.

이후의 계획

확정되진 않았지만 채굴 역시 토큰 분배를 위해 가능하다고 여지를 남겨두었습니다. 하드웨어의 해시파워가 중요한 PoW 알고리즘을 쓰는 만큼 채굴 보상이 필요한 것은 어찌보면 당연합니다. 정확한 규모나 시기는 결정되지 않았지만 자연스레 채굴 보상도 생겨날 것으로 예상됩니다.

먼 미래에 전 인류에게 토큰을 분배하는 하드 포크도 계획되어 있습니다. 커뮤니티의 동의하에 토큰 총 발행량을 두 배로 늘린 뒤, 70억명에게 지급한다는 계획입니다. 현실성은 다소 떨어집니다만 최대한 많은 이들을 이해관계자로 끌어들이고 다수를 확보하는 것이 중요하다는 점을 강조하기 위한 포인트라고 보입니다.

결론

이제 막 시작된 블록체인이라는 기술에서, 현재 진행 중인 프로젝트들은 모두가 크고 작은 실험이라고 생각됩니다. 실험은 성공여부와는 별개로 새로운 시도라는 점에서 가치가 있습니다. Handshake 프로젝트 역시 그런 점에서 눈여겨 봐야할 실험 중 하나입니다.

경제적 인센티브에는 다양한 유형이 있음에도 많은 프로젝트들이 토큰 경제설계 과정에서 ‘금전적’ 유인만을 고려하는 우를 범하고 있습니다. 개인이 ‘금전적’ 효용을 최대화하는 방향으로 움직인다는 가정은 현실을 지나치게 단순화한 오류입니다. 앞선 많은 프로젝트들이 이런 방식의 한계를 몸소 증명하기도 했습니다.

따라서 Handshake의 시도는 매우 의미있고 타당하다고 여겨집니다. 풀고자하는 문제에 대해 기술적으로 깊이 이해한 바탕 위에서, 이해관계자들을 프로토콜에 편입하고자 하는 다양한 측면에서의 고려가 눈에 띕니다. Handshake의 실험을 통해, 앞으로 다른 프로젝트들도 참고할 수 있는 결과가 나오리라 기대합니다.

--

--