지연시간 증명: PoET(Proof of Elapsed Time)이란 어떤 방식의 알고리즘인가요?
오늘 하루도 아하의 블록체인 전문가님들께 행복한 하루 되시기를 바랍니다.
리눅스 재단에서 설립하고 IBM에서 추진하고 있는 하이퍼레져 쏘투쓰(Hyperledger Sawtooth)는 하이퍼레져 프로젝트 중 하나라고 하는데요.
이 블록체인을 적용하여 기업들이 중앙 집중된 권한없이 디지털 기록을 관리할 수 있도록 지원한다고 합니다. 이 블록체인에 적용되는 합의 알고리즘인 지연시간 증명: PoET(Proof of Elapsed Time)이란 어떤 방식의 알고리즘인지 궁금합니다.
안녕하세요. 지연시간 증명: PoET(Proof of Elapsed Time)이란 어떤 방식의 알고리즘인가요? 라고 문의 하셨는데요.
PoET(Proof of Elapsed Time)의 경우 허가된 블록체인 네트워크에서 네트워크 마이닝권한 또는 블록 당첨자를 결정하기위해 사용되는 알고리즘입니다.허가가된 블록체인 네트워크 모든 참가가는 참여하기전에 자신을 식별해야 합니다. POET 의 경우 단일 노드가 승자가 될 가능성이 있는 복권시스템의 원친에 따라 많은 네트워크 참가자에서 공정하게 이길수 있는 기회를 제공하는 알고리즘입니다. POET의 작동방식은 네트워크 각 참여노드가 임의로 선택된 기간동안 대기를 한후 지정된 대기시간을 완료한 첫번째 노드가 새블록에서 승자가 됩니다. 블록체인네트워크의 각각의 노드는 임의 대기시간을 생성하고 지정된 기간동안 휴면상태가 되고 가장 먼저 깨어난 노드가 새로운 블록을 블록체인에 커밋하여 전체 네트워크에 필요한 정보를 브로드캐스팅 하는것을 반복하게 되는 방식의 알고리즘입니다.
감사합니다.
POET(Proof of Elapsed Time) 경과 시간 증명 합의 알고리즘은 방식은 '신뢰할 수 있는 실행 환경'을 활용하여 비잔틴 장군 문제에 대한 해결책을 제시하고 있습니다.
이때 신뢰할 수 있는 실행 환경이라고 함은 Intel SGX(Software Guard Extensions)라는 보안 명령 코드가, 보안 기능을 갖춘 메모리의 실행 영역인 Enclave에서 실행되도록 하는 것을 의미합니다.
즉, 신뢰 할 수 있는 실행 환경에서 합의에 도달하게 되므로 비잔틴 노드의 발생을 원천적으로 방지하는 알고리즘이라고 할 수 있습니다.
그렇다면 계속해서 합의에 어떻게 도달하는지 알아보도록 하겠습니다. POET 합의 알고리즘에서는 그 이름 처럼 '경과 시간'에 따라 블록 생성자를 랜덤으로 선택하게 됩니다.
합의 노드들은 각각 무작위 변수를 샘플링하고 해당 샘플에서 무작위로 제시한 시간 동안을 기다리게 됩니다. 이때 가장 적은 시간을 기다려도 되는, 무작위 샘플링을 통해 가장 적은 경과 시간을 보낸 노드가 블록의 생성자로 선정됩니다. 그리고 이러한 블록 생성자 선택 과정은 앞서 살펴 본 신뢰할 수 있는 실행 환경에서 이루어지므로 공정하고 신속하게 이루어지며 부정 행위를 효과적으로 방지할 수 있습니다.
이렇게 경과 시간 증명 방식을 통해 합의에 도달하게 되면 블록 생성자로 선택된 노드가 블록을 생성하고 거래를 블록에 기록함으로써 블록체인이 계속해서 이어질 수 있게 됩니다. 그리고 이러한 방식으로 이루어지는 합의 알고리즘을 경과 시간 증명이라고 합니다.
끝으로 경과 시간 증명 방식은 앞서 살펴 본 것처럼 무작위 샘플에 의해 시간이 정해지므로 공정하고, 블록 생성자로 선택된 노드가 정당하게 선택되었는지 빠르게 검증 가능하며 보안성이 높다는 장점이 있습니다. 하지만 Intel SGX를 기반으로 하기 때문에 특정 회사의 기술에 의존한다는 점은 단점이라고 할 수 있습니다.
답변이 도움이 되길 바랍니다.