솔라나의 혁신적 합의방법 - 역사 증명(Proof of History) 쉽게 이해하기

글 작성일: 2024년 6월 9일 (일)


안녕하세요.
블록체인과 우리의 삶에 대해 많은 관심을 갖고 있는 뉴비 요거트 입니다! ^^

지난 글에서 솔라나 코인 SOL 벤치마킹 하면서 SOL 코인이 잘 된 이유 중 하나로 솔라나 네트워크의 빠른 처리속도와 낮은 수수료 덕분이라는 말씀을 드렸습니다.

그러면서, 솔라나 메인넷이 빠른 처리속도와 낮은 수수료를 구현 할 수 있었던 가장 큰 요인으로 역사 증명(Proof of History)이라는 방법을 도입한 것이라고 했는데요.

지난 글에서 그냥 살짝 소개만하고 넘어갔던 것 같아서 이번 글에서는 역사 증명 합의 방식이 무엇인지에 대해 뉴비의 관점에서 뉴비도 이해할 수 있도록 쉽게 설명해보고자 합니다. ^^

역사 증명 (Proof of History)


먼저 역사 증명에 대해 간략하게 소개한다면, 분산 합의를 달성하기 위해 시간 개념을 사용하는 합의 메커니즘이라고 할 수 있습니다.

Proof of History (PoH) is a consensus mechanism that uses the concept of time to achieve distributed consensus.

출처: https://unchainedcrypto.com/solana-proof-of-history/

즉, 합의 메커니즘으로 비트코인은 작업량(work), 이더리움은 지분(stake)을 사용한다면, 솔라나는 시간(history) 개념을 도입한 것이죠!

그러면, 솔라나에서 시간 개념을 어떻게 도입해서 적용했는지 설명 드려보겠습니다~ ^^

역사 증명 방법의 작동 원리


솔라나 네트워크에는 리더(Leader)검증자(Verifier)라는 두 종류의 노드가 있습니다. 리더는 한 사람(노드)이며, 검증자는 여럿(노드)입니다.

- 리더

리더는 사용자로부터 들어오는 거래를 받고(아래 Figure 1에서 1. Messages sent by users), 거래의 유효성을 확인 후 유효한 거래를 대상으로 해당 거래들에 타임스탬프를 찍어(해쉬 함수이용) 순서를 정해줍니다.

그리고, 트랜잭션과 최종 결과 상태(state)를 검증자 노드로 전달합니다(아래 Figure 1에서 2. Ordered output sent to replicator nodes).

- 검증자

그러면 복수의 검증자들은 리더로 부터 받은 거래의 시간 순서 기록 등에 대해 리더가 정직하게 작업을 했는지 검증합니다(아래 Figure 1에서 3. Votes to confirm the state).

검증자들이 거래로 부터 만들어낸 상태(state)가 voting의 역할을 합니다.

transaction_flow.png

출처: Yakovenko (2018) Solana whitepaper

리더의 선출


한번 리더가 영원한 리더냐?

그렇지 않습니다.

리더가 일정 갯수의 블록을 생성하면 검증자들 가운데에서 PoS 방식으로 새로운 리더를 뽑습니다. 혹은 리더가 나쁜 짓을 한 것이 검증자의 2/3에 의해 알려지게 되면, 리더 자격을 상실하게 되며, 검증자들 가운데 새로운 리더를 뽑습니다(Pierro & Tonelli, 2022).

역사 증명 방식의 의의


블록체인과 같은 분산 시스템에서는 하나의 이벤트가 다른 이벤트보다 먼저 발생하는지 또는 동시에 발생할 수 있는지 확인하는 데 사용할 수 있는 메커니즘이 필요합니다.

잘 아시다시피, 비트코인의 경우 10분 단위로 블록이 생성되게 끔 작업량(PoW)을 조정합니다.

이는 마치 함께 모여있는 반 아이들(채굴자)에게 축구 골대 찍고오기 선착순 달리기 시켜서(논스찾기) 가장 빨리 도착한 1등에게 초코렛 주기(블록 생성권한 주기)하는 것과 비슷한 것 같죠? ^^

이더리움 등의 경우에는 거래 순서 검증을 위한 타임스탬프 중앙값(median)을 외부 프로그램에 의존합니다.

But many programmable blockchains, like Ethereum, rely on outside programs to assign a “median” timestamp — which they then use to validate transactions in the order they were received.

출처: https://solana.com/news/proof-of-history

하지만, 솔라나는 순서 정하기 위해 10분씩 시간을 지연시키지 않으며, 거래 순서 타임스탬프를 외부에 의존하지 않습니다.
오히려, 시스템에서 리더가 타임스탬프 작업을 내부적으로 처리함에 따라 에너지 효율적으로 빠른 퍼포먼스를 낼 수 있게 되었다고 봅니다.

물론, 아래와 같은 솔라나의 역사 증명 방식에 대한 비판도 있으니, 함께 참고할 필요는 있을 것 같습니다.

  • 기존에 이미 해쉬방식으로 체인의 순서를 정하고 있었기 때문에 혁신적이지 않다.
  • 리더나 검증자가 되기 위한 시스템 스펙이 매우 높아 누구나 합의에 참여하기가 쉽지 않다.

마무리


뉴비 관점에서 최대한 쉽게 설명하려했는데, 도움이 되셨는지요?

혹시라도 제가 잘못 설명한 부분이 있으면 댓글 등으로 지적 부탁드리며,
도움이 되셨다면, 많은 업보트 부탁드리겠습니다! ^^

이상 요거트 였습니다~ 고맙습니다! ^^

<참고문헌>

Yakovenko, A. (2018). Solana: A new architecture for a high performance blockchain v0. 8.14. Whitepaper.
Pierro, G. A., & Tonelli, R. (2022). Can solana be the solution to the blockchain scalability problem? IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)

Sort:  
 25 days ago 

깊이 있는 분석글들 고맙습니다.

좋게 봐주시고 댓글까지 달아주셔서 감사합니다! ^^

Thank you, friend!
I'm @steem.history, who is steem witness.
Thank you for witnessvoting for me.
image.png
please click it!
image.png
(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)

The weight is reduced because of the lack of Voting Power. If you vote for me as a witness, you can get my little vote.

Upvoted! Thank you for supporting witness @jswit.