모든 분을 위한 문서 / 작동 방식
정산과 기록
모든 블록의 내용은 블록 0을 포함해 순서대로 게시되며, Ethereum은 항상 데이터 자체 또는 다른 곳에서 이용 가능한 데이터에 대한 커밋을 보유합니다. 그것이 체인을 단순히 주장되는 것이 아니라 검사 가능한 것으로 만듭니다.
두 단계의 게시
| 단계 | 보유하는 것 |
|---|---|
| 데이터 가용성 레이어 | 블록당 전체 페이로드콘텐츠 주소 지정, 해시로 키가 지정됨; 시퀀서는 이에 의존하기 전에 확인 응답 다이제스트를 검증합니다 |
| Ethereum 인박스 컨트랙트 | 페이로드를 명명하는 간결한 봉투60초의 스케줄링 목표마다 하나의 커밋, 블롭 또는 콜데이터는 측정된 가격으로 선택 |
| 대비책 | Ethereum의 콜데이터로 전체 페이로드데이터 가용성 경로가 실패할 때마다 택하므로, 장애 중에도 체인은 파생 가능한 상태로 유지됩니다 |
모든 영수증을 서류 보관실에 보관하고, 1분마다 은행에 "제가 방금 보관한 영수증들의 지문은 이것입니다"라는 봉인된 요약을 보내는 가게를 상상해 보십시오. 은행은 지문으로 영수증을 읽을 수는 없지만, 서류 보관실에 들어가는 누구든 아무것도 바뀌지 않았음을 검사할 수 있습니다. 그리고 서류 보관실에 접근할 수 없게 되면, 가게는 대신 영수증 자체를 은행에 보냅니다. Pickle의 시퀀서가 가게이고, 데이터 가용성 레이어가 서류 보관실이며, Ethereum이 은행입니다.
봉인된 각 블록은 전체 트랜잭션 목록을 운반하는 파생 페이로드를 만듭니다. 페이로드는 해시로 키가 지정된 콘텐츠 주소 지정 데이터 가용성 레이어에 저장되고, 시퀀서는 이에 의존하기 전에 확인 응답을 검증합니다. 그다음 그 페이로드를 명명하는 간결한 봉투가 Ethereum의 인박스 컨트랙트에 커밋됩니다. 어떤 이유로든 데이터 가용성 경로가 실패하면, 전체 페이로드가 대신 콜데이터로 Ethereum에 게시됩니다.
모든 블록은 블록 0을 포함해 순서대로 게시됩니다. 인박스 컨트랙트는 지정된 배처 키로부터의 추가만 받아들이고 배치마다 인덱스가 붙은 이벤트를 내보냅니다. 그 인덱스가 모든 검증자가 따르는 전체 순서입니다.
페이로드는 블록의 전체 트랜잭션 목록과 함께 블록 범위, 부모 해시, 블록 해시, 커밋된 타임스탬프를 운반합니다. 타임스탬프가 포함되는 이유는 그것이 헤더만의 일부가 아니라 실행 환경의 일부이며, 레플리카가 같은 해시를 봉인하려면 같은 시계에 대해 실행해야 하기 때문입니다. 게시는 두 단계입니다. 페이로드는 확인 응답 시 다이제스트 검증을 거쳐 그 해시 아래 콘텐츠 주소 지정 저장소로, 봉투는 집계 윈도우마다 L1 인박스 컨트랙트로 갑니다. 인박스 컨트랙트는 배처로 게이트되어 있으며 추가마다 인덱스가 붙은 이벤트를 내보냅니다. 커밋 수단인 블롭 또는 콜데이터는 측정된 가격에 따라 제출마다 선택되는데, 이 페이로드 크기에서는 블롭 수수료가 낮을 때 실행 가스가 지배적이고 높을 때는 단순 콜데이터가 유리하기 때문입니다.
페이로드가 운반하는 것
- 블록의 전체 트랜잭션 목록. 블록에 관해 아무것도 신뢰할 필요가 없도록 합니다.
- 블록 범위, 부모 해시, 블록 해시. 레플리카가 어디에 맞는지, 무엇을 재현해야 하는지 알 수 있도록 합니다.
- 커밋된 타임스탬프. 시계를 읽은 트랜잭션은 그 값을 보았고, 다른 시계에 대해 실행하는 레플리카는 다른 해시를 봉인할 것이기 때문입니다.
윈도우당 하나의 커밋인 이유
Ethereum은 봉인된 블록마다 하나의 트랜잭션을 받지 않습니다. 전체 데이터는 블록마다 데이터 가용성 레이어로 가고, 60초의 스케줄링 목표를 갖는 집계 윈도우마다 하나의 커밋이 Ethereum으로 갑니다. 집계는 모델링된 정산 비용을 블록마다 게시하는 설계가 초래할 수천만 또는 수억 달러가 아니라 연간 수백만 달러 초반대로 유지하는 요소입니다. 한계 페이지는 모델링된 범위와 그것이 무엇에 근거하는지를 제시합니다.
독립적인 검증
어떤 운영자든 같은 바이너리를 레플리카로 운영할 수 있습니다. 레플리카는 아무것도 생산하지 않습니다. 마지막으로 적용한 인덱스부터 Ethereum 인박스 컨트랙트를 읽고, 각 페이로드를 콘텐츠 주소로 가져오거나 인라인 콜데이터 대비책을 디코딩하고, 커밋된 타임스탬프에 대해 모든 트랜잭션을 순서대로 재실행하고, 블록을 로컬에서 봉인하고, 해시를 시퀀서가 커밋한 것과 비교합니다.
어떤 불일치에서도 레플리카는 영구적으로 정지합니다
분기는 설계상 종결적입니다. 재시도하면 블록을 더 봉인하여 정식 체인에서 멀어지고 원인을 묻어 버리게 될 것입니다. 정지한 레플리카는 게시된 데이터와 커밋된 해시가 일치하지 않는다는 신호입니다. 온체인의 어떤 것도 그 불일치를 판정하지 않습니다. 신뢰 모델 페이지가 그로부터 무엇이 따라오는지 말합니다.
동기화된 레플리카는 독립적으로 파생한 자기 상태에서 표준 읽기 RPC를 제공합니다. 그 잔액, 영수증, 헤더는 시퀀서의 답을 신뢰한 복사본이 아니라 로컬에서 다시 파생한 것입니다. 트랜잭션 제출은 시퀀서로 전달되며, 레플리카는 로컬 멤풀에 아무것도 받아들이지 않습니다.
이력을 읽는 곳
시퀀서는 현재에 관해 답하도록 최적화되어 있으며 최근 블록의 짧은 기간만 유지합니다. 전체 이력은 시퀀서가 지속적으로 공급하는 익스플로러의 데이터베이스에 인덱싱되며, 이력에 관한 모든 것은 그곳에서 답합니다. 둘 다 같은 게시된 페이로드의 하류에 있으며, 레플리카는 Ethereum과 데이터 가용성 레이어만으로 어느 쪽이든 재구축할 수 있습니다.