HOLO HOT
1 (0.00000014 BTC, -15.68%)
Holochain (HOT) 백서, 미완본(ALPHA 1)
최초작성 : 3주 전 / 최종수정 : 3주 전 / 번역자 : misskiwi

Holochain 백서는 아직 미완(draft)본으로 일부 내용이 빈 부분이 있습니다. 참고하시기 바랍니다.

Holochain

확장 가능한 에이전트 중심 분산 컴퓨팅
미완본(ALPHA 1) - 2018년 2월 15일
Eric Harris-Braun, Nicolas Luck, Arthur Brock
Ceptr, LLC

초록

우리는 확장 가능하고 에이전트 중심인 분산 컴퓨팅 플랫폼을 소개하고자 한다. 우리는 포멀리즘을 기반으로 분산화된 시스템을 특성화하고, 이들이 분산 시스템에 어떻게 적용되어있는지, 데이터 중심(data-centric) 모델에서 에이전트 중심 모델로 변환하는 것이 어떤 이점이 있는지 기술하겠다.시스템의 무결성과 진화된 용량, 토털 시스템, 활용처와 이에 미치는 영향, 현 상태등을 통해 Holochain의 구체적인 특장점을 소개하고자 한다.

I. 개요(INTRODUCTION)

분산컴퓨팅 플랫폼은 두 가지 토대의 출현과 함께 새로운 수준의 생존 가능성을 보여주었다: 안전한 해시 알고리즘과 공개키 암호화 방식이 그것이다. 이들은 분산 컴퓨팅의 핵심 문제에 대한 해결책을 제시하였다: 검증가능하고 쉽게 변경할 수 없는 데이터를 노드를 통해 분산 시스템에 공유하고 전자 서명 알고리즘을 통해 데이터의 근본을 검증할 수 있도록 하였다. 해시체인(hash-chains)을 이용하는 이전 방식은 단조로운 데이터 저정방식을 사용하여 이전 요소와 다음 요소가 연결된 쉽게 변경할 수 없는(따라서 자신있게 노드를 통해 공유할 수 있는) 성격을 지닌다. 이어지는 요소는 암호학의 해시 암호화를 통해 연결되고, 공개키 자체를 주소로 사용하여 다른 참여자들이 시스템 내에서 원 데이터를 수학적으로 검증할 수 있도록 한다.

해시체인이 독립적으로 행동하는 주체들이 안정적으로 상태를 공유하는 문제를 해결했지만, 좀더 심층적인 시스템 접근을 통해 두 가지 다른 방식의 접근을 시도하였다. 이러한 접근 방식은 현 시점의 보편적인 분산 시스템 두 가지를 통해 가능하다.

1. git1 : git에서 모든 노드는 자신의 해시체인을 자신에 맞게 변경 할 수 있다. 체인의 요소에 덧씌워지는 부분(git 시스템 내에서 commit으로 사용되는)은 git에 의해 관리되지 않고 참여자의 요구와 병합에 의해 행해진다. 이러한 접근 방식은 노드들이 독립적으로 데이터의 실체를 다루기 때문에 우리는 이를 에이전트 중심이라 칭하도록 하겠다.

2. Bitcoin2 : 비트코인(혹은 보편적인 블록체인)에서 문제는 다양한 마이닝 노드들이 어떻게 블록과 그에 속하는 거래를 선정하도록 하는가와 이를 어떻게 보편적인 체인에 병합하는가에 있다. 우리는 이러한 접근 방식을 모든 노드들 사이에서 하나의 공유 데이터를 찾는 모델이기 때문에 데이터 중심이라 칭한다.

우리는 이러한 기본적인 입장이 블록체인의 확장성(scalability)의 문제를 야기했다고 생각한다. 이 문제는 보편화되어 있으며3 다양한 해결 방안이 대두되는 중이다.4 Holochain은 블록체인의 데이터 중심 접근법보다 진전된 방식을 제시한다.

II. 이전 연구(PRIOR WORK)

본 문서는 암호화 분산 시스템과 분산 해시 테이블, 멀티 에이전트 시스템의 다양한 최근 연구를 기반으로 한다.

Ethereum: Wood [EIP-150], DHT: [Kademlia] Benet [IPFS]

더 많은 연구와 레퍼런스를 추가할 예정

III. 분산 시스템(DISTRIBUTED SYSTEMS)

A. 포멀리즘(Formalism)

해시체인을 사용하는 단순화된 일반 모델 은 다음과 같이 정의할 수 있다.

1. N은 시스템에 참여하는 {n1, n2, ... nn}의 집합이며, N 노드들 혹은 에이전트들이라 칭한다.

2. 각각의 노드 n은 집합 Sn과 요소 으로 구성된다. Sn은 노드 n의 상태(state)라 한다. 이 문서의 목적에 따라 우리는 해시 체인이 아닌 자료 D와 해시체인 Xi에 대해 라 가정한다.

3. H는 암호학적으로 안전한 해시 함수이다.

4. 상태 변화 함수가 있다고 가정하자:

h를 헤더라 부르며, 각 헤더들이 연속적으로 모여 어떻게 체인이 되는지를 기술한다

5. V(t, v)는 추가 검증 데이터인 vt를 통해 t의 유효성을 검증하고 유효할 경우에만 t에 대한 함수를 실행한다. V는 검증함수라 부른다.

6. I(t)는 거래 t를 인자로 받아, V함수를 통해 평가하고, 만약 유효하다면, S를 이전하기 위해 를 이용한다. I는 입력 혹은 자극 함수라 부른다.

7. P(x) 함수는 거래 t를 생성할 수 있고, 시간이나 상태의 변화에 따라 V, , P 자신을 실행하는 함수이다. P은 진행 함수라 부른다.

8. CN에 속하여 각기 독립적인 주소 An을 갖고 서로 통신하도록 허용된 채널이다. C와 서로 통신하는 노드들을 네트워크라 부른다.

9. E(i)는 함수 V, I, P의 기능을 변경하는 함수이다. E를 진화 함수라 부른다.

해설 : 위 포멀리즘은 각 모델별 에이전트의 핵심을 독립적으로 접근할 수 있도록 해준다.

우선, 에이전트의 상태를 암호학적으로 안전한 해시체인 부분 X와 임의의 데이터 D 두 개의 부분으로 나눌 수 있다. 이어서 상태의 업데이트 단계를 다음 두 단계로 나눌 수 있다. 1) 검증 함수 V(t,v)를 통해 새로운 거래 t를 검증하는 것과, 2) 상태 변화 함수 x, D를 통해 내부적인 상태의 실질적 변화의 단계인 S로 나눌 수 있다. 마지막으로 우리는 1) I(t)를 통해 받는 외부의 사건, 자극과 결과 V, x그리고 내부적으로 생성된 거래를 통한 노드의 내부 처리 P(x)를 구분한다.

우선 분산 시스템의 몇 가지 주요한 특징을 정의하도록 하자:

번역이 진행 중입니다.