홀로체인이란 무엇이고 왜 중요한가?


  • 저자  :  제이미 클링어(Jamie Klinger)
  • 원문 : What is Holochain and why does it matter?
    (2018.2.15) / Creative Commons Attribution 3.0 License
  • 분류 : 내용 정리
  • 정리자 : 정백수
  • 설명 : 원문에는 홀로체인이 무엇이고 왜 중요한가를 설명하는 비디오가 맨 앞에 ‘임베드’되어 있고, 저자인 클링어가 홀로체인을 더 자세하게 소개하는 글이 그 뒤를 잇는다. 아래는 클링어의 설명 부분을 상세히 정리한 것이다. 정리자가 프로그래밍 분야를 잘 알지 못해서 일부 용어들의 경우 적절하지 못한 번역어를 사용했을 수도 있다.

홀로체인: 블록체인이 한 차원 높아지다

비트코인의 중앙 메커니즘인 블록체인은 컴퓨터 과학에서 기념비적인 성취이다. 이 성취로부터 많은 다른 암호화폐들이 출현하여 이 모델을 이러저러한 방식으로 개선하려고 시도하고 있다. 홀로체인은 탈중심화를 더 진척시키고 효율성을 최대화하며 모든 유형의 인터페이스들과 응용프로그램들[‘응용프로그램’ 혹은 ‘어플리케이션’은 ‘앱’으로 줄인다—정리자]이 그것과 함께 구축되는 것을 가능하게 하고자 한다.

홀로체인은 비트토렌트(BitTorrent)의 평행성(parallelism)을 활용하여 완전히 분산된 앱들을 가동시킨다.

홀로체인은 분산된 앱들을 위한 ‘데이터 무결 엔진’(a data integrity engine)이다

엔진이란 “움직이는 부분들을 가진, 힘을 운동으로 전환시키는 기계”이다.(출처 구글)

‘데이터 무결’(Data Integrity)이란 블록체인들과 토렌트들이 해온 일이다. 블록체인들과 토렌트들은 내 컴퓨터에 있는 데이터가 당신의 컴퓨터에 있는 데이터와 동일하도록 보장한다. 블록체인들과 토렌트들은 데이터의 순서가 정확하게 동일하도록 보장한다. 그렇지 않으면 기능장애가 일어날 것이다.

분산된 앱들이란 (클라우드가 아니라) 당신의 개인 장치에서 국지적으로 돌아가는 앱들이다.

스냅챗(Snapchat) 같은 중앙집중화된 앱은 당신에게 중앙집중화된 서버들로부터 데이터를 보내는 작은 파일(앱)을 다운받도록 제공한다.

텐엑스(TenX같은 탈중심화된 앱은 탈중심화된 블록체인(Ethereum) 위에서 돌아간다.

분산된 앱은 당신의 개인 장치에서 국지적으로 돌아가며 P2P 연결을 제공할 것이다.

그래서 만일 스냅챗이 분산된 앱이라면, 당신과 당신의 친구들은 모두 분산된 앱을 당신의 폰에 깔 것이며, 사진을 보낼 때에는 그것이 직접 당신의 친구들에게, 오직 당신의 친구들에게만 갈 것이다. 중간에 매개하는 서버들은 없다. 중간에 매개하는 블록체인도 없다.

다른 각도에서 보자면, 분산된 앱이란 분산된 데이터베이스에 접속하여 데이터를 컴파일링하는 스크립트(실행되는 코드)인 셈이다.

홀로체인은 공동으로 작동할 수 있는 커뮤니케이션 앱들을 구축할 수 있게 해준다

홀로체인 위에서 돌아가는 트위터 클론(복제품)을 만들고 싶으면 (사실 핵심 팀이 이미 작업을 시작했으며 ‘클러터’Clutter라고 불린다) 메시지의 크기, 해시태그들, 그리고 당신에게 중요한 모든 매개변수들을 위한 규칙들을 결정하라. 만일 당신의 이 특수한 트위터 앱에서 개인의 색 선호도에 의해 게시물을 분리하는 것이 중요하다면, 사람들이 가입할 때 그들이 좋아하는 색을 공유하도록 요구하는 부분을 앱에 삽입하는 것이 필요하다.

투표하기를 게시하고 사람들이 그것에 응답하기 시작할 때, 당신은 사람들의 응답을 그들이 좋아하는 색에 의해 자동으로 분류되도록 할 수 있다.

이렇게 만든 색 선호 기능을 가진 트위터를 ‘색-트위터’라고 부를 수 있겠다. 이것이 가장 유용한 특징은 아니다. 더 유용한 매개변수에 대해 투표하도록 하여 견해를 수렴할 수 있다. 투표하면서 연령을 선택하도록 하고, 앱을 만든 사람에게 색-트위터에 이 매개변수를 추가하도록 요청한다. 그럼 다음과 같은 일이 일어난다.

앱을 만든 사람이 당신의 아이디어를 좋아할 때

앱을 만든 사람이 당신의 업데이트를 통합하고 싶어 한다면 앱에 새로운 기능을 집어넣을 것이다. 그런데 분산된 체계 안에 있기 때문에 플랫폼을 이용하는 모든 사람이 최신 버전을 다운받을 필요가 있다.

앱을 처음 만든 사람은 두 버전을 모두 돌릴 것인데 (그리고 새 버전으로의 이행을 촉진하기 위해서는 많은 사람들이 두 버전을 모두 돌려야 한다) 이 경우 업그레이드를 한 사용자들은 다음과 같은 마지막 트윗 메시지를 남길 것이다. “나는 더 이상 여기에 글을 올리지 않습니다. 이 링크를 따라서 ‘색·연령-트위터’(ColAge-Twitter)의 HonestlyJamieK로 나를 찾으세요.”

일부 사용자들은 업그레이드하지 않고 계속 색-트위터를 사용하는 쪽을 택할 것이다. 이들은 색·연령-트위터 계정과는 상호작용할 수 없을 것이다. 그러나 미래에는 색·연령-트위터의 계정들이 여전히 색-트위터를 돌리는 일련의 사용자들의 옛 체인에 상호작용하는 것이 가능해질 것이다. 색·연령-트위터의 매개변수는 모든 사용자들에 의해 충족되지 않지만, 색-트위터의 매개변수들은 모든 사용자들에 의해 충족되기 때문이다.

색-트위터는 그 특수한 앱을 돌리는 사용자들이 있는 동안만 존재할 수 있을 것이다. 만일 모든 색-트위터 사용자들이 오픈라인으로 나가고/나가거나 색·연령-트위터로 업그레이드한다면 색-트위터가 더 이상 접근 가능하지 않게 될 것이다.

색·연령 트위터를 쓰기로 한 사용자들은 이제 자신들의 연령을 등록해야 가입할 수 있게 된다.

일단 쎕터(Ceptr)—홀로체인과 그와 연관된 테크놀로지를 포괄하는 모(母)프로젝트(parent project)—가 통합되면, 다른 앱이 색-트위터가 필요로 하는 정보를 이미 보유할 때 색-트위터가 자동으로 이 매개변수에의 접근을 요청하는 것이 가능하다. 이는 자동입력 기능처럼 보일 수 있다. 당신의 연령을 일단 입력하며, 다시는 입력하지 않아도 되는 것이다. 다운로드받은 특수한 앱으로 그 정보에 접근을 승인하기만 하면 된다.

앱을 만든 사람이 당신의 아이디어를 좋아하지 않을 때

만일 앱을 만든 사람이 제안된 연령 매개변수가 자신의 체계의 비전에 속한다고 보지 않는다면, 그 사람은 업그레이드를 거부하고 색-트위터에 머물 수 있다.

이제 이전과 동일한 일이 일어난다. 다만 색-트위터의 제작자가 뒤에 처지는 사람이 된다. 나는 원래의 앱의 코드를 취해서 가지치기하여(fork) 연령 매개변수를 추가하여 홀로체인에서 나의 독립적인 앱으로 띄운다. 사람들은 원한다면 나의 앱을 사용하여 트윗을 날릴 수 있다.

다른 사례들에서처럼 만일 내 새로운 앱이 색-트위터의 모든 규칙들을 따른다면, 누군가가 색·연령-트위터 앱으로 메시지를 브로드캐스트할 때 (원한다면) 그와 동시에 색-트위터 앱으로도 브로드캐스트할 수 있다. 모든 앱들의 규칙들(색-트위터에는 색, 색·연령-트위터에는 색+연령)이 충족된다면, 당신은 당신이 돌리고 있는 수만큼의 앱들—홀로체인-호환적인 페이스북, 플리커(Flickr), 슬랙(Slack) 등—에서 브로드캐스트할 수 있다.

탈중심화가 아니라 분산

색-트위터에 게시하고 싶으면 네트워크 부하(負荷)를 나눠가질 태세가 되어있어야 한다. 홀로체인 앱들은 당신의 휴대폰에서 돌아가기에 충분하게 가벼우며 언제라도 당신이 요청한 정보만을 취하기에 충분할 정도로 효율적일 것이다.

만일 탈중심화된 체계라면 색·연령-트위터가 돌아갈 수 있기 위해서 업그레이드된 노드들(nodes)이 필요하다. 분산된 체계는 전적으로 개별화되어 있으며 사용자들이 자발적으로 따라오는 데 따른다. 그러나 당신의 디앱(dApp)[분산된 체계에서 돌아가는 앱]이 재정적으로 지속 가능하고 당신이 사용자들에게 체계의 샤드(shard)*를 유지할 것으로 요구하지 않고 접근을 제공한다면 디앱 유지자들에게 노드들/서버들을 돌릴 기회가 주어질 것이다.

* 모든 앱은 사용자베이스 전체에 분산된 일련의 샤드들로 이루어지는데, 이 샤드들이 서버부하를 나눠 갖는다. 토렌트 기능에 비견된다.

리프트(Lyft) & 우버  대  라주즈(La’Zooz) & 홀로체인

라주즈는 블록체인 기반의 승차공유 앱이었다. 이 앱은 자립적인 체계로서 기능했다. 네트워크는 이 앱을 돌리고 토큰을 버는 모바일 사용자들에 의해 지탱되었으며 이들은 다시 토큰 구입자들에 의해 재정적으로 지탱되었고, 이는 운전자들이 토큰을 받아들이도록 함으로서 작동되었다. 이들은 우버가 하는 중간 매개인을 완전히 제거했다. 이 프로젝트가 중도에서 중단되기는 했지만, 그 아이디어는 블록체인과 연관을 맺어본 누구에게나 완전히 명백한 듯했다. 그리고 사라질 것이 아니었다.

체계를 기업의 손아귀에서 완전히 빼낼 수 있는데, 왜 중간 매개인에게 돈을 지불하는가? 리프트나 우버가 오늘날 존재할 필요가 있는 매우 중요한 이유가, 그리고 블록체인이 아직 준비가 되어있지 않은 이유가 실제로 있다. 법적 문제, 안전 문제, 보험요건 등 승차공유를 위한 순전히 P2P적인 체계를 아직은 실행에 조금 못 미치게 하는 것들이 있다. 그러나 몇 년 있으면 스마트 계약(smart contracts)이 많은 문제들을 해결하리라고 기대할 수 있다.

탈중심화된 혹은 분산된 준거 체계들이 바로 모서리를 돌면 보이는 곳에 있다. 우리는 잠재적인 운전자들을 위해 적절한 보험의 확인(verification), 배경조사 및 기타 모든 요건들을 위한 매개변수들을 창출할 수 있다. 이는 스마트 계약과 유사하게 기능하여 일단 받아들여지면 사용자들로 하여금 확인의 다음 수준으로 옮겨갈 수 있게 해줄 것이다.

일단 우버-클론이 나와서 돌아가면, 누군가가 그것을 가지치기해서(fork) 전기차를 사용하는 운전자들만을 지원하는 생태친화적인 버전을 만들기로 결정할 수 있다. 에코-우버는 비용이 더 들지도 모르지만, 참여자들에게 새로운 매개변수를 제공하게 될 것이다.

너무 앱이 많다!

에코-우버가 출범한 후에 누군가가 붉은 색 차 용으로 레드-우버를 만들었고 파란색 차 용으로 블루-우버를 만들었다. 만일 운전자가 매스조인드라이버스(Mass-Join-Drivers) 앱에 가입되어 있어서 적절한 운전자 매개변수에 부합한다면 이 운전자는 자동적으로 (허가를 받아서) 모든 최신 앱에서 운전자가 될 수 있다.

사용자들에게 레드-우버, 블루-우버 등에서 선택할 수 있는 일련의 옵션들이 있다고 상상해보라. 그들에게는 너무 많은 중요하지 않은 선택항들이 있는 셈이다. 사용자들은 누가 A라는 지점에서 B라는 지점까지 운전을 하는지는 개의치 않는다. 빨리 가기만 하면 된다. 색-트위터와 색·연령-트위터의 경우처럼, 만일 브로드캐스터로서의 당신이 모든 요건들을 충족한다면 당신은 당신이 원하는 누구에게나 브로드캐스트할 수 있다. 심지어는 다수의 앱들을 동시에 브로드캐스트할 수도 있다.

그래서 사용자는 모든 적절한 운전 앱들에 승차 요청을 보낸다. 일단 첫 운전자가 요청(call)에 응답하면 그것을 사용자에게로 돌리고 모든 다른 승차 요청은 취소할 것이다.

홀로체인은 모든 인터넷 앱들의 능력 전부에 동시에, API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)를 필요로 하지 않고 접근하는 것과 같다. 언어들이 전적으로 양립 가능하기 때문이다. 홀로체인은 전 인터넷 아래에 IFTTT[‘If This Then That’의 약자로 인터넷과 컴퓨터에 존재하는 여러 별개의 서비스와 앱들을 임의로 연동시켜주는 서비스] 층을 구축하는 것이나 마찬가지이다.

이 글에 기술된 일부 심층적인 특징들은 쎕터(연관성이 높지만 현재로서는 분리된 자매 프로젝트) 안에 내장된 자기기술적인(self-describing) 프로토콜들을 필요로 한다는 것을 것에 주목하는 것이 중요하다.

궁극적인 대시보드

오늘날 우리는 페이스북의 알고리즘이 우리에게 보여주기로 결정한 것에 어쩔 수 없이 만족해야 한다. 우리의 피드를 조작하는 우리의 능력은 극히 제한되어 있다. 홀로체인의 경우, 우리는 앱들이 설정한 매개변수들에만 제한된다. 만일 당신이나 당신의 친구들이 이 매개변수들을 좋아하지 않는다면, 가지친 앱으로 매개변수를 바꿀 수 있는 것이다!

그리고 정보가 앱 위의 층에 존재하고 사유화되어 있지 않기 때문에 당신의 피드들을 마음에 드는 쪽으로 혼합하고 맞출 수 있다. 나는 모든 상황들에 대해 대시보드들을 만들 수도 있으며 이 상황에서 저 상황으로 매끄럽게 도약할 수 있다. 나의 모든 앱 채널들에서 적어도 10번 게시물을 올린 사용자들로부터 뽑은 개와 관련된 모든 것이 내 대시보드 가운데 하나가 될 수 있다. 나의 10킬로 이내에서 살며 높은 등급의 평판을 가진 사용자들의 모든 피자 관련 게시물들이 또 하나의 대시보드가 될 수 있다.

정보는 각 앱 내에만 머물러 있지 않아도 되기 때문에, 최종 사용자는 자신이 선택한 매개변수로 자신에게 맞추어진 경험을 창출할 수 있다. 데이터 발굴과 합의 구축의 가능성들은 무한하다. 페이스북과 구글의 데이터 독점이 끝장나는 것이다. 만일 우리가 홀로체인의 사용을 선택한다면, 우리는 우리의 정보가 공유되고 커먼즈로 하여금 집단적 성장과 이해를 위해 그 정보를 사용할 수 있게 하는 방식을 선택하는 것이다.

key words: holochain, blockchain, distributed, interoperable, decentralized, dApp, smart contracts, commons