Protocol DAO (pDAO)
Rocket Pool Protocol DAO (pDAO)는 프로토콜의 방향을 형성하는 책임이 있으며 RPL 거버넌스에 의해 운영됩니다. 그 멤버와 투표권은 크고 작은 노드 운영자로 구성되며, 모두 프로토콜에 직접 참여하고 있습니다. rETH 보유자, 노드 운영자 및 RPL 보유자를 포함하여 전체 Rocket Pool 커뮤니티에 서비스를 제공합니다. pDAO는 Rocket Pool 프로토콜의 안전과 Ethereum 네트워크의 건강을 우선시합니다. pDAO가 누구이고 무엇인지에 대한 명시적 정의는 pDAO charter를 참조하십시오.
Houston의 새로운 pDAO 기능
pDAO 책임의 온체인 실행
Houston 업그레이드는 pDAO 거버넌스 시스템의 실행 프로세스에 대한 온체인 대체품을 도입합니다. 모든 노드 운영자가 제안을 제기하고 "pDAO 프로토콜 매개변수"를 조정하고 재무 자금을 지출하는 제안에 투표할 수 있도록 하는 낙관적 사기 증명 시스템을 사용합니다. pDAO 제어 가능한 매개변수의 포괄적인 목록을 보려면 여기를 클릭하십시오. Houston 이전에는 핵심 팀이 커뮤니티 거버넌스 프로세스의 요청에 따라 pDAO 작업을 실행할 책임이 있었습니다. 예를 들어, 팀은 거버넌스 투표된 지불 일정에 따라 월별 IMC 및 GMC 지불을 수행합니다. 새로운 권력 구조가 이러한 책임을 인수할 때까지 이 권한이 일시적으로 팀에 있을 계획이었습니다. Houston은 팀에 대한 이러한 종속성을 제거하여 프로토콜을 더욱 분산화하고 신뢰할 수 있게 만듭니다.
Security Council
Houston 업그레이드에는 프로토콜의 잠재적 문제 발생 시 신속하게 대응할 수 있는 새로운 security council도 포함되어 있습니다. 이러한 멤버는 pDAO에 의해 선출될 수 있으며 지연 없이 변경을 제안하고 실행할 수 있는 능력이 있습니다. pDAO는 security council에서 멤버를 선출하고 제거할 권한이 있습니다. 이것은 심각한 역할이며 pDAO는 강력한 진입 요건과 오래된 멤버를 제거하는 프로세스를 개발해야 합니다. pDAO guardian은 Houston 시작 시 security council의 유일한 멤버가 될 것입니다.
반복 재무 지출
RPL은 5% 인플레이션 비율을 가지고 있습니다. 이 인플레이션의 22%는 RPIP-25에 정의된 대로 pDAO로 향합니다. pDAO는 이러한 자금을 다양한 목적으로 사용할 수 있습니다. 예를 들어, 유동성 공급자 (LP) 보너스와 같은 인센티브, 타사 개선 및 프로젝트에 대한 보조금 및 현상금, Rocket Pool 프로토콜 개발 자금 지원. Houston 업그레이드는 또한 각 보상 기간마다 지정된 수혜자에게 반복 재무 지불을 가능하게 하는 새로운 기능을 도입합니다.
Protocol DAO (pDAO) 제안
0이 아닌 투표권을 가진 모든 노드는 언제든지 pDAO 제안을 제기하거나 참여할 수 있습니다. 제안은 다음 유형 중 하나일 수 있습니다:
- pDAO 설정 변경
- 일회성 재무 지출
- 반복 재무 지출 (관리 위원회)
- Security council 멤버십
자세한 내용과 근거는 제안 유형을 참조하십시오. pDAO 제안이 프로토콜 수준에서 변경을 실행하기 위해 존재하는 온체인 엔티티임을 이해하는 것이 중요합니다.
pDAO 제안의 수명 주기
제안은 온체인에 올라가기 전에 거버넌스 프로세스에 의해 예측되어야 합니다. 4개의 기간으로 구성되며, 모두 pDAO 제어 가능한 매개변수입니다:
- Vote Delay Period:
proposal.vote.delay.time - Vote Phase 1:
proposal.vote.phase1.time - Vote Phase 2:
proposal.vote.phase2.time - Execution:
proposal.execute.time
Vote Delay Period
제안의 결과를 결정하기 위해 프로토콜은 필요한 정족수를 알아야 합니다. 제안자는 이 값을 오프체인에서 계산하고 제안과 함께 제출합니다. 값은 낙관적으로 수락되지만 사기의 경우 검증자는 값이 올바르지 않음을 증명하기 위해 챌린지/응답 프로세스를 수행할 수 있습니다. 무효 제안은 폐기됩니다.
제안자와 챌린저가 RPL을 잠가야 하는 몇 가지 이유.
proposal.bond는 유효한 제안을 장려하고 스팸을 억제합니다.proposal.challenge.bond는 무효/악의적인 제안의 제거를 장려합니다.
챌린저는 올바르지 않다고 주장하는 Merkle-sum 트리의 인덱스를 제공합니다. 모든 노드 운영자는 사기 제안 챌린지에 참여할 수 있습니다 (그렇게 함으로써 보상을 얻을 수 있습니다). 참여하는 방법에 관심이 있다면 pDAO Challenge Process를 읽어보십시오. vote delay period가 끝날 때까지 챌린지에서 패배하지 않은 제안은 투표 단계로 들어갑니다.
proposal.vote.delay.time이 만료되면 제안은 더 이상 챌린지하거나 패배시킬 수 없습니다.
Vote Period 1
투표 기간 동안 노드 운영자 및 대리인은 다음 네 가지 옵션 중 하나로 투표할 수 있습니다:
그들의 투표권은 선택한 옵션에 포함됩니다.
이것은 다음 명령어를 사용하여 수행할 수 있습니다:
거부권 정족수 (proposal.veto.quorum 매개변수로 정의됨)가 충족되면 제안이 즉시 패배하고 제안자는 보증금을 잃습니다. 이것은 스팸, 저품질 제안 또는 오프체인 프로세스를 먼저 거치지 않은 제안을 억제하기 위한 것입니다. smartnode 명령어 rocketpool pdao proposals finalize는 제안자의 잠긴 RPL 보증금을 소각하여 거부된 제안을 완료하는 데 사용됩니다.
period 1의 기간은 proposal.vote.phase1.time 매개변수에 의해 결정됩니다. 제안은 proposal.quorum이 달성되었는지 여부에 관계없이 phase 2로 전환됩니다.
Vote Period 2
대리인은 vote period 2 동안 투표할 수 있지만 그들의 투표는 로컬 투표권의 가치만 있습니다. period 1에서 투표하지 않은 투표자는 여전히 period 2 동안 투표할 수 있습니다. 대리인의 선택에 동의하지 않는 노드 운영자는 대리인의 투표를 뒤집을 기회가 있습니다.
투표를 뒤집는 과정은 매우 간단합니다. vote period 2 동안 rocketpool pdao proposals vote를 호출하고 프롬프트를 따르십시오. 대리인의 투표권은 위임받은 사람의 투표권에 의해 뒤집힙니다.
제안의 결과는 vote period 2가 끝나면 결정됩니다. 결과가 결정되고 (실행되기 위해) proposal.quorum 총 투표권이 proposal.vote.phase2.time 종료 시까지 도달해야 합니다. 정족수가 충족되고 합의에 도달하면 제안이 투표 기간을 통과하고 성공으로 표시됩니다.
proposal.quorum이 충족되지 않은 경우 추가 조치를 취할 수 없습니다. 정족수가 충족되지 않으면 제안은 종료되고 최종적인 것으로 간주됩니다.
Execution
두 투표 기간이 모두 통과하고 제안이 성공하면 제안을 실행할 수 있으며 변경 (페이로드로 정의됨)이 Rocket Pool 프로토콜에 적용됩니다. 제안을 실행하려면 다음 명령어를 사용하십시오:
실행할 제안을 선택하라는 메시지가 표시됩니다. 이 단계 후에 제안이 프로토콜에 적용됩니다!
제안이 투표 기간을 통과한 후 제안자는 챌린지에 의해 패배하거나 거부되지 않는 한 잠긴 RPL 보증금을 청구할 수 있습니다.
제안을 실행할 수 있는 proposal.execute.time 창이 있습니다. 이 타이머가 끝에 도달하면 제안이 만료됩니다.
그리고 그게 전부입니다! 위에서 언급한 모든 변수는 pDAO 제어 가능한 매개변수라는 점을 명심하십시오. pDAO가 온체인 제안을 사용하여 변경할 권한이 있는 모든 매개변수의 포괄적인 목록은 여기를 클릭하십시오.
Challenge Process
완전한 네트워크 투표권 트리는 가스 제한으로 인해 오프체인에 저장됩니다. 사용자가 새 제안을 제출하면 대상 블록 번호에서 네트워크 투표 트리를 구성할 책임이 있습니다. 이 트리는 오프체인에서 생성되지만 온체인에 제출된 Merkle 루트를 통해 검증 가능합니다. 프로토콜은 제안자가 제출한 세부 정보의 정확성을 확인하기 위해 검증자에 의존합니다.
모든 노드는 제안의 정확성을 추적하고 검증하는 데 참여할 수 있습니다. 이 책임을 선택하려면 rocketpool service config 명령어를 사용하고 Smartnode and TX Fee Settings 메뉴로 이동한 다음 Enable PDAO Proposal Checker 상자를 선택하십시오.
이 설정이 활성화되면 노드는 새 제안을 확인하고 정확성을 검증하며 무효 제안에 대한 챌린지를 제출합니다. 유일한 전제 조건은 RPL Locking이 활성화되어 있다는 것입니다.
이 확인은 몇 가지 다른 노드 관련 작업과 함께 5분마다 실행됩니다. 사기 제안 챌린지의 예를 살펴보겠습니다. smartnode 명령어 rocketpool service logs node를 사용하여 진행 상황을 모니터링할 수 있습니다:
노드가 사기 제안을 포착하고 챌린지 프로세스를 시작한 것을 볼 수 있습니다. 블록 1283202는 제안 177이 제기된 블록으로, 이 제안에 대한 투표권이 블록 1283202에서 계산됩니다. 이러한 Voting Info Snapshots의 모습에 관심이 있다면 이 디렉토리 ~/.rocketpool/data/voting에서 찾을 수 있습니다.
제안자가 올바르지 않은 투표 정보를 제출한 것이 적발되었기 때문에 노드는 제안 177의 인덱스 5에 대해 계약 호출 Function: createChallenge를 만들고 제안자가 챌린지에 응답하기를 기다립니다.
제안자의 투표 정보가 올바르지 않기 때문에 제한 시간 (proposal.challenge.period로 결정됨) 내에 챌린지에 응답할 수 없습니다. 이 시점에서 제안은 패배한 것으로 간주됩니다. 제안이 패배하면 노드가 자동으로 제안 177의 인덱스 5에 대해 계약 호출 defeatProposal을 만들어 제안을 종료합니다.
제안을 패배시키는 데 참여한 챌린저는 올바르지 않은 것으로 증명된 인덱스를 제출하면 제안자의 보증금 중 비례 금액을 지급받습니다. 다른 모든 챌린저는 보증금만 돌려받습니다.
이제 제안이 패배했으므로 노드 (챌린저)는 원래 RPL 보증금과 사기 제안을 패배시킨 보상으로 제안자의 RPL 보증금을 청구할 수 있습니다.
pDAO 제안 및 챌린지 시스템의 세부 사항을 파고들고 싶다면 기술 사양을 살펴보십시오. 낮은 수준의 세부 사항을 포함하는 예를 연구하는 데 관심이 있다면 챌린지 프로세스에 대한 이 섹션으로 건너뛰십시오.