코인분석

Holo/Holochain 이란? - 합의알고리즘(컨센서스)에 대해

안녕하세요 Hangdin 입니다~
즐거운 한가위 다들 잘 보내셨나요? ^^

스트레스 받지 않으셨기를...

지난 홀로체인 글을 쓰고 상당한 시간이 지나고 다시 글을 작성하게 되었네요.
저 혼자 왠지 모를 부담감이 생긴 바람에... 썼던 글을 지웠다 쓰고를 반복하다가 방치하게 됐습니다.
하지만 이더리움 밋업을 다녀온 후 이 아름다운 생태계의 미래를 다시 한번 느낀 후 마음을 다잡고 다시 글을 열심히 작성하였습니다. 마침 현재 하던 일도 그만두고 블록체인 회사 취직을 준비하고 있는 만큼 당분간은 더 많은 글을 작성할 것 같습니다~

아래의 내용은 개인이 종합한 정보에 의해 쓰여진 글이므로 실제 홀로체인의 내용과는 다를 수 있습니다. 감안하여 봐주시고 틀린 내용이 있다면 언제나 지적해주세요 ^^


지난 글에서도 홀로체인의 데이터 무결성에 관한 내용을 적긴 했었습니다만, 좀 더 내용이 필요하다 느껴 관련 내용을 더 적도록 하겠습니다.

블록체인을 공부하다 보면 합의 알고리즘(컨센서스)에 대한 개념이 상당히 중요하다는 것을 느끼게 됩니다. 블록체인 합의 알고리즘은 블록을 생성할 때 특정한 방식으로 데이터 무결성을 확보합니다. 만약 네트워크 내의 데이터가 불확실하다면 비트코인의 가치는 0이나 다름없겠죠.

"그런데 홀로체인은 컨센서스가 없다고 합니다?"

저도 정말 많이 헷갈렸던 내용으로, 그렇다면 데이터 무결성을 어떻게 유지할지가 궁금했습니다.
처음에는 블록체인에 존재하는 합의 알고리즘에 의거하여 홀로체인을 바라봤었습니다. 하지만 블록체인 합의 알고리즘은 데이터 무결성을 유지하는 한가지 방법이고, IOTA나 Hash graph 또한 블록체인과는 다른 개념의 합의 알고리즘을 사용합니다. 홀로체인에서 데이터 무결성을 유지하는 방법도 이와 같이 다른 하나의 것으로 볼 수 있습니다. 홀로체인에서 주장하는 방법을 알고 있다가, 실제로 나온 후 어떻게 될지 지켜봐야겠습니다.
많은 프로젝트들이 뭐 우주정복도 가능한 것처럼 주장하지만, 실제로 나와봐야 진실을 알 수 있으니 말이죠. (물론 이미 백서에서 들통나지만....)

이하 내용은 다음 링크에서 참조하였습니다.
https://github.com/Holochain/holochain-proto/wiki/FAQ#how-is-holochain-different-from-__________

홀로체인은 데이터나 일련의 사건에 대해 절대적인 관점에서 합의를 이루지 않습니다.
홀로체인은 완전히 분산된 happ에서도 데이터 무결성을 제공하고자 합니다.
정보의 무결성은 사건의 절대적인 순서에 대한 합의를 필요로 하지 않습니다. 실세계를 구성하는 많은 것(원자, 분자, 세포)은 글로벌한 합의가 없이 유지되고 있죠. 상대성 이론에 의하면 실제로 사건의 순서는 없는 것이고, 특정한 관점에서 관련된 순서만 얘기될 것입니다.
(상위프로젝트인 ceptr 에서처럼 실제 세상의 유기체적인 관점에서부터 접근)

그림출처 (https://i.imgur.com/bjp7Txg.png)

홀로체인에서 트위터와 비슷한 hApp에서 메세지를 전송하는 과정

홀로체인은 이와 같이 구현되고자 합니다. 홀로체인에 존재하는 에이전트의 각 소스체인은 불변의 데이터 무결성과 특정 지점의 에이전트 행동에 대한 순서를 보존합니다. 홀로체인에서는 모든 데이터 변경 및 타임 스탬프에 서명합니다. 데이터가 소스체인에서 DHT(각 체인 복사본을 보관하는 글로벌 공유 데이터 저장소)로 게시되면 다른 에이전트에게 뿌려지고, 데이터를 받은 에이전트는 해당 소스체인의 DNA에 인코딩된 '규칙'에 따라 유효성 검사를 실시한 후 서명합니다. 그 후 다른 노드들에게 gossip(단어 자체의 의미처럼 소문을 퍼트림)합니다.

gossip protocol은 하나의 통신 프로토콜로써 해쉬그래프에서도 이 것을 사용하고 있습니다.
해쉬 그래프에서 사용하는 gossip 프로토콜의 특징이 있을테고, 홀로체인에서 사용하는 gossip 프로토콜의 특징이 있을테니 큰 느낌을 이해하는데 도움이 될 듯 싶습니다.
해쉬 그래프 gossip protocol 참조  -steemit 참새님- )

홀로체인 내에서 자신의 소스체인이든, 특정 애플리케이션의 소스체인이든 항상 주변 피어들에게 검증을 받게 됩니다. 이 때 검증하는 피어들은 랜덤으로 선택되게 합니다.(나쁜 의도를 가지고 있는 피어들이 옳지 못한 결과를 가져올 수 있으므로) 여기서 hApp은 요구되는 보안레벨에 따라 스스로 규칙을 정할 수도 있습니다. 높은 보안레벨을 요구할 경우 검증에 참여하는 피어의 수를 많게 할 수도 있습니다.
이러한 과정이 DHT에서 이루어지고 이것을 'validating DHT' 과정이라 부릅니다.
만일 A와 B가 돈을 거래하려는데 DHT에 연결되지 못하는 상황이 있다면, 그 둘은 서로의 원장을 처음부터 끝까지 검증할 수도 있습니다.

여기까지 과정을 간단히 설명드리면,
A의 원장의 변경이 완료되면 서명하게 되고 이 것은 DHT에 의해 불특정 다수의 참여자들에게 분배 후 검증 받게 되고 이 결과를 항상 주변 참여자들에게 알려주게 됩니다. 이러힌 과정이 계속 반복되는 것입니다.
(서명이 되어있다면 그 이후는 따로 변경되지 않았다는 것을 의미합니다.)


홀로체인의 특징을 간단히 정의하자면 다음과 같습니다.

" 해시체인(ex: GIT, Blockchain) + gossip + DHT + 유효성 검사 "

* 누구도 장부내용을 변조할 수 없는 해시 알고리즘 사용
* 개별 노드(자체 원장)
* 각 앱의 유효성 검사 규칙 복사본
* gossip protocol
- 서로의 데이터를 검증 및 저장하기 위해 데이터 비트 공유
- 어떤 데이터를 확인하였는지 공유
- 부정행위를 한 노드에 대해 소통(블랙리스트)
* 글로벌 공유 데이터 저장소(DHT)


이 내용에 대해 언제든지 얘기하실 내용이 있다면 텔레그램 채널에서 말씀해주세요 ^^

Holo 의견 소통 텔레그램 채널입니다. 방 공지에 그린백서 번역본 및 관련 글을 공유하고 있습니다.
https://t.me/Holokor

Holo 의견 소통 오픈카톡방입니다.
https://open.kakao.com/o/gCui6xT

대화 내용은 홀로에 대한 (가격적 요소는 자제해주세요~) 어떤 것이든 환영입니다.

항딘 항딘 · 2018-09-28 20:31 · 조회 1293
전체 0

문의하기