메인 콘텐츠로 건너뛰기
Change page

권한 증명(Proof-of-authority, PoA)

페이지 마지막 업데이트됨: 2025년 10월 20일

권위 증명(PoA)지분 증명을 수정한 버전으로, 평판 기반의 합의 알고리즘입니다. 주로 프라이빗 체인, 테스트넷 및 로컬 개발 네트워크에서 사용됩니다. PoA는 지분 증명(PoS)의 지분 기반 메커니즘 대신 승인된 서명자 집합을 신뢰하여 블록을 생성해야 하는 평판 기반 합의 알고리즘입니다.

필수 구성 요소

이 페이지를 더 잘 이해하려면 먼저 트랜잭션, 블록, 합의 메커니즘에 대해 읽어보시는 것을 추천합니다.

권위 증명(PoA)이란 무엇인가요?

권위 증명은 지분 증명(PoS)의 수정된 버전으로, PoS의 지분 기반 메커니즘 대신 평판 기반의 합의 알고리즘을 사용합니다. 이 용어는 2017년 개빈 우드(Gavin Wood)가 처음 소개했으며, 이 합의 알고리즘은 작업 증명(PoW)처럼 고품질의 리소스를 필요로 하지 않고 블록체인을 저장하고 블록을 생성하는 노드의 작은 하위 집합을 통해 지분 증명(PoS)의 확장성 문제를 극복하므로 주로 프라이빗 체인, 테스트넷, 로컬 개발 네트워크에서 사용되어 왔습니다.

권위 증명은 에 설정된 승인된 서명자 집합을 신뢰해야 합니다. 대부분의 현재 구현에서 모든 승인된 서명자는 체인의 합의를 결정할 때 동등한 권한과 특권을 보유합니다. 평판 스테이킹의 기본 아이디어는 고객 신원 확인(KYC) 등을 통해 모든 승인된 검증자가 모든 사람에게 잘 알려져 있거나, 잘 알려진 조직이 유일한 검증자가 되는 것입니다. 이렇게 하면 검증자가 잘못된 행동을 할 경우 신원이 알려집니다.

PoA에는 여러 구현이 있지만, 표준 이더리움 구현은 EIP-225 (opens in a new tab)를 구현하는 clique입니다. Clique는 개발자 친화적이고 구현하기 쉬운 표준이며, 모든 클라이언트 동기화 유형을 지원합니다. 다른 구현으로는 IBFT 2.0 (opens in a new tab)Aura (opens in a new tab)가 있습니다.

작동 방식

PoA에서는 승인된 서명자 집합이 새 블록을 생성하도록 선택됩니다. 서명자는 평판에 따라 선택되며, 새 블록을 생성할 수 있는 유일한 주체입니다. 서명자는 라운드 로빈 방식으로 선택되며, 각 서명자는 특정 시간 프레임 내에 블록을 생성할 수 있습니다. 블록 생성 시간은 고정되어 있으며, 서명자는 해당 시간 프레임 내에 블록을 생성해야 합니다.

이 맥락에서 평판은 정량화된 것이 아니라 Microsoft나 Google과 같은 잘 알려진 기업의 평판을 의미합니다. 따라서 신뢰할 수 있는 서명자를 선택하는 방식은 알고리즘적인 것이 아니라, 예를 들어 Microsoft가 수백 또는 수천 개의 스타트업 간에 PoA 프라이빗 네트워크를 생성하고 유일하게 신뢰할 수 있는 서명자로서 역할을 수행하며 향후 Google과 같은 다른 잘 알려진 서명자를 추가할 가능성을 두는 것과 같이 신뢰라는 일반적인 인간의 행위입니다. 스타트업들은 의심의 여지 없이 Microsoft가 항상 정직하게 행동하고 네트워크를 사용할 것이라고 신뢰할 것입니다. 이는 많은 전력과 리소스를 소비하는 채굴자의 필요성과 함께, 서로 다른 목적으로 구축된 다양한 소규모/프라이빗 네트워크를 분산화되고 기능하도록 유지하기 위해 스테이킹할 필요를 해결합니다. VeChain과 같은 일부 프라이빗 네트워크는 PoA 표준을 그대로 사용하고, Binance와 같은 일부는 PoA와 지분 증명(PoS)의 맞춤형 수정 버전인 PoSA (opens in a new tab)를 사용하여 이를 수정합니다.

투표 과정은 서명자 자신에 의해 수행됩니다. 각 서명자는 새 블록을 생성할 때 자신의 블록에서 서명자의 추가 또는 제거에 투표합니다. 투표는 노드에 의해 집계되며, 투표가 특정 임계값 SIGNER_LIMIT에 도달하면 서명자가 추가되거나 제거됩니다.

작은 포크가 발생하는 상황이 있을 수 있으며, 블록의 난이도는 블록이 순서대로 서명되었는지 또는 순서에 맞지 않게 서명되었는지에 따라 달라집니다. “순서대로” 서명된 블록은 난이도 2를 갖고, “순서에 맞지 않게” 서명된 블록은 난이도 1을 갖습니다. 작은 포크의 경우, 대부분의 서명자가 “순서대로” 블록을 봉인하는 체인이 가장 높은 난이도를 축적하여 승리하게 됩니다.

공격 벡터

악의적인 서명자

악의적인 사용자가 서명자 목록에 추가되거나 서명 키/기기가 손상될 수 있습니다. 이러한 시나리오에서 프로토콜은 재구성과 스팸으로부터 자신을 방어할 수 있어야 합니다. 제안된 해결책은 N명의 승인된 서명자 목록이 주어졌을 때, 모든 서명자는 K 블록마다 1개의 블록만 발행할 수 있다는 것입니다. 이를 통해 피해를 제한하고 나머지 검증자가 악의적인 사용자를 투표로 퇴출시킬 수 있습니다.

검열

또 다른 흥미로운 공격 벡터는 서명자(또는 서명자 그룹)가 승인 목록에서 자신을 제거하는 데 투표하는 블록을 검열하려고 시도하는 경우입니다. 이 문제를 해결하기 위해 서명자의 허용된 발행 빈도는 N/2 중 1로 제한됩니다. 이를 통해 악의적인 서명자는 서명 계정의 최소 51%를 제어해야 하며, 이 시점에서 이들은 사실상 체인의 새로운 신뢰의 원천이 됩니다.

스팸

또 다른 작은 공격 벡터는 악의적인 서명자가 발행하는 모든 블록 내에 새로운 투표 제안을 주입하는 것입니다. 노드는 실제 승인된 서명자 목록을 생성하기 위해 모든 투표를 집계해야 하므로 시간이 지남에 따라 모든 투표를 기록해야 합니다. 투표 창에 제한을 두지 않으면 이 목록은 느리지만 무한정으로 증가할 수 있습니다. 해결책은 W 블록의 이동 창을 두어 그 이후의 투표는 오래된 것으로 간주하는 것입니다. 합리적인 창은 1~2 에폭이 될 수 있습니다.

동시 블록

PoA 네트워크에서 N명의 승인된 서명자가 있을 때 각 서명자는 K 블록 중 1개의 블록을 발행할 수 있습니다. 이는 특정 시점에 N-K+1명의 검증자가 발행할 수 있음을 의미합니다. 이러한 검증자들이 블록 경쟁을 하는 것을 방지하기 위해 각 서명자는 새 블록을 릴리스하는 시간에 작은 무작위 "오프셋"을 추가해야 합니다. 이 프로세스는 작은 포크를 드물게 만들지만, 메인넷처럼 가끔 포크가 발생할 수 있습니다. 서명자가 권력을 남용하고 혼란을 야기하는 것이 발견되면 다른 서명자들이 투표를 통해 퇴출시킬 수 있습니다.

예를 들어, 10명의 승인된 서명자가 있고 각 서명자가 20개의 블록 중 1개의 블록을 생성할 수 있다면, 특정 시점에 11명의 검증자가 블록을 생성할 수 있습니다. 그들이 블록 생성을 위해 경쟁하는 것을 방지하기 위해 각 서명자는 새 블록을 릴리스하는 시간에 작은 무작위 "오프셋"을 추가합니다. 이는 작은 포크의 발생을 줄이지만 이더리움 메인넷에서 볼 수 있듯이 가끔 포크가 발생할 수 있습니다. 서명자가 자신의 권한을 오용하고 혼란을 야기하면 네트워크에서 투표로 퇴출될 수 있습니다.

장단점

장점단점
제한된 수의 블록 서명자를 기반으로 하므로 지분 증명(PoS) 및 작업 증명(PoW)과 같은 다른 인기 있는 메커니즘보다 확장성이 뛰어납니다.PoA 네트워크는 일반적으로 상대적으로 적은 수의 검증 노드를 가집니다. 이로 인해 PoA 네트워크는 더 중앙화됩니다.
PoA 블록체인은 운영 및 유지 비용이 매우 저렴합니다.블록체인은 확립된 평판을 가진 주체를 요구하기 때문에, 일반인이 승인된 서명자가 되는 것은 일반적으로 어렵습니다.
새 블록을 검증하는 데 제한된 수의 서명자만 필요하기 때문에 트랜잭션이 1초 이내로 매우 빠르게 확인될 수 있습니다.악의적인 서명자는 네트워크에서 재구성을 하거나, 이중 지불을 하거나, 트랜잭션을 검열할 수 있으며, 이러한 공격은 완화되었지만 여전히 가능합니다.

더 읽어보기

시각 자료를 찾고 있나요? 시각적 학습자

권위 증명에 대한 시각적 설명을 시청하세요:

이 문서가 도움이 되셨나요?