- blobProposer_1blobProposer1 是一個無效的預確認,因此釋出 B_1B1 回滾
- blobProposer_2blobProposer2 是一個有效的預確認,釋出 B_2B2,並且
replaceUnsafeHead = false - 由於
replaceUnsafeHead為 false,blobProposer_2blobProposer2 的validatorProof證明 publicationId_{B_0}publicationIdB0 確實是在 blobProposer_0blobProposer0 的槽位中提交的 - 假設
validatorProof有效,publicationId_{B_0}publicationIdB0 被提升為safeHead,publicationId_{B_2}publicationIdB2 成為新的unsafeHead - Rollup 節點接收到
NewSafeHead事件並處理 B_0B0 以更新其本地 L2 狀態
槽位 N+2
- blobProposer_3blobProposer3 是一個有效的預確認,釋出 B_3B3,並且
replaceUnsafeHead = true - 由於
replaceUnsafeHead為 true,blobProposer_3blobProposer3 的validatorProof證明它不是 blobProposer_2blobProposer2 釋出 B_2B2 時的槽位 - 假設
validatorProof有效,publicationId_{B_2}publicationIdB2 被 publicationId_{B_3}publicationIdB3 替換為unsafeHead - 由於沒有新的
safeHead,Rollup 節點不更新其狀態
槽位 N+3
- blobProposer_4blobProposer4是一個有效的預確認者,釋出了B_4B4,並且
replaceUnsafeHead = false - 由於
replaceUnsafeHead為假,blobProposer_4blobProposer4的validatorProof證明publicationId_{B_3}publicationIdB3確實是在blobProposer_3blobProposer3的時段內提交的 - 假設
validatorProof有效,publicationId_{B_3}publicationIdB3被提升為safeHead,而publicationId_{B_4}publicationIdB4成為新的unsafeHead - Rollup節點接收到
NewSafeHead事件並處理B_3B3以更新其本地L2狀態
假設
- 由於每個釋出要麼替換要麼提升先前的
unsafeHead,為了給信標塊根在鏈上可用留出時間,每個塊只能新增一個釋出 - 根據前面的假設,理性的L1提議者將確保只有他們的釋出交易生效
- 釋出必須至少每天進行一次,以確保連續的提議可以訪問所需的信標塊根(只有最後8091個可在鏈上訪問)。


