You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -383,21 +405,21 @@ The preconfers will need to eventually include their preconfed L2 transactions i
383
405
384
406
Preconf equivocation can be categorized into four categories:
385
407
386
-
-**RawTxList/anchorID mismatch:** The preconfer failed to honor the transaction ordering and/or anchor ID they preconfed.
408
+
-**Block commitment mismatch:** The preconfer failed to honor the rawTxList, anchor ID, timestamp, or gas limit they preconfed.
387
409
-**Missed submission**: The preconfer did not submit the preconfed block to the Taiko inbox.
388
410
-**Invalid EOP:** The preconfer included additional L2 blocks after their `EOP=true` block.
389
411
-**Missing EOP:** The preconfer did not include set `EOP=true` in their final preconfed block.
390
412
391
413
Let’s examine each category in detail.
392
414
393
-
### **RawTxList/anchorID** Mismatch Slashing
415
+
### Block Commitment Mismatch Slashing
394
416
395
-
Slash when the rawTxList/anchorID for a given L2 block ID differs between:
417
+
Slash when the rawTxList/anchorID/timestamp/gasLimit for a given L2 block ID differs between:
396
418
397
419
- The block is **preconfed** and published on the P2P network.
398
420
- The block was **submitted** to L1 and later proven.
399
421
400
-
For example, in this diagram, the preconfed block `B1` (preconfed in P2P) and the submitted block `B1′` (submitted to L1) have different rawTxList/anchorID for the same L2 block ID.
422
+
For example, in this diagram, the preconfed block `B1` (preconfed in P2P) and the submitted block `B1′` (submitted to L1) have different rawTxList/anchorID/timestamp/gasLimit for the same L2 block ID.
401
423
402
424

403
425
@@ -417,7 +439,7 @@ However, checking `submissionWindowEnd` alone is not sufficient to protect preco
417
439
418
440

419
441
420
-
To protect against such cases, we compare not only the `rawTxList`and `anchorId` of the preconfirmed and submitted blocks, but also their **parent**`rawTxList`, `anchorId`, and `submissionWindowEnd` values. If any of these parent values differ, the slashing is not applied to the current preconfer. Instead, the slashing entity is expected to target the parent block. This allows us to trace the divergence back transitively to the original L2 block where the mismatch first occurred.
442
+
To protect against such cases, we compare not only the `rawTxList`, `anchorId`, `timestamp`, and `gasLimit` of the preconfirmed and submitted blocks, but also their **parent**`rawTxList`, `anchorId`, and `submissionWindowEnd` values. If any of these parent values differ, the slashing is not applied to the current preconfer. Instead, the slashing entity is expected to target the parent block. This allows us to trace the divergence back transitively to the original L2 block where the mismatch first occurred.
0 commit comments