경과시간증명(POET: Proof Of Elapsed Time)은 어떤 합의 알고리즘인가요?
미국 인텔(Intel)이 개발한 합의 알고리즘이며 한국의 이든체인(EdenChain)이 사용하고 있다는 경과시간증명(POET: Proof Of Elapsed Time)은 어떤 합의 알고리즘인지 알고 싶습니다.
POET(Proof of Elapsed Time) 경과 시간 증명 합의 알고리즘은 방식은 '신뢰할 수 있는 실행 환경'을 활용하여 비잔틴 장군 문제에 대한 해결책을 제시하고 있습니다.
이때 신뢰할 수 있는 실행 환경이라고 함은 Intel SGX(Software Guard Extensions)라는 보안 명령 코드가, 보안 기능을 갖춘 메모리의 실행 영역인 Enclave에서 실행되도록 하는 것을 의미합니다.
즉, 신뢰 할 수 있는 실행 환경에서 합의에 도달하게 되므로 비잔틴 노드의 발생을 원천적으로 방지하는 알고리즘이라고 할 수 있습니다.
그렇다면 계속해서 합의에 어떻게 도달하는지 알아보도록 하겠습니다. POET 합의 알고리즘에서는 그 이름 처럼 '경과 시간'에 따라 블록 생성자를 랜덤으로 선택하게 됩니다.
합의 노드들은 각각 무작위 변수를 샘플링하고 해당 샘플에서 무작위로 제시한 시간 동안을 기다리게 됩니다. 이때 가장 적은 시간을 기다려도 되는, 무작위 샘플링을 통해 가장 적은 경과 시간을 보낸 노드가 블록의 생성자로 선정됩니다. 그리고 이러한 블록 생성자 선택 과정은 앞서 살펴 본 신뢰할 수 있는 실행 환경에서 이루어지므로 공정하고 신속하게 이루어지며 부정 행위를 효과적으로 방지할 수 있습니다.
이렇게 경과 시간 증명 방식을 통해 합의에 도달하게 되면 블록 생성자로 선택된 노드가 블록을 생성하고 거래를 블록에 기록함으로써 블록체인이 계속해서 이어질 수 있게 됩니다. 그리고 이러한 방식으로 이루어지는 합의 알고리즘을 경과 시간 증명이라고 합니다.
끝으로 경과 시간 증명 방식은 앞서 살펴 본 것처럼 무작위 샘플에 의해 시간이 정해지므로 공정하고, 블록 생성자로 선택된 노드가 정당하게 선택되었는지 빠르게 검증 가능하며 보안성이 높다는 장점이 있습니다. 하지만 Intel SGX를 기반으로 하기 때문에 특정 회사의 기술에 의존한다는 점은 단점이라고 할 수 있습니다.
답변이 도움이 되길 바랍니다.