모델
IntentionBFT는 전체 지분의 3분의 1까지를 통제하는 비잔틴 공격자를 견딥니다. 따라서 정직한 지분은 언제나 3분의 2를 넘고, 표준 정족수는 합산 지분이 3분의 2를 넘는 검증자 집합입니다. 이 문서에서 지분 가중 정족수라고 부르는 것이 이 집합입니다. 네트워크는 부분 동기입니다. 안정화 시점 이전에는 지연이 임의적이고, 그 이후에는 정직한 검증자 사이의 지연에 상한이 있습니다.오라클 sidecar검증자별 하나
검증자가 검증하고 서명설정된 임계값 대비 신선도 포함
검증자 간 gossip 전파합의 네트워크 메시지로
인증 가격에포크 · 라운드별
가격 가용성이 블록 생성을 좌우검증자는 현재 라운드의 유효한 가격 관측을 제시할 수 있을 때만 블록을 제안할 자격을 갖습니다. 따라서 트랜잭션을 커밋하는 서명이 그 트랜잭션이 결제되는 가격까지 함께 커밋합니다.
이것이 주장하지 않는 것가격을 트랜잭션에 묶을 뿐, 가격이 옳다는 뜻은 아닙니다. 합의가 인증하는 것은 검증자 정족수가 이 라운드에 이 관측값을 제출했다는 사실, 그뿐입니다.
순서를 커밋하기
블록 안의 트랜잭션 순서는 실행의 부산물로 남지 않고 합의가 커밋하는 객체로 격상됩니다. 블록 해시가 순서 지어진 페이로드까지 포괄하므로, 합의 이후에 순서를 다시 바꾸면 그 순서를 커밋한 서명이 곧바로 무효가 됩니다. 그 효과는 이렇습니다. 블록이 최종화되고 나면 지분 가중 정족수가 바로 그 순서에 대한 약속에 서명한 상태이고, 정직한 검증자라면 같은 라운드에서 같은 트랜잭션 집합의 다른 순서에 서명했을 리가 없습니다. 커밋된 순서를 따르는 순차 실행과 결합되면, 이것이 결정론적 재실행을 구현상의 관행에서 누구나 검사할 수 있는 성질로 바꿉니다.하나의 제안 안에서 리더가 갖는 재량, 즉 가용한 배치 중 무엇을 넣고 어떻게 배열할지는 여전히 남아 있는 표면입니다. 리더 평판과, 유효한 가격 관측 없이는 리더가 애초에 블록을 만들 수 없다는 사실이 이를 완화합니다. 더 강한 공정 순서 구성은 향후 업그레이드 후보로 관리되고 있습니다.
배치 가용성
소박한 프로토콜에서는 리더가 그 라운드의 트랜잭션 전부를 페이로드에 담아 블록을 제안하고, 그 결과 합의 메시지 크기가 처리량에 묶입니다. IntentionBFT는 데이터 전파와 순서 결정을 분리합니다. 검증자는 배경에서 트랜잭션 배치를 계속 전파합니다. 각 배치는 원 발신자가 지분 가중 가용성을 증명할 수 있을 때까지 확인을 받고, 그 뒤에야 제안이 그 배치를 참조할 수 있습니다. 내용이 아니라 다이제스트로 참조합니다. 합의 메시지는 처리량과 무관하게 작게 유지되고, 커밋된 블록은 언제나 재실행할 수 있습니다. 비잔틴 소수만 쥐고 있던 데이터를 어떤 블록도 참조할 수 없기 때문입니다.가격 인증
검증자는 가격 관측자이기도 하며, 블록은 자신이 실행 기준으로 삼은 가격을 함께 담고 갑니다.검증자합의 · 멤풀 · 오라클 sidecar · 커널 · 저장소
투표하는 참여자는 이들뿐
검증자 풀 노드커밋된 블록을 따라가며 실행 · 투표하지 않음
차단 — 공개 읽기 트래픽과 피어 연결을 대신 받아 검증자가 열린 인터넷에 직접 노출되지 않게 함
퍼블릭 풀 노드누구나 운영 가능 · 따라가고, 실행하고, 읽기에 응답
개방된 계층
클라이언트프런트엔드 · 거래 에이전트 · 마켓 메이커 · 인덱서
검증자가 아니라 풀 노드에 연결합니다. 가장 낮은 지연과 가장 완전한 뷰가 필요하면 자기 노드를 운영합니다.
합의에서 바깥으로, 네 개 계층
그 계층이 존재하는 이유
리더 평판
리더는 결정론적 지분 가중 순환으로 라운드마다 선정되며, 여기에 슬라이딩 윈도 기반 평판 휴리스틱이 더해집니다. 제안에 반복해서 실패하는 검증자는 가용하지 않거나 적대적으로 행동한다는 신호이므로, 이후 선정에서 강등되고 그 슬롯은 최근 응답이 좋은 검증자에게 재분배됩니다. 그래서 가용하지 않은 검증자가 자기 몫의 슬롯에 대한 리더 자리를 붙들고 진행을 멈춰 세우지 못합니다. 가격 관측이 제안 자격을 좌우하므로, 평판 역시 시장 데이터 연결이 가장 좋은 검증자에게 리더 자리가 몰리는 일을 피해야 합니다. 종목마다 여러 독립 소스에서 관측을 가져오도록 하는 거래소 다양성 요건이 그 경로를 막습니다.에포크와 재구성
시간은 에포크 단위로 조직됩니다. 한 에포크 안에서 검증자 집합과 대부분의 파라미터는 고정입니다. 에포크 경계에서는 거버넌스가 승인한 재구성을 거쳐 이 값이 바뀔 수 있습니다. 검증자 집합 변경, 합의 파라미터 변경, 리스크 파라미터 갱신, 긴급 조치가 여기에 해당합니다. 전환은 원자적입니다. 정직한 검증자는 모두 같은 블록 높이에서 같은 전환을 봅니다.네트워크 토폴로지
리더
검증자
체인
2f+1 지분 가중 집계
이제 순서와 가격은 바뀌지 않습니다
블록 제안 — 배치 다이제스트와 인증 가격
가용성 · 순서 · 가격 검증
투표
라운드 인증
커밋
다음으로 읽을 문서
멤풀
무엇이 어떤 순서로 합의에 도달하고, 무엇이 버려지는지 설명합니다.
IntentionKernel
순서와 가격이 커밋된 뒤 블록에 무슨 일이 일어나는지 설명합니다.
오라클
검증자가 서명하기 전에 인덱스 가격이 만들어지는 과정입니다.
노드 운영
검증자 집합이 닫혀 있는 이유와, 합류를 문의하는 방법입니다.