알파체인
알파체인(ARPA Chain)은 개인정보보호를 위한 컴퓨팅 네트워크에서 사용되는 암호화폐이다. ERC-20 기반의 유틸리티 토큰으로, 자유롭고 안전한 개인 데이터의 흐름을 보장하면서 데이터 소유권과 유틸리티를 분리하기 위해 개발되었다. 아르파체인이라고도 한다. 티커는 ARPA이며, 대표 겸 공동창시자는 쉬마오통(徐茂桐, Felix Xu, 펠릭스 쉬)이다.
개요[편집]
알파체인은 블록체인 네트워크를 위해 2단계 계층구조의 안전한 연산을 위한 솔루션을 제안한다. 현재의 블록체인 기술은 블록체인의 유효성을 검증하기 위해 모든 연산이 모든 노드에 의해 반복적으로 수행되는 방법으로 블록체인에 대한 합의에 도달하고 있다. 이러한 방법은 네트워크가 성장함에 따라 곧 블록체인이 더는 확장될 수 없는 상황을 초래하게 된다.[1] 2단계 계층구조의 연산(다른말로 탈-체인 연산)은 연산 작업을 공개적인 블록체인 네트워크와 분리하고 분쟁이 발생하는 경우에만 결과를 공개적으로 검증하도록 함으로써 이러한 문제를 해결한다. 연산의 정확성은 정보 이론적인 메시지 인증코드(MAC)를 사용함으로써 대다수 참여자가 악성인 조건(malicious majority condition) 하에서도 검증할 수 있으며 비밀공유 방법을 사용함으로써 비밀은 유지된다. 2단계 계층의 솔루션인 최신의 다중참여자 프로토콜(multiparty computation protocol)을 사용함으로써, 비밀을 유지하는 알파의 연산방법은 고난도의 연산업무가 제한적인 일부 소수의 노드 들에서 수행되도록 하면서 동시에 암호적인 방법으로 블록체인에서 데이터의 안전을 보증한다. 이 커다란 발전은 분산화된 네트워크의 미래에 대해 여러 가지의 영향을 미친다. 첫째, 블록체인에서의 연산의 유형들을 확대하기 위하여 안전한 계산방법이 사용될 수 있다. 둘째, 그것은 데이터의 소유와 사용이 안전하게 분리될 수 있게 하려면 데이터가 사용되는 중에 원시 데이터를 공개하지 않으면서 신뢰관계가 필요 없는 네트워크에서 데이터가 공유되고 사용될 수 있도록 한다. 마지막으로, 연산과 검증 과정이 분리되며 이것은, 일종의 연산 샤딩(computational sharding)으로 간주할 수 있는데, 오프라인으로 참여하는 노드 수가 증가함에 따라 거래의 처리역량을 효과적으로 증가시켜 준다.
알파체인의 목표는 모든 유형의 블록체인 시스템에서 2단계 계층의 솔루션으로서 알파체인의 안전한 연산 네트워크가 적용될 수 있도록 하는 것이다. 블록체인 네트워크와 안전한 연산 네트워크를 연계시키기 위하여 대리 스마트 계약(Proxy Smart Contracts)이 사용될 것이다. 또한, 이들은 블록체인 외부에서 처리된 연산작업이 정확하게 완료되었다는 것을 검증하기 위하여 사용될 것이다. 이를 위해 알파체인은 1) 안전한 연산, 2) 2단계 계층구조의 연산, 3) 검증 가능한 연산 그리고 4) 비밀을 유지하는 데이터의 교환과 같은 디앱(dApp)의 요건들을 지원하는 총체적인 다중참여자연산(MPC) 네트워크를 개발을 목표로 한다.[2]
주요 인물[편집]
- 쉬마오통(徐茂桐, Felix Xu) : 블록체인 정보보안 플랫폼 알파체인(ARPA Chain)의 공동창시자이자 대표이사이다. 알파체인 프로젝트를 개시하기 전에는 상하이 포선RZ 벤처관리회사(上海复星锐正资本, Fosun RZ Venture Management Co., Ltd.)에서 벤처투자가로 있었다. 미국 브랜다이스대학교(Brandeis University) 경제학 학사와 뉴욕대학교 스턴 경영대학에서 금융과 정보시스템 학사 학위를 갖고 있다.
특징[편집]
다중참여자연산 프로토콜[편집]
다중참여자연산은 그 어떤 참여자도 자신의 연산 산출물로부터 알 수 있는 것 외에 어떠한 것도 다른 참여자들에게 알려 줄 수 없도록 하는 방법으로 다중의 참여자들이 그들 자신의 비밀 입력에 대해 어떤 함수를 실행하도록 할 수 있는 한 가지 방법이다. 재래적인 암호화 작업과 달리, 적이 발송자와 수신자의 시스템 외부에 있다면 적도 참여자의 일부가 될 수 있다. 이 모델은 중앙집중화 된 패러다임으로부터 분산화된 패러다임으로 암호작업자를 자유화하여 준다. 야오의 백만장자문제(Yao`s millionaire` problem) 또는 안전한 경매시스템과 같은 많은 미결의 문제들을 해결할 수 있다. 어떤 면에서, 다중참여자연산은 특정의 암호 알고리즘이라기보다는 하나의 새로운 패러다임이라고 할 수 있다.
다중참여자연산은 다양한 암호화 툴을 포함하는, 구성설정의 변화가 가능한 하나의 체계로 간주할 수 있으며 이것은 참여자들의 주어진 시나리오 하에서의 보안수준과 효율성에 대한 제한에 따라서 특정의 프로토콜을 구출할 수 있는 권리를 제공한다. 다중참여자 프로토콜의 장점은 그들이 풍부한 집단의 도구들과 하위 프로토콜들을 사용한다는 것이며 이들 중 일부는 다중참여자연산을 위해 특별히 개발되었고 다른 것들은 비분산화 환경에서의 암호화 작업을 위해 이전에 개발된 것들이다. 이러한 도구에는 영지식증명과 확률적 암호화, 정보 이론적인 메시지인증코드, 여러 가지의 분산화 확정체계 그리고 임의 데이터의 불가지론적 전송방법이 포함된다. 가장 중요한 것은 비밀의 분산과 분산된 비밀을 사용하는 연산이 안전한 다중참여자연산을 구현하기 위한 근본적인 요소가 된다는 것이다. 특히 '수동적인 적'(passive adversary)의 경우에서 샤미르(Shamir)의 다항식 비밀분산은 다중참여자 연산의 초석이 되며 '능동적인 적'(Byzantine adversary)의 경우에서는 검증 가능한 비밀분산이 유사한 역할을 수행한다.
보안모델의 관점에서 여러 가지의 서로 다른 가정들을 근거로 구축된 다양한 다중참여자연산 프로토콜들이 존재한다. 예를 들어, 쉐어마인드(Sharemind)와 VIFF는[3] 적이 주어진 프로토콜을 따르기는 하지만 다른 참여자들의 비밀 입력자료를 노출하려 시도하는 반편 정직성의 시나리오를 가정한다. 그러나 적대적인 상황에서 참여자들은 연산을 공모하고 악의적으로 실행하는 것을 포함하여 데이터를 얻기 위해 그들이 필요로 하는 모든 것들을 조작할 것이다. 지난 10년간의 이론 및 실무적인 성취에 힘입어 다중참여자연산은 이제 성능 문제가 사용을 위한 주요한 장애로 인식될 수 없는 수준으로까지 진화했다. 35년 전에 이론적인 틀이 구축된 이후로 성능을 개선하기 위해 지난 10년간 알고리즘 및 기술적 설계에서 상당한 개선이 이룩되었다. 다중참여자연산의 실행성능은 지난 10년간에 걸쳐서 4-5 자릿수의 개선이 이루어졌다.
알파체인의 목표는 처음으로 높은 가용성을 가지는 MPC 네트워크를 구축하는 것이며 여기에서 안전한 연산을 위한 모든 기업적 요구는 네트워크에서 또는 이더리움이나 이오스와 같은 기존의 블록체인에서 스마트계약을 사용함으로써 충족될 수 있을 것이다. 이것은 다음과 같은 여러 가지 이점을 제공할 것이다. 1) MPC 연산이 연결만 하면 바로 사용될 수 있을 정도로 단순하여질 것이며 그것을 올바르게 설정하기 위해 사전지식이 필요하지 않게 될 것이다. 2) 전담의 노드들이 MPC를 수행하기 때문에 해당 작업을 수행하기 위한 비용이 낮아지게 될 것이다. 그리고 3) MPC를 사용하여 더 안전한 연산이 수행될 수 있도록 MPC 클라우드가 기업 세계에서 뿐이 아니라 일반 대중들의 인식 수준을 높여줄 것이라 기대하고 있다.[2]
- 프로토콜 계층 : 알파체인 네트워크는 참여자들이 자율적으로 참여할 수 있으며 자신들의 연산자원을 제공하고 경제적인 보상을 얻을 수 있는, 권한이 부여되지는 않은 네트워크이다. 노드들은 또한 자유롭게 탈퇴할 수 있으나 그들이 온라인으로 연결관계를 유지하도록 하기 위한 경제적 인센티브가 설계에 포함되어 있다. 다중참여자연산을 위한 연산 계층의 구성을 위해, 노드들은 공동으로 연산 노드들을 선정하고 노드들의 행태를 보고하기 위해 알파체인 프로토콜을 준수한다. 다중참여자연산 노드들을 위한 크레딧 시스템을 구축하기 위해 프로토콜 계층은 또한 참여 노드들의 형태를 보고하고 연결된 블록체인에 기록할 책임을 진다.[2]
- 연산 계층 : 이 계층은 주로 참여 노드들이 공동으로 보안이 적용되는 다중참여자연산을 수행할 수 있도록 하기 위한 것이다. 노드들은 알파체인 다중참여자연산 프로토콜을 준수한다. 다중참여자연산 프로토콜 그 자체는 연산 과정에서 보안성과 기밀유지를 보증하는 것으로 입증되었으므로 프로토콜을 따르지 않는다고 하더라도 어떠한 노드도 다른 노드의 비밀정보를 알아낼 수 없으면 (능동적 보안) 함께 공모한 노드들은 나머지 노드의 정보를 알아낼 수 없다(n-1 보안). 또한, 네트워크에서 정직하지 않은 참여자들을 제거하기 위해, 다중참여자연산 프로토콜은 악성의 노드들이 시스템으로부터 얻을 수 있는 것보다 더 큰 비용을 그들에게 부담시키기 위해 경제적 유인/벌칙을 포함하도록 설계되었다.[2]
알파체인의 연산 네트워크에서 수행되는 프로토콜은 옆에 제시되는 그림으로 구성된다. 이 절차는 사전처리와 연산 두 단계의 프로토콜로 간주할 수 있다. 연산 단계는 비밀 분산, 함수의 실행 그리고 결과의 표시를 포함하는 주요 절차이다. 반면에, 사전처리 단계는 연산을 위해 필요한 원재료를 제공하는 기초 부분을 구성한다. 사전처리는 함수와 데이터 모두로부터 독립적이기 때문에 이 두 단계를 서로 분리한다.[2]
연산 단계[편집]
연산 단계의 수행 중에 주요한 작업은 전체의 과정을 통해 비밀로 유지되는 비공개의 입력자료에 대해 임의의 회로를 안전하게 실행하고 관련 당사자들이 규정된 프로토콜을 준수하는 경우에만 결괏값을 표시하는 것이다. 이 단계는 입력과 함수의 실행 그리고 출력의 3단계 프로토콜로서 완결될 수 있다. 비공개의 입력자료가 제공되고 비밀자료로서 분산된 뒤에, 모든 관련 당사자들은 산술연산 회로에 따라, 협력하여, 분산된 값에 대한 덧셈과 곱셈을 수행한다. 최종적으로, 검증을 수행하고 난 뒤에 결과가 공개된다.
- 비밀의 분산
- 연산 단계가 시작될 때, 입력자료는 모든 관련 당사자들 간에 분산되어야 한다. 이 과정을 비밀의 분산이라고 한다. 비밀의 분산은 비밀을 참여자들의 집단 내에서 분배하는 방법이며 그들 각자에게는 비밀의 개민 몫이 할당된다. 비밀은 충분한 수의 개인 몫들이 함께 결합하는 경우에만 표시될 수 있다. 개별적인 몫들 그 자체는 판독할 수 없는 암호문이다. 비밀의 분산 체계는 일반적으로 ‘분산’ 및 ‘복원’의 두 가지 주요 기능으로 구성된다. ‘분산’은 일방의 당사자가 (t, n)의 임계치 체계에서 t-1 명까지의 적에 대해서는 비밀이 안전하게 유지될 수 있도록 하는 방법으로 하나의 비밀 x를 n명의 당사자 사이에 분산시키는 것을 가능하게 한다. 반면에 ‘복원’은 t명이나 그 이상의 모든 집단이 함께 비밀을 공개한 것을 가능하게 한다. 알파체인 다중참여자연산(MPC)에서 알파체인은 임계치가 n으로 설정되고 따라서 알파체인의 시스템이 공모한 n-1명의 악의의 당사자들까지는 안전하게 유지될 수 있게 하려고 보편적으로 구성 가능한 비밀에 대해 효과적으로 적용될 수 있도록 비밀 분산 체계를 설계한다.
- ‘입력’ 단계에서 당사자들은 임의 값의 개인 몫을 사용해야 하고 각 당사자 P¡는 어떤 분산 값 r¡를 가지며 이 비밀 값 r¡는 균일한 임의의 값이며 어떠한 당사자에 의해서도 공개되지 않는다. 먼저, 모든 당사자는 r에 대한 그들의 개인 몫 r¡를 당사자 P(제공자)에게 전송한다. 이들 개인 몫들을 합산함으로써 이제 P(제공자)는 r의 값을 알 수 있게 되기 때문에 이것을 ‘부분적 공개’라고 한다. 그러고 나서 당사자 P(제공자)는 그의 입력 값 x-r을 배포한다. 당사자 P₁은 x에 대한 자신의 몫을 x₁ = x - r + r₁으로 설정하고 당사자 P¡에 대해 그 x에 대한 몫은 x¡ = r¡로 설정된다. 실제로, 하나의 다른 연산을 수행하는 당사자가 항상 P₁이 되는 것은 아니다. 이제 x를 <x>로 표시하고 개인 몫들은 x¡로 표시한다.
- 회로의 수행
- 알파체인의 다중참여자연산(MPC) 체계에서 실행될 함수는 산술 연산을 위한 대표 회로로 표시되어야 한다. 상위 수준의 함수를 산술 회로로 구현하기 위한 일반적인 방법은 알파체인의 컴파일러에 포함되어 있다. 이 컴파일 작업은 연산 단계의 이전에 수행된다. 산술 회로는 기본적으로 덧셈과 곱셈 연산으로 구성되어 있다. 함수의 실행 단계에서, 비밀의 분산 체계는 가법적이며 동시에 1차원(선형)적이기 때문에 덧셈은 통신 비용을 발생시키지 않고 자체 노드의 연산을 통해 수행될 수 있다. 특히, <a+b> 또는 <αㆍa>를 계산하기 위해 각 당사자는 단순하게 ai + bi 또는 αㆍai를 수행한다. 그리고 나서 알파체인은 비밀분산의 유형으로부터 <a + b>와 <αㆍa>의 값을 구한다.
- 그러나 비밀 값에 대한 곱셈은 참여자들 간의 상호작용을 요구한다. 온라인 곱셈을 쉽게 수행하기 위하여 비버의 트리플(Beaver’s triple)이 사용된다. 당사자들이 <x>와 <y>의 값이 주어진 상태에서 <xㆍy>의 연산을 수행하도록 계획되었다고 하면, c = a X b인 경우 하나의 가용한 트리플 a, b, c가 사전 처리된 원재료로부터 구해진다. 그리고 나서 xi – ai와 yi – bi를 배포함으로써 각 당사자는 x – a와 y – b를 계산할 수 있다. 이것은 이제 이들 중간 값들이 공개적으로 알려 지게 되었다는 것을 의미한다. 결과적으로 모든 당사자들이 자체적으로 zi = (x-a)(y-b) + x¡(y-b) + y¡(x-a) + c¡를 계산할 수 있으며 따라서 그들은 <z>의 비밀 분산 값을 가진다. 결론은 충분한 수의 트리플들이 존재하는 경우, 다중참여자연산(MPC) 엔진은 비밀 분산 데이터에 대해 모든 깊이의 곱셈 연산을 수행할 수 있으므로 알파체인은 모든 산술 회로의 연산 작업을 수행할 수 있다. x – a와 같은 일부의 중간값들이 후속 절차들을 위해 공개된다는 이유로 트리플이 재사용되면 그것이 비밀에 관한 정보를 노출하므로 트리플은 재사용될 수 없다.
- 중요한 것은 트리플들은 입력 데이터만이 아니라 수행될 회로에 대해서도 독립적이라는 것이다. 이는 회로를 실행하기 전에는 우리가 언제든지 이들 트리플들을 생성시킬 수 있다는 것을 의미한다. 생성되었을 때 트리플들의 값은 어떠한 당사자에 의해서도 알려지지 않는다. 각 당사자는 그들이 이러한 관계가 성립된다는 것에 관해 통보받은 ‘어떤 값’에 대한 각자의 몫만을 알 수 있다. 더욱이, 덧셈과 스칼라 곱셈 그리고 필드 곱셈은 통신과 연산의 면에서 관련 비용이 많이 들지 않기 때문에 연산 단계는 고도로 효율적이며 동시 정보 이론적으로 안전하다. 비밀 분산 값에 대한 덧셈과 곱셈의 방법을 사용하여 알파체인은 산술 연산회로에서 모든 계산가능한 함수들을 구현할 수 있다. 옆에 보이는 표에 부호가 표시된 안전한 실수의 곱셈을 예로 들면, 여기에는 지수 덧셈, 부호 비트의 연산 그리고 가수의 (mantissa) 곱셈이 포함된다. 특히, 두 실수 <v₁, p₁, z₁, s₁>과 <v₂, p₂, z₂, s₂>의 곱셈은 먼저 2ℓ비트의 곱 v를 얻기 위해 그들의 가수(mantissa) v₁과 v₂를 곱해 줌으로써 수행된다. 그러고 나서 그 곱은 v의 가장 높은 자리의 비트 값이 1인지 아닌 지의 여부에 따라 ℓ 또는 ℓ-1 자릿수만큼 비트를 끊어 내야 한다.
- 정보 이론적 메시지 인증코드(MAC)
- 임계 값 t와 함께 곱셈 트리플 그리고 선형의 비밀 분산체계를 사용할 때, 알파체인은 t번까지의 부정변조를 용인할 수 있는 수동적으로 안전한 다중참여자연산(MPC) 프로토콜을 얻게 된다. 이 n-1번 까지의 부정변조를 포함하는, 대다수가 부정직한 조건에서 사용될 가장 자연스러운 비밀 분산체계는 단순한 가법(additive) 비밀 분산이며 여기에서 x ∈ F는 X = sum { n\\ 1 } x¡를 충족시키는 n개의 임의의 분산 값들 x¡를 배분함으로써 n명의 당사자 사이에 분산된다. 분명히, 모든 n1의 분산 값들은 비밀에 관해 어떠한 정보도 드러내지 않는다. 그러나 능동적인 보안을 달성하기 위한 관점에서 이것은 정확한 공개를 보증하기 위해 충분하지 않다. 메시지 인증코드(MAC)는 어떤 메시지가 MAC 키를 알고 있는 어떤 특정의 당사자에 의해 생성되었는 지의 여부를 확인하고 메시지가 변조되었는지의 여부를 탐지하기 위해 사용될 수 있는 값이다. 현대적인 비밀 분산에 근거한 프로토콜에서 능동적인 보안을 달성하기 위한 주요한 도구는 정보 이론적인 메시지 인증코드(MAC)이다.
- 보안을 위한 요건은 무시할 수 있는 확률을 제외하고 m이 x에 대한 유효한 MAC인 경우에만 검증 알고리즘이 성공적으로 수행되어야 한다는 것이다. 메시지 인증코드(MAC) 체계의 정보 이론적인 특성은 제약이 없는 적에 대해서조차도 보안이 지켜진다는 것을 의미한다. 알파체인이 연산 네트워크에 적용한 MAC 체계는 순수하게 정보이론으로부터 도출되는 것이다. 달리 말해서, 적이 제한 없는 계산능력을 갖추고 있다고 해도 그것은 해독될 수 없다. 간단히, 적은 암호를 해독하기 위한 충분한 정보를 가지고 있지 않다. 메시지 인증코드(MAC)는 다중참여자연산(MPC)이 검증 가능한 것이 되게 하려고 중요한 역할을 담당한다. MAC 점검체계는 그룹 내의 악의의 당사자가 연산 과정에 검증 값을 혼합함으로써 보안점검을 회피할 수 없도록 한다.
- 결과의 공개
- 알파체인의 메시지 인증코드(MAC) 방법을 사용한다면 사전처리 모델에서 다중참여자연산(MPC) 프로토콜의 온라인 단계를 설명하기는 쉽다. 설명된 두 개의 인증된 비밀 분산 방법들이 모두 선형적이기 때문에 당사자들은 분산 값들에 대해 각 노드 자체별로 간단하게 연산을 수행함으로써 일차원적인 연산을 수행할 수 있다. 알파체인은 또한 분산된 값 [x]에 공개된 상수인 c를 더해줄 수 있으며 이때 P₁은 자신의 몫에 c를 더해 주고, 각 당사자 P¡는 그들의 MAC를 Cㆍα¡에 의해 조정한다. 두 개의 비밀 분산 값들을 곱하기 위해 당사자들은 사전처리 단계로부터 생성된 확률적으로 인증된 곱셈 트리플을 필요로 한다. 알파체인은 또한 입력자료를 분산하기 위해, 입력자료를 제공하는 당사자만이 그 값을 알 수 있도록 하는 확률적으로 인증된 마스크 값 형태의 일부 추가적인 사전처리 데이터가 필요하다. 연산의 결과를 산출할 때, 당사자들은 앞부분에서 설명된 MAC 확인 절차를 사용함으로써 MAC를 확인해야 하며 알파체인은 이것은 ⅡMACCheck로 표시한다.[2]
사전처리 프로세스[편집]
사전처리 모델은 비버(Beaver)의 ‘회로 임의추출(circuit randomization)’ 기법을 사용하여 시작되었으며 이것은 모든 산술연산 회로들이 입력자료를 각 곱셈 게이트에 곱셈 트리플을 사용하여 확률적으로 분산시킴으로써 연산을 안전하게 수행할 수 있도록 해주고 여기에서 곱셈 트리플은 a와 b가 균등하게 확률적이고 (한정된 필드 내에서) c = aㆍb인 경우 비밀 분산 값들 a, b, c의 트리플이다. 이러한 조건에서, 두 개의 비밀 분산 값들 <x>와 <y>는 공개적으로 d = x – a 그리고 e = y – b를 재구성하고 연산을 수행함으로써 곱해질 수 있다.
a와 b가 균등하게 확률적이기 때문에 d와 e를 노출해도 입력 값 x와 y에 대한 어떠한 정보도 누출 되지 않는다. 이 방법의 중요한 이점은, 선형의 비밀 분산에 근거하면서 순차적 게이트 방법으로 회로들에 적용되는 모든 다중참여자연산(MPC) 프로토콜이 이제 쉽게 사전처리 모델로 변환될 수 있다는 것이며 이때 사전처리 단계는 단순하게 많은 수의 곱셈 트리플 들을 만들어 내는 역할을 하고 온라인 단계에서는 이들 트리플들을 사용함으로써 회로의 연산이 안전하게 수행된다. 비밀 분산 체계가 선형적이기 때문에 덧셈과 일차원적인 연산들은 각 노드의 내부에서 수행될 수 있다는 점에 유의해야 한다. 회로의 연산을 수행한 뒤에 각 당사자는 산출 값에 대한 자신의 비밀 분산 값을 배포하고 결과가 재구성되도록 한다. 사전처리 단계는 연산이 수행되는 함수에 대한 두 가지 입력 값 모두와 함수 그 자체에 대해 완전히 독 립적이며(그 곱셈 규모의 상한과는 별도로) 일반적으로 트리플을 생성하는 것이 프로토콜의 애로점이 된다.
적대적인 보안 모델을 고려하여 알파체인은 다음의 문제점들을 해결하기 위해 두 가지 방법을 도입했다. 첫째, 적들이 정직한 참여자들의 입력 값을 오염시키기 위해 노이즈를 도입하는 경우, 어떤 값들이 일정 범위 내에 포함된다는 것을 증명하기 위해 영지식(Zero-knowledge)이 적용된다. 둘째, 분산화된 암호해독은 어떤 부정 참여자가 트리플들에 노이즈를 추가할 수 있도록 해주며 이때 알파체인은 트리플 검증을 중복 확인하기 위해 희생(sacrifice)을 사용한다.
- 함수의 컴파일링
- 다중참여자연산(MPC) 컴파일러는 재래적인 함수를 MPC 가상기계에서 처리될 수 있도록 산술 또는 부울(Boolean) 회로로 변환한다. 고급 언어를 어셈블리 코드로 변환시키는 일반적인 컴파일러와 같이 MPC 컴파일러는 고급 함수를 MPC 호환 명령어로 변환시킨다. 산술과 부울 함수 간의 차이는 기능에 대한 것이 아니고 형식적인 속성에 관한 것이다. 어느 하나를 선택해야 하는 이유는 수행될 함수의 유형에 의존한다. 수학적인 근거에 따라 암호화 도구들은 주로 필드 요소들의 계산에 위조하며 이들은 일련의 비트들이 아니고 하나의 입력 값으로 간주 된다. 그러고 나서 그들은 산술적인 방법으로 표시한다. 그러나 많은 애플리케이션이 정수의 비교와 같은 비산술적인 연산을 포함하며 이들은 많은 연산의 환경에서 기본적인 절차이다. 이럴 때, 이 비산술적인 연산을 산술적인 회로로 수행하는 것은 매우 비효율적일 것이며 부울 회로가 더 자연스러운 선택이 될 것이다.
- 두 가지 유형의 회로는 임의의 변환 과정을 적용함으로써 상호 간에 변환될 수 있다. 계산이 가능한 부울 회로의 다항식 규모의 함수 부류는 다항식 규모의 산술회로의 부류와 대응이 된다. 실제로 알파체인은 산술 회로를 임의의 필드들에 대한 부울 회로의 일반화로 묘사할 수 있다. 해당 회로의 효율을 개선하기 위해 부울 회로로 표시된 연산에 적합한 암호처리 방법을 산술 회로로 가장 잘 표시될 수 있는 연산의 환경으로 확장하는 것에 대해서 또는 두 가지의 혼합으로 가장 잘 표시될 수 있는 연산을 구현하기 위해 두 가지 회로에 적용 가능한 방법들 사이에 중개역할을 수행하는 것에 관해서 많은 연구논문이 발표되었다.[2]
연산 프로세스[편집]
안전한 연산 프로세스는 일반적으로 블록체인에 포함된 대리 스마트 계약(Proxy Smart Contracts)을 구동시킴으로써 애플리케이션 계층으로부터 시작된다.[4] 블록체인 외부에서의 연산을 지원하기 위해, 알파체인의 네트워크는 지정된 블록체인 네트워크에서 제출되는 요청을 모니터하고, 알파체인 네트워크에서 다중참여자연산 작업을 수행하고 증명 및 결과를 대리 스마트계약으로 변환한다. 이 프로세스는 아래의 5개의 단계로 구성된다.
- 1단계 : 애플리케이션 계층에서, 사용자의 다중참여자연산 요청을 접수하기 위해 알파체인은 대리 스마트계약을 적용한다. 어려운 연산작업 또는 비밀보호 작업은 상세한 내용을 비공개로 하면서 알파체인 네트워크에서 수행될 것이다. 다중참여자연산의 요청에 대해서는 데이터 제공자에 (정보를 제공하는 것에 대해 수수료를 부과하지만, 해당 자료를 공개하기를 원하지 않는) 대한 것과 어떤 공개되지 않은 비즈니스 논리에 참여하기를 희망하는 여러 참여자에 대한 것으로 구성되는 수수료가 부과된다. 블록체인 외부에서의 연산을 지원하기 위해 블록체인에 스마트 계약이 적용된다. 알파체인의 노드들은 스마트 계약에서 전송되는 신호로부터 다중참여자연산 요청을 접수할 수 있다. 다중참여자연산의 수행이 종료되면 스마트 계약으로 메시지를 전송함으로써 결과의 증명을 반환할 수 있다. 해당 특정의 사용사례에 따라서 연산의 결과를 또한 스마트계약으로 반환하는 것도 선택적으로 가능하다. 스마트 계약이 담보금과 그리고 데이터 제공자 및 수행될 함수와 같은 기타의 필요한 정보를 받은 뒤에, 알파체인 네트워크의 노드들은 그러한 정보에 주의를 기울이면서 알파체인 프로토콜에 따라서 공동으로 연산 노드들을 선정할 것이다.
- 2단계 : 연산에 참여하는 것에 관심이 있는 모든 연산 노드들은 담보금으로 요구되는 토큰의 양을 고려하여 입찰과정을 시작한다. 그다음에 각 노드의 수행 이력과 조건, 성공률, 지체시간 등에 근거하여 한 집단의 연산 노드들이 확률적으로 선택된다. 이 선택과정에서 사용되는 랜덤 함수(random function)는 분산화 랜덤 함수를 의미한다. 한 가지 언급되어야 할 것은 데이터 제공자와 데이터 소비자가 모두 해당 집단에 포함됨으로써 그들이 합리적이라고 가정할 때 연산 노드들이 공모하는 것을 불가능하게 한다는 것이다. 이러한 설계는 최소한 한 명의 참여자는 정직하다는 것을 보증하기 위한 것이다. 알파체인의 임계치 프로토콜은 n-1명까지의 악의의 당사자들에 대해서는 보안이 유지 될 수 있으므로 알파체인은 이러한 조건이 암호 적으로 보안을 보증 한다고 주장할 수 있다. 필요한 노드들이 결정되고 나면 입찰에 참여하는 모든 노드는 자체적으로 그 결과를 알 수 있다. 뇌물을 공여하는 공격자가 존재한다 하더라도 그는 누구에게 뇌물을 제공하거나 공격할 것인지를 알 수 없으므로 이것은 매우 중요한 특성이다. 선택된 노드들은 그들이 선택된 사실을 공표할 필요는 없으나 그 대신에 그들은 프로세스의 완료 시까지 암호증명을 보유한다.
- 3단계 : 연산 계층에서, 사전에 선택된 집단의 노드들은 알파체인 다중참여자연산 작업의 수행을 위해 협력한다. 그들은 먼저 데이터를 사용하여 비밀을 분산한다. 그러고 나서, 실행 가능한 이진(binary) 코드 형태의 컴파일된 함수가 모든 당사자를 위해 준비 된다. 각 당사자에게 있어서 작업은 간단히 컴파일된 함수 내의 명령어들을 차례로 따름으로써 함수를 실행하는 것이다. 연산의 진행 중에 당사자들은 동료간 통신채널을 (peer-to-peer communication) 통하여 활성적으로 값을 교환하며 이 통신채널도 또한 암호화된 TLS보안 채널이다. 연산이 종료되면 결과와 연산증명이 산출되고 프로토콜 계층을 통하여 대리 스마트계약으로 전송된다. 연산증명은 연산으로 생성된 정보 이론적인 MAC 코드이며 이것은 위조될 수 없다. 연산 결과와 MAC 코드 모두 전체적인 다중참여자연산 과정을 통해 산출되기 때문에 다중참여자연산 프로토콜을 따르지 않는 경우 MAC 코드는 점검절차를 통과할 수 없으며 결과적으로 실효성이 없는 결괏값은 거부되게 될 것이다. 위조를 방지하기 위해 결괏값과 MAC 값은 모든 노드 들의 비밀키를 사용함으로써 전자적으로 서명될 것이다.
- 4단계 : MAC 코드는 정보 이론적으로 안전하게 연산의 정확성에 관한 정보를 전달하므로 연산은 검증할 수 있다. 검증의 복잡성의 정도는 O(1)이며 이것은 검증이 계산을 위해 일정한 시간을 소비한다는 것을 의미한다. 공개적인 검증을 가능하게 하려고 MAC 코드의 점검은 스마트계약에서 수행된다. MAC 코드 및 결괏값은 대리 스마트계약으로 전달되며 그에 의해 MAC 코드의 진실성과 정확성이 검증된다. MAC 코드의 점검이 통과되면, 데이터 사용 수수료가 데이터 제공자에게 전달되고 연산 수수료는 모든 참여 노드들 사이에서 분배된다.
- 5단계 : 안전한 연산 프로세스는 알파체인 노드들에 의해 수행된다. 각 노드는 네트워크 API를 통해서 외부 세계와 통신한다. 노드의 내부에서 여러 가지의 구성요소들은 프로토콜 계층과 연산 계층의 두 계층으로 분리된다. 프로토콜 계층에 노드의 선택과 등록을 위한 구성요소가 포함되어 있다. 모든 노드의 정보가 각 노드의 자체 데이터베이스에 보관된다. 또한, 노드들의 평판을 추적하기 위한 크레딧 시스템이 존재한다. 연산 계층은 주로 다중참여자연산 실행장치(runtime)로 구성되어 있다. 다중참여자연산 실행 장치는 소프트웨어에 의해 실행되며 알파체인 명령어를 수행할 수 있는 프로세서를 포함하고 있다. 연산 함수는 알파체인 명령어에 의한 실행코드로 컴파일되어 각 참여 노드로 로드(load)된다. 프로세서는 또한 다중참여자연산의 실행성능을 개선하기 위해 다중경로 동시 분산처리(multi-threading) 기능을 지원한다. 각 노드 자체의 임시적인 자료들은 다중참여자연산 실행장치의 가상 메모리에 저장된다. 또한, 동료 노드 주소, 보안 매개변수, 인증서 그리고 연산의 진행과 관련된 상황자료 등을 포함하여 다중참여자연산에 관한 모든 메타정보를 보관하는 메타데이터 저장소가 존재한다.[2]
대리 스마트 계약[편집]
대리 스마트 계약(proxy smart contract)은 신뢰 되는 제3자의 개입 없이 신뢰관계가 존재하지 않는 당사자들 사이의 계약을 쉽게 체결할 수 있도록 하고 해당 계약을 실행 및 증명하기 위해 블록체인에서 실행되는 실행 코드이다. 스마트계약의 장점은 마치 신뢰 되는 제3자가 있는 것과 같이 그것이 신뢰성 있게 가치를 이전하고 의사결정을 수행하고 연산을 수행할 수 있다는 것이다. 그것은 또한 블록체인의 모든 당사자가 스마트계약의 코드를 검증하고 또한 스마트계약과 관련된 어떠한 결과를 검증하기 위해 해당 코드를 실행할 수 있으므로 전체적인 실행과정을 투명하게 한다. 스마트계약으로 처리되거나 그에 의해 생성된 데이터는 또한 접수하는 시점에 추적할 수 있다. 여러 가지 장점이 있지만, 스마트계약은 자체의 한계점도 가지고 있다. 스마트계약의 정확성은 네트워크 전체의 합의에 근거하며 이것은 자연스럽게 검증을 위해서 모든 검증 노드들이 그것을 재실행할 것을 요구한다. 이 중복성은 스마트계약의 실행과 관련된 비용이 매우 비싸다는 것을 의미하며 다시 말해 스마트계약의 유용성이 제한된다고 할 수 있다. 또 다른 문제점은 비밀의 보호이며 그것은 스마트계약 그 자체와 그 자료가 블록체인 네트워크의 모든 노드들에 투명하게 공개되기 때문이다. 따라서 블록체인들을 위한 블록체인 외부의 연산을 지원하기 위한 알파체인의 방법은 고난도의 연산이 알파체인 네트워크로 분리될 수 있도록 하고 블록체인에서 연산의 검증 가능성을 유지하기 위해, 연산의 착수, 작업의 배포 그리고 검증을 포함하는 메타 데이터 연산을 수행할 수 있도록 스마트계약을 사용하는 것이다. 비밀의 분산과 다중참여자연산을 포함한 모든 복잡하고 고비용이 수반되는 연산은 알파체인 네트워크에 의해 수행된다.[2]
노드 선정[편집]
데이터 제공자와 소비자는, 필요하면 다른 노드들에 위임할 수도 있으나, 다중참여자연산에 참여하는 것이 요구된다. 참여 노드들의 수는 다중참여자연산 요청자에 의해 명시된다. 연산에 참여할 다른 노드들은 분산화 랜덤 함수를 (DRF) 사용하여 확률적으로 선택된다. 그러한 함수의 유력한 후보 중의 하나가 RANDAO이며 이것은 또한 이더리움 지분증명(PoS) 시스템에서도 제안 된다. [5] 유사랜덤함수(pseudo-random function)는 다음의 특성들을 갖춰야 한다.
- 결정론적 : 모든 정보가 노출되는 경우, 결괏값이 유일하게 결정될 수 있다.
- 증명가능성 : 정보가 공개된 뒤에 결괏값은 모든 사람에 의해 검증될 수 있다.
- 통제불능성 : 결괏값은 누구에 의해서도 또는 공모한 어떤 부분적인 집단에 의해서도 영향을 받을 수 없다.
- 예측불능성 : 블록 헤더, 시간 및 참여자 주소와 같은 과도적인 정보를 사용하는 것은 예측 불가능한 임의의 결과를 산출한다.
- 감내능력 : 결괏값은 사전에 계산될 수도 없고 무한정의 연산능력을 사용하여 위조할 수도 없다.
- 비밀의 보호 : 임의의 확률적 결과는 공개되기는 하지만 당첨된 사람만이 그가 추첨에서 선택되었다는 것을 알 수 있다. 따라서 선택된 사람이 전자적으로 서명된 검증 값을 배포하기 전까지 공격자는 공격의 대상을 알지 못한다.
임의 값의 생성을 위한 발생장치를 위한 선택 대안에는 RANDAO, BLS에 근거한 다중서명 그리고 비밀의 분산에 근거한 유사랜덤(pseudorandom)이 포함된다. 이 모든 것들이 위에서 언급된 요구 특성들을 충족시킨다. 알파체인의 프로토콜은 다음과 같이 설계된다. 블록 시점 t에, 검증자가 되기를 희망하는 노드들은 해당 자격을 얻고 해시 증명 값을 제출하기 위해 티켓을 구매한다. x가 대기시간이라고 할 때, 시점 t + x에, 각 당사자는 이전에 확정된 해시값에 대응하는 P¡를 생성한다. 인증확인이 통과되면, 알파체인은 r = RMODn을 계산하고 확률적으로 선택된 노드들의 집단을 알 수 있다. 이 노드 중의 하나는 증명자가 되고 다른 것들은 검증자가 된다. 증명자는 모든 최근의 유효한 거래들을 포함하는 블록을 생성하고 검증자는 새로운 블록의 유효성을 점검함으로써 증명자를 시험한다. 증명자가 유효한 블록을 생성하지 못했다면 담보금을 상실한다. 그렇지 않다면 증몀자에게는 티켓의 가격과 함께 소액의 수수료가 보상으로 지급된다. 분산화 랜덤함수(DRF)에 의해 결정되는 임의의 확률에 더하여, 참여 노드들은 또한 해당 노드의 수행 이력, 조건, 성공률, 지연시간 등에 근거하여 선택된다.[2]
제2단계 계층 연산[편집]
현재, 모든 사람이 각자의 개별적 가상기계(VM)에서 스마트계약을 실행함으로써 같은 결과를 얻게 될 때 블록체인에 대한 합의가 도달된다. 분산화된 환경에서 최종적인 권위자는 존재하지 않는다. 다른 사람들과 합의를 이루기 위해서 모든 사람이 모든 거래를 검증해야 한다. 가장 두드러지는 문제는 각 블록에 대해 소비되는 가스(gas)의 양이다. 모든 사람이 같은 계산을 반복해야 하는 이유는 블록체인이 신뢰관계에 근거하지 않는 네트워크이며 다른 사람들을 신뢰하기 위해서는 모든 사람이 같은 내용을 수행하고 같은 결과에 도달해야 하기 때문이다. 다시 말해서, 신뢰관계에 근거하지 않는 네트워크에서, 코드를 수행함으로써 전체적인 과정을 실제로 반복하지 않고는 결과를 검증할 방법은 없다.
계산 집약적인 연산은 이더리움에서 고비용을 수반하며 신뢰성은 복잡한 기능을 표현하는 데 적합하지 않다. 복잡한 함수를 실행하기 위한 한 가지 방법은 간단하게 블록체인의 외부에서 그것을 실행하는 것이다. 연산을 블록체인 외부로 분리하기 위해, 우리는 연산의 위임 과정에서 검증이 가능한 체계가 필요하다. 예를 들어, 어떤 사람이 자신이 어떤 장소에 다녀 왔다는 것을 증명하고 싶다면, 최선의 증거는 기념품과 같이 해당 장소에 독특한 어떠한 물건이 될 것이다. 알파체인은 블록체인 외부의 연산을 하나의 위임과정으로 간주할 수 있으며 해당 수임자는 그가 실제로 작업을 완료했다는 것을 증명해야 한다. 이러한 개념과 유사하게 블록체인 외부에서의 연산도 다음의 사항들을 충족시키는 검증체계가 필요하다.
- 연산이 충실하게 수행되었다는 것을 증명할 수 있어야 하며,
- 수행된 작업의 양이 과대 표시될 수 없으며, 더 중요한 것은
- 관련 내용의 비밀보호가 보장되고 참여자들에게 어떠한 것도 노출되지 않아야 한다.
알파체인은 이러한 요구 특성들을 실현하기 위해 정보 이론적인 메시지 인증코드를 사용한다.[6]
연산 검증[편집]
연산의 검증은 검증 가능한 연산의 기초가 된다. 스마트계약 실행의 현재 상태는 블록체인의 모든 노드에 반복된다. 그러나 다중참여자연산을 사용하면 연산은 수학에 따라 보증되며 다른 집단의 노드들에 안전하게 위임될 수 있다. 다시 말해서, 프로세스가 올바른 방법으로 수행되었다는 증거를 제공할 수 있다면 이 프로세스는 제3자에 의해 신뢰 될 수 있다. 이 문제는 다음과 같은 세 가지 개념적 부분들로 더 세분될 수 있다.
- 연산은 규정된 함수와 정확한 입력자료를 사용하여 수행된다.
- 증거는 위조될 수 없다.
- 증거는 다른 노드 들에 의해 검증될 수 있다.
알파체인의 다중참여자연산 프로토콜에서 알파체인은 메시지 인증코드를 사용함으로써 n - 1개까지의 악의의 노드들에 대해서 보안을 유지할 수 있다. 메시지 인증코드는 어떠한 메시지가 해당 메시지 인증코드 키를 알고 있는 어떤 당사자에 의해 작성되었다는 것을 확인하고 해당 메시지가 변조되었는지를 탐지하기 위해 사용될 수 있는 하나의 값이다. 안전한 연산을 위한 요청이 대리 스마트 계약으로 전송되면 알파체인 네트워크가 그러한 요청을 접수하고 입찰에 참여한 노드 중에서 참여자를 선택한다. 그리고서 연산 네트워크는 해당 작업을 위해 여러 개의 노드를 선택하고 데이터의 제공자와 소비자가 (또는 그들의 위임을 받은 노드들) 또한 해당 그룹에 포함된다. 다른 어떠한 당사자가, 부정확한 결과를 전송하는 것과 같이, 프로토콜의 규칙을 위반한다면 증거를 전달하는 자료는 검증과정을 통과하지 못할 것이며 결과는 거부될 것이다. 따라서 첫 번째 부분은 알파체인의 다중참여자연산 프로토콜에 의해 암호 적으로 보증 된다. 연산 그룹의 각 참여자가 그들의 작업을 종료한 뒤에, 그들은 개인 비밀키를 사용함으로써 그들 자신의 메시지 인증코드를 전자적으로 서명한다. 이것은 메시지 인증코드가 제3자에 의해 위조될 수 없도록 한다. 따라서 증거는 위조될 수 없으며 진실한 것으로 신뢰 될 수 있다. 이것은 두 번째 부분의 요구되는 특성이 충족되도록 한다.[7]
프로토콜 계층에서, 실제 연산에 참여하지 않은 노드들은 자신과 무관한 해당 연산 증거를 신뢰하여서는 아니 된다는 것을 쉽게 주장할 수도 있다. 연산 노드 들에는 서로 상충적인 이해관계가 있는 데이터의 제공자와 소비자가 포함되어 있으므로 합리성의 가정하에서 모든 노드가 공모하는 것은 불가능하다. 확률적으로 선택된 노드들은 또한 그러할 가능성을 줄여 준다. 부적절한 MPC 사례에 대해 해당 MAC 검증을 통과할 수 있으려면 모든 n개의 노드가 공모해야 하므로, 어떤 악의의 당사자가 속임수를 쓸 가능성은 그 가능성이 극히 낮다. 합리적인 조건에서, 데이터의 제공자와 소비자가 상반되는 이해관계가 있으므로 그것은 불가능하다. 따라서 프로토콜에 근거하여, 알파체인은 메시지 인증코드가 검증을 통과하지 못한다면 그것은 일부의 노드들이 정확하지 않게 연산을 수행했기 때문에 연산이 잘못된 것을 의미한다는 것을 알 수 있다. 반대로, 메시지 인증코드가 검증을 통과했다면, 알파체인은 연산이 올바르게 수행되었고 그 결과를 신뢰할 수 있다는 것을 알 수 있다. 요약하면, 알파체인은 이제 보안 연산이 연산 부분과 검증 부분으로 세분될 수 있다고 결론 내릴 수 있다. 더욱이, 알파체인은 개인 비밀 키를 사용하여 전자서명된 MAC 코드를 사용함으로써 결과를 신뢰할 수 있게 한다.[2]
메시지 인증코드[편집]
알파체인 블록체인 외부 연산 단계에서, 부정 참여자들이 그들의 분산 값에 대해 속이고 재구성 시에 부정확한 값이 공개되도록 할 수 없게 하려고 비밀 분산 체계에서 메시지 인증코드가 사용된다. 프로토콜은 단 하나의 정직한 당사자가 있다고 해도 보안의 유지가 보증될 수 있는 `전수기준 활성 보안모델`(full threshold active security model)에 근거하고 있다. 그 특정의 당사자는 규칙을 준수할 자연적인 동기를 가지는 데이터의 제공자 또는 연산의 요청자가 될수 있다. MAC 전체 키나 x값이 주어졌을 때, 프로토콜은 MAC 코드에 근거하여 결괏값을 검증할 수 있다는 것을 알 수 있다. 이 두 가지 방법은 중간값과 결괏값을 검증함으로써 그리고 산출물을 검증함으로써 연산의 정확성을 확인하기 위해 사용될 수 있다. 이제 알파체인은 최소한 1명의 당사자가 정직하게 행동하는 경우, 메시지 인증코드가 어떻게 연산을 보호할 수 있는지를 알 수 있다. 더욱이, 알파체인은 또한 그들 사이의 상관관계가 결여되어 있어서 배포된 값 i는 비밀 값이나 MAC 코드에 관해 어떠한 정보도 노출하지 않는다는 것을 알 수 있다. 따라서 이 검증을 연산 계층으로부터 프로토콜 계층으로 이동시키는 것이 가능하며 이것은 블록체인에서 결과를 검증하는 것이 가능하도록 한다. 또한, i의 최종 합계는 어떠한 종류의 가상기계에서도 수학적으로 간단하게 구현될 수 있다. 결론적으로, MAC 검증은 합의를 촉진하고 연산의 비밀을 보호하기 위한 이상적인 작업이 된다고 할 수 있다.
공개적으로 검증 가능한 MPC는 임의의 보안 연산에 대하여 검증 가능성을 높여준다. 검증 가능성은 모든 서버가 부정 변조되었다 하더라도 프로토콜의 사본에 접근이 가능한 모든 사람은 산출물이 실제로 정확하다는 것을 확인할 수 있다는 것을 의미한다. 이 특성은 입력 당사자와 연산 당사자 그리고 검증자를 분리하는 것을 가능하게 한다. 프로토콜이 실행되고 난 뒤에 검증자의 역할을 수행하는 모든 사람은 게시판으로부터 프로토콜의 사본을 입수하고 회로와 산출물만을 사용하여 결괏값이 유효한지 아닌지를 확인할 수 있다. 프로토콜은 연산 당사자들이 그들의 대화의 이부분을 공개하고 게시판에 로그인 상태를 유지하도록 요구할 것이다. 검증은 재래적인 대화형의 영지식증명의 사용 대신에 비밀 입력 값에 대한 `선형적 확정`(linear commitments)에 의해 수행된다. 공개적으로 검증 가능한 MPC가 성취하려고 하는 더 의욕적인 특성은 보편적인 검증 가능성이며 여기에서 검증자는 산출물에 대해서 알아서도 안 되고 어떠한 연산의 프로세스도 관찰하여서는 안 되지만 그런데도 불구하고 `페데슨 확정`(Pedersen commitment)에 의해 계속하여 연산 참여자들이 책임을 지도록 할 수 있다.[2]
토큰 이코노미[편집]
경제적 합리성[편집]
알파체인은 암호경제학의 고려 하에 다중참여자연산 네트워크를 구축하는 것을 목표로하고 있다. 암호에서 가장 기본적인 가정은 어떠한 당사자들이 아주 정직하다는 (또는 정직하지 않다는) 것인 반면에 경제학에서의 가정은 당사자들이 합리적이며 그들의 효용이 측정가능하다는 것이며 따라서 적절한 인센티브 체계를 적용함으로써 그들 모두가 프로토콜의 규칙을 위반하지 않도록 할 수 있다는 것이다. 합리적인 행동을 가정하면 모든 사람들은 규칙을 위반하고 가능한 한 많은 것들을 획득하려 할 것이다. 그러나 더 이상 경제적 효익을 얻을 수 없는 점까지, 프로토콜을 위반하거나 또는 전체 네트워크를 고의로 방해하는 것이 참여 노드들에게 최선의 이익이 되는 상황이 발생하면 그들은 자신들의 이익을 위해 그렇게 할 것이다. 반면에, 프로토콜을 준수함으로써 받는 인센티브가 그것을 위반할 때 예상되는 이익보다 더 크다고 하면 참여자들은 프로토콜의 규칙을 준수할 것이다. 알파체인은 프로토콜을 위반하는 사람들에게 벌칙을 부여하는 인센티브 시스템을 설계했으며 이 벌칙은 다른 사람들과 공모를 할 때 예상할 수 있는 이익보다 더 크다. 이것은 참여 노드들이 시스템에서 요행을 바라는 행동을 하지 않도록 할 것이다.
시빌 공격(sybil attack)은 개인간의 네트워크에서 일반적으로 발생하며 여기에서 허위의 신분들을 양산하는 것이 투표나 기타 영향력에서 공격자가 불균형적인 이익을 얻도록 할 수 있다. 작업증명(PoW) 합의 체계에서, 양산된 노드들은 그들의 물리적 기계의 실제 연산능력에 의해 제한을 받는다. 따라서 시빌 공격의 위험은 완화된다. 알파체인은 각 노드들이 다중 반복획수의 게임 시스템에 포함되고 그들이 동일한 신분을 유지하고 (새로운 주소를 등록하는 것보다) 프로토콜의 규칙을 따르는 것이 그들에게 최선의 이익이 되는 크레딧 시스템을 고안했다. 합리성을 가정하지 않는다면, 알파체인은 간단하게 AWS의 최고 관리자가 비트코인을 공격하고 그 신뢰 시스템을 파괴할 것이라고 생각할 수 있다. 그러나 현실적으로 이것은 다음과 같은 이유들 때문에 문제가 되지 않는다.
- 합리적인 사람은 예산이 없이 그렇게 하지 않을거다.
- 연산 자원에 투자를 했을 때, 합리적인 참여자는 어떤 초기 비용을 들여서 네트워크를 고의로 방해하기 보다는 게임에 내기를 걸어서 더 많은 경제적 이익을 얻으려 할 것이다.
- 합리적인 사람은 다른 사람들이 그렇게 할 것이라고 가정하지 않을 것이다.
따라서, 이러한 고의적 방해행위는 발생할 가능성이 낮다고 결론 내릴 수 있다. 적절히 설계된 인센티브 시스템이 있다면, 어떻게 모든 참여자들이 프로토콜의 규칙을 따르도록 지도하고 규칙을 지키지 않는 사람들이 벌칙을 받을 것인가 하는 질문을 수학적인 관점이 아니고 더 현실적인 시각으로 볼 수 있도록 변화시킬 수 있을 것이다.
신분과 평판[편집]
새로운 노드가 네트워크에 합류할 때, 해당 노드에 대해 프로토콜 계층에서 고유의 계정이 배정된다. 이 계정은 해당 노드의 공개적인 신분의 역할을 할 것이다. 비대칭적 암호를 사용하는 경우, 네트워크는 각 노드의 신분으로서 개인키(private key)/공개키(public key) 쌍을 생성할 수 있다. 공개키는 노드의 식별 및 정보의 인증을 위한 역할을 수행한다. 결과값의 진실성을 증명하기 위해서 각 노드는 MAC 값을 자신의 개인키로 전자적 서명을 해야 한다.
안전[편집]
연산에 참여하는 연산 노드는 연산 작업에 참여하기 위해 내기를 걸어야 한다. 알파체인은 다음과 같은 내기의 금액을 요구하며,
X = max(연산 내기 금액, 인텔 가치 내기 금액)ㆍ보안 승수
여기에서
연산 내기 금액 = (추정 총 연산 자원)ㆍ(n-1)이고
보안 승수(security multiplier)는 네트워크에 의해 결정되는 상수이다. 프로토콜의 규칙을 위반하고 악성의 노드가 될 수 있는 여러 가지 경우가 있다. 각각의 경우는 목록으로 열거되고 알파체인은 알파체인의 시스템이 그러한 행위를 어떻게 처리할 것인지를 분석한다.
- 회로의 비준수 : 함수는 노드들이 공동으로 연산을 수행할 수 있도록 산술 회로로 컴파일 된다. 어떤 한 노드가 명령어를 따르지 않는다면 결과는 부정확할 것이다. 그러나 알파체인이 연산의 증거로서 MAC 코드를 요구하고 이 증거는 연산 프로세스와 밀접하게 연계되어 있기 때문에 알파체인은 MAC 코드를 전체적으로 검증함으로써 즉시적으로 결과 값이 배정된 함수에 따른 것인지 아닌 지의 여부를 판정할 수 있다. MPC 검증을 사용하는 경우, 사실상 그러한 것이 필요하지 않다. 그렇게 하지 않는 또 다른 이유는, 연산이 어렵기 때문에 누군가가 연산을 고의로 방해하려 한다면 바로 작업을 중단시키는 것이 더 합리적이다.
- 부정확한 결과의 전송 : MAC 절에서 설명된 것과 같이, MAC가 결과 값과 한 쌍을 이루기 때문에 부정확한 값을 정확한 MAC와 함께 전송하는 것은 불가능하며 이 경우 결과 값이 틀렸다는 것을 알 수 있다.
- 부정확한 MAC의 전송 : MAC는 검증과정을 통과할 수 없으며 또 그렇게 하는 것에는 별다른 이익이 없다.
- 중지 공격 : 디도스(Denial of Service, DoS) 공격과 유사하게, 이것은 어떤 노드가 협력적인 연산의 진행중에 작업을 중지하는 것이다. 그러한 경우, 알파체인은 연산 작업에 대해 제한시간 매개변수 값을 설정할 수 있다. 연산 작업에 참여하는 어떠한 참여자가 제한시간 전에 결과 값을 반환하지 못한다면 해당 작업은 실패로 간주될 수 있다. 해당 참여자는 그 작업을 위해 이미 소비된 연산 자원의 비용에 대해 다른 참여자들에게 보상을 제공해야 한다. 중지 공격을 예방하기 위해 (추정 총 연산 자원)ㆍ(n-1)보다 큰 내기 금액이 선택 단계에서 요구돼야 한다.
- 데이터의 도용 : 데이터를 누출하지 않고 신뢰 관계가 없는 참여자들과 어떻게 함수를 실행할 것인가 하는 문제를 다루기 위해 MPC가 설계되었다. 알파체인의 MPC 프로토콜은 n-1명까지의 공모한 참여자들에 대해서 보안을 유지하도록 설계되었다. 알파체인의 경우, 연산에 참여하기로 동의한 원래의 n명의 참여자들에 더하여 알파체인은 또한 보안을 강화하기 위해서 m명의 추가적인 임의의 노드들을 선택할 것이다. 누군가가 정보를 도용하려 한다면 n+m명의 모든 참여자들과 공모해야 한다. 원래의 데이터 소유자는 공모에 가담하지 않을 것이기 때문에 이것은 불가능하다.
요약하면, 알파체인의 내기 체계는 프로토콜의 규칙을 준수하는 것이 각 당사자에게 최선의 이익이 되도록 하는 방법으로 설계되었다. 이것은 악의적 행동에 따른 최대의 이익이 프로토콜을 준수하는 것에 따라 예상되는 최대의 손실보다 적기 때문이다.
공격자 모델[편집]
공격자는 어떤 방법이든 네트워크가 실패하도록 하려는 동기를 가지고 있다. 공격자는 참여자들 중의 하나이거나 프로토콜과 무관한 외부자일 수 있으며 어떤 참여자들이 그들의 행동을 변화시키도록 뇌물을 제공할 능력할 가지고 있다. 모델에서 공격자는 어떤 주어진 예산금액을 가지는 것으로 가정되며 이것은 그들이 지불하려 하는 최대의 금액이 되고 그리고 알파체인은 프로토콜의 균형을 붕괴시키기 위해서 그들이 질부해야 하는 금액인 비용에 대해서 이야기할 수 있다. 참여 노드들은 확률적으로 선택되며 선택된 참여자는 연산이 완결될 때까지 공객적으로 알려지지 않을 것이다. 따라서 공격자가 뇌물을 제공할 수 있는 대상이 존재하지 않는다. 뇌물을 제공할 대상이 없다면, 공격자는 네트워크에 실질적인 영향을 주기 위해서 95% 이상의 노드들에게 뇌물을 제공해야 한다. 공격자가 기회가 생길 때까지 기다릴 수 있다고 해도 전체 네트워크에 뇌물을 제공하기 위한 비용은 합리적인 공격 예산을 훨씬 초과하게 될 것이며 따라서 현실적이지 않다. 설계에 포함된 적절한 벌칙과 숨겨진 뇌물의 제공 대상 그리고 전체 네트워크에 뇌물을 제공하기 위한 높은 기준금액 때문에, 이 보안 모델에서 알파체인의 네트워크는 계속해서 그 보안을 유지할 수 있다.[2]
토큰 사용[편집]
알파체인의 토큰은 생태계 내에서 다음의 상호 연관되고 중요한 기능들을 수행하기 위해서 사용될 것이다.
- 연산 비용 : MPC 연산의 모든 참여자들은 연산 능력에 대한 그들의 공헌에 대해서 알파체인 토큰으로 보상을 받는다. 소비된 연산 능력은 주로 하나의 연산 사례에 대해 소비된 트리플의 양에 의해 측정된다.
- 데이터 및 모델 사용 수수료 : 데이터 제공자들이 알파체인 네트워크에 고품질의 데이터 자원을 제공하도록 장려하기 위해서 각각의 MPC 연산에 대해 데이터 제공자를 보상하기 위한 데이터 사용 수수료가 부과된다. 일반적인 암호 애호자들과 네트워크의 이해관계자들로부터 전문적인 투자업체들에 이르기까지 알파체인 네트워크의 모든 관계자들은 '가법 후원시스템'(Additive Backing System)은 알파체인의 관계자들의 폭을 더욱 확대하고 알파체인 데이터 시장의 초기 참여자들과 후원자들에게 인센티브를 제공한다.
- 내기와 담보금 : MPC의 참여자들은 연산 작업을 착수하고 이행하기 위해서 보증금의 형태로 알파체인 토큰을 사용한다. 연산 중의 중단과 기타의 악의적 행동은 내기 금액이 상실되는 결과를 가져온다. 이것은 모든 참여자들에 대해서 공정성을 확보하고 악의의 참여자들이 알파체인을 오양하는 것을 제한하기 위한 것이다.
- 공동체 관리 : 특정의 기준금액 이상의 토큰을 보유하는 사람들은 미래에 수용될 지급 토큰과 기타의 제안 사항들에 대해 표결 참여권을 가질 수 있다. 토큰 보유자들은 또한 실패한 MPC 연산의 중재에 참여하고 속임수를 쓴 참여자의 몰수 담보금 분배에 참여할 수 있다.
인센티브 프로그램[편집]
장기적으로 알파체인 토큰의 경제적 가치를 증대 시키기 위한 목적으로, 알파체인은 네트워크의 성장을 돕기 위해서 여러 가지의 인센티브 프로그램을 개발했다. 알파체인 네트워크에서 수행되는 온라인 거래들 중에서, 토큰 보유자들에게 인센티브를 제공하기 위해서 연산 수익의 20%가 사용될 것이다. 이 토큰은 분기 별로 집행 된다. MPC네트워크를 출범시키고 더 많은 수의 노드들이 참여하도록 인센티브를 제공하기 위해서, 일정 기준 금액을 초과하는 토큰을 가진 노드들은 네트워크에서 온라인 접속을 유지하는 것에 대해 (채굴) 토큰을 수익으로 획득하게 될 것이다. 자격을 가진 노드들은 '파이어니어 노드'라고(pioneer node) 표시되고 그들은 비축된 채굴보상 토큰 풀에 대한 자신들의 몫을 받게 될 것이다. 전체적으로 알파체인 토큰의 30%가 파이어니어 노드들을 보상하기 위해 채굴용으로 비축될 것이다. 보상 금액은 다음과 같이 계산될 수 있다.
보상금액 = 내기금액ㆍ(온라인 접속시간 + 장기보유자 보상)ㆍ고정 율ㆍ1/네트워크 규모 수준
효율[편집]
경매나 머신러닝과 같이 비밀보호에 민감한 애플리케이션 들에서 여러 가지 실험이 수행되고 있다. 실무적인 결과의 성과에 따르면 적절한 최적화와 성실한 함수 컴파일의 조건 하에서 연산과 통신에 의해 발생되는 비용은 대체로 완화될 수 있는 것으로 나타난다. 그러한 노력이 있다면, MPC에 의한 보안과 비밀의 보호는 추가적인 연산능력의 2-3 자릿수의 가격 만큼만의 가치가 있다.
비크리 경매[편집]
많은 당사자의 수가 있는 경우에 관해서, 안전한 비크리(Vickrey) 차최고가 경매는 AWS 시스템 환경에서 수행되며 여기에서 각 100명의 당사자가 하나의 입찰자료를 제출한다. 경매시스템은 낙찰자와 2위 입찰자를 공표할 것이다. 비크리 경매(Vickrey Auction)는 44,571개의 트리플을 필요로 한다. 그것을 더 일반화하기 위해서 여러 가지의 회로 깊이와 당사자의 수에 대해서 평가 실험이 수행되었다. 기본적인 필드는 61비트의 '메르센 필드'(Mersenne field)로 설정되며 보안수준은 대략 260이다.
각각 1,000,000개의 곱셈 게이트, 1,000개의 입력선로 그리고 50개의 출력선로를 가지는, 서로 다른 깊이의 일련의 회로들을 사용해서 여러 가지 당사자가 수에 대해서 실험이 수행된다. 회로들은 20, 100, 1,000 그리고 10,000의 4가지 서로 다른 깊이를 가지고 있다 실험은 노스 버지니아 지역의 AWS 내의 지역 네트워크 구성을 사용하여 AWS에서 실행되었다. 각 당사자들은 독립적인 AWS C4.대형 시스템 환경에서 (2.9 GHz의 클럭 속도와 3.75 GB RAM을 가진 2중 코어의 Intel Xeon E5-2666 v3) 실행되었다. 각각의 실행은 (구성, 당사자 수, 회로) 5회 수행되었으며 보고된 결과는 평균 수행 시간이다.(당사자수 100명, 오프라인 단계 98초, 온라인 단계 1.4초)
고심도 학습[편집]
알파체인은 MPC를 사용해 '합성곱 신경망'(Convolutional Neural Networks, CNN)을 시행하는 것을 설명할 것이다. 대규모의 신경망을 학습시킬 때, 가장 큰 문제는 GPU에서 제공되는 '임의정도 산술연산'(arbitrary precision arithmetic)의 성숙도와 가용성일 것이다. 일부 희망이 존재하기는 하지만, 이 영역은 아직 개발수준이 낮은 상태이며 더 많은 탐구가 필요하다. 이 실험에서 실행환경으로써 알파체인은 계속해서 CPU를 사용할 것이다. 알파체인의 MPC 방법은 연산에 사용되는 값을 은폐하기 위해서 비밀분산을 사용할 것이다. 이것은 산술연산 회로의 실행을 가능하게 하며, 다시 신경망의 교육을 위해 훨씬 더 높은 효율성을 가진다. ReLU와 '맥스풀링'(max-pooling)은 둘 모두 비선형의 연산이며 이들은 MPC의 연산을 위해 높은 비용을 수반하게 된다. 따라서, ReLU에 대해서는 다항식을 사용하여 근사값을 구하고 맥스풀링은 '평균풀링'(average pooling)으로 대체된다. 합성곱 계층의 한 가지 단순화된 시행방법이 여기에 제시되어 있으며 이것은 알파체인의 시행과제를 위한 기준으로써 사용된다. 점곱(내적, dot products)을 위해서 특별한 트리플 들을 생성함으로써 점곱을 위하여 사용되는 모든 값들이 한 번씩만 마스킹 되도록 했다. 그리고 그에 대한 합성곱이 다음의 관계를 충족하도록 했다.
im2col(A)B = C
따라서, 입력 값과 (A에 의해 마스킹 된) 가중치 (B에 의해 마스킹 된) 둘 모두에 대해서 어떠한 부본도 없이 마스크가 적용된 버전만 전달된다.
- 트리플의 재사용 : D와 E를 구하기 위해서 변수 A가 각각 B 및 C와 두 가지 연산에 사용되는 경우, 알파체인은 다음의 관계가 성립하도록 트리플 들을 만들 수 있다.
연산1(A, B) = D 그리고 연산2(A, C) = E
- 후행 단계'(backward phase)에서 오류는 일반적으로 두 번의 연산에 사용되며, 한 번은 이전의 계층을 위해 '역전파 오류'(backpropagation error)를 계산하기 위해 사용되고 또 한 번은 가중치 갱신 값을 산출하기 위해 사용된다. 더욱이, 가중치와 계층 입력 값 둘 모두는 계층의 출력 값을 산출하기 위해 '전행 단계'(forwar phase)의 연산에서 이미 사용되었으며 따라서 후행 단계에서 재사용 될 수 있다. 식견을 얻기 위해서, 알파체인은 간단한 두 단계 계층의 합성곱 신경망의 MNIST로부터의 128개 이미지의 배치 사이즈에 대해 한 번의 반복에서 각 참여자에게 전달되는 값들의 수를 최적화된 버전과 비교한다. 기준 모델에 대하여, 후행 단계는 전행 단계 보다 더 많은 비용이 수반된다. 최적화된 모델에서는 그 반대이다. 그 이유는 주로 알파체인이 전행 단계에서 생성된 마스크를 재사용할 수 있기 때문이다.[2]
생태계 및 애플리케이션[편집]
설계[편집]
개발자들은 암호에 대한 지식 없이 디앱의 데이터 비밀을 보호하거나 또는 비밀을 보호나느 디앱을 구축하기 위해서 알파체인을 이용할 수 있다. 알파체인의 보안 연산은 또한 데이터가 사용되는 중에 누구에게도 원시 데이터를 노출시키지 않고 데이터가 분산되는 것을 가능하게 한다. 알파체인은 다음과 같은 분야 들에서 신뢰 문제와 데이터 중개자의 필요성을 제거해 줌으로써 전체적인 데이터 산업을 분열시킬 수 있는 잠재력을 가지고 있다.(금융, 건강관리, 사물인터넷, 소매, 에너지 부문, 그리고 기업과 개인들에게 데이터가 귀중하고 민감한 자산이 되는 기타의 부문들) 알파체인의 데이터 시장 시나리오에서 하나의 평판 시스템이 구축되며, 여기에서 데이터 제공자들은 원시 데이터(raw data)를 공개하지 않고 데이터 값을 판매할 수 있으며 데이터 소비자는 데이터 제공자와 기밀유지 협약(NDA)을 체결하지 않고 데이터를 탐색하고 사용할 수 있다. 어떤 노드가 신뢰성 있고 책임감 있는 연산의 제공자가 된다면 해당 노드의 평판은 상승하게 될 것이며 이 평판은 블록체인에 영구적으로 기록된다. 매 거래의 후에 각 당사자는 데이터 품질과 모델 훈련 결과에 대해 검토 의결을 제출할 수 있다. 좋은 평판은 더 많은 구매자와 기업들을 끌어 모으고 후원자들의 수를 증가시키게 될 것이다.
참여자[편집]
- 연산 노드 : 연산 노드들은 다중 참여자 연산을 위해 연산 능력과 저장소를 제공한다. 연산 노드들은 예상되는 트리플의 소비에 근거하여 연산 작업을 위해 알파체인의 토큰을 담보금으로 납이해야 한다. 연산이 중도에 중단되는 경우, 해당 노드의 담보금은 같은 MPC 작업에 참여하는 다른 노드 들과 그리고 같은 작업을 수행할 다음 그룹의 노드 들을 보상하기 위해 사용된다. 연산 노드 들은 다음의 속성을 가진다.
- 다중참여자 연산의 데이터 사전처리 단계에서 신속하게 트리플 들을 생성하기 위한 강력한 연산 능력
- 노드의 내기 금액에 의해 보증 되는, 온라인 연산 중의 높은 가용성과 긴 가동시간
- 노드의 내기 금액에 의해 영향을 받는 신속하고 신뢰성 있는 인터넷 연계
- 데이터 제공자 : 데이터 제공자는 귀중하지만 잘 활용되지 못하는 데이터를 보유하는 개인이나 기업, 연구소, 금융기관 그리고 의료기관이 될 수 있다. 알파체인은 비밀보호 연산에 의해 데이터 제공자들이 그들의 데이터를 안전하게 사업화 할 수 있도록 한다. 데이터 제공자는 데이터의 소유권을 제공하지는 않지만 데이터의 가치를 공유함으로써 토큰을 소득으로 얻는다. 알파체인의 데이터 시장을 위한 비밀보호 특성은, 데이터를 사업화 하는 새로운 한 가지 방법으로서, 기업들 뿐이 아니라 개인 들로부터도 막대한 야으이 데이터가 새롭게 공급되도록 할 수 있는 잠재력을 가지고 있다.
- 데이터 소비자 : 데이터 소비자는 분석의 산출물을 사업화 하거나 인공지능/머신러닝 모델들을 훈련시키기 위한 목적으로 모델을 가동시키기 위해서 데이터를 임차하는 기업, 연구자, 정부, 대학 또는 개인 개발자들이 될 수 있다. 데이터 소비자들은 데이터에 접근하기 위해 토큰을 지불하며 데이터를 임차함으로써, 대상 기업 또는 개인 들로부터 데이터를 구매할 때보다, 낮은 비용의 혜택을 누린다. 데이터 소비자들은 또한 거래를 수행한 뒤에 데이터 세트에 관한 평가와 검토 의견을 제출할 수 있다. 본질적으로, 알파체인의 비밀보호 연산은 데이터 거래에서 대부분의 이익을 차지했던 데이터 취합자들과 중개인들이 필요하지 않게 해준다.
- 모델 제공자 : 모델 제공자는 모델을 소유하며 그 사용에 근거하여 모델을 사업화 하기를 희망하는 기업들과 개인 개발자들이 될 수 있다. 모델 제공자들은 모델을 임대함으로써 토큰을 소득으로 얻으며 또한 알파체인 네트워크에서 모델을 공유함으로써 인센티브를 받는다. 모델은 사용시마다 건별로 요금을 부과하는 방법 또는 기간 정액제 요금으로 임대될 수 있다. 잠재적인 데이터 누출의 위험 없이, 데이터 소유자들은 알파체인에서 가용한 최선의 모델을 선정하고 암호를 이용하여 안전한 방법으로 데이터를 사용하여 그 모델을 실행시킴으로써 모델 제공자로부터 식견을 주는 산출물을 얻을 수 있다. 한 가지 사용 예는 병원으로부터의 의료 데이터에 대해 분석을 수행하는 것이 될 수 있으며 이때 제3자 인공지능 개발자는 암호화된 의료 데이터를 직접 소유하고 원시 데이터에 접근하지 않으면서 분석 결과를 병원들로 되돌려 보낸다.
- 데이터/모델 후원자 : 데이터와 모델 후원자들은 공공의 데이터세트와 모델 들에 투자를 하고 토큰으로 수익 분배를 받는 개인들과 기업들이 될 수 있다. 데이터와 모델 후원자들은 일반적인 암호 애호자들과 네트워크 관계자들로부터 전문적인 투자업체들에 이르기까지 다양한 계층이 될 수 있다. 알파체인을 통해 대중들에게 제공되는 모든 데이터세트와 모델들은 데이터세트 판매 가격에 대해 20%의 추가금액을 포함하게 된다. 이 가격 차액은 데이터 후원자들에게 분배된다. 암호화되지 않고 원시 자료로 노출되는 경우에도 일반적으로 데이터세트에 대한 가격을 정하는 것은 어려운 일이며 따라서 알파체인은 데이터 품질을 반영하기 위해 '가법후원제도'(Additive Backing System, ABS)를 도입한다. 가법후원제도는 알파체인의 애호자들의 범위를 널리 확대하고 더 많은 네트워크의 초기 참여자들을 유인할 수 있도록 설계되었다.[2] 가법후원제도의 기본 규칙은 다음과 같다. 가법후원제도의 알고리즘에 근거하여 우리는 이제 후원자들의 수가 데이터세트의 예상 수익금액과 정의 상관관계를 가진다는 것을 입증할 수 있다. 후원자들의 줄이 더 길어진다는 것은 데이터 품질이 더 높다는 것을 의미하며 이것은 데이터 소비자가 고품질의 데이터세트를 찾을 수 있도록 하는 매우 가시적인 지표가 된다. 따라서 알파체인은 실질적으로 데이터 품질을 계량화 하는 작업이 생태계에 의해 수행될 수 있도록 했다.
거래의 흐름[편집]
데이터 제공자는 데이터세트를 업로드하고 그것을 공개할 것인지 또는 비공개로할 것인지 (특정의 데이터 소비자만을 위하여) 선택한다. 데이터 제공자는 사용 건 별 기준으로 가격을 설정한다. 데이터 후원자들은 데이터 샘플을 보고 그 미래 수익의 20%를 후원자 집단의 일원으로 분배 받기 위해서 공개 데이터세트에 투자할 수 있다. 후원자들은 또한 데이터세트의 과거의 거래 내역을 검토하고 그에 관한 검토 의견을 참조할 수 있다. 투자 금액은 '선형후원체계'(Linear Backing Mechanism)에 근거하여 결정된다. 데이터 소비자는 데이터 제공자의 데이터세트를 사용하여 자신의 모델을 실행하는 것을 요청할 수 있다. 데이터세트의 사용 비용에 더하여 추정 연산비용이 요구될 것이다. 또한 데이터 소비자는 스마트계약을 실행시키고 MPC 연산에 참여하기 위해 담보금이 요구 될 것이다. 담보금이 스마트계약으로 전송되고 나면 MPC 작업이 배포될 것이다. 알파체인은 연산작업을 완료한다. 데이터 소비자와 연산 노드들에게 지급이 이행되고 데이터 소비자는 출력 데이터를 받는다. 데이터세트의 후원자들은 도한 보상에 대한 그들의 몫을 받는다.
- 사례1. 다양한 부분의 행태적 데이터의 공유
- 최근의 하나의 사용 사례는 은행들이 그들의 기업고객들에게 제공하는 데이터 공유 및 모델링 서비스이다. 예를 들어, 은행 X는 소매회사인 Y에게 모든 산업에 대한 신용카드 거래정보와 개인 및 산업 수준 모두에서의 예측자료를 (예를 들어, 고객들의 라이프스타일, 쇼핑 선호 그리고 산업 전망) 공유하는 데이터 서비스를 제공하고 있다. 이 자료는 Y 회사의 고객 자료와 병합되어 추가적인 다양한 분석적 기능을 위해 사용될 수 있다. 현재 은행은 개인식별정보를 해시 값으로 처리하고 나서 소매회사의 자료와 매칭 작업을 수행하기 위해 해당 자료를 제3자 회사로 전송한다.
- 알파체인의 보안 다중참여자연산 네트워크는 은행과 소매회사의 자료를 연산 노드들에게 비밀로 분산하고 은해으이 알고리즘을 사용하여 데이터 매칭 작업을 수행한 뒤 매칭 작업이 완료된 데이터를 소매회사 고객에게 전송함으로써 실질적으로 데이터 매칭을 위한 제3자 매개체를 제거할 수 있다. 은행의 원시자료에 대한 보호를 강화하기 위해, 알파체인의 연산 네트워크는 매칭된 자료에 직접 소매회사의 분석 기능을 수행하고 출력자료만을 고객인 소매회사에게 전송할 수 있다. 이제 은행은 자신의 자료의 사용에 관해 완전한 재량권을 가질 수 있게 된다.
- 사례2. 비밀보호 의료진단
- 개별적인 의료 자료들은 제3자의 모델이나 또는 도구를 사용하여 진단을 수행하기에는 위험한 민감한 정보를 포함하고 있다. 반면에 근래 연도에 인공지능 전문가들은 증상과 의료 이력, CT 촬영 이미지 등의 정보에 근거하여 의료 전문가의 판단을 도울 수 있는 더 정확한 알고리즘을 개발했다. 알파체인의 비밀보호 특성은 제3자 모델 제공자에게 정보를 누출 시키지 않고 데이터에 대한 연산을 수행할 수 있도록 해준다. 의료 서비스 업체들과 전문가들은 또한 시장에서 유전자 분석과 같이 최선의 진단 모델을 찾을 수 있다.
- 사례3. 신분 인증
- 알파체인은 분산 애플리케이션과 서비스에서 사용자들을 위해 신분 정보를 안전하게 보관하고 그 정보를 사용하여 신분에 대한 인증을 수행할 수 있다. 각 사용자에게 독특한 지문, 얼굴 그리고 음성을 포함하는 신분정보는 여러 노드들에게 비밀로 분산된다. 인증 프로세스는 신뢰관계가 전혀 결여된 방법으로 공개되지 않은 계약을 통해 사용자의 신분을 검증한다. 이 특징은 블록체인을 실제의 세계와 연결시킨다.[2]
로드맵[편집]
- 2018년 1분기 : 아이디어 생성, 데이터 임대 비즈니스 사례
- 2018년 2분기 : 최초의 팀 구성 및 자금조달
- 2018년 3분기 : 백서, 기술 문서
- 2018년 4분기 : 다중참여자연산(MPC) POC 시연, MPC 네트워크 출범
- 2019년 1분기 : Testnet 1.0 (ASTRAEA) 배포
- 2019년 2분기 : 비즈니스 사례 개발
- 2019년 3분기 : 보안 강화, 프로토콜 개선
- 2019년 4분기 : 알파(ARPA) 메인넷 공개
- 2020년 1분기 : 성능 최적화
각주[편집]
- ↑ 장현아 기자, 〈(인터뷰) 알파체인(ARPAChain), 디지털시대의 정보보호에 관해 말하다〉, 《더노디스트》, 2019-10-02
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 알파체인 백서 - https://docsend.com/view/cccgams
- ↑ Geisler, M., 〈VIFF, the Virtual Ideal Functionality Framework〉, 《VIFF》, 2019-01-07
- ↑ Macheel, 〈Banks' privacy concerns shaping blockchain venders' strategies〉, 《Americanbanker》, 2018-10-05
- ↑ vbuterin, 〈RANDAO beacon exploitability analusis, round 2〉, 《Research》, 2018-05-01
- ↑ Utsav Kumar , 〈Understanding Ethereum — Pertinent problems,Scalability, and Possible Solutions.〉, 《Medium》, 2018-06-02
- ↑ Anant Kadiyala , 〈Nuances Between Permissionless and Permissioned Blockchains〉, 《Medium》, 2018-02-18
참고자료[편집]
- 알파체인 공식 홈페이지 – https://arpachain.io/
- 알파체인 백서 - https://docsend.com/view/cccgams
- Anant Kadiyala, 〈Nuances Between Permissionless and Permissioned Blockchains〉, 《Medium》, 2018-02-18
- vbuterin, 〈RANDAO beacon exploitability analusis, round 2〉, 《Research》, 2018-05-01
- Utsav Kumar, 〈Understanding Ethereum — Pertinent problems,Scalability, and Possible Solutions.〉, 《Medium》, 2018-06-02
- Macheel, 〈Banks' privacy concerns shaping blockchain venders' strategies〉, 《Americanbanker》, 2018-10-05
- Geisler, M., 〈VIFF, the Virtual Ideal Functionality Framework〉, 《VIFF》, 2019-01-07
- 장현아 기자, 〈(인터뷰) 알파체인(ARPAChain), 디지털시대의 정보보호에 관해 말하다〉, 《더노디스트》, 2019-10-02
같이 보기[편집]