안녕하세요 여러분. 참새입니다.
저번 포스팅에서 합의 알고리즘의 발전과 변화 과정에 대해서 간략하게 알아보았는데요, 해시그래프에 대해서 궁금하신 분이 계셔서 이번 포스팅에서는 해시그래프에 대해서 조금 더 깊이 알아보는 시간을 갖도록 하겠습니다.
해시그래프는 무엇일까요?
우선, 해시그래프는 블록체인도 가상 화폐도 아닙니다!
해시그래프는 탈중앙화 네트워크 (decentralized network)에서 새로운 알고리즘 방법을 통하여 합의 (consensus)를 이루는 “기술” 입니다. 정확한 알고리즘의 명칭은 스월드 해시그래프 합의 알고리즘 (Swirlds hashgraph consensus algorithm)입니다. Swirlds. Inc. 라는 회사에 의해서 2016년 12월 11일에 백서 (whitepaper)로 대중에게 소개되었습니다.
그렇다면 왜 해시그래프가 가상 화폐 기술 혁신이라는 말이 나오고 있으며, 앞으로 가상 화폐 시장에 어떤 영향을 미칠까요?
저희들이 흔히 알고 있는 가상 화폐들은 특정한 “합의 알고리즘”을 기반으로 네트워크가 구동됩니다. PoW, PoS, DPoS 와 같이 다양한 합의 알고리즘들이 가상 화폐 기술에 접목되어서 가상 화폐들의 거래 (transaction)들이 처리되고 블록체인을 구축하고 있습니다.
비트코인을 예로 들어보겠습니다.
비트코인은 PoW (Proof of Work)을 통하여 합의에 도달하는 방법을 사용하고 있는데요, 채굴자들은 블록체인 네트워크에 추가될 블록들을 선별하고 일정 비율 이상의 채굴자들이 “이 블록은 추가되어도 좋은 블록이다!” 라고 인증을 하게 되면 그 블록이 블록체인에 추가가 됩니다. 만약에, 특정한 블록이 일정 비율 이상의 채굴자들의 인증을 받지 못하게 되면 그 블록은 블록체인에 추가되지 않습니다. 이렇듯이 거래들을 처리하고 블록체인 네트워크를 구축하는, 하나의 합의로 이뤄지는 특정한 규칙에 따른 방법과 방식을 합의 알고리즘이라고 합니다.
어떠한 합의 알고리즘을 사용하는지에 따라서 가상 화폐의 거래 처리 성능, 컴퓨터 자원 사용 범위, 보안성, 정확성, 공평성이 모두 다르게 됩니다. 스케일링 문제의 해결 과정에도 큰 영향을 미치겠죠!
그렇다면, 해시그래프 알고리즘은 기존의 저희가 알고 있는 가상 화폐들에 상용화된 알고리즘들과 어떻게 다르고 어떤 점이 더 뛰어난걸까요?
해시그래프 기술이 워낙 복잡하기 때문에 간단하게 예를 들어서 설명하도록 하겠습니다 (기술적인 부분들을 더 깊이 알고싶은 분들이 많으시다면 조금 더 전문적으로 어떤 방식으로 해시그래프 기술이 구동되는 것인지 설명해드릴 수 있는 기회를 만들도록 하겠습니다).
“참새”라는 마을에 100명의 사람들이 살고 있습니다 (A1, A2, A3, …A99, A100). 이 100명의 사람들이 매순간 대화를 하면서 살고 있습니다. 이 때 이 사람들이 대화하는 내용들을 거래 (transaction)에 비유를 하겠습니다. 그렇다면, 저희가 만약 이 사람들의 대화 내용들을 특정한 탈중앙화 네트워크에 업데이트를 하려고 할 때, 가장 확실하게 모든 대화 내용들을 기록하는 방법은: A1이 A2에게 말한 내용, A2가 A3에게 말한 내용, A5가 A4에게 발한 내용,…. 매 순간마다 누가 누구에게 무엇을 말했는지 모든걸 기록하면서 네트워크에 업데이트하면 됩니다. 이 경우에, 업데이트할 대화 내용들이 너무 많으니까 현실 세계에서는 기술적으로 이런 방법을 취하는 것은 불가능하겠죠. 그렇다면, 만약에 A1이 알고 있는 모든 정보를 랜.덤.하.게. 몇 명의 사람들에게 전달해주고 A2가 알고 있는 모든 정보를 랜.덤.하.게 몇 명의 사람들에게 전달해주고, 이 과정을 반복하게 되면 시간이 지날수록 A1부터 A100까지 100명의 사람들이 알고 있는 정보들이 모두에게 퍼져나갈 것입니다 (합의를 이루는 과정이 되겠죠).
이렇게 하자고 약속을 한 것이 “가십 프로토콜 (Gossip Protocol)” 입니다. 단어 자체의 의미처럼 소문을 퍼뜨리면서 합의를 이루는 겁니다. 가십 프로토콜에서는 노드(nod)들이 주변에 연결되어 있는 노드들을 랜덤하게 선별하여서 자기가 알고 있는 정보들을 모두 전달해줍니다 (정확하게는 싱크로나이즈 합니다). 이 때 중요한 것은, 기존의 다른 합의 알고리즘들에서와 다르게, 전달되는 정보들이 더 구체적입니다: (1). 무엇을 했는지, (2). 누가 한건지, (3). 언제 한건지. 비트코인에서의 처리 방식과 다른 점이 있다면, 비트코인 네트워크에서는 거래들을 블록들로 모아서 블록들마다 한꺼번에 동시에 처리하고 또 새로운 블록에 거래들을 모아서 또 한꺼번에 동시에 처리하지만 (동시적 처리), 해시그래프 알고리즘에서는 처리되는 “순서”들까지 하나의 정보로 인식하고 각각의 정보들에 순서의 특징을 부여하기 때문에 “비동시적 처리”를 하게되는 것이죠. 간단히 말하자면 이론상 보안성도 더 뛰어나게 되고 더 구체적인 처리를 가능하게 됩니다.
다시 참새 마을 얘기로 돌아가겠습니다. 소문이 빨리 퍼져서 많은 사람들이 100명이 갖고 있는 모든 정보들을 꽤 많이 공유하게 되겠지만, 어떤 소문이 진짜고 어떤 소문이 가짜인지 알 방법은 없습니다 (소문이 빨리 퍼진다고 하더라도 그 소문이 가짜면 빨리 퍼지는 의미가 없지요). 이 때 만약, 시간이 지나면서 소문이 퍼지는 동안에 각자의 사람들이 “투표”를 하여서 어떤 정보가 맞는 정보인 것 같고 어떤 정보가 틀린 정보같은지 예측한다면 맞다고 선별된 소문들은 진실에 가까운 정보들이 되겠습니다. A1이 A2의 정보를 받게 되면 A1은 A2가 어떤 사람인지 더욱 잘 알게되고 A2가 어떠한 투표를 할 것인지 예측할 수 있기 때문에 참새 마을의 모든 사람들의 투표들을 통해서 정보들은 선별하고 그 정보들을 네트워크에 하나의 합의로 만들 수 있습니다.
참새 마을에 100명밖에 살지 않기 때문에 참새 마을 네트워크에는 매순간마다 처리되는 모든 정보들을 기록할 수 있습니다 (기술적으로 가능하겠죠?). 하지만, 만약 참새 마을의 인구가 100만명이 된다면, 매순간마다 100만명들이 어떤 얘기를 하고 어떤 정보들을 공유하고 어떤 것이 제대로 된 정보들인지 네트워크에 업데이트해서 하나의 합의를 보려면 기술적으로 불.가.능.하겠죠.
해시그래프 알고리즘은 통계적인 접근을 통하여 맞는 정보들을 선별하는 것들을 예측하고 하나의 합의를 볼 수 있게해주는 기술입니다. 마지막으로 비유적인 요약을 하자면, 100만명의 사람들에게 설문 조사를 하고 싶은데 너무 많아서 절대 못하니까 매 초마다1000명의 사람들이 근처에 있는 사람들에게 서로의 설문 조사 결과들을 공유하고 소문이 퍼지는 과정에서 투표를 통하여 제대로 된 정보를 걸러내면서100만명의 설문 조사 결과들을 예측하는 것입니다. 간편하고, 창의적으로 하나의 합의 를 이뤄내는 기술이죠. 해시그래프 기술은 현재 25만개의 거래들을 매 초당 처리할 수 있다고 알려져 있으며, 앞서 말한대로 “처리 순서”에 대한 정보들도 비동시적으로 다루기 때문에 기존의 합의 알고리즘들보다 훨씬 더 “공평”하고 어떤 의미에서는 더 정확하다고 볼 수 있습니다.
해시그래프 기술로 만들어진 가상 화폐는 아직 없으며, 해시그래프 기술을 만든 회사는 이 기술을 가상 화폐 시장 자체를 대상으로 판매할 계획이라고 합니다. 오픈 소스가 아닌 것이죠!
해시그래프에 대해서 공부하면서 굉장히 혁신적이고 창의적인 거래 처리 문제 해결 방법이 될 수 있을 것 같다고 느꼈습니다. 앞으로 해시그래프가 가상 화폐 시장에 등장하여서 기존의 기능적으로 뒤쳐진 합의 알고리즘들을 대체할 수 있을지 궁금하기도 하네요.
어려운 내용이였지만 읽어주셔서 감사합니다.
항상 잘보고 갑니다
참새님 팔로우 할려고 스티밋 가입했어요~^^
앞으로도 객관적이고 유용한글 부탁드립니다~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Nice Post~!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
재미있는 알고리즘이군요. 잘 동작할 것 같긴 하지만 어떤 식으로 완전히 전파된다는걸 보장하는지가 궁금해지네요 ㅎㅎ
설명 감사드립니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
천재로 한번 살아보고 싶어지네요.
저런 상상을 어떻게 했으며 그걸 또 구체화 했는지...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
정말로 대단하고 획기적이지요. 저도 깜짝깜짝 놀랄때 많습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이전에 관심있게 봤던 기술이라 반갑네요. 아이오타의 탱글하고 비슷한 알고리즘인데 몇가지가 좀더 진보적이라고 알고있습니다. 근데 태생이 오픈소스가 아니라는 점에서 주목받기가 어려워 보이더라구요. 특허를 가지고 있는 것 또한 오히려 더 외면받는 원인같기도 합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
돈벌자고 개발하는것일텐데 어쩔수없지요..ㅜ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
우와! 대단한 아이디어네요. 설문조사의 비유를 들으니 이해가 쉽습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
합의 알고리즘에 대해서는 pow pos 정도만 알고있었는데 해시그래프는 설문조사 알고리즘이라고 이해하면되는걸까요? 한번 찾아 봐야할 것 같습니다. 좋은 정보 감사드려요~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
네 초간단 한줄 요약은 그렇다 볼수있겠네요 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
눈이 팽그르르...어렵지만 어렵지만 그래도 알도록..
친절한 설명 감사드립니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
더 쉬운 설명할수있도록 최선을 다하겠습니다 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이미 충분합니다. 제가 부족한 것일 뿐이죠~ 감사드립니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
어려운 얘긴데 쉽게 설명해주셔서 이해가 갈듯말듯하내요
감사합니다
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
좀더 쉬운 설명을 드릴수있도록 최선을 다하겠습니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
좋은 생각 좋은 글인 것 같습니다 ^__^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
투표라는 개념이 어렵네요.. 좋은글 감사합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
예시가 크게 도움이 안된것 같군요 ㅜ 더 노력하도록 하겠습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
아닙니다.. 제가 이해력이 딸리는 겁니다 ㅠㅠ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
대화에 비유하니까 쏙쏙 들어오네요! 항상 설명 감사드려요!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
합의 알고리즘에 설문조사 통계학을 접목시키다니 대단하네요..
세상에 천재들이 정말 많아요.ㅎㅎ
판매만 아니면 더 많은 사람들이 참여해서 더 발전시킬 수도 있을텐데 정말 아쉽네요.ㅎ
항상 감사드립니다~~ ^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
와우! 좋은 정보 감사합니다. 가십 프로토콜이 이런 의미였군요. 저 그림이 뭔가 이해에 도움을 잘 주는 것 같네요.
멋진 기술들이 많이 나오네요! 오픈소스가 아니라 판매를 한다는게 좀 그렇긴 하지만 ㅋㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
참새님 좋은글 잘 읽고갑니다 ^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다. 자주 방문해 주세요 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
조금 어려운것 같지만 잘 설명해주셔서 조금 알것 같아요
기회가 되면 자세한 내용 알려주실 수 있으면 좋겠네요
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
비트코인이 탈중앙화 시스템을, 이더리움이 스마트 컨트랙을, 스팀잇이 투표를 통한 방식을, 아이오타가 탱글을 도입했다면 이 해시그래프는 모든 장점을 한데모은 엄청난 기술이네요 ㄷㄷ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
좋은글 감사합니다
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오~ 뭔가 DPOS(투표를 함으로써 악의적인 거래 또는 오류거래를 걸러내는)의 voting개념과 선형 블록체인이 아닌 IOTA 같은 Acyclic Graph 가 조합된 느낌이 머릿속에서 그려지는거 같네요. 맞을까요? ㅎㅎ
비잔틴장군문제 -> 처리속도 개선 -> ... 등등 결국 중앙화된 시스템과 같이 단 하나의 오차도 허용하지 않는 체계에서 벗어나 확률적으로(수학적으로) 무결함에 가깝다를 증명한 탈중앙화된 합의 알고리즘을 연구하는 것이 점점 더 중요하게 느껴집니다.
학교다닐 때 자료구조, 알고리즘, 이산수학 시간에 더 열심히 들을걸 후회되네요 ㅜㅜ
좋은 글 오늘도 감사드립니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit