오리고
오리고(Origo)는 탈중앙화 애플리케이션을 위한 프라이버시 보호 플랫폼이다. 혁신적인 프라이버시 프로토콜과 효율적인 영지식증명(ZKP) 프레임워크를 결합함으로써 탈중앙화 애플리케이션 상의 입출력 데이터와 트랜잭션의 프라이버시를 보호한다. 티커는 OGO이다.
개요
오리고 네트워크는 애플리케이션의 입출력 데이터 프라이버시를 보호하는 탈중앙화 애플리케이션을 위한 프라이버시 강화 플랫폼이다. 이더리움의 경우 누구나 스마트 계약을 활용한 거래기록을 볼 수 있기 때문에 개인 프라이버시를 침해받을 수 있으며, 모네로, 지캐시 같은 다크코인의 경우 익명성이 보장되지만 개인간의 거래에만 특화되어 있다. 이더리움과 다크코인의 조합이라고 설명할 수 있는 오리고 네트워크는 거래내역을 익명화하고, 스마트 계약 기능을 추가, 블록체인에 입출력에 사용되는 데이터를 익명화하여 프라이버시를 보장하는 것을 목표로 하고 있다.
영지식증명이란 누군가가 상대방에게 어떤 문장이 참이라는 것을 증명할 때, 그 문장의 참·거짓 여부를 제외한 다른 어떠한 정보도 노출하지 않는 상호 절차를 뜻하는 알고리즘으로 다크코인에 도입되었다.[1] 이러한 다크코인들은 발신자, 수신자, 전송내용 등을 알 수 없는데, 이 같은 코인들은 개인간의 거래에만 특화되어 있다. 또한 이더리움과 같은 스마트 계약 플랫폼의 경우, 입력되는 데이터와 실행 결과가 네트워크 전체에 공개되기 때문에 프라이버시가 없고, 그로 인해 개인과 기업이 사용하기를 꺼려한다는 단점이 있다. 오리고를 쉽게 설명하자면, 다크코인과 이더리움이 결합한 버전이라고 볼 수 있다. 오리고 네트워크는 트랜잭션 값 및 스마트 계약 모두에 프라이버시 보호 솔루션을 제공하는 디앱을 위한 개인정보보호 플랫폼으로 프라이버시를 보장하는 탈중앙화 애플리케이션과 거래를 목표로 하기 때문이다.
효율성과 프라이버시 보장을 위해 오리고는 온체인과 오프체인을 둘 다 사용할 수 있는 환경을 제공한다. 프라이버시가 요구되는 애플리케이션을 사용할 경우, 오프체인을 사용하며 프라이버시가 필요하지 않은 일반 애플리케이션의 사용 시에 온체인을 활용, 오프체인 환경에서 익명성 기능을 사용해 애플리케이션을 실행한 뒤의 실행검증과 계산을 진행한다. 이더리움의 확장성 문제를 해결할 수 있는 방안으로 제안되고 있는 샤딩은 네트워크의 노드의 그룹이 합의에 도달하는 과정의 효율성을 대폭 개선시킬 수 있는 기술이다.[2] 오리고 네트워크는 상태샤딩을 활용하여 기존 프라이버시 코인의 한계점으로 지적된 블록체인의 확장성을 개선하고자 한다.
주요 인물
- 프랭크 팽(Frank Fang) : 오리고의 공동설립자이다. 미 카네기멜론 대학교에서 컴퓨터 공학 석사 및 칭화대학 컴퓨터 공학 학사를 취득하였으며, 전 핀터레스트(Pinterest) 본사 선임 아키텍트 및 핀터레스트 사의 전반적인 아키텍트를 담당했다. 분배체계, 암호화 알고리즘 및 신뢰 컴퓨팅 분야에서 폭넓은 경험을 자랑한다.
- 이지아 장(Yijia Zhang) : 오리고의 공동설립자이다. 미 카네기멜론 대학교 컴퓨터 공학 석사 및 칭화대학 컴퓨터 공학 학사를 취득했다. 전 구글어시스턴트 창립 멤버 및 기술 선임자이다. 과거 구글애드, 서치, 안드로이드 오토, 지메일 등 여러 사업분야에 관여했다.
- 베른 공(Baron Gong) : 오리고의 공동설립자이다. 미 콜럼비아 대학교 경영과학 및 공학 석사를 취득했다. 7억 위안 규모의 펀드 관리 경험이 있다.
- 웨이란 리우(Weiran Liu) : 오리고의 공동설립자이다. 북경항공항천대학 암호학 박사이기도 하다. 중국 내 가장 규모가 큰 문답식 웹사이트인 즈후(Zhihu) 사의 암호학 핵심 구성원으로 유명하다. 암호학계에서 만오천 명 이상의 팔로워드를 보유하고 있다.
- 홍차이(Hong Chai) : 오리고의 공동설립자이다. 중국 내 동영상 플랫폼인 유쿠(Youku) 초기 100명 직원 중 한 명으로, PPS뿐 아니라 나스닥에 상장된 소후(Sohu) 및 다른 인터넷 회사 마케팅 부서 책임으로 근무했다. CNR미디어(CNR Media) 및 참미디어그룹(Charm Media Group)의 부회장으로 디지털 마케팅 분야를 담당했으며, 15년 이상의 마케팅 경력이 있다.
- 소니아 왕(Sonia Wang) : 오리고의 공동설립자이다. 15년 이상 금융, 미디어, 보험 및 인터넷 분야에서 경력을 쌓았다.중국 내 가장 큰 주간지인 더이코노믹옵저버(The Economic Observer), 다국적 대기업인 씨케이허친슨홀딩스(CK Hutchinson Holdings) 예하의 탐그룹리미티드(TOM Group Limited) 및 에이치앤에이그룹(HNA Group)에서 근무했다. 아비바차이나(AVIVACHina)에서 브랜딩 및 커뮤니케이션 부서를 관리했으며, 중국 내 순위권 온라인 커뮤니티인 베이비트리(Babytree) 커뮤니티에서 일일사용자 약 6백만 명을 관리했다.
등장배경
이더리움은 코드 한 줄로 디지털 자산을 직접 컨트롤할 수 있도록 하여 보다 복잡한 애플리케이션에 대한 가능성을 열어준 스마트 계약을 통해 비트코인을 한 단계 더 발전시켰다. 하지만 현재의 스마트 계약은 프라이버시가 없다. 스마트 계약에 입력되는 데이터와 그 실행 결과가 네트워크 전체에 공개되기 때문에, 프라이버시를 중시하는 현실의 많은 기업 및 개인이 스마트 계약을 채택하고 사용하는 것을 꺼리고 있다. 블록체인의 강력한 기술들이 무신뢰한 당사자들이 안전하고 정확하게 상호작용할 수 있는 단초를 제공하긴 했지만, 오리고는 안전성과 정확성뿐만 아니라 프라이버시가 블록체인이 더욱 널리 퍼지게 해줄 열쇠라고 믿고 있다. 제로캐시와 같은 블록체인의 진보는 비공개 트랜잭션을 가능케 했지만, 오리고는 거래 당사자들이 개인의 입출력 내역을 공개하지 않고도 스마트 계약을 생성하고 실행할 수 있도록 함으로써 이러한 호크와 불렛프루프 등에 기반한 프라이버시 관련 작업에 한 단계 더 진보를 이루고자 한다.
실제 셰계의 정부와 중앙화된 사기업은 점점 더 어디에서나 시민과 고객들을 감시하고 있다. 머지않아 시민들과 고객들은 프라이버시에 대한 보다 근본적인 인권을 요구하게 될 것이다. 전 세계적으로 프라이버시에 대한 우려와 관심이 증가하자, 미디어는 계속해서 프라이버시에 관련된 사건사고에 대한 논란들을 다루고 있다. 이러한 예시로는 정부의 감시, 참가자들도 모르게 명시적인 통보 없이 진행되었다고 알려진 페이스북의 대규모 과학 실험 등이 있다. 공개된 블록체인에서 모든 프라이버시가 제한 없이 공개될 경우 지적 재산에 대한 소유권 및 권리 문제, 데이터 오남용, 적대적 행위 등의 문제를 일으킬 수 있기에 기업과 개인들은 이러한 노출에 대한 우려를 품고 있다. 계약에 있어 계약 당사자들은 계약금, 성능/치수 등의 중요 데이터, 계약의 선행조건 등 민감한 데이터와 내용에 대해 심대한 우려를 품고 있다. 이더리움 등의 전통적인 스마트 계약은 이러한 민감한 계약 정보들을 보호하는데 실패하였고, 결과적으로 스마트 계약의 산업적, 개인적 사용을 제한했다.
특징
프로토콜
프라이버시 목표 범위
모네로, 지캐시 등의 최근 프로젝트들은 새로운 비공개 암호화폐를 만들어냄으로써 프라이버시 문제를 해결하기 위해 노력했지만, 이러한 프로젝트들은 영지식증명과 기타 기초적 암호법을 통해 트랜잭션의 기밀성을 보장하고자 했다. 오리고는 트랜잭션의 기밀성만을 보장할 뿐만 아니라 스마트 계약 내에 작성된 탈중앙화 애플리케이션의 입출력 데이터의 프라이버시를 보장함으로써 보다 나은 프라이버시 보호를 제공하고자 한다. 따라서 오리고는 상기 프로젝트들에 비해 유연성을 보이게 된다. 아래는 트랜잭션의 기밀성에 집중한 프로젝트들과 오리고의 프라이버시 목표의 범위를 비교한 것이다. 표에 나타난 것처럼 모네로, 지캐시, 밈블윔블 등이 비공개 트랜잭션을 지원하는 비트코인의 포크라면, 오리고는 애플리케이션의 입출력 데이터 프라이버시를 보호하는 이더리움과 비슷한 개선된 탈중앙화 애플리케이션 플랫폼이다.
오리고와 모네로, 지캐시의 프라이버시 범위 비교 모네로, 지캐시 오리고 1) 송신자 주소
2) 트랜잭션 금액
3) 수신자 주소1) 송신자 주소
2) 트랜잭션 금액
3) 수신자 주소
4) 애플리케이션 입력
5) 애플리케이션 출력
프라이버시 보호 애플리케이션 플랫폼은 단순한 비공개 트랜잭션보다는 많은 기능을 제공한다. 비공개 트랜잭션은 거래되는 금액과 함께 송신자와 수신자의 정보를 보호한다는 뜻이다. 프라이버시 보호 애플리케이션은 비공개 트랜잭션의 기능뿐만 아니라 입출력 데이터의 프라이버시에 대한 보호 능력도 갖추고 있어야 한다. 거래 당사자들은 자신들의 입력 데이터와 화폐 단위를 시스템에 제공한다. 시스템은 이러한 입력값을 수신한 뒤 오프체인으로 애플리케이션을 실행하고 거래 당사자들에게 배당된 지불금을 암호화하여 출력한다. 시스템은 입력값으 프라이버시와 실행의 공정성을 보장할 필요가 있다.
- 입/출력의 프라이버시 : 애플리케이션의 입출력은 보호되어 공개되어서는 안 된다. 즉, 입출력 내용은 암호화되어 공개되어서는 안 된다. 이를 위해서는 블록체인을 오가는 모든 정보는 암호화되어야 하며 계약 실행을 보장하기 위해 영지식증명이 사용되어야 한다.
- 실행의 공정성 : 탈중앙화 애플리케이션, 특히 다수의 당사자가 존재하는 경우에 대해서는 프라이버시를 일반 대중으로부터 보호하는 것만으로 부족하다. 거래 당사자들이 자신의 이익을 극대화하기 위한 이기적인 존재라고 가정했을 때, 그들은 실행 이전에 트랜잭션을 중단할 수도 있다. 따라서 시스템은 거래 당사자들 간의 공정성도 보장할 필요가 있다.
오리고는 탈중앙화 애플리케이션을 비공개로 안전하게 실행할 수 있는 솔루션을 제안한다. 입출력 데이터 프라이버시를 보호하기 위해 오리고는 탈중앙화 애플리케이션을 오프체인 환경에서 실행한다. 오프체인 실행의 증명은 올바른 계산에 대한 검증을 위해 온체인으로 제출되어야 한다. 애플리케이션 개발자들은 암호법에 대해 알 필요는 없다. 오리고의 프라이버시 보호 애플리케이션 플랫폼에서 개발자들이 원래 하던 방식대로 애플리케이션을 작성하면 오리고 프라이버시 보호 애플리케이션 플랫폼이 입출력 데이터의 유츨 없이 애플리케이션을 컴파일하고 실행한다. 오리고 프라이버시 보호 애플리케이션 플랫폼은 개발자들이 쉽고 편하게 프라이버시 보호 애플리케이션을 구출할 수 있도록 해준다.
효율성과 프라이버시를 보장하기 위해 오리고는 온체인 및 오프체인 계산을 모두 지원한다. 프라이버시가 요구되는 애플리케이션의 실행 및 정당성 검증은 오프체인으로 실행된다. 프라이버시 보호 애플리케이션의 계산 검증과 일반 애플리케이션의 실행은 온체인으로 진행된다. 오리고 팀은 애플리케이션의 오프체인 실행의 세부사항은 보호하는 동시에 그 실행의 정당성에 대해서는 공개 블록체인이 정당성을 입증할 수 있도록 영지식증명을 사용한다. 또한 오리고는 악의를 지닌 당사자가 계약을 중단하지 못하도록 하는 적절한 경제적 메커니즘을 제안한다.
현재 솔루션의 한계
현존하는 블록체인 기술을 통해 튜링완전한 프라이버시 보호 애플리케이션을 적용할 수 있는 간단한 방법은 존재하지 않는다. 이더리움은 튜링완전한 애플리케이션을 지원하는 무허가형 공개 블록체인이다. 이더리움은 그 어떠한 트랜잭션 상의 프라이버시도 제공하지 않는다. 계약이 올바르게 실행되었나 검증하기 위해서는 각 노드가 계약을 실행해야 한다. 따라서, 각 계약의 입력, 중간 상태, 출력 데이터는 이더리움의 모든 노드에 대해 공개된다.
이더리움의 특정 애플리케이션에 대해서 일정 수준의 프라이버시를 보호할 수 있는 테크닉이 있다. 예를 들어 두 거래 당사자가 이더리움 스마트 계약을 이용해서 가위바위보를 할 때 한 쪽이 계약에 직접 패를 게시하게 되면 다른 한 쪽은 첫 번째 당사자의 선택을 읽고 유리한 패를 제시함으로써 이득을 취할 수 없다. 이러한 방식 대신, 두 당사자는 계약의 자신의 선택의 해시값과 무작위한 스트링을 게시하고, 두 당사자가 모두 입력을 커밋하고 나면 계약에 무작위 스트링에 대응하는 자신의 선택을 공개하여 입력값을 공개하는 방식을 사용할 수도 있다. 그러면 계약은 각 거래 당사자가 주장하는 입력값과 무작위 스트링을 조합한 것이 제출된 해시값과 일치하는지 검사함으로써 각 당사자의 입력값을 구할 수 있다. 이러한 테크닉은 두 당사자가 한쪽이 상대방의 선택을 보고 그에 맞는 선택지를 제시할 수도 있다는 우려를 할 필요 없이 게임을 진행할 수 있도록 해준다. 하지만 이러한 게임의 결과는 여전히 공개된 상태이다. 누구나 누가 게임을 이겼으며 승자에게 얼마가 지급되었는지 열람할 수 없다.
지캐시 및 모네로와 같은 암호화폐는 비공개 트랜잭션을 지원함으로써 이러한 문제를 해결했지만 스마트 계약을 지원하지는 않는다. 오리고는 탈중앙화 애플리케이션에 대해 비공개 트랜잭션과 스마트 계약을 모두 지원할 것이다. 또한 프라이버시 보호 애플리케이션의 입출력 데이터가 공개되는 것을 방지하기 위해 해당 애플리케이션은 오프체인으로 실행될 것이다. 해당 애플리케이션의 실행은 여전히 검증을 받아야 하긴 하지만 영지식증명을 통해 실제 결과를 공개하지 않고도 검증이 진행된다. 모든 적절한 프로토콜은 거래 당사자들이 규칙에 따라 행동하도록 유인을 제공하게 설계되었다.
프로토콜 개요
상기 한계점들을 해결하기 위해 오리고는 비공개 트랜잭션과 스마트 계약을 모두 지원한다. 호크로부터 영감을 받아 오리고 팀은 온체인 계산과 오프체인 계산을 결합하여 스마트 계약 실행 시의 프라이버시를 지키는 프로토콜을 소개한다. 오리고 프로토콜에는 초기화, 커밋, 실행, 결제의 네 단계가 있다. 커밋 단계에서 각 당사자는 자신의 코인을 계약에 동결시키고 자신의 비공개 입력값과 코인을 포함하고 있는 커밋먼트를 제출한다. 커밋먼트 스킴을 이용함으로써 입력 데이터와 코인은 비공개가 되지만 제출 당사자는 커밋먼트 이후에 해당 내용을 바꾸지 못한다. 모든 당사자가 커밋먼트를 제출하거나 단계의 타임아웃이 도래하면 예치금이 검증된다. 이는 다음 단계로 넘어간다.
실행 단계에서 각 당사자는 자신의 비공개 입력 데이터를 오프라인 실행자에게 공개한다. 실행자는 스마트 계약을 오프라인으로 실행함으로써 입력 데이터와 실행 결과가 공개되지 않도록 한다. 계약이 실행된 뒤, 실행자는 계약이 올바르게 실행되었는지에 대해 영지식증명을 생성한다. 블록체인이 정당성을 검증하고 나면 실행 결과에 따라 자금이 당사자들에게 분배된다. 이러한 프로토콜을 사용함으로써 사용자 입력값, 트랜잭션 금액, 계약 실행 정보 등이 비공개로 유지된다. 하지만 여전히 누구나 계약이 올바르게 실행되었는지 검증할 수 있다.
기술 설계
프로토콜 역할
오리고 프로토콜은 스마트 계약 실행의 한 주기 동안 크게 세 가지 역할을 맡는다.
- 당사자 : P1, …, PN, 스마트 계약에 참여하는 일련의 사용자들이다. 당사자들은 비공개 입력값 Ipriv1, …, IprivN, 공개 입력값 Ipub1, …, IpubN, 그리고 코인 C1, …, CN을 제출한다.
- 블록체인 : B, 당사자자들 간의 트랜잭션을 효율적으로, 그리고 검증 가능하고 영구적인 방식으로 기록하는 공개된 분산 원장이다.
- 실행자 : PE, 오리고의 스마트 계약의 실행을 가능케 하는 특수한 당사자이다. 실행자는 각 당사자에게 결과값 O1, …, ON을 출력한다.
프로토콜 단계
오리고 프로토콜은 초기화, 커밋, 실행, 결제의 네 단계로 이루어져 있다. 이러한 네 단계는 T1과 T2, 두 타임아웃으로 엄격하게 경계 지어져 있으며, Tcommit < T1이고 T1 ≦ Texecute < T2이다. 아래는 각 단계에 대한 기술적 세부사항이다.
- 커밋 단계
- 각 당사자 Pi(i∈[N]}는 스마트 계약에 예치하고자 하는 만큼의 코인 Ci(i∈[N])를 자신의 월렛으로부터 동결한다. 각 당사자는 동결된 코인 Ci에 대한 커밋먼트 cm = comm(Ci‖Iprivi)과 영지식증명 Proofci(i∈[N])를 계산한다. 커밋먼트 cm과 ProofCi,는 T1 이전에 블록체인 B로 보내져야 하며, 만약 그렇지 못할 경우 당사자는 계약의 참가자로 인정받지 못한다.
- 블록체인 B는 각 당사자가 보낸 ProofCi를 검증하고 T1이후에 그 어떠한 새로운 당사자도 추가되지 않도록 할 의무가 있다. 만약 모든 의무 당사자가 입력값과 코인을 커밋 했다면 계약은 실행 단계로 진행된다. 만약 그렇지 않았다면 계약은 중지되고 모든 커밋 된 코인은 각 당사자들에게 환급될 것이다.
- 이 단계의 목적은 각 당사자가 자신의 입력값과 코인을 비공개로 제출하는 것이다. 그 누구도, 심지어는 실행자도 이 단계에서는 다른 당사자의 입력값이나 코인을 알 수 없다. 이 단계 이후에는 당사자들의 입력값과 스마트 계약에 예치된 코인은 불변하다. 그 누구도 다른 당사자의 입력값을 알게 된 이후에 자신의 입력값이나 코인을 변경함으로써 이들을 취할 수 없다.
- 실행 단계
- 각 당사자 Pi(i∈[N])는 자신의 비공개 입력값 Iprivi와 코인 Ci(i∈[N])에 대한 정보를 실행자 PE의 공개키 KE로 암호화한다. 또한 영지식증명 ProofEi(i∈[N])를 구축해 암호화된 값이 자신의 커밋먼트 cm과 일치함을 증명한다. 암호화된 데이터 ENC(Iprivi‖Ci)와 그에 따른 증명 ProofE는 블록체인으로 송신된다.
- 일단 블록체인이 암호화된 데이터와 증명을 각 당사자로부터 수신하면, B는 각 당사자들의 암호화 데이터 ENC(Iprivi‖Ci)가 커밋 단계에서 제출된 커밋먼트 cm = comm(Ci‖Iprivi)과 일치하는지 검증한다. 이는 다른 당사자가 암호화된 데이터를 제출한 이후에 어느 누군가가 자신의 입력 데이터를 변경하는 것을 방지한다. B가 성공적으로 ProofEi를 검증하였고 현재 시간이 T1 ≦ T < T2임이 확인되었다면 B는 암호화된 데이터를 실행자 PE에게 송신한다. 검증된 암호화 데이터를 블록체인 B로부터 수신하고 나면 실행자 PE는 자신의 개인 키 PKE를 통해 각 당사자의 Iprivi와 Ci를 해독하고 스마트 계약을 실행한다.
- T2 이전에 어떠한 당사자라도 암호화된 데이터와 증명을 블록체인에 송신하는 것에 실패하거나 증명이 올바르지 않다면 해당 당사자는 계약을 중단하는 것으로 간주된다. 계약의 요건에 따라 해당 당사자의 예치금에 대해 적절한 제제가 가해질 것이다.
- 만약 실행자가 타임아웃 이전에 출력값과 증명을 블록체인에 송신하지 못한다면 실행자는 계약을 중단한 것으로 간주된다. 악의적인 실행자가 특정 당사자에게 유리하지 않은 실행 결과가 나타날 경우 계약을 의도적으로 중단할 수도 있기 때문에, 이를 방지하기 위해 오리고 팀은 실행자가 일정 금액의 예치금을 지불할 것을 요구하고 있다. 실행자가 결과 혹은 증명을 제출하지 못한다면 해당 실행자는 예치금을 잃게 된다. 실행자가 실행 이후에 각 당사자의 입력값 및 출력값을 공개하지 않도록 하기 위해 실행을 인텔 소프트웨어 가드 익스텐션(Intel SGX) 등의 신뢰할 수 있는 하드웨어에서 하는 것도 좋은 아이디어이다.
- 결제 단계
- 일단 실행자 PE가 실행을 끝마치고 나면 각 당사자 Pi(i∈[N])에 대한 출력값 O1, …, ON이 생성된다. PE는 출력값이 각 당사자들의 입력값과 스마트 계약에 따라 올바르게 계산되었음을 증명하기 위해 증명 ProofE를 생성하고 출력값 O1, …, ON을 각 당사자들의 공개키 KPi(i∈[N])를 통해 ENC(O1), …, ENC(ON)으로 암호화한다. 그리고 PE는 ProofE와 ENC(O1), …, ENC(ON)를 블록체인 B로 송신한다. B는 계약이 올바르게 실행되었는지를 확인하기 위해 ProofE를 검증하고 실행 결과에 따라 각 당사자에게 코인을 분배한다. 마지막으로 각 당사자는 결과값을 해독한다. 만약 당사자가 계약으로부터 코인을 얻었다면 해당 당사자는 비공개 트랜잭션을 통해 코인을 월렛에 넣을 수 있다.
영지식증명
영지식증명(Zero Knowledge Proof, ZKP)는 오리고가 스마트 계약을 올바르고 완전하게 실행하면서도 프라이버시를 보장할 수 있게 해주는 핵심 기술이다. 영지식증명은 잘 구축된 암호법적 방법이다. 영지식증명에서, 두 당사자가 있다고 가정할 때 한 당사자, 즉 증명자(prover)는 다른 한 당사자, 즉 검증자(verifier)에게 어떠한 정보도 공유하지 않고도 어떠한 명제가 왜 사실인지 증명할 수 있다. 영지식증명 프로토콜은 아래의 속성을 반드시 만족해야 한다.
- 완전성 : 증명자와 검증자가 정직하다고 가정할 때 영지식증명 프로토콜은 압도적인 확률로 성공한다.
- 건전성 : 비밀을 알지 못하는 그 누구도 무시할 수 없는 확률로 검증자를 확신시킬 수 없다.
- 영지식 : 증명 과정에서 그 어떠한 추가적인 정보도 유출되지 않는다.
영지식증명 프로토콜을 생성하는 매우 직관적인 방법으로는 대화식 영지식증명(Interactive Zero Knowledge Proof, IZKP)라고 불리는, 검증자와 증명자 간의 상호작용 및 의사소통이 허용되는 방식이 있다. 검증자는 증명자가 비밀 정보를 알고 있고 증명자가 비밀 정보를 알고 있다면 질문에 대답할 수 있다는 전제 하에 증명자에게 어떠한 질문이라도(심지어 무작위로도) 할 수 있으며, 물론 증명자의 이전 답변에 기반하여 질문을 생성하는 것도 허용된다.
어떠한 대화식 영지식증명도(만약 검증자가 공개된 코인 검증자일 경우, 예를 들어 검증자에 의한 무작위 선택이 공개적으로 이루어지는 등) 피아트-샤미르 휴리스틱을 사용하는 랜덤 오라클 모델 하에서 안전하고 영지식적인 비대화식 영지식증명으로 전환될 수 있다. 모든 무작위 질문은 해시값으로 대체된다. 더 자세히 말하자면, 비대화식 영지식증명(Non-Interactive Zero Knowledge Proof, NIZK)은 사용자의 입력값을 노출하지 않는 스마트 계약을 가능케 하기 위한 도구로서 학계에서 제안된 것이다.[3] 하지만 비대화식 영지식증명은 스마트 계약을 갖춘 블록체인을 통한 의사소통의 비용이 비싸고 스마트 계약 자체의 계산 능력이 매우 제한적이기 때문에 스마트 계약에서의 실제적 사용에 있어서 한계를 지니고 있다. 심지어 현재 널리 사용되는 영지식 스나크(zk-SNARKs)에서도 스마트 계약에 대한 중립적인 선택은 복잡한 신뢰설정이 필요하다. 신뢰설정의 핵심인 공통참조스트링(Common Reference String, CRS)은 일반적으로 길뿐더러 개별 스마트 계약에 특정되어 있고 잠재적인 트랩도어로 인해 스킴을 신뢰할 수 없도록 만든다.
모든 디지털 회로의 핵심인 연산회로(Arithmetic Circuit, AC)는 어떠한 수학적 표상을 형성하는 데에든 사용될 수 있다. 연산회로는 덧셈, 뺄셈, 곱셈, 나눗셈 등 작은 논리적 작업의 조합이다.
(a) 모든 계산 조건이 참, 거짓으로 나뉘는 불값으로 이루어진 입출력값을 취하는 연산회로로 표현될 수 있으며, 그리고 (b) 형식적으로 특정된 언어 내에서 튜링 완전한 스마트 계약은 연산적 조건의 복잡한 집합체 및 상호작용으로 볼 수도 있다는 사실을 고려할 때, 스마트 계약을 연산회로로 옮기는 것은 놀라운 일이 아닙니다. 임의의 연산회로에 대해 효율적인 영지식증명을 생성하기 위한 다양한 방법들이 제시되었다. 예를 들자면 증명자가 연산회로를 만족시키거나 연산회로의 출력값을 참으로 만드는 특정 입력값을 가지고 있음을 증명할 수 있게 하는 방법이 제시되었다. 따라서 계약에 대한 데이터나 정보의 공유 없이도 계약 실행의 정당성을 증명하는 것이 가능해졌다.
- 오리고의 영지식증명
- 오리고에서 영지식증명은 트랜잭션 정보인 송신자 및 수신자 주소, 트랜잭션 금액과 스마트 계약의 입출력값을 보호하기 위해 사용된다. 비공개 스마트 계약을 실행할 때, 다수의 단계에서 당사자 Pi(i∈[N])와 실행자 PE의 커밋먼트를 증명하고 검증하기 위해 영지식증명을 요구한다.
- 커밋 단계: 당사자 Pi(i∈[N])는 스마트 계약 SC에 자신이 충분한 코인 Ci(i∈[N])를 예치했음을 증명해야 한다.
- 계산 단계 : 당사자 Pi(i∈[N])는 스마트 계약 SC에 대한 비공개 입력값 Iprivi(i∈[N])이 실행자의 공개키 KE로 올바르게 암호화되었음을 증명해야 한다.
- 결제 단계 : 실행자 PE는 자신이 성공적으로 스마트 계약 SC를 실행시켜 정당한 결과값 Oi(i∈[N])를 냈음을 증명해야 한다.
영지식증명 시스템간 비교 증명 시스템 영지식 스나크 영지식 스타크 불렛프루프 증명 크기 짧음 중간에서 짧음 짧음 증명자 시간 FFT FFT(높은 메모리 소비) 선형적 검증자 시간 효율적 효율적 선형적 신뢰설정 필요 불필요 불필요 실용성 예 아니오 예
- 오리고의 모든 증명 과정은 오프체인으로 진행되고 완료까지 수 초에서 수 분까지 걸릴 수 있다. 각각의 비대화식 영지식증명 시스템은 온체인 검증 동안서로 다른 성능을 보인다. 검증 성능의 차이는 신뢰설정 과정과 증명/검증 크기 간의 제로섬이다.
- 신뢰설정
- 현재 기술의 대부분은 각 애플리케이션에 대한 신뢰설정 단계가 필요하고, 신뢰할 수 있는 제 3자 혹은 다중참여자연산(Multi-Party Computation, MPC)이 사용되어야 한다. 하지만 오리고는 프라이버시 보호 스마트 계약을 지원하도록 설계되었으므로 고유의 공통참조스트링을 생성하기 위해 각각의 스마트 계약이 신뢰설정을 필요로 한다. 어떠한 신뢰설정 과정을 거치든지, 신뢰설정은 프라이버시 보호 스마트 계약을 무겁고 유연성이 떨어지게 만든다. 따라서, 프라이버시 보호 스마트 계약 측면에 있어서 신뢰설정을 생략하는 것은 오리고를 실용적으로 만드는데 필수불가결한 부분이다. 비공개 트랜잭션에 대해서는 신뢰설정 과정이 한 번만 이루어지므로 이 경우에는 감수할 수 있으며 이미 업계에서는 유효한 설정식에 대한 쇼케이스를 진행하였음에 유의하여야 한다.
- 오리고 팀은 신뢰설정이 없는 유효한 영지식증명 프로토콜을 제공하기 위해 몇 가지 새로운 기술들을 조사하였고 아래 표에에 나타난 것처럼, 현재 실용성이 있는 신뢰증명이 불필요한 증명 시스템은 보다 떨어지는 검증자 효율성을 가지고 있었다. 높은 검증자 비용은 검증이 온체인으로 이루어질 경우 합의 속도를 더욱 떨어트린다. 신뢰설정이 없는 새로운 증명 시스템으로 인해 발생하는 이러한 결점을 최소화하기 위해 오프체인 검증이 필요하다.
안전 다중참여자연산과 오리고의 비교 기능 안전 다중참여자연산
(Secure Multi-Party Computation)오리고 성능 나쁨 준수 출력값의 프라이버시 아니오 예 동기화 필요 불필요
- 안전 다중참여자연산과의 비교
- 오리고 팀은 영지식증명 외에도 동형암호(homomorphic encryption)과 안전 다중참여자연산 등 기타 프라이버시 보호 기술에 대한 연구도 진행하였다. 안전 다중참여자연산은 당사자들이 입력값은 비공개로 유지하면서도 자신들의 입력값에 대한 함수는 공동으로 계산하도록 해준다. 스마트 계약에 이러한 기술을 적용했을 때, 안전 다중참여자연산은 당사자들이 입력값은 비공개로 유지하면서도 스마트 계약 실행의 출력값을 공동으로 연산할 수 있도록 해준다.
- 하지만 다중참여자연산은 당사자 간의 다회에 걸친 상호작용을 필요로 하지만 비대화식 영지식증명은 증명자와 검증자 간의 상호작용을 요구하지 않는다. 또한 모든 참여 당사자들이 실행 결과를 비공개로 유지하게 할 실행 접근법이 없다. 가장 중요한 것은, 다중참여자연산의 계산 복잡성은 영지식증명의 그것보다 월등히 높으며, 다중참여자연산은 제한적인 범위의 실제 애플리케이션에만 적용 가능하다. 따라서, 오리고 팀은 영지식증명이 프라이버시 보호 애플리케이션 플랫폼의 구축에 더 어울린다고 생각한다.
영지식증명이 보다 효율적인 검증 시간을 나타내며 검증이 블록체인 상에서 이루어질 수도 있으므로, 비공개 트랜잭션의 효율성을 보장하기 위해 오리고 팀은 비공개 트랜잭션 검증에 신뢰설정이 필요한 영지식증명을 적용하는 것을 선호한다. 또한 각 프라이버시 보호 스마트 계약이 개별적인 신뢰설정을 실행하는 것은 실용적이지 못하므로 오리고 팀은 계약 실행을 검증하는데 신뢰설정을 필요로 하지 않는 영지식증명 기술을 적용하였다.
인프라
이더리움 호환성
오리고의 체인 인프라는 작업증명(PoW) 합의 알고리즘, 이더리움 가상머신(EVM), 솔리디티 등 이더리움의 기능에 호환된다. 최초에 오리고 팀은 오리고 플랫폼을 이더리움의 비잔티움 포크 기분으로 개발하였다. 오리고 팀이 첫 번째 단계로 이더리움 호환 인프라를 선택한 이유는 이더리움 커뮤니티가 활동 중인 개발자들이 가장 많은 커뮤니티이므로 오리고 팀이 프라이버시 기술의 최적화에 더욱 많은 자원을 투자할 수 있었기 때문이다. 프라이버시 보호 기능은 추가적인 연산 자원을 요구하기 때문에 오리고 팀의 플랫폼의 블록 가스 한도는 이더리움의 한도보다 높게 설계되었다. 하지만 이더리움 호환 인프라는 몇 가지 확장성 문제를 가지고 있으며, 오리고 팀은 오리고 플랫폼의 향후 버전에서 이러한 문제를 해결하고자 한다.
비밀 트랜잭션
비밀 트랜잭션의 목표는 트랜잭션 내의 데이터가 비공개로 남는 것이다. 지캐시와 비슷하게 비밀 트랜잭션 역시 비공개 주소를 사용한다. 두 비공개 주소 간의 트랜잭션은 송신자, 수신자, 트랜잭션 금액 등의 정보를 제3자에게 전혀 유출하지 않는다. 사용자는 공개 주소에서 비공개 주소로 토큰을 옮길 수도, 그 반대로 할 수 있다. 오리고 팀은 영지식증명 시스템 영지식 스나크를 사용해 트랜잭션 데이터를 비공개로 유지한다. 하지만 여전히 비밀 트랜잭션의 정당성, 예를 들어 송신자가 비공개 주소의 토큰을 사용하기 위한 비밀을 알고 있는지, 투입 토큰의 총량이 배출 토큰의 총량과 같은지 등은 공공에 의해 검증될 수 있다.
애플리케이션
오리고의 프라이버시 보호 프로토콜은 프라이버시가 필요한 탈중앙화 애플리케이션의 광범위한 도입을 가능케 했다. 오리고 팀은 그러한 애플리케이션을 대중에 대한 프라이버시 애플리케이션과 참여 당사자에 대한 프라이버시 애플리케이션 두 분류로 나눈다. 대중에 대한 프라이버시에서 참가자들은 입력값과 출력값을 대중에게 공개하지 않기를 원하지만 참가자들 간에 정보를 나누는 것은 허용한다. 아래는 이러한 애플리케이션의 분야별 예시이다.
- 금융 : 개인 거래, 신용등급, 온라인 여신, 보험, 옵션 및 선물
- 기업 : 급여/보너스 계약, 스톡옵션, 공급사슬 계약, 기업 컴플라이언스
- 보건 : 맞춤형 의료, 진단, 의료 기록
- 기타 : 사물인터넷
급여대상자명단 등 이러한 분류에 속한 애플리케이션에 대해 당해 고용주와 고용인은 대중으로부터만 급여를 비공개하고 싶어한다. 이러한 경우 고용인 혹은 고용주는 계약을 로컬로 처리하고 영지식증명을 블록체인으로 제출한다. 따라서 오리고 프로토콜은 이러한 애플리케이션의 효율성을 개선하는데 최적화되어 있다. 참여 당사자에 대한 프라이버시 분류에서, 각 참가자들은 입력값과 출력값을 아무에게도 공개하지 않기를 원한다. 따라서 프라이버시 요구사항을 충족시키기 위해 오리고 프로토콜 전체가 적용된다. 이러한 애플리케이션의 분야별 예시는 모금, 경매, 투표 등이 있다.
오리고 프라이버시 보호 애플리케이션 플랫폼은 영지식증명과 같은 암호법의 기초요소들을 사용해 자동적으로 암호법 프로토콜을 생성하는 컴파일러를 제공함으로써 개발자들이 프라이버시 보호 애플리케이션을 암호법에 대한 지식 없이도 구축할 수 있게 해준다.
보안
공정성 보장
스마트 계약 실행의 공정성을 보장하기 위해 입력과 실행이 두 단계로 나뉘어 있다. 모든 계약의 참여자들은 실행 이전에 자신의 암호화된 입력값을 준비하고 커밋 해야 한다. 이러한 모든 커밋은 암호화되어 있기 때문에 참여자들이 다른 당사자들에게 자신의 커밋을 공개하지 않기를 원한다면 모든 입력값은 서로에게 감춰진다. 커밋 단계가 끝나면 당사자 중 누구도 입력값을 변경할 수 없다. 커밋 단계가 끝나면 당사자들은 자신들의 입력값을 실행자에게 공개해 실행자가 스마트 계약을 처리할 수 있도록 한다. 커밋 이후에는 모든 입력값이 변경 불가능하여 당사자가 더 이상 입력값을 변경할 수 없기 때문에 이 단계에서는 임의의 당사자조차도 타인의 입력값을 알 수 있다. 이러한 설계를 통해 당사자 중 누구도 실행의 결과에 영향을 끼칠 수 없다.
실행 완전성
- 당사자
- 프로토콜의 설계가 모든 참가자가 실행 결과를 변경하지 못하게 함으로써 참가자 간의 공정성을 보장하기 때문에 임의의 당사자가 타인의 입력값을 알고 결과를 예측할 수 있을 때 해당 당사자가 할 수 있는 유일한 개입은 손실을 방지하기 위해 계약을 중지하는 것이다. 이러한 사태를 방지하기 위해 예치금 메커니즘이 적용된다. 이탈을 막을 필요가 있는 계약에 대해 오리고는 계약 설계자에게 모든 당사자가 참가 이전에 거치하게 하는 예치금 프레임워크를 제공한다. 따라서, 만약 어떠한 당사자든 계약을 중단하게 된다면 해당 당사자의 예치금은 다른 참가자들이 나누어 가지게 된다. 이러한 방식을 통해 당사자들은 계약을 중단할 동기를 잃게 된다.
- 실행자
- 당사자의 경우와는 다르게 실행자의 경우에는 예치금만으로는 중단을 막기에 충분치 않다. 기본적으로는 실행자는 계약을 실행하기 위해 예치금을 거치한다. 실행자가 계약을 실행하지 않으면 예치금은 모든 당사자들에게 분배된다. 높은 효용성 요건을 가진 계약을 위해 백업 실행자 메커니즘이 설계되었다. 다른 실행자/그룹이 같은 계약을 실행하고 검증자가 된다. 일반적으로 이는 메인 실행자의 결과에 대해 검증만 실행하지만 실행자가 계약을 중단하게 된다면 해당 검증자가 백업 실행자가 된다.
암호경제학 설계
설계 원칙
토렌트 플랫폼과 같은 과거의 탈중앙화 시스템은 사용자들이 다른 사용자가 파일을 다운로드할 수 있도록 네트워크에 파일의 시드를 유지하는 등의 규칙에 따르게 할 경제적 유인의 무족으로 인해 실패했다. 비트코인은 적절한 암호경제학 메커니즘을 구축함으로써 사용자들이 규칙을 따르게 할 뿐만 아니라 비잔틴 장군의 문제를 극복하여 완벽한 합의 시스템을 만들어내 이러한 탈중앙화 시스템을 한층 더 발전시켰다.
오리고 플랫폼 내에서 규칙은 주로 프라이버시에 집중함으로써 오리고의 각 역할이 정보 누출이나 프라이버시 보호 계약 실행의 중단 등의 스마트 계약 프라이버시에 관련된 의도하거나 의도치 않은 행위를 실행하지 않도록 한다. 작업증명(PoW)이나 지분증명(PoS) 등의 합의 알고리즘에서 처벌 메커니즘의 부족으로 인해 이중지불이나 지분없음 등의 문제가 발생하는 등, 오리고의 규칙에 기반한 합의에 이르도록 하기 위해 인센티브 메커니즘만으로는 부족하다. 따라서 오리고는 비잔틴 장애 허용(BFT) 합의 합의 프로토콜과 지분 기반 블록체인 합의를 결합한 하이브리드 합의 알고리즘을 적용하다.
인센티브 및 역할
먼저 오리고의 합의 프로토콜은 두 가지 인센티브 조합으로 구성되어 있다.
- 인센티브 조합 #1 - 기본조합
- 오리고 토큰 : 이더리움의 EHT와 마찬가지로 가스 수수료의 기능을 한다. 적극적으로 참여하고 블록체인에 기여하는 역할은 자신의 노력에 대한 암호화페를 배당 받음으로써 보상받는다.
- 특권 : 역할들은 오리고 토큰을 오리고 생태계 내에서 다양한 목적으로 사용할 수 있다.
- 인센티브 조합 #2 - 고급 조합
- 에치금 : 실행자 역할에 입찰하는 등 특정 작업에는 오리고 토큰이 예치금으로 요구된다.
- 지불 : 참가자들은 트랜잭션 수수료 등 특정 활동에 참여하기 위해 일정 금액의 오리고 토큰을 지불한다.
- 보상 : 오리고 내의 우수한 참여자들은 그 행동에 토큰으로 보상을 받는다.
- 처벌 : 악성 참가자들은 규칙에 어긋나는 행위를 한 대가로 예치금의 일부 혹은 전체를 잃거나 특정 권리를 박탈당한다.
오리고는 향후 논의를 위해 인센티브에 대한 단어들에 대해 이러한 정의를 내린다.
인센티브에 대한 단어 정 의 토큰 보상 n번째 당사자의 R1, …, Rn 지불 n번째 당사자의 P1, …, Pn 예치금 n번째 당사자의 D1, …, Dn 처벌 n번째 당사자의 Pun1, …, Punn
추가적으로, 오리고는 플랫폼 내의 네 가지 역할에 대해 아래와 같이 정의한다.
역 할 정 의 검증자 Vi ∈ V, 플랫폼이 증명 검증 및 블록 검증 등 다양한 작업을 수행할 수 있도록 연산력을 제공하는 역할이다.
Vi는 블록을 채굴하거나 특정 작업을 연산한 후에 RVi를 받는다.사용자 Ui ∈U, 플랫폼 상의 계약 및 디앱을 사용하는 역할이다.
Ui는 스마트 계약과 디앱을 통해 서비스 및 상품에 대해 예치금 DUi를 거치하고 지불 PUi를 지급한다.
Ui는 개발자가 해당 메커니즘을 구현해두었을 경우 계약 및 디앱을 통해 보상 RUi를 얻을 수도 있다.계약/디앱 개발자 Devi ∈Dev, 프라이버시 보호 스마트 계약과 디앱을 만드는 역할이다.
Devi는 연산 자원을 사용하고 지불 PDevi를 지급하거나 스마트 계약 및 디앱을 만들고 보상 RDevi을 받는다.실행자 Ei ∈E, 영지식증명에서 프라이버시 관련 작업을 수행하는 역할이다.
Ei는 규칙위반행위를 막기 위한 목적으로 오리고에 의해 예치금 Dei를 거치하도록 강제되며,
만약 이를 이행하지 않을 경우 처벌 PunEi를 받게 된다. Ei는 또한 프라이버시 관련 작업을 완료한 후 보상 REi를 받을 수도 있다.
아래는 각 역할에 대해 인센티브 조합을 생성하기 위한 필수적인 프로토콜이다.
1. 오리고 플랫폼 상의 어떠한 활동 i에 대하여, 항상 DUi, PUi, PDevi, DEi, RMi, RUi, RDevi, PunEi, REi ≧ 0일 경우, DUi + PUi + PDevi + DEi ≧ RMi + RUi +RDevi + PunEi +REi가 항상 적용된다. 2. 오리고가 플랫폼에서 DUi, PUi, PDevi, DEi, RVi, RUi, RDevi, PunEi, REi의 정확한 금액을 수요와 공급의 법칙이 결정하도록 둘 경우, ∑DUi + PUi + PDevi + DEi ≧ ∑RVi + RUi +RDevi + PunEi +REi가 항상 유지되어 플랫폼의 지속가능성이 유지된다.
향후 개선책
이더리움과 유사한 인프라로는 플랫폼을 극단적으로 효율적으로 만드는 데 있어 몇몇 확장성 한계를 겪고 있다. 따라서, 오리고 팀의 향후 플랫폼 개선책은 주로 보다 나은 확장성을 확보하는 데 주안점을 두고 있다.
- 최적화된 합의 : 트랜잭션 처리량을 개선하기 위한 하이브리드 합의 프로토콜
- 샤딩 : 오리고를 선형적으로 확장 가능하게 하기 위한 최첨단 샤딩 프로토콜
- 향상된 가상머신 : 스마트 계약의 실행 속도를 개선하기 위한 새로운 가상 머신 표준
합의 프로토콜
합의 프로토콜은 네트워크 상의 노드들이 어떻게 값에 대한 합의를 도달하는지를 특정한다. 합의 프로토콜은 노드의 불이행, 네트워크 파티션, 오류/손상 메시지, 메시지 지연 등에 대해 탄력적이어야 한다. 이기적인 노드 혹은 악의를 품은 노드는 합의를 망치거나 잘못된 상태로 이끌 수도 있다. 합의에는 1) 정상적인 노드들은 결과적으로 출력값을 내놓아야 한다 및 2) 합의에 참여하는 모든 노드는 동일하고 유효한 출력값을 내놓는다는 두 가지 핵심 속성이 있다. 합의는 새로운 문제가 아니다. 학계는 수십 년 간 이에 대해 광범위하게 연구했으며 악의적인 노드를 견뎌낼 수 있는 수많은 실용성을 지닌 솔루션을 개발했다. 하지만 이러한 솔루션은 폐쇄적이고 허가 받은, 대기시간이 짧은 네트워크에 초점을 맞춘 것이다.
전통적 합의와 블록체인 중심 합의의 비교 전통적 합의 블록체인 합의 예시 프랙티컬 비잔틴 장애 허용, 팩소스 작업증명, 지분증명, 권위증명 트랜잭션 처리량 높음 낮음에서 중간 네트워크 크기 작음 큼 개방성 허가 무허가
비트코인의 근본적인 혁신은 개방된 무허가형 탈중앙화 네트워크에서 합의를 가능케 했다는 것이다. 이는 모든 참가자들은 수학적 퍼즐을 풀려 하고 가장 먼저 퍼즐을 푼 참가자는 다음 블록을 추가할 권리를 얻는다는 작업증명이라는 리더 선출 절차에 의해 가능했다. 작업증명은 무허가 네트워크의 보안에 대해 매우 강력한 보장을 제공해 주었지만 근본적 재설계가 없이는 낮은 성능에 시달리게 되며 엄청난 양의 에너지를 소모한다. 블록체인 산업의 급격한 성장으로 인해 위 문제를 해결하기 위한 수많은 제안들이 제시되었다. 일부 연구는 에너지 소모의 감소에 중점을 두었고(지분증명), 일부는 원래의 작업증명보다 나은 성능을 발휘하도록 하는데 중점을 두었다. 허가 네트워크의 전통적인 합의 프로토콜과 비교했을 때 이러한 프로토콜의 성능은 현실의 애플리케이션에 블록체인을 도입하는 데에는 별로 이상적이지 않다. 위 표는 전통적 합의와 블록체인 중심의 합의를 비교한 것이다.
전통적 합의와 블록체인 중심 합의 모두가 현재의 블록체인 환경에 대규모로 적용하기에는 모두 그다지 적절하지 않다는 점을 고려했을 때, 오리고 팀은 전통적 합의 프로토콜의 성능을 가지면서도 허가 설정을 요구하지 않는 하이브리드 합의 프로토콜이 장기적으로 오리고 플랫폼에 적용될 합의 엔진으로서 고려되어야 한다고 생각했다. 프랙티컬 비잔틴 장애 허용의 노드 인식 요구를 해결하기 위해서는 아이덴티티 체인이 필요하다. 아이덴티티 체인은 현재 널리 사용되는 작업증명이나 지분증명 등의 블록체인 중심의 합의나, 시빌공격에 탄력적인 다른 모든 합의 방식이라도 사용한다. 아이덴티티 체인은 아이덴티티 블록으로 구성된 체인으로 각 블록은 트랜잭션 체인 검증자가 될 자격을 갖춘 노드들의 목록을 담고 있다.
프랙티컬 비잔틴 장애 허용은 트랜잭션 체인의 합의 프로토콜로 사용되어야 한다. 프랙티컬 비잔틴 장애 허용은 비교적 작은 네트워크에서 최고의 성능을 내기 때문에 주기적인 검증자 선출이 적용되어 고정되었지만 설정으로 변경 가능한 수의 검증자들이 아이덴티티 체인에 기록된 노드 중에서 선출되어 프랙티컬 비잔틴 장애 허용 합의를 수행한다. BLS 서명 기반의 무작위 비콘이 분산된 무작위성의 안전한 소스로서 적용되어야 한다. 무작위성은 후보자들로부터 검증자를 선출하는 데에 필요하며 네트워크를 샤딩하는 데에도 사용된다.
샤딩
가장 최신의 블록체인 설계에서 각 노드는 모든 온체인 데이터를 담고 모든 트랜잭션을 처리한다. 이러한 메커니즘이 보안 전반을 강화하기는 하지만 성능을 크게 희생한다. 이더리움이나 비트코인과 같은 블록체인은 초당 수십 건 미만의 트랜잭션만을 처리할 수 있다. 이러한 문제를 해결하기 위해 오리고 팀은 연샨 샤딩과 스테이트 샤딩이라는 두 가지 종류의 샤딩 메커니즘이 필요하다는 결론을 내렸다.
연산 샤딩
연산 샤딩(computational sharding)은 노드들이 여러 그룹으로 나뉘고 각 그룹이 트랜잭션의 하위 집합을 처리하는 방식이다. 따라서 네트워크는 그룹의 수가 늘어날수록 선형적으로 확장성을 띄게 된다. 하지만 안전한 난수 발생기는 양수인 보안에 필수적이다. 안전한 난수 발생기 없이는 샤딩 작업은 축소된다. 단일 샤드를 공격하는 것이 전체 네트워크를 공격하는 것보다 훨씬 쉽기 때문에 축소된 샤딩 작업은 보안성을 크게 낮춘다. 사전에 건출된 검증자를 통해 난수를 만들기 위해서는 BLS 서명이 필요하다. 샤딩 작업은 아이덴티티 블록에 기록되며 클라이언트는 트랜잭션을 그에 맞는 샤드에 보내기 위해 이러한 정보를 사용한다. 트랜잭션의 송신자 주소를 샤딩의 기준으로 삼는 것은 같은 계정의 모든 트랜잭션이 같은 샤드에서 진행되어 샤드 간 커뮤니케이션의 필요성을 낮출 수 있도록 해줄 것이다.
스테이트 샤딩
확장성을 보다 개선하기 위해서는 스테이트 샤딩(state sharding) 역시 도입되어야 한다. 스테이트 샤딩이란 노드들이 부분적인 블록 데이터를 저장하기 위해 샤딩되는 것을 의미한다. 연산 샤딩과 비교했을 때, 스테이트 샤딩은 더 많은 어려움을 안고 있다. 1) 안전성을 위해서는 더욱 광범위한 작업이 필요하고 2) 단일 트랜잭션이 다수 샤드에 걸친 정보를 포함하기에 샤드 간 커뮤니케이션이 자주 필요하지만, 이러한 샤드 간 커뮤니케이션은 전체적인 처리량을 저하시킨다.
가상머신
가상머신은 스마트 계약의 런타임 환경이며 블록체인이 스마트 계약을 지원하기 위해 필요한 가장 중요하 요소이다. 미래의 오리고 가상머신은 새롭게 대두중인 휴대 가능하고 크기와 로드타임이 효율적인 새로운 형식인 웸어셈블리(WASM)에 기반할 것이다. 웸어셈블리는 웹쓰리 커뮤니티그룹(WEB3 Community Group)에 의해 공개 표준으로서 개발되고 있다. 웹어셈블리는 효율적일 뿐만 아니라 성능도 뛰어나지만 컴파일 백엔드로 다수의 프로그래밍 언어를 지워하는 LLVM의 지원을 받고 있다. 장기적으로, 미래의 오리고 가상머신은 파이썬이나 자바와 같은 더 많은 개발자 친화적 언어를 지원할 것이다.
프라이버시 보호 스마트 계약의 실행의 증명 및 검증에 있어 영지식증명에 의존하는 오리고의 프라이버시 보호 스마트 계약은 영지식증명 시스템과 통합된 컴파일러와 가상머신이 필요하다. 프라이버시 보호 스마트 계약은 영지식증명 시스템에서 증명 가능한 프로그램으로서 여산회로 내에 컴파일 되어야 한다. 가상머신은 증명을 생성하고 검증하기 위해 회로를 실행시킬 수 있어야 한다. 오리고는 공개 스마트 계약과 프라이버시 스마트 계약을 모두 지원하기 때문에 오리고의 가상머신 인스턴스 역시 공개 스마트 계약과 프라이버시 보호 스마트 계약 모두를 실행할 수 있도록 설계되었다. 따라서 단순히 스마트 계약을 컴파일하고 실행하는 일반적인 파이프라인은 오리고 팀의 요구사항에 맞지 않는다.
현재 오리고의 가상머신은 연산회로를 통한 영지식증명의 증명 및 검증을 지원하기 위해 확장연산자와 호환되는 이더리움 가상머신이다. 또한 오리고의 프라이버시 보호 스마트 계약 언어는 보다 나은 성능을 달성하기 위해 특정 작업으로 엄격하게 제한된 솔리디티이다. 오리고의 공개 스마트 계약은 완전한 솔리디티임에 유의해야 하다. 이더리움에서 오리고로 스마트 계약을 이전하는데 최소한에 노력만 들이고자, 오리고 팀은 솔리디티를 오리고 DSL로 사용하고자 한다.
제휴
![](/images/thumb/b/b2/%EC%BD%94%EB%B0%94_%EA%B8%80%EC%9E%90.png/300px-%EC%BD%94%EB%B0%94_%EA%B8%80%EC%9E%90.png)
![](/images/thumb/b/b8/%EC%9D%B4%EC%98%A4%EC%8A%A4%ED%8A%B8_%EA%B8%80%EC%9E%90.png/300px-%EC%9D%B4%EC%98%A4%EC%8A%A4%ED%8A%B8_%EA%B8%80%EC%9E%90.png)
- 코바(COVA)
- 2019년 6월 20일 오리고는 블록체인 분산형 기술 개발의 촉진을 위해 코바와 전략적 파트너십을 체결했다.[4] 코바는 개인정보를 침해하지 않으면서 데이터를 수익 창출 및 활용할 목적으로 제작되었으며, 분산 네트워크를 제공한다. 모든 당사자가 데이터 자체에 직접 액세스하지 않아 안전하며, 신뢰할 수 있는 고립된 오프체인 환경에서 계산작업이 진행된다. 해당 제휴를 통해 코바와 오리고는 기술, 응용, 홍보 분야의 심도있는 협력은 물론 정보 공유의 협력 메커니즘을 확립하고 분산 기술 및 개인정보보호 기술 개발을 공동으로 추진할 예정이다.[5]
- 이오스트(IOST)
- 2019년 7월 19일 오리고는 싱가포르 블록체인 전문 업체인 이오스트와 전략적 파트너십을 체결했다. 이오스트는 인터넷 서비스 기반 분산화된 샤딩 기술로 확장성을 높인 초고속 분산 블록체인 네트워크이다. 블록체인 구조상 단일 노드에서 처리량이 증가하게 되면 병목현상이 발생해 속도와 확장성에 문제가 생기며, 이런 문제점들을 해결하기 위해 출시됐다. 익명성을 앞세운 오리고는 확장성을 내세운 이오스트와의 파트너십 체결을 통해 블록체인 환경에서 개인정보보호 수준을 높이고, 비밀보호 기술력을 한 단계 더 끌어올릴 예정이다.[6]
로드맵
- 2018년 12월 : 비밀 트랜잭션을 갖춘 테스트넷 공개
- 2019년 09월 : 메인넷 공개
- 2019년 12월 : 자체 프라이버시 보호 스마트 계약 가능
- 2020년 06월 : 개발자들이 자체적으로 프라이버시 보호, 보안성 확보 및 증명 가능한 스마트 계약 생성 가능
각주
- ↑ 정현, 〈(블록체인 영지식 증명 시리즈) 제1편: 영지식 증명이 무엇인가요?〉, 《미디엄》, 2019-11-18
- ↑ KMK, 〈(코인 스터디) 샤딩(Sharding)이란? 이더리움의 확장성 문제, 질리카의 기술〉, 《네이버 블로그》, 2018-07-17
- ↑ 송아람, 〈샤딩 프로토콜 (Part 1 : Epoch Randomness)〉, 《미디엄》, 2019-02-19
- ↑ 이병학 기자, 〈오리고 네트워크, 후오비 패스트 트랙 후보 등록에 이어 코바와 파트너십 발표〉, 《빅데이터뉴스》, 2019-07-18
- ↑ 이병학 기자, 〈오리고 네트워크, 코바와 전략적 파트너십 체결〉, 《빅데이터뉴스》, 2019-07-01
- ↑ 한경아 기자, 〈오리오 네트워크, 이오스트와 '장기적 파트너십' 체결〉, 《비욘드포스트》, 2019-07-19
참고자료
- 오리고 공식 홈페이지 - https://origo.network/
- 오리고 백서 - https://origo.network/whitepaper
같이 보기
이 문서는 로고 수정이 필요합니다.