diff --git a/packages/protocol/contracts/L1/TaikoData.sol b/packages/protocol/contracts/L1/TaikoData.sol index 876d82ad7d0..7bf342f28d3 100644 --- a/packages/protocol/contracts/L1/TaikoData.sol +++ b/packages/protocol/contracts/L1/TaikoData.sol @@ -145,13 +145,6 @@ library TaikoData { bytes32[7] __reserved; } - /// @dev Struct representing information about a transaction list. - /// 1 slot used. - struct TxListInfo { - uint64 validSince; - uint24 size; - } - /// @dev Struct representing an Ethereum deposit. /// 1 slot used. struct EthDeposit { diff --git a/packages/protocol/contracts/L1/TaikoEvents.sol b/packages/protocol/contracts/L1/TaikoEvents.sol index c4a0ceb5751..6836bcc0983 100644 --- a/packages/protocol/contracts/L1/TaikoEvents.sol +++ b/packages/protocol/contracts/L1/TaikoEvents.sol @@ -38,6 +38,7 @@ abstract contract TaikoEvents { /// @param prover The prover whose transition is used for verifing the /// block. /// @param blockHash The hash of the verified block. + /// @param signalRoot The latest value of the signal service storage. event BlockVerified( uint256 indexed blockId, address indexed assignedProver, @@ -79,7 +80,7 @@ abstract contract TaikoEvents { /// @dev Emitted when a user withdrawed Taiko token from this contract. event TokenWithdrawn(uint256 amount); - /// @dev Emitted when Taiko token are credited to the user's in-protocol + /// @dev Emitted when Taiko token are credited to the user's in-protocol /// balance. event TokenCredited(uint256 amount, bool minted); diff --git a/packages/protocol/contracts/L1/TaikoL1.sol b/packages/protocol/contracts/L1/TaikoL1.sol index 90959f70448..bae71eb42db 100644 --- a/packages/protocol/contracts/L1/TaikoL1.sol +++ b/packages/protocol/contracts/L1/TaikoL1.sol @@ -40,7 +40,7 @@ contract TaikoL1 is TaikoData.State public state; uint256[100] private __gap; - /// @dev Fallback function to receive Ether and deposit to to Layer 2. + /// @dev Fallback function to receive Ether and deposit to Layer 2. receive() external payable { depositEtherToL2(address(0)); } diff --git a/packages/website/excalidraw/ContestableZkRollup.excalidraw b/packages/website/excalidraw/ContestableZkRollup.excalidraw new file mode 100644 index 00000000000..bf38e814dd8 --- /dev/null +++ b/packages/website/excalidraw/ContestableZkRollup.excalidraw @@ -0,0 +1,5354 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "arrow", + "version": 4929, + "versionNonce": 169167796, + "isDeleted": false, + "id": "KmaHjIkt2YFnsnyuvF0nV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2360.5984616708947, + "y": -59.35150849590064, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ff8787", + "width": 503.19965361451705, + "height": 240.5333005077137, + "seed": 670877941, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695715456176, + "link": null, + "locked": false, + "startBinding": { + "elementId": "efcQM54D8Yfp6DIrPKPzO", + "focus": -0.4482966105782266, + "gap": 23.3746777708119 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 242.00646389518852, + 6.93988715941078 + ], + [ + 503.19965361451705, + 30.041656136730317 + ], + [ + 434.95952262735955, + 240.5333005077137 + ] + ] + }, + { + "type": "text", + "version": 525, + "versionNonce": 1165851020, + "isDeleted": false, + "id": "2c412CrC5G2jr3Ae_RWTJ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2304.92117286735, + "y": -399.65070115342417, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 821.5161212198319, + "height": 164.97534976868934, + "seed": 1044606645, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 65.99013990747571, + "fontFamily": 1, + "text": "Contestable zkRollup\nwith a tier based system", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Contestable zkRollup\nwith a tier based system", + "lineHeight": 1.25, + "baseline": 141 + }, + { + "type": "arrow", + "version": 3937, + "versionNonce": 1985590580, + "isDeleted": false, + "id": "F32Cx-9pck7KytU4wRBJH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2507.0877030784027, + "y": 403.1085474116693, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2f9e44", + "width": 434.8992912583358, + "height": 188.1294539409627, + "seed": 15557493, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "startBinding": { + "elementId": "cByu9Zs8ftWD84fzLqCb2", + "focus": 0.18641009024862026, + "gap": 5.506232821122126 + }, + "endBinding": { + "elementId": "efcQM54D8Yfp6DIrPKPzO", + "gap": 10.138131862508658, + "focus": -0.26758960996683867 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -47.32935061825765, + -23.90801675731052 + ], + [ + -393.09040208819806, + -22.62574588687255 + ], + [ + -434.8992912583358, + -188.1294539409627 + ] + ] + }, + { + "type": "rectangle", + "version": 1272, + "versionNonce": 2100193292, + "isDeleted": false, + "id": "jzHffd4Y3hpCVS4-r7099", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2440.3360665410755, + "y": 223.78801989238704, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2f9e44", + "width": 128.46047995939227, + "height": 116.29053584326857, + "seed": 88127093, + "groupIds": [ + "A8lljxBE1t_sdG_8gKREG" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1229, + "versionNonce": 22343348, + "isDeleted": false, + "id": "AHEsnhErGOeJ2_u41E811", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2451.018577169642, + "y": 249.48010350435814, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 1093410773, + "groupIds": [ + "A8lljxBE1t_sdG_8gKREG" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "yVqkGScPYA4mcMIYCN1fF", + "type": "arrow" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 2)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 2)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "rectangle", + "version": 1420, + "versionNonce": 498960012, + "isDeleted": false, + "id": "4wJli-YdDyW6UhrMR2c91", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2933.569164030544, + "y": 229.88544979461471, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 128.46047995939227, + "height": 116.29053584326857, + "seed": 1578309205, + "groupIds": [ + "dcVPX_EgDjjdHvFbkOXUl" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "UzJ_Nrsm-YC6l9hQaBQYe", + "type": "arrow" + }, + { + "id": "aU-knkYW7UzPVFBrgNOMJ", + "type": "arrow" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1356, + "versionNonce": 1269626932, + "isDeleted": false, + "id": "6rwFz2EdI58JeDNNb4Wv8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2944.2516746591104, + "y": 271.80412556141744, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 107.12255831943664, + "height": 32.45318430966318, + "seed": 879199157, + "groupIds": [ + "dcVPX_EgDjjdHvFbkOXUl" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "UzJ_Nrsm-YC6l9hQaBQYe", + "type": "arrow" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block", + "lineHeight": 1.25, + "baseline": 23 + }, + { + "type": "rectangle", + "version": 1303, + "versionNonce": 1273287948, + "isDeleted": false, + "id": "m9SoCKU4iWKA2w5uqJnhb", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2601.3292662781364, + "y": 225.16553156522917, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 128.46047995939227, + "height": 116.29053584326857, + "seed": 680683765, + "groupIds": [ + "UbxVlAm6xExTt2TucCLTj" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1258, + "versionNonce": 1900532148, + "isDeleted": false, + "id": "C0buE4cVI01Pq5sznAVDf", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2612.0117769067033, + "y": 250.8576151772003, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 614695509, + "groupIds": [ + "UbxVlAm6xExTt2TucCLTj" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "yVqkGScPYA4mcMIYCN1fF", + "type": "arrow" + }, + { + "id": "Q8-5k1wcmzqxx5N5RQIFu", + "type": "arrow" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 1)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 1)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "arrow", + "version": 1046, + "versionNonce": 85873548, + "isDeleted": false, + "id": "yVqkGScPYA4mcMIYCN1fF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2566.691351249741, + "y": 279.1607177415986, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2f9e44", + "width": 36.4707446434727, + "height": 5.36812808900936, + "seed": 1562406267, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "startBinding": { + "elementId": "AHEsnhErGOeJ2_u41E811", + "focus": 0.15767664137179951, + "gap": 8.439444307149415 + }, + "endBinding": { + "elementId": "C0buE4cVI01Pq5sznAVDf", + "focus": 0.46381510986533486, + "gap": 8.849681013489544 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 36.4707446434727, + -5.36812808900936 + ] + ] + }, + { + "type": "arrow", + "version": 1247, + "versionNonce": 558594868, + "isDeleted": false, + "id": "Q8-5k1wcmzqxx5N5RQIFu", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2734.5456846332754, + "y": 274.24689773110896, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2f9e44", + "width": 36.055070897097266, + "height": 1.8825479950643853, + "seed": 251946427, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "startBinding": { + "elementId": "C0buE4cVI01Pq5sznAVDf", + "focus": -0.35918511546659376, + "gap": 15.300577953623133 + }, + "endBinding": { + "elementId": "HvpHJP7nDZIbcXwCAFlNK", + "focus": 0.18571838443750383, + "gap": 9.48742549714757 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 36.055070897097266, + 1.8825479950643853 + ] + ] + }, + { + "type": "rectangle", + "version": 1338, + "versionNonce": 128188940, + "isDeleted": false, + "id": "nVQZyrsWjzR2utI1E6Q6-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2769.4056703989536, + "y": 227.82611010176637, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 128.46047995939227, + "height": 116.29053584326857, + "seed": 1943978875, + "groupIds": [ + "H84YVEOHNW_eKY8hD9mKz" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1299, + "versionNonce": 907932852, + "isDeleted": false, + "id": "HvpHJP7nDZIbcXwCAFlNK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2780.08818102752, + "y": 253.51819371373747, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 1808702491, + "groupIds": [ + "H84YVEOHNW_eKY8hD9mKz" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "UzJ_Nrsm-YC6l9hQaBQYe", + "type": "arrow" + }, + { + "id": "Q8-5k1wcmzqxx5N5RQIFu", + "type": "arrow" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 3)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 3)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "arrow", + "version": 1354, + "versionNonce": 980410508, + "isDeleted": false, + "id": "UzJ_Nrsm-YC6l9hQaBQYe", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2895.7609551076175, + "y": 286.3638189115255, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2f9e44", + "width": 36.470744643473154, + "height": 3.2146639367665557, + "seed": 205499899, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "startBinding": { + "elementId": "HvpHJP7nDZIbcXwCAFlNK", + "focus": 0.15767664137179638, + "gap": 8.439444307148506 + }, + "endBinding": { + "elementId": "6rwFz2EdI58JeDNNb4Wv8", + "focus": 0.5089887668999546, + "gap": 12.019974908019549 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 36.470744643473154, + -3.2146639367665557 + ] + ] + }, + { + "type": "text", + "version": 3579, + "versionNonce": 1298480692, + "isDeleted": false, + "id": "bdZQMvQ1sjASdst3r0uyd", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2379.9557915296136, + "y": 406.7888107330388, + "strokeColor": "#000000", + "backgroundColor": "white", + "width": 698.5833129882812, + "height": 60.137808187470995, + "seed": 942252155, + "groupIds": [ + "7jrbh2uQQB7zk_kcRqei-", + "ofFgYW_jtjRtl_pPhgbQr", + "oEsnaEcaZ5Vp6fDsbhyQp", + "GffTxAsddidEIKqZ-VJhm", + "5QhtdQlssBT7GZU5DUcQD" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 24.055123274988397, + "fontFamily": 1, + "text": "during transactions, a default tier is assigned\nto each block based on the block metadata hash", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "during transactions, a default tier is assigned\nto each block based on the block metadata hash", + "lineHeight": 1.25, + "baseline": 52 + }, + { + "type": "ellipse", + "version": 280, + "versionNonce": 356249356, + "isDeleted": false, + "id": "4KrJuF8UlhRTL1HGUxAHw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1488.0404306999649, + "y": -84.98208752880353, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 170.6531025222111, + "height": 170.6531025222111, + "seed": 1381091408, + "groupIds": [ + "x7cchDE-C9K68RMduQ_1p" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 435, + "versionNonce": 1611093940, + "isDeleted": false, + "id": "uRuaGy98HzAODJltxo-uz", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1544.278168774625, + "y": -74.75661941746979, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 94.35427511466963, + "height": 151.43278722107468, + "seed": 462700112, + "groupIds": [ + "x7cchDE-C9K68RMduQ_1p" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 36.693329211260476, + 78.62856259555802 + ], + [ + -17.47301391012398, + 146.1908830480375 + ], + [ + -39.02306439927686, + 129.3003029349176 + ], + [ + -50.08930654235544, + 107.16781864876056 + ], + [ + -57.66094590340916, + 77.46369500154977 + ], + [ + -55.91364451239676, + 50.67174033935961 + ], + [ + -33.19872642923555, + 14.56084492510337 + ], + [ + -19.220315301136388, + 3.4946027820248187 + ], + [ + -2.329735188016509, + -5.241904173037172 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 1242, + "versionNonce": 142749068, + "isDeleted": false, + "id": "GpuB48HbLbCKzHcY_CoDk", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 2.1087983467176876, + "x": 1594.3542114509262, + "y": -103.08351054279403, + "strokeColor": "#343a40", + "backgroundColor": "#ffc9c9", + "width": 84.22504232327424, + "height": 143.55165671241798, + "seed": 1155132592, + "groupIds": [ + "cgeGUo-mTn_i9EcHxEprO" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 44.687293286974594, + 62.60484680343589 + ], + [ + -6.850721365767328, + 139.85238069575604 + ], + [ + -28.43773694248003, + 110.82999007219436 + ], + [ + -34.075311170346666, + 91.76013318612269 + ], + [ + -39.537749036299644, + 67.09941892408546 + ], + [ + -35.95988090417034, + 50.91885893927241 + ], + [ + -24.134992252369802, + 22.20651555833768 + ], + [ + -14.064833206418594, + 9.871247668731803 + ], + [ + -5.72975816360281, + 2.6388097462654274 + ], + [ + 5.44501471567946, + -3.6992760166619485 + ] + ] + }, + { + "type": "text", + "version": 513, + "versionNonce": 1512718644, + "isDeleted": false, + "id": "SiGv8WXwnQoJ-NWt9M078", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1502.083441820922, + "y": -153.30691467385768, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 349.6000061035156, + "height": 45, + "seed": 456088240, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "Example Tier Config", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Example Tier Config", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "text", + "version": 137, + "versionNonce": 1702665228, + "isDeleted": false, + "id": "B_4Pj4i144iUrK4E3OIqZ", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1574.4563697958752, + "y": -49.48048603760022, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "width": 63.53333282470703, + "height": 35, + "seed": 312318128, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "25%", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "25%", + "lineHeight": 1.25, + "baseline": 25 + }, + { + "type": "text", + "version": 184, + "versionNonce": 859044532, + "isDeleted": false, + "id": "C-tbQCltM-kF8yOBD6x2h", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1498.7923854934627, + "y": -19.95403520493815, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "width": 62.66666793823242, + "height": 35, + "seed": 2029944912, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "35%", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "35%", + "lineHeight": 1.25, + "baseline": 25 + }, + { + "type": "text", + "version": 122, + "versionNonce": 1176844940, + "isDeleted": false, + "id": "EdhJs_wXf3v-R6jvW-H5a", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1571.204716618834, + "y": 21.933363622872264, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 63.483333587646484, + "height": 35, + "seed": 1928067152, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "40%", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "40%", + "lineHeight": 1.25, + "baseline": 25 + }, + { + "type": "text", + "version": 380, + "versionNonce": 97158196, + "isDeleted": false, + "id": "s5Gtczck1Jwau4QPZNxjo", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1667.941398635815, + "y": -82.29368925752661, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 608.9666748046875, + "height": 140, + "seed": 1608367696, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Blocks:\n\n\n- 40% by default is tier3 (SGX + PSE ZK)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Blocks:\n\n\n- 40% by default is tier3 (SGX + PSE ZK)", + "lineHeight": 1.25, + "baseline": 130 + }, + { + "type": "text", + "version": 88, + "versionNonce": 1966475532, + "isDeleted": false, + "id": "sPzxHGEaEgi1m1MfzC4Dp", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1668.2285397909588, + "y": -49.71313057086513, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "width": 640.683349609375, + "height": 35, + "seed": 1831466672, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "- 25% by default is tier1 (e.g.: optimistic-only)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "- 25% by default is tier1 (e.g.: optimistic-only)", + "lineHeight": 1.25, + "baseline": 25 + }, + { + "type": "text", + "version": 103, + "versionNonce": 668196276, + "isDeleted": false, + "id": "_5DFTwd0ZEBj0O5pTmI_v", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1665.84341800412, + "y": -12.743742874863074, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "width": 581.7166748046875, + "height": 35, + "seed": 184081072, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "- 35% by default is tier2 (e.g.: SGX-only)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "- 35% by default is tier2 (e.g.: SGX-only)", + "lineHeight": 1.25, + "baseline": 25 + }, + { + "type": "text", + "version": 217, + "versionNonce": 1445529484, + "isDeleted": false, + "id": "xKM88Nq1ytnmLvMktxl0C", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1485.7667230977877, + "y": 98.16442021314282, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 773.7999877929688, + "height": 70, + "seed": 1997367984, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "These % are tunable. Can be 100% optimistic, or 100%\nZK multiproof system - can be viewn as a spectrum.", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "These % are tunable. Can be 100% optimistic, or 100%\nZK multiproof system - can be viewn as a spectrum.", + "lineHeight": 1.25, + "baseline": 60 + }, + { + "type": "rectangle", + "version": 1998, + "versionNonce": 1115031348, + "isDeleted": false, + "id": "efcQM54D8Yfp6DIrPKPzO", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 50, + "angle": 0, + "x": 1442.3105824087286, + "y": -170.6925246194582, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f783ac", + "width": 894.913201491354, + "height": 375.5334862276561, + "seed": 467050576, + "groupIds": [ + "kU2J-unZh7Mpu6Y8k8Akq", + "7pgpuJdEBwirv-AqaAj0m", + "2Yi1RCQmQMEl3-3dMz6EM", + "UL0URVcq0f17kLKmwcwWR" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "yVqkGScPYA4mcMIYCN1fF", + "type": "arrow" + }, + { + "id": "F32Cx-9pck7KytU4wRBJH", + "type": "arrow" + }, + { + "id": "KmaHjIkt2YFnsnyuvF0nV", + "type": "arrow" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 255, + "versionNonce": 1295529484, + "isDeleted": false, + "id": "cByu9Zs8ftWD84fzLqCb2", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2456.248625658454, + "y": 408.6147802327914, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 138.01666259765625, + "height": 25, + "seed": 1599317072, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "F32Cx-9pck7KytU4wRBJH", + "type": "arrow" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "proposeBlock()", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "proposeBlock()", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "rectangle", + "version": 1614, + "versionNonce": 1779892404, + "isDeleted": false, + "id": "sXL3ipYh2_B69duVETeQh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3351.044565179036, + "y": 707.2256637521441, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 695, + "height": 145, + "seed": 902350928, + "groupIds": [ + "0-egUerTIK5fYm-r10H--", + "crqa42msZ4FxJggKKtesn" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "_fSozebcRAK20jgcHzTk8" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1643, + "versionNonce": 660444300, + "isDeleted": false, + "id": "_fSozebcRAK20jgcHzTk8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3356.044565179036, + "y": 754.5093067437749, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 112.23332977294922, + "height": 50.43271401673809, + "seed": 2016099920, + "groupIds": [ + "0-egUerTIK5fYm-r10H--", + "crqa42msZ4FxJggKKtesn" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 40.34617121339047, + "fontFamily": 1, + "text": "Tier 1", + "textAlign": "left", + "verticalAlign": "middle", + "containerId": "sXL3ipYh2_B69duVETeQh", + "originalText": "Tier 1", + "lineHeight": 1.25, + "baseline": 35 + }, + { + "type": "rectangle", + "version": 1736, + "versionNonce": 912050740, + "isDeleted": false, + "id": "RyzH9IR4JgcsNKEbRhv2X", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3500.4194582741275, + "y": 509.6039708146433, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 553, + "height": 145, + "seed": 740527184, + "groupIds": [ + "puvlXxyzgJDH-8Y_sQrFj", + "qj574APRz7tJuVR7zsez6" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "7j4zCnxelCpeXIaMqQjgS" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1728, + "versionNonce": 39002892, + "isDeleted": false, + "id": "7j4zCnxelCpeXIaMqQjgS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3505.4194582741275, + "y": 556.8876138062742, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 130.0833282470703, + "height": 50.43271401673809, + "seed": 1586332240, + "groupIds": [ + "puvlXxyzgJDH-8Y_sQrFj", + "qj574APRz7tJuVR7zsez6" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 40.34617121339047, + "fontFamily": 1, + "text": "Tier 2", + "textAlign": "left", + "verticalAlign": "middle", + "containerId": "RyzH9IR4JgcsNKEbRhv2X", + "originalText": "Tier 2", + "lineHeight": 1.25, + "baseline": 35 + }, + { + "type": "rectangle", + "version": 1894, + "versionNonce": 1512924084, + "isDeleted": false, + "id": "q6EYXWepq-Gp7QWsnx__0", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3675.592438406772, + "y": 322.7335616485067, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 374, + "height": 145, + "seed": 1130274896, + "groupIds": [ + "x5ASvTSIrBjzqUhAj6gtR", + "9yJ5hRXROVNOBgN1JJXuD" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "DROO3cawt75uDKfWLCJvr" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1852, + "versionNonce": 882041228, + "isDeleted": false, + "id": "DROO3cawt75uDKfWLCJvr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3680.592438406772, + "y": 370.0172046401376, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 128.8333282470703, + "height": 50.43271401673809, + "seed": 88479312, + "groupIds": [ + "x5ASvTSIrBjzqUhAj6gtR", + "9yJ5hRXROVNOBgN1JJXuD" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 40.34617121339047, + "fontFamily": 1, + "text": "Tier 3", + "textAlign": "left", + "verticalAlign": "middle", + "containerId": "q6EYXWepq-Gp7QWsnx__0", + "originalText": "Tier 3", + "lineHeight": 1.25, + "baseline": 35 + }, + { + "type": "text", + "version": 5454, + "versionNonce": 1001311540, + "isDeleted": false, + "id": "wvOcAGUR3SyB-mCViIbeU", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3231.9878182727193, + "y": 876.0786870289667, + "strokeColor": "#000000", + "backgroundColor": "white", + "width": 1084.449951171875, + "height": 245, + "seed": 490365104, + "groupIds": [ + "uKYv3NfWQc9uan64K3UWr", + "SdFSlmce5KvtsrDNfTVZx", + "RzQnH5YsDRUINzMCtmjil", + "fXWG9LnQAahyk0-3eQOze", + "lmu6qp8hYBeEODaa7RRFl" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "1. A block (when proposed) gets a default tier (e.g.: Tier 1)\n2. During proofWindow, prover needs to submit the corresponding proof type\n3. It can either be accepted (e.g. noone says otherwise) or contested \n(by submitting a 'contest' transaction)\n4. If accepted, it could get verified\n5. If contested, it requires a higher level (=higher security) tier proof.\nIt would also make sense to configure that Tier N is the subset of Tier N+1", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "1. A block (when proposed) gets a default tier (e.g.: Tier 1)\n2. During proofWindow, prover needs to submit the corresponding proof type\n3. It can either be accepted (e.g. noone says otherwise) or contested \n(by submitting a 'contest' transaction)\n4. If accepted, it could get verified\n5. If contested, it requires a higher level (=higher security) tier proof.\nIt would also make sense to configure that Tier N is the subset of Tier N+1", + "lineHeight": 1.25, + "baseline": 235 + }, + { + "type": "rectangle", + "version": 1477, + "versionNonce": 894881804, + "isDeleted": false, + "id": "Ds5iMPmDrzHsur4aHmxON", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 60, + "angle": 0, + "x": 3130.842621736754, + "y": 222.08908845586132, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 1261, + "height": 932, + "seed": 474476624, + "groupIds": [ + "wfPY9eitN-ZXmva6W1ExQ", + "PQejzudNpSVHkicrcLUnY" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "EBwTdcvSVVMkLK7v3oDZs" + }, + { + "id": "m3tXOoVlXpC7hiLxjSLPh", + "type": "arrow" + } + ], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1743, + "versionNonce": 205981364, + "isDeleted": false, + "id": "EBwTdcvSVVMkLK7v3oDZs", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 60, + "angle": 0, + "x": 3585.200959139098, + "y": 227.08908845586132, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 352.2833251953125, + "height": 45, + "seed": 344286800, + "groupIds": [ + "wfPY9eitN-ZXmva6W1ExQ", + "PQejzudNpSVHkicrcLUnY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "Proving / contesting", + "textAlign": "center", + "verticalAlign": "top", + "containerId": "Ds5iMPmDrzHsur4aHmxON", + "originalText": "Proving / contesting", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "text", + "version": 108, + "versionNonce": 77131404, + "isDeleted": false, + "id": "7vdANAM_ZUZpFOwKFOwEA", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2039.83062654506, + "y": 467.85442705031755, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 286.0333251953125, + "height": 45, + "seed": 37147728, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "1. proposeBlock()", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "1. proposeBlock()", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "ellipse", + "version": 155, + "versionNonce": 1620840500, + "isDeleted": false, + "id": "t2wQd7_pDedqKBVMKRNUQ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2018.047858624882, + "y": 461.6307790731239, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 56.012831794744436, + "height": 54.456919800445796, + "seed": 1282687568, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 181, + "versionNonce": 320027916, + "isDeleted": false, + "id": "xBZselJwCZHp0ahWNBm_i", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2378.9519057409093, + "y": -1.1369379771570074, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 484.6833190917969, + "height": 90, + "seed": 1537512624, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "2. TierConfig contract will \nassign a default tier", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "2. TierConfig contract will \nassign a default tier", + "lineHeight": 1.25, + "baseline": 77 + }, + { + "type": "ellipse", + "version": 179, + "versionNonce": 1217653172, + "isDeleted": false, + "id": "tY8NLLPznt8ReSh-_DLWd", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2361.836873803626, + "y": -7.3605859543506575, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 56.012831794744436, + "height": 54.456919800445796, + "seed": 495877808, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 842, + "versionNonce": 708819852, + "isDeleted": false, + "id": "8MFaH2nUCNYHntensmhSG", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3044.357653990362, + "y": 90.0053615239583, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 955.8666381835938, + "height": 90, + "seed": 12316240, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "3. Proving / contesting and then verifying is according\nto this logic", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "3. Proving / contesting and then verifying is according\nto this logic", + "lineHeight": 1.25, + "baseline": 77 + }, + { + "type": "ellipse", + "version": 391, + "versionNonce": 1733595956, + "isDeleted": false, + "id": "aNLKF83kuHVzSg_g24maE", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3035.0221820245706, + "y": 76.00215357527236, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 51.345095811849404, + "height": 56.21723207982154, + "seed": 97100880, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 135, + "versionNonce": 1415080460, + "isDeleted": false, + "id": "yWYBQghajGVIEabUEZloM", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 4171.235282294936, + "y": 790.0443111236111, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 199.21665954589844, + "height": 45, + "seed": 1496237744, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "less secure", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "less secure", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "text", + "version": 213, + "versionNonce": 189009076, + "isDeleted": false, + "id": "6ZftDNKMzjWw6bVmb7-qg", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 4168.093496168491, + "y": 347.4480726630262, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 208.86666870117188, + "height": 45, + "seed": 2016307280, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456177, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "more secure", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "more secure", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "arrow", + "version": 101, + "versionNonce": 1146570892, + "isDeleted": false, + "id": "Euqj9Cc8TkeSbouIWBO-A", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 4113.666538505894, + "y": 819.606639015282, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 0, + "height": 451.2144783465541, + "seed": 126317648, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695715456178, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0, + -451.2144783465541 + ] + ] + }, + { + "type": "arrow", + "version": 1600, + "versionNonce": 1174951476, + "isDeleted": false, + "id": "aU-knkYW7UzPVFBrgNOMJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3015.508225919625, + "y": 117.9871292037545, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f783ac", + "width": 19.119122025730576, + "height": 85.94275342512344, + "seed": 297599568, + "groupIds": [ + "g9Mzssin2tWojtpagJBA_", + "1WD350dLLur4GFFwu4OIw" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695715456178, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "4wJli-YdDyW6UhrMR2c91", + "focus": -0.08771553330069409, + "gap": 25.955567165736767 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -17.430587325729903, + 54.360120183366945 + ], + [ + -19.119122025730576, + 85.94275342512344 + ] + ] + }, + { + "type": "arrow", + "version": 1757, + "versionNonce": 1039554316, + "isDeleted": false, + "id": "m3tXOoVlXpC7hiLxjSLPh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3290.531696716588, + "y": 156.8987029285782, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f783ac", + "width": 131.80434142122022, + "height": 51.71268955055723, + "seed": 1027870288, + "groupIds": [ + "IHNUxZyeQpSbTKFO6MmMu", + "5MV3a5T06rzBSiQ7FYb4x" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695715456178, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "Ds5iMPmDrzHsur4aHmxON", + "focus": -0.16587278663259167, + "gap": 13.47769597672584 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 113.26602019534084, + 7.682760354412977 + ], + [ + 131.80434142122022, + 51.71268955055723 + ] + ] + }, + { + "type": "rectangle", + "version": 931, + "versionNonce": 920074764, + "isDeleted": false, + "id": "W3_v5ePcXAv-_hUCdeWrm", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2398.495659864208, + "y": 1902.1684139700578, + "strokeColor": "#c92a2a", + "backgroundColor": "#1864ab", + "width": 144.90469360351562, + "height": 79.2421875, + "seed": 267051532, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "ZHdqoq9xD2scfeQRoZQ0p" + }, + { + "id": "7yTCQAkWl_ebhm5vKLXnQ", + "type": "arrow" + } + ], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 816, + "versionNonce": 243013772, + "isDeleted": false, + "id": "ZHdqoq9xD2scfeQRoZQ0p", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2437.298005140087, + "y": 1929.2895077200578, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "width": 67.30000305175781, + "height": 25, + "seed": 1457176716, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "PROOF", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "W3_v5ePcXAv-_hUCdeWrm", + "originalText": "PROOF", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "rectangle", + "version": 863, + "versionNonce": 184624908, + "isDeleted": false, + "id": "IpW3MsIAyu15ONS2Z73eh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2355.673314851345, + "y": 2564.05084022861, + "strokeColor": "#495057", + "backgroundColor": "#868e96", + "width": 163, + "height": 71, + "seed": 558550796, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "ii25nGnyihZqRwEveKJ3d" + }, + { + "id": "PbEVYPOxP4yq15vqhm8Wa", + "type": "arrow" + } + ], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1287, + "versionNonce": 14706060, + "isDeleted": false, + "id": "ii25nGnyihZqRwEveKJ3d", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2388.1233156142844, + "y": 2587.05084022861, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 98.0999984741211, + "height": 25, + "seed": 1874136460, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "CONTEST", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "IpW3MsIAyu15ONS2Z73eh", + "originalText": "CONTEST", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "line", + "version": 590, + "versionNonce": 1985311372, + "isDeleted": false, + "id": "bgm_-N1FyrYZHbIkXYpb-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2249.446380841872, + "y": 1648.609115640994, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 592673804, + "groupIds": [ + "olv6tJnNf4o0yJEDw4uYF" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "line", + "version": 657, + "versionNonce": 580862220, + "isDeleted": false, + "id": "dS_lilCa_U2hk1KS6EPG1", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2250.7776186348406, + "y": 1677.0528870032988, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 323.26873779296875, + "height": 0, + "seed": 1713379980, + "groupIds": [ + "olv6tJnNf4o0yJEDw4uYF" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 323.26873779296875, + 0 + ] + ] + }, + { + "type": "line", + "version": 689, + "versionNonce": 1907048332, + "isDeleted": false, + "id": "YVjeH_ihrNvgZCOpaG7DL", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2574.9123765628324, + "y": 1650.4085098783933, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 315943180, + "groupIds": [ + "olv6tJnNf4o0yJEDw4uYF" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "text", + "version": 552, + "versionNonce": 733179404, + "isDeleted": false, + "id": "ZrKJq-4fokJNReBwAgiFS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2304.6557924629656, + "y": 1632.2716217445097, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 235.01666259765625, + "height": 25, + "seed": 485222284, + "groupIds": [ + "olv6tJnNf4o0yJEDw4uYF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "provingWindow, t= X mins", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "provingWindow, t= X mins", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "rectangle", + "version": 1863, + "versionNonce": 28429452, + "isDeleted": false, + "id": "_Zng2mX2WXNEvbYimXBzN", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2001.984721540924, + "y": 1699.105807860039, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 249.57159107050327, + "height": 116.29053584326857, + "seed": 168576012, + "groupIds": [ + "ws_OXz2CZ5PkbPVZu_ltR" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1825, + "versionNonce": 1969249036, + "isDeleted": false, + "id": "PJvji1HQ4ojhVs2Jmyq6S", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2070.4450099472688, + "y": 1705.9090025831213, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 176153228, + "groupIds": [ + "ws_OXz2CZ5PkbPVZu_ltR" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 1)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 1)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "text", + "version": 994, + "versionNonce": 561982516, + "isDeleted": false, + "id": "psCmkqiBqdvGVfTiZO24-", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2376.9912999917724, + "y": 1237.635890747546, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 769.4500122070312, + "height": 164.97534976868928, + "seed": 1962022156, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716857354, + "link": null, + "locked": false, + "fontSize": 65.99013990747571, + "fontFamily": 1, + "text": "Life-cycle of a block\n in a tier-based system", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Life-cycle of a block\n in a tier-based system", + "lineHeight": 1.25, + "baseline": 141 + }, + { + "id": "Y6dk31cxGkr4zvgh9IleQ", + "type": "text", + "x": 2031.7827549727383, + "y": 1774.4778346155013, + "width": 198.5, + "height": 45, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "ws_OXz2CZ5PkbPVZu_ltR" + ], + "frameId": null, + "roundness": null, + "seed": 1006093876, + "version": 209, + "versionNonce": 1081477132, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399265, + "link": null, + "locked": false, + "text": "PROPOSED", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 32, + "containerId": null, + "originalText": "PROPOSED", + "lineHeight": 1.25 + }, + { + "id": "7yTCQAkWl_ebhm5vKLXnQ", + "type": "arrow", + "x": 2387.023039399381, + "y": 1893.0517050016163, + "width": 1.375301448726077, + "height": 201.68878735478756, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 95150260, + "version": 1368, + "versionNonce": 785958708, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399720, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.375301448726077, + -201.68878735478756 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "YJ67Qx9ePCt345iSwD4aT", + "focus": 0.8279175874347067, + "gap": 27.581372629713997 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "YJ67Qx9ePCt345iSwD4aT", + "type": "text", + "x": 2029.8404966618182, + "y": 1920.6330776313303, + "width": 389.75, + "height": 125, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1189742644, + "version": 304, + "versionNonce": 1506047244, + "isDeleted": false, + "boundElements": [ + { + "id": "7yTCQAkWl_ebhm5vKLXnQ", + "type": "arrow" + } + ], + "updated": 1695716399265, + "link": null, + "locked": false, + "text": "Within proofWindow the assigned\nprover submits a proof\nOR\nOutside of the original proofWindow any\nprover can submit a proof", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 118, + "containerId": null, + "originalText": "Within proofWindow the assigned\nprover submits a proof\nOR\nOutside of the original proofWindow any\nprover can submit a proof", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2248, + "versionNonce": 438018572, + "isDeleted": false, + "id": "En-UyK2VsIVpQDi1ZrJcJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2573.9029873971426, + "y": 1708.7495147901695, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 249.57159107050327, + "height": 116.29053584326857, + "seed": 61139724, + "groupIds": [ + "AFPl3gQ5gw-RR-IYcGtg6" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2208, + "versionNonce": 1559462028, + "isDeleted": false, + "id": "WbGXAJ1vgJFET_Ab6rwHk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2642.3632758034873, + "y": 1715.5527095132516, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 946579852, + "groupIds": [ + "AFPl3gQ5gw-RR-IYcGtg6" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 1)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 1)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "text", + "version": 665, + "versionNonce": 1716227852, + "isDeleted": false, + "id": "V-EdKPxhzIJYxRhiTEXSp", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2627.8347218799568, + "y": 1780.6738699669177, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "width": 145.3000030517578, + "height": 45, + "seed": 1389795340, + "groupIds": [ + "AFPl3gQ5gw-RR-IYcGtg6" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "PROVED", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "PROVED", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "id": "Gan6eZTUQVDndpzq-cpMD", + "type": "text", + "x": 2664.2120671452517, + "y": 1839.612795531544, + "width": 44.900001525878906, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 367283596, + "version": 267, + "versionNonce": 1453182348, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399265, + "link": null, + "locked": false, + "text": "BUT", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "BUT", + "lineHeight": 1.25 + }, + { + "id": "IRlTPEMr4jUkYnUIBOzLk", + "type": "text", + "x": 2664.2120671452517, + "y": 1874.612795531544, + "width": 151.21665954589844, + "height": 25, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1668948276, + "version": 279, + "versionNonce": 790903820, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399265, + "link": null, + "locked": false, + "text": "CONTESTABLE", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "CONTESTABLE", + "lineHeight": 1.25 + }, + { + "id": "JqII0b524uy6ru3nZ0nq0", + "type": "text", + "x": 2664.2120671452517, + "y": 1909.612795531544, + "width": 83.01667022705078, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1100659724, + "version": 267, + "versionNonce": 970513036, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399265, + "link": null, + "locked": false, + "text": "DURING", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "DURING", + "lineHeight": 1.25 + }, + { + "id": "jv8H6fks280MquSM7MQ_o", + "type": "text", + "x": 2664.2120671452517, + "y": 1944.612795531544, + "width": 111.81666564941406, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1200085684, + "version": 267, + "versionNonce": 1903536396, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399265, + "link": null, + "locked": false, + "text": "COOLDOWN", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "COOLDOWN", + "lineHeight": 1.25 + }, + { + "type": "line", + "version": 817, + "versionNonce": 1769252748, + "isDeleted": false, + "id": "OE2ivzUmlTplt31YlyeO9", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2822.063351499893, + "y": 1652.6549557256915, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 1586191884, + "groupIds": [ + "N9FnvsLaaRcKylwFGRPXy" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "line", + "version": 884, + "versionNonce": 907007500, + "isDeleted": false, + "id": "l7nhDqTTHDUxoz0styv9A", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2823.394589292862, + "y": 1681.0987270879962, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 323.26873779296875, + "height": 0, + "seed": 1946926220, + "groupIds": [ + "N9FnvsLaaRcKylwFGRPXy" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 323.26873779296875, + 0 + ] + ] + }, + { + "type": "line", + "version": 916, + "versionNonce": 1413559436, + "isDeleted": false, + "id": "PqLL5oeZ-b-ykfCXOT5ME", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3147.5293472208537, + "y": 1654.4543499630906, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 1727810316, + "groupIds": [ + "N9FnvsLaaRcKylwFGRPXy" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "text", + "version": 787, + "versionNonce": 297976588, + "isDeleted": false, + "id": "1VyR6MYjo6py3m8eMW5eL", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2877.272763120987, + "y": 1636.317461829207, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 189.43333435058594, + "height": 25, + "seed": 2044135820, + "groupIds": [ + "N9FnvsLaaRcKylwFGRPXy" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "cooldown, t= X mins", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "cooldown, t= X mins", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "text", + "version": 1049, + "versionNonce": 1963884940, + "isDeleted": false, + "id": "1TQoSBg-HQXlCvxVXBR08", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2476.704660226854, + "y": 1488.0785160050832, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 495.6833190917969, + "height": 82.48767488434464, + "seed": 504400820, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 65.99013990747571, + "fontFamily": 1, + "text": "(non-contested)", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "(non-contested)", + "lineHeight": 1.25, + "baseline": 58 + }, + { + "id": "hef_E9ZWq6UQ6kMUZ8sdx", + "type": "line", + "x": 2976.0050897376077, + "y": 1710.6118053527275, + "width": 28, + "height": 43, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "usEy4KbQ1MtVO6aLC4h4m" + ], + "frameId": null, + "roundness": null, + "seed": 1758300468, + "version": 364, + "versionNonce": 626946060, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399265, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 28, + 43 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "type": "line", + "version": 421, + "versionNonce": 1387040396, + "isDeleted": false, + "id": "94azFbvBdk7hDgft6Nm73", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3001.8932229039583, + "y": 1708.8611851477247, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 25, + "height": 46, + "seed": 1271766580, + "groupIds": [ + "RonTGeN5sU0YyebMb79Er", + "usEy4KbQ1MtVO6aLC4h4m" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -25, + 46 + ] + ] + }, + { + "id": "Gh_-zmYLo_1y4jSLL5Im0", + "type": "text", + "x": 2924.260228902227, + "y": 1773.1510443457585, + "width": 147.6666717529297, + "height": 25, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "RonTGeN5sU0YyebMb79Er", + "usEy4KbQ1MtVO6aLC4h4m" + ], + "frameId": null, + "roundness": null, + "seed": 1906449716, + "version": 281, + "versionNonce": 498261260, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399265, + "link": null, + "locked": false, + "text": "NO CONTESTS", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "NO CONTESTS", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2350, + "versionNonce": 2146130828, + "isDeleted": false, + "id": "nj3dPGcL_xjfpng6afSsJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3152.490912110842, + "y": 1698.5895888408313, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 249.57159107050327, + "height": 116.29053584326857, + "seed": 1368432524, + "groupIds": [ + "W8Hl1tkoiBw1N8L5WcuX3" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2309, + "versionNonce": 865077772, + "isDeleted": false, + "id": "Qdvh0H9ui7u9feW6bEo1m", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3220.9512005171873, + "y": 1705.3927835639133, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 669830668, + "groupIds": [ + "W8Hl1tkoiBw1N8L5WcuX3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 1)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 1)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "text", + "version": 814, + "versionNonce": 463136908, + "isDeleted": false, + "id": "vfmmegn47cgf2q-OOwjhP", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3166.4226465936563, + "y": 1770.7639440175794, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 222.8000030517578, + "height": 45, + "seed": 1874799756, + "groupIds": [ + "W8Hl1tkoiBw1N8L5WcuX3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "VERIFIABLE", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "VERIFIABLE", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "rectangle", + "version": 1422, + "versionNonce": 734394124, + "isDeleted": false, + "id": "bmQeQ6gjmUwfDbbXpB3zk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1772.9144082431358, + "y": 2576.9134007552107, + "strokeColor": "#c92a2a", + "backgroundColor": "#1864ab", + "width": 144.90469360351562, + "height": 79.2421875, + "seed": 1999811468, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "L62GTiRPvyu72SBWVSRqt" + }, + { + "id": "J_7UL51wKU0ZM0X7iRsWY", + "type": "arrow" + } + ], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1307, + "versionNonce": 1351300492, + "isDeleted": false, + "id": "L62GTiRPvyu72SBWVSRqt", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1811.7167535190147, + "y": 2604.0344945052107, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "width": 67.30000305175781, + "height": 25, + "seed": 2016174604, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "PROOF", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "bmQeQ6gjmUwfDbbXpB3zk", + "originalText": "PROOF", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "line", + "version": 1081, + "versionNonce": 1462019084, + "isDeleted": false, + "id": "c9KZIZkgucBiukAECb0IK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1623.8651292207994, + "y": 2323.354102426147, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 988561548, + "groupIds": [ + "jYo8-ZeDUh3ucBwFYg_Hm" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "line", + "version": 1148, + "versionNonce": 1435255436, + "isDeleted": false, + "id": "8d2hiUn03F0LAPVIoQV75", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1625.1963670137682, + "y": 2351.797873788452, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 323.26873779296875, + "height": 0, + "seed": 120344332, + "groupIds": [ + "jYo8-ZeDUh3ucBwFYg_Hm" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 323.26873779296875, + 0 + ] + ] + }, + { + "type": "line", + "version": 1180, + "versionNonce": 310120716, + "isDeleted": false, + "id": "tK8RIdGxrWZK6cTfHZyo1", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1949.3311249417602, + "y": 2325.153496663546, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 493260172, + "groupIds": [ + "jYo8-ZeDUh3ucBwFYg_Hm" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "text", + "version": 1043, + "versionNonce": 1835929484, + "isDeleted": false, + "id": "1BWcsLYovlqqoYseX1Iiy", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1679.0745408418932, + "y": 2307.016608529663, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 235.01666259765625, + "height": 25, + "seed": 517274636, + "groupIds": [ + "jYo8-ZeDUh3ucBwFYg_Hm" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "provingWindow, t= X mins", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "provingWindow, t= X mins", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "rectangle", + "version": 2354, + "versionNonce": 1184644620, + "isDeleted": false, + "id": "W-aRrTy9ohDrHI4XhsSw2", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1376.4034699198517, + "y": 2373.8507946451923, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 249.57159107050327, + "height": 116.29053584326857, + "seed": 1970379404, + "groupIds": [ + "mYG6FQGTZszZwY-8lzw-i" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2316, + "versionNonce": 1728093324, + "isDeleted": false, + "id": "aFDlsvKWYKfzghhrn-N5W", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1444.863758326196, + "y": 2380.6539893682743, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 1006004492, + "groupIds": [ + "mYG6FQGTZszZwY-8lzw-i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 1)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 1)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "text", + "version": 700, + "versionNonce": 1750412044, + "isDeleted": false, + "id": "Da8bwfbaKEe9m3L2_u379", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1406.2015033516657, + "y": 2449.222821400654, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 198.5, + "height": 45, + "seed": 635266956, + "groupIds": [ + "mYG6FQGTZszZwY-8lzw-i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "PROPOSED", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "PROPOSED", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "arrow", + "version": 2622, + "versionNonce": 1008844980, + "isDeleted": false, + "id": "J_7UL51wKU0ZM0X7iRsWY", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1761.441787778309, + "y": 2567.7966917867693, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 1.375301448726077, + "height": 201.68878735478756, + "seed": 1734383116, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399721, + "link": null, + "locked": false, + "startBinding": { + "elementId": "FqhQ0jWsZcoVmCl_zTkoI", + "focus": 0.82791758743471, + "gap": 27.58137262971377 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.375301448726077, + -201.68878735478756 + ] + ] + }, + { + "type": "text", + "version": 795, + "versionNonce": 2021054476, + "isDeleted": false, + "id": "FqhQ0jWsZcoVmCl_zTkoI", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1404.2592450407453, + "y": 2595.378064416483, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 389.75, + "height": 125, + "seed": 494531724, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "J_7UL51wKU0ZM0X7iRsWY", + "type": "arrow" + } + ], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Within proofWindow the assigned\nprover submits a proof\nOR\nOutside of the original proofWindow any\nprover can submit a proof", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Within proofWindow the assigned\nprover submits a proof\nOR\nOutside of the original proofWindow any\nprover can submit a proof", + "lineHeight": 1.25, + "baseline": 118 + }, + { + "type": "rectangle", + "version": 2739, + "versionNonce": 64046348, + "isDeleted": false, + "id": "D3yPXRVkVZSBHh0Kn9j30", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1948.3217357760705, + "y": 2383.4945015753224, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 249.57159107050327, + "height": 116.29053584326857, + "seed": 904102668, + "groupIds": [ + "pmJUcDPPhXzBJFle46Zf_" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2699, + "versionNonce": 1711063948, + "isDeleted": false, + "id": "T_zhgKWs_f2E_N0J-0M_m", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2016.7820241824147, + "y": 2390.2976962984044, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 1461141900, + "groupIds": [ + "pmJUcDPPhXzBJFle46Zf_" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 1)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 1)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "text", + "version": 1156, + "versionNonce": 590639628, + "isDeleted": false, + "id": "4ZOnA6IZigo5C-wxRf2oc", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2002.2534702588846, + "y": 2455.418856752071, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "width": 145.3000030517578, + "height": 45, + "seed": 1213149196, + "groupIds": [ + "pmJUcDPPhXzBJFle46Zf_" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "PROVED", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "PROVED", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "text", + "version": 758, + "versionNonce": 1785876620, + "isDeleted": false, + "id": "0GrMpZB8W_fzfK7VfaUQI", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2038.6308155241795, + "y": 2514.3577823166975, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 44.900001525878906, + "height": 25, + "seed": 1501908620, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "BUT", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "BUT", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "text", + "version": 770, + "versionNonce": 2070961932, + "isDeleted": false, + "id": "RAKemxlCDD2FmIEXODIUj", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2038.6308155241795, + "y": 2549.3577823166975, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 151.21665954589844, + "height": 25, + "seed": 1265868044, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "CONTESTABLE", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "CONTESTABLE", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "text", + "version": 758, + "versionNonce": 245931404, + "isDeleted": false, + "id": "2JWMNlpZJvnW50jcPBB5I", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2038.6308155241795, + "y": 2584.3577823166975, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 83.01667022705078, + "height": 25, + "seed": 932453260, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "DURING", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "DURING", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "text", + "version": 758, + "versionNonce": 1028983820, + "isDeleted": false, + "id": "rEz5lGaqyIaWI3u2l9PHx", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2038.6308155241795, + "y": 2619.3577823166975, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 111.81666564941406, + "height": 25, + "seed": 2015414796, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "COOLDOWN", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "COOLDOWN", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "line", + "version": 1308, + "versionNonce": 1768925836, + "isDeleted": false, + "id": "0WTgJbV5RKwzBUwtyVZ2T", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2196.482099878821, + "y": 2327.3999425108445, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 269723788, + "groupIds": [ + "L1CMG6_UQBzdungVZKcc3" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "line", + "version": 1375, + "versionNonce": 632453388, + "isDeleted": false, + "id": "h2pqJTpOjQdZC3UJZjI_k", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2197.8133376717897, + "y": 2355.843713873149, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 323.26873779296875, + "height": 0, + "seed": 321304332, + "groupIds": [ + "L1CMG6_UQBzdungVZKcc3" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 323.26873779296875, + 0 + ] + ] + }, + { + "type": "line", + "version": 1407, + "versionNonce": 496465804, + "isDeleted": false, + "id": "KB1uJyinvoV-3Ysbkz6_x", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2521.9480955997815, + "y": 2329.1993367482432, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 231994764, + "groupIds": [ + "L1CMG6_UQBzdungVZKcc3" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "text", + "version": 1278, + "versionNonce": 2102961676, + "isDeleted": false, + "id": "Pi3yRCzSgZ56Pjt31Shuk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2251.6915114999147, + "y": 2311.06244861436, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 189.43333435058594, + "height": 25, + "seed": 1834312716, + "groupIds": [ + "L1CMG6_UQBzdungVZKcc3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "cooldown, t= X mins", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "cooldown, t= X mins", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "text", + "version": 1220, + "versionNonce": 1508902028, + "isDeleted": false, + "id": "JxbKansk4ZKpntE5a3sd2", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2514.8980605823936, + "y": 2179.5796764967304, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 370.3500061035156, + "height": 82.48767488434464, + "seed": 1738867340, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 65.99013990747571, + "fontFamily": 1, + "text": "(contested)", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "(contested)", + "lineHeight": 1.25, + "baseline": 58 + }, + { + "type": "rectangle", + "version": 2929, + "versionNonce": 420975372, + "isDeleted": false, + "id": "93iOK2LF3RvXLyRurQCAr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2528.377496460825, + "y": 2370.3989036838734, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 300.945850057459, + "height": 116.29053584326857, + "seed": 1186552972, + "groupIds": [ + "ykLosj_XTxtBP8SG7DwWa" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2861, + "versionNonce": 1497977228, + "isDeleted": false, + "id": "IbXSz9B0F_VzahRRdOv0c", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2621.7909963751204, + "y": 2378.6699343780106, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 1391848204, + "groupIds": [ + "ykLosj_XTxtBP8SG7DwWa" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 2)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 2)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "text", + "version": 1454, + "versionNonce": 1505705996, + "isDeleted": false, + "id": "fX2QIZUZ8PM5DTtwN3MWd", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2542.309230943639, + "y": 2443.169750947453, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 268.6166687011719, + "height": 35, + "seed": 1973201292, + "groupIds": [ + "ykLosj_XTxtBP8SG7DwWa" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "TO BE RE-PROVEN", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "TO BE RE-PROVEN", + "lineHeight": 1.25, + "baseline": 25 + }, + { + "type": "arrow", + "version": 2823, + "versionNonce": 2031061556, + "isDeleted": false, + "id": "PbEVYPOxP4yq15vqhm8Wa", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2343.9136553055637, + "y": 2554.3602664501054, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 3.1564043742623653, + "height": 163.80661889721932, + "seed": 225253684, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399722, + "link": null, + "locked": false, + "startBinding": { + "elementId": "IpW3MsIAyu15ONS2Z73eh", + "focus": -1.1241703875495108, + "gap": 11.759659545781233 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.1564043742623653, + -163.80661889721932 + ] + ] + }, + { + "type": "text", + "version": 339, + "versionNonce": 740273420, + "isDeleted": false, + "id": "QLzA7hbyNuggnv_g9DP2A", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2628.7006007347104, + "y": 2508.638601521327, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 76.03333282470703, + "height": 25, + "seed": 471802548, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "WITH A", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "WITH A", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "text", + "version": 358, + "versionNonce": 1212033932, + "isDeleted": false, + "id": "7esqVSO8E6gju-uaLoGx-", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2628.7006007347104, + "y": 2543.638601521327, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 139.8000030517578, + "height": 25, + "seed": 1997581364, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "HIGHER TIER", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "HIGHER TIER", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "text", + "version": 338, + "versionNonce": 151575052, + "isDeleted": false, + "id": "4IQLMpeCKbqI4hpWv8b5T", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2628.7006007347104, + "y": 2578.638601521327, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 67.30000305175781, + "height": 25, + "seed": 1578436020, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "PROOF", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "PROOF", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "rectangle", + "version": 1580, + "versionNonce": 1769584780, + "isDeleted": false, + "id": "5t2ySlAwqGJWrHGdnW6Pm", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2979.5735894331956, + "y": 2576.669772375482, + "strokeColor": "#c92a2a", + "backgroundColor": "#1864ab", + "width": 144.90469360351562, + "height": 79.2421875, + "seed": 1444035980, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "B9VO8IfAP0pk-o7gFwoxB" + }, + { + "id": "qULw3Zdh_0_rNdr4nj95d", + "type": "arrow" + } + ], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1465, + "versionNonce": 1967834892, + "isDeleted": false, + "id": "B9VO8IfAP0pk-o7gFwoxB", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3018.3759347090745, + "y": 2603.790866125482, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "width": 67.30000305175781, + "height": 25, + "seed": 646622220, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "PROOF", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "5t2ySlAwqGJWrHGdnW6Pm", + "originalText": "PROOF", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "line", + "version": 1239, + "versionNonce": 28668940, + "isDeleted": false, + "id": "9_Xo5bcUFaZM8si_6IQXe", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2830.5243104108595, + "y": 2323.1104740464175, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 1525762700, + "groupIds": [ + "5jTmVq-1FUD8H8Hzhyv0g" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "line", + "version": 1306, + "versionNonce": 360911500, + "isDeleted": false, + "id": "w2dcTI5_pJZ4HfWTy9K2a", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2831.855548203828, + "y": 2351.554245408722, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 323.26873779296875, + "height": 0, + "seed": 905976076, + "groupIds": [ + "5jTmVq-1FUD8H8Hzhyv0g" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 323.26873779296875, + 0 + ] + ] + }, + { + "type": "line", + "version": 1338, + "versionNonce": 1259921676, + "isDeleted": false, + "id": "Ky_n3VhLH7Udzp7jWzyuJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3155.99030613182, + "y": 2324.909868283817, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 321984396, + "groupIds": [ + "5jTmVq-1FUD8H8Hzhyv0g" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "text", + "version": 1201, + "versionNonce": 435216268, + "isDeleted": false, + "id": "qgVZuhsLVQPb-TbtUvAey", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2885.733722031953, + "y": 2306.772980149933, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 235.01666259765625, + "height": 25, + "seed": 1321092620, + "groupIds": [ + "5jTmVq-1FUD8H8Hzhyv0g" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "provingWindow, t= X mins", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "provingWindow, t= X mins", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "arrow", + "version": 2782, + "versionNonce": 948446132, + "isDeleted": false, + "id": "qULw3Zdh_0_rNdr4nj95d", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2968.1009689683688, + "y": 2567.5530634070396, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 1.375301448726077, + "height": 201.68878735478756, + "seed": 765568140, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399723, + "link": null, + "locked": false, + "startBinding": { + "elementId": "5t2ySlAwqGJWrHGdnW6Pm", + "focus": -1.158613681415116, + "gap": 11.472620464826832 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.375301448726077, + -201.68878735478756 + ] + ] + }, + { + "type": "rectangle", + "version": 2898, + "versionNonce": 1292856460, + "isDeleted": false, + "id": "RW40wBuJPoAAFh7ExyFmf", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3154.9809169661303, + "y": 2383.2508731955927, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 249.57159107050327, + "height": 116.29053584326857, + "seed": 1167405836, + "groupIds": [ + "ReDiCzuK3ilMpzR6pVTfY" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2863, + "versionNonce": 1141504780, + "isDeleted": false, + "id": "ZgjLu6OgWlzzM8IN6Nx4K", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3223.4412053724745, + "y": 2390.0540679186756, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 1695740300, + "groupIds": [ + "ReDiCzuK3ilMpzR6pVTfY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 2)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 2)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "text", + "version": 1314, + "versionNonce": 1236187532, + "isDeleted": false, + "id": "WUiO4y7-mSAh1JDwaxFHS", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3208.9126514489444, + "y": 2455.1752283723413, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "width": 145.3000030517578, + "height": 45, + "seed": 2069159948, + "groupIds": [ + "ReDiCzuK3ilMpzR6pVTfY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "PROVED", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "PROVED", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "type": "line", + "version": 966, + "versionNonce": 1765255180, + "isDeleted": false, + "id": "SkN7m81eulDNQYfE9lDnq", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3410.84703895643, + "y": 2325.471566428049, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 1486346164, + "groupIds": [ + "TC9koE2HEro1-w-qxTuao" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "line", + "version": 1033, + "versionNonce": 916375180, + "isDeleted": false, + "id": "fo82JxWfJ8od_0AI7qqeb", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3412.1782767493987, + "y": 2353.9153377903535, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 323.26873779296875, + "height": 0, + "seed": 1823129908, + "groupIds": [ + "TC9koE2HEro1-w-qxTuao" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 323.26873779296875, + 0 + ] + ] + }, + { + "type": "line", + "version": 1065, + "versionNonce": 916329740, + "isDeleted": false, + "id": "YQOLeaO6Bkx0tyUMza-J-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3736.3130346773905, + "y": 2327.2709606654475, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 0, + "height": 54.23905944824219, + "seed": 564427444, + "groupIds": [ + "TC9koE2HEro1-w-qxTuao" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 54.23905944824219 + ] + ] + }, + { + "type": "text", + "version": 936, + "versionNonce": 1185911692, + "isDeleted": false, + "id": "_b5xsWh0ribXVRryySgTH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3466.0564505775237, + "y": 2309.1340725315645, + "strokeColor": "#000000", + "backgroundColor": "#1864ab", + "width": 189.43333435058594, + "height": 25, + "seed": 1378550836, + "groupIds": [ + "TC9koE2HEro1-w-qxTuao" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "cooldown, t= X mins", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "cooldown, t= X mins", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "line", + "version": 513, + "versionNonce": 84754956, + "isDeleted": false, + "id": "5kpWMsk-SZrCcgDQ-pWj4", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3564.788777194145, + "y": 2383.4284160550847, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 28, + "height": 43, + "seed": 337927604, + "groupIds": [ + "nMApY-2Jefhn8ZilTumAj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 28, + 43 + ] + ] + }, + { + "type": "line", + "version": 570, + "versionNonce": 951132300, + "isDeleted": false, + "id": "7Yzp-bZsU_XsjzAzktqaR", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3590.6769103604956, + "y": 2381.677795850082, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 25, + "height": 46, + "seed": 1354139444, + "groupIds": [ + "28oO-iy7O4GOlU3EtQrWm", + "nMApY-2Jefhn8ZilTumAj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -25, + 46 + ] + ] + }, + { + "type": "text", + "version": 430, + "versionNonce": 961883916, + "isDeleted": false, + "id": "FPQ04rnQv0RkdNZfvfVZU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3513.0439163587644, + "y": 2445.967655048116, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 147.6666717529297, + "height": 25, + "seed": 1548189876, + "groupIds": [ + "28oO-iy7O4GOlU3EtQrWm", + "nMApY-2Jefhn8ZilTumAj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "NO CONTESTS", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "NO CONTESTS", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "rectangle", + "version": 2499, + "versionNonce": 1467182476, + "isDeleted": false, + "id": "QCdGTv6e9njtdhFpaKbxx", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3741.2745995673795, + "y": 2371.406199543189, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "width": 249.57159107050327, + "height": 116.29053584326857, + "seed": 243092020, + "groupIds": [ + "T8QRjrSmox8W-reJJppR7" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2460, + "versionNonce": 1145429004, + "isDeleted": false, + "id": "8ZXVnJyRTYy2vdTlU6SVr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3809.7348879737247, + "y": 2378.209394266271, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 107.23332977294922, + "height": 64.90636861932636, + "seed": 1514005428, + "groupIds": [ + "T8QRjrSmox8W-reJJppR7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 25.962547447730543, + "fontFamily": 1, + "text": "L2 block\n(Tier 2)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": null, + "originalText": "L2 block\n(Tier 2)", + "lineHeight": 1.25, + "baseline": 56 + }, + { + "type": "text", + "version": 963, + "versionNonce": 2043050636, + "isDeleted": false, + "id": "5N_hijATdaoWEZ6QjvOhX", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3755.2063340501936, + "y": 2443.5805547199366, + "strokeColor": "#e03131", + "backgroundColor": "#ffec99", + "width": 222.8000030517578, + "height": 45, + "seed": 1705987380, + "groupIds": [ + "T8QRjrSmox8W-reJJppR7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716399265, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "VERIFIABLE", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "VERIFIABLE", + "lineHeight": 1.25, + "baseline": 32 + }, + { + "id": "8WkzX1o0xvJaNjopyIWby", + "type": "text", + "x": 3293.4063199951315, + "y": 1913.1464774474289, + "width": 782.1636804180871, + "height": 328.6678142574392, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1651776180, + "version": 1225, + "versionNonce": 581912844, + "isDeleted": false, + "boundElements": null, + "updated": 1695716399265, + "link": null, + "locked": false, + "text": "* Both contesting and proving comes with an associated\nbond to be paid to the protocol. These bonds are all re-\nfundable except the contester/prover is wrong.\nSo if Bob says Alice's previous proof is wrong, then he\ncontests and pay the respective bond. Once another tier\nproof confirms Bob is right, Alice loses all of her prover\nbond, and 1/4 - 1/4 is paid to the new prover and contester\n(who is Bob).\nSame applies the other way round. If Bob turns out to be\nwrong, his contester bond is gone too.", + "fontSize": 26.29342514059514, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 319, + "containerId": null, + "originalText": "* Both contesting and proving comes with an associated\nbond to be paid to the protocol. These bonds are all re-\nfundable except the contester/prover is wrong.\nSo if Bob says Alice's previous proof is wrong, then he\ncontests and pay the respective bond. Once another tier\nproof confirms Bob is right, Alice loses all of her prover\nbond, and 1/4 - 1/4 is paid to the new prover and contester\n(who is Bob).\nSame applies the other way round. If Bob turns out to be\nwrong, his contester bond is gone too.", + "lineHeight": 1.25 + }, + { + "id": "qIfOG5FSZgNeLnnW_aX3O", + "type": "rectangle", + "x": 1284.2287119007628, + "y": 1448.6505895426137, + "width": 2818.860204096772, + "height": 1527.104006122614, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 10, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1189089292, + "version": 416, + "versionNonce": 1038624524, + "isDeleted": false, + "boundElements": [], + "updated": 1695716831267, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 874, + "versionNonce": 1330660108, + "isDeleted": false, + "id": "rL8UHOREM454GnDsB3z_f", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 30, + "angle": 0, + "x": 1279.4100113519626, + "y": 1225.537528694864, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 2817.71921002052, + "height": 229.6755473000217, + "seed": 1953647540, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716872860, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1247, + "versionNonce": 1552849588, + "isDeleted": false, + "id": "H4eEKr3hUUV2NfpvrpdJz", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 30, + "angle": 0, + "x": 3261.250851109601, + "y": 1877.8113687589532, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 846.0654668309435, + "height": 392.35404454827466, + "seed": 976112308, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1695716796343, + "link": null, + "locked": false + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/packages/website/pages/docs/concepts/proposing.mdx b/packages/website/pages/docs/concepts/proposing.mdx index a01b5593ae5..a3b4a49b43b 100644 --- a/packages/website/pages/docs/concepts/proposing.mdx +++ b/packages/website/pages/docs/concepts/proposing.mdx @@ -3,8 +3,8 @@ On Taiko, the next L2 state is known immediately and deterministically at the time a block is proposed to the TaikoL1 contract. After a block is proposed, a series of checks are done to compute this post-L2 state: 1. Block is proposed by any proposer (permissionlessly). -2. Block level properties' validity is checked by the TaikoL1 contract with the ([proposed block intrinsic validity function](./proposing#proposed-block-intrinsic-validity-function)). -3. Proposed block is downloaded by a Taiko node, and the transaction list is parsed over and checked for validity ([transaction list intrinsic validity function](./proposing#transaction-list-intrinsic-validity-function)). +2. Block level properties' validity is checked by the TaikoL1 contract with the proposed block intrinsic validity function. +3. Proposed block is downloaded by a Taiko node, and the transaction list is parsed over and checked for validity transaction list intrinsic validity function. - IF every transaction in the list is valid, an ordered subset of the list is created by skipping over transactions which have an invalid nonce or the sender has too little Ether balance to pay for the transaction. This ordered subset is used along with the [anchor transaction](./proposing#anchor-transaction) to create a Taiko L2 block. - IF any transaction in the list is invalid, an empty block (with only the anchor tx) is created on L2. diff --git a/packages/website/pages/docs/concepts/proving.mdx b/packages/website/pages/docs/concepts/proving.mdx index bcd8c511c36..80e67563838 100644 --- a/packages/website/pages/docs/concepts/proving.mdx +++ b/packages/website/pages/docs/concepts/proving.mdx @@ -3,11 +3,11 @@ import { Callout } from "nextra-theme-docs"; # Proving Taiko blocks -The purpose of proving blocks is to give certainty to bridges about the execution that happened in the rollup. To rely on some state that happened inside of the rollup, a bridge will want a proof that everything was done correctly. On Taiko you can run a node as a prover and prove blocks, permissionlessly. This means that you can examine the proposed blocks on the TaikoL1 contract, and generate proofs for them. Currently, any prover can create proofs for proposed blocks. This means that the number of "state transitions" has no upper bound, because we don't know what is the correct state transition yet. Only first prover with a valid proof of the correct state transition will receive the reward of `ETH` (and possibly any `ERC20` or even NFTs if the Prover pool implementation favors it). +The purpose of proving blocks is to give certainty to bridges about the execution that happened in the rollup. To rely on some state that happened inside of the rollup, a bridge will want a proof that everything was done correctly. On Taiko you can run a node as a prover and prove blocks, permissionlessly. This means that you can examine the proposed blocks on the TaikoL1 contract, and generate proofs for them. Currently, any prover can create proofs for proposed blocks. This means that the number of "state transitions" has no upper bound, because we don't know what is the correct state transition yet. Only first prover with a valid proof of the correct state transition will receive Ether or ERC20 token as the proving fee. -## Verified blocks and parallel proving +## Generic overview of proving and verifying blocks -There are three states that a block can be in on Taiko: +There are 3 main states that a block can be in on Taiko: - Proposed - Proved @@ -48,6 +48,69 @@ For the visual learners here is a visualization of the three stages (proposed -> /> +## Multi-tier, contestable proof system + +To ensure the safety of funds and maintain a high level of security, a multi-tier proof system is introduced by Taiko. The system is fully customizable to require: +- no proofs at all +- only fraud proofs (optimistic-style) +- only ZK proofs +- only SGX proofs +- SGX + ZK proofs +- SGX proofs 40% of the time, and ZK proofs 60% of the time +- no-proofs 50%, SGX proofs 30% and ZK proofs 20% of the time + +or any combination of the above. (See diagram below). + +This system categorizes blocks into different default tiers. Here's an overview of how this system works: + +### Tiered proof system + Tier Hierarchy: + The multi-proof system is organized into tiers, with Tier N being more secure than Tier N-1. Tier N-1 is (should be) always a subset of Tier N. + Tiers are designed to offer varying degrees of security and resource requirements for block validation. + + Default Tier Assignment: + Each block is assigned a default tier during proposeBlock(). + + Example of having Tier N and Tier N+1 types within the configuration: + Blocks with a default assigned Tier N can be proven with a Tier N related proof. + Blocks each has a validity- and a contestbond attached to it which has to be paid accordingly. (More about contesting one section above). + The underlying cryptographic techniques used for proofs can vary between tiers, with Tier 2 proofs typically being more robust and resource-intensive. + +### Contesting block transitions + Contest Mechanism: + In this multi-tier proof system, participants can contest the validity of block transition proofs. + If a participant believes that a block's transition proof is invalid, they can initiate a "contest" by submitting the approrpiate transaction. + + Contest Bond: + To participate in a contest, the contester is required to post a contest bond. This bond signals their legitimate intention to challenge the validity of the transition proof. + The bond is a financial commitment that discourages frivolous or malicious contests. + + Auto-Escalation of Tiers: + Upon the submission of a contest, the block's transition tier is automatically raised to the next higher tier (e.g., from Tier 1 to Tier 2). + This escalation ensures that a higher level of security is required to validate the block's transition. + +Here is a visual breakdown of the above mentioned process: + +**System overview:** + +
+ overview +
+**Block lifecycle:** +
+ lifecycle +
+ ## Off chain prover market (PBS style) Proving blocks requires significant compute power to calculate the proof diff --git a/packages/website/pages/docs/index.mdx b/packages/website/pages/docs/index.mdx index 57f3abdb772..52489944663 100644 --- a/packages/website/pages/docs/index.mdx +++ b/packages/website/pages/docs/index.mdx @@ -2,7 +2,11 @@ import { Cards, Card } from "nextra/components"; ## Welcome to Taiko 🥁 -Taiko is a decentralized, Ethereum-equivalent ZK-Rollup ([Type 1 ZK-EVM](https://mirror.xyz/labs.taiko.eth/w7NSKDeKfJoEy0p89I9feixKfdK-20JgWF9HZzxfeBo)). We're working on the full Ethereum [ZK-EVM circuits](https://github.com/privacy-scaling-explorations/zkevm-circuits) as part of a community effort led by the Ethereum Foundation's Privacy and Scaling Explorations (PSE) team. +Taiko is a decentralized, Ethereum-equivalent ZK-Rollup ([Type 1 ZK-EVM](https://mirror.xyz/labs.taiko.eth/w7NSKDeKfJoEy0p89I9feixKfdK-20JgWF9HZzxfeBo)). We're working on the full Ethereum [ZK-EVM circuits](https://github.com/privacy-scaling-explorations/zkevm-circuits) as part of a community effort led by the Ethereum Foundation's Privacy and Scaling Explorations (PSE) team but + +> "34.469 lines of code are not going to be bug-free for a long long time" - Vitalik Buterin about the ZK-EVM circuit code. + +If we can't make them bug-free then what we could do about it ? There are different practical, short and mid-term alternatives (Proof-of-governance based override, self-cancellation, etc.) to secure the network and Taiko decided to use a multi-prover system going forward. Check out the [Taiko roadmap](/images/roadmaps/taiko-roadmap.png) to see where we're going! diff --git a/packages/website/pages/docs/reference/contract-documentation/L1/IProofVerifier.md b/packages/website/pages/docs/reference/contract-documentation/L1/IProofVerifier.md deleted file mode 100644 index 031ddfe64cf..00000000000 --- a/packages/website/pages/docs/reference/contract-documentation/L1/IProofVerifier.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: IProofVerifier ---- - -## IProofVerifier - -Contract that is responsible for verifying proofs. - -### verifyProofs - -```solidity -function verifyProofs(uint64 blockId, bytes blockProofs, bytes32 instance) external -``` - -Verify the given proof(s) for the given blockId. This function -should revert if the verification fails. - -#### Parameters - -| Name | Type | Description | -| ----------- | ------- | ----------------------------------------------------------------------------------------- | -| blockId | uint64 | Unique identifier for the block. | -| blockProofs | bytes | Raw bytes representing the proof(s). | -| instance | bytes32 | Hashed evidence & config data. If set to zero, proof is assumed to be from oracle prover. | diff --git a/packages/website/pages/docs/reference/contract-documentation/L1/IProver.md b/packages/website/pages/docs/reference/contract-documentation/L1/IProver.md deleted file mode 100644 index bd28f077bd1..00000000000 --- a/packages/website/pages/docs/reference/contract-documentation/L1/IProver.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: IProver ---- - -## IProver - -Defines the function that handle prover assignment. - -### onBlockAssigned - -```solidity -function onBlockAssigned(uint64 blockId, struct TaikoData.BlockMetadataInput input, struct TaikoData.ProverAssignment assignment) external payable -``` - -Assigns a prover to a specific block or reverts if this prover -is not available. - -#### Parameters - -| Name | Type | Description | -| ---------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| blockId | uint64 | The ID of the proposed block. Note that the ID is only known when the block is proposed, therefore, it should not be used for verifying prover authorization. | -| input | struct TaikoData.BlockMetadataInput | The block's BlockMetadataInput data. | -| assignment | struct TaikoData.ProverAssignment | The assignment to evaluate | diff --git a/packages/website/pages/docs/reference/contract-documentation/L1/IVerifier.md b/packages/website/pages/docs/reference/contract-documentation/L1/IVerifier.md new file mode 100644 index 00000000000..659192821f7 --- /dev/null +++ b/packages/website/pages/docs/reference/contract-documentation/L1/IVerifier.md @@ -0,0 +1,27 @@ +--- +title: IVerifier +--- + +## IVerifier + +A contract that is responsible for verifying proofs. Implementing this interface is required by different (tier) verifiers. This is a key part of our new multi-proof system. + +For example the `PseZkVerifier.sol` is a verifier tied to a tier called `TIER_PSE_ZKEVM` and will contain all the necessary code to verify a specific proof tied to that given tier. + +### verifyProofs + +```solidity +function verifyProofs(uint64 blockId, address prover, bool isContesting, TaikoData.BlockEvidence memory evidence) external +``` + +Verify the given proof(s) for the given blockId. This function +should revert if the verification fails. + +#### Parameters + +| Name | Type | Description | +| ------------ | ----------------------- | ------------------------------------------------------------------------------- | +| blockId | uint64 | Unique identifier for the block. | +| prover | address | Address of the prover. | +| isContesting | bool | A boolean to indicate if this is an actual proof or only a contest (challenge). | +| evidence | TaikoData.BlockEvidence | Evidence data to be able to verify the proofs. | diff --git a/packages/website/pages/docs/reference/contract-documentation/L1/ProofVerifier.md b/packages/website/pages/docs/reference/contract-documentation/L1/ProofVerifier.md deleted file mode 100644 index cf4d064d71d..00000000000 --- a/packages/website/pages/docs/reference/contract-documentation/L1/ProofVerifier.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: ProofVerifier ---- - -## ProofVerifier - -See the documentation in {IProofVerifier}. - -### L1_INVALID_PROOF - -```solidity -error L1_INVALID_PROOF() -``` - -### init - -```solidity -function init(address _addressManager) external -``` - -Initializes the contract with the provided address manager. - -#### Parameters - -| Name | Type | Description | -| ---------------- | ------- | -------------------------------------------- | -| \_addressManager | address | The address of the address manager contract. | - -### verifyProofs - -```solidity -function verifyProofs(uint64, bytes blockProofs, bytes32 instance) external view -``` - -Verify the given proof(s) for the given blockId. This function -should revert if the verification fails. - -#### Parameters - -| Name | Type | Description | -| ----------- | ------- | ----------------------------------------------------------------------------------------- | -| | uint64 | | -| blockProofs | bytes | Raw bytes representing the proof(s). | -| instance | bytes32 | Hashed evidence & config data. If set to zero, proof is assumed to be from oracle prover. | - ---- - -## title: ProxiedProofVerifier - -## ProxiedProofVerifier - -Proxied version of the parent contract. diff --git a/packages/website/pages/docs/reference/contract-documentation/L1/TaikoData.md b/packages/website/pages/docs/reference/contract-documentation/L1/TaikoData.md index 7fa7d03d175..c32a678eb53 100644 --- a/packages/website/pages/docs/reference/contract-documentation/L1/TaikoData.md +++ b/packages/website/pages/docs/reference/contract-documentation/L1/TaikoData.md @@ -24,11 +24,7 @@ struct Config { uint256 blockTxListExpiry; uint256 proposerRewardPerSecond; uint256 proposerRewardMax; - uint256 proofRegularCooldown; - uint256 proofOracleCooldown; - uint16 proofWindow; - uint96 validityBond; - bool skipProverAssignmentVerificaiton; + uint96 livenessBond; uint256 ethDepositRingBufferSize; uint64 ethDepositMinCountPerBlock; uint64 ethDepositMaxCountPerBlock; @@ -47,36 +43,29 @@ _Struct holding state variables._ struct StateVariables { uint64 genesisHeight; uint64 genesisTimestamp; - uint64 numBlocks; - uint64 lastVerifiedBlockId; uint64 nextEthDepositToProcess; uint64 numEthDeposits; + uint64 numBlocks; + uint64 lastVerifiedBlockId; } ``` -### BlockMetadataInput +### ProverAssignment and TierFee -_Struct representing input data for block metadata._ +_Struct representing prover assignment and associated tiers_ ```solidity -struct BlockMetadataInput { - bytes32 txListHash; - address proposer; - uint24 txListByteStart; - uint24 txListByteEnd; - bool cacheTxListInfo; +struct TierFee { + uint16 tier; + uint256 fee; } -``` - -### ProverAssignment -_Struct representing prover assignment_ - -```solidity struct ProverAssignment { - address prover; - uint64 expiry; - bytes data; + address prover; + address feeToken; + TierFee[] tierFees; + uint64 expiry; + bytes signature; } ``` @@ -88,17 +77,15 @@ accordingly._ ```solidity struct BlockMetadata { - uint64 id; - uint64 timestamp; - uint64 l1Height; bytes32 l1Hash; bytes32 mixHash; bytes32 txListHash; - uint24 txListByteStart; - uint24 txListByteEnd; + uint64 id; + uint64 timestamp; + uint64 l1Height; uint32 gasLimit; - address proposer; - struct TaikoData.EthDeposit[] depositsProcessed; + address coinbase; + TaikoData.EthDeposit[] depositsProcessed; } ``` @@ -113,15 +100,15 @@ struct BlockEvidence { bytes32 blockHash; bytes32 signalRoot; bytes32 graffiti; - address prover; - bytes proofs; + uint16 tier; + bytes proof; } ``` ### Transition _Struct representing state transition data. -10 slots reserved for upgradability, 4 slots used._ +10 slots reserved for upgradability, 6 slots used._ ```solidity struct Transition { @@ -129,8 +116,12 @@ struct Transition { bytes32 blockHash; bytes32 signalRoot; address prover; - uint64 provenAt; - bytes32[6] __reserved; + uint96 validityBond; + address contester; + uint96 contestBond; + uint64 timestamp; + uint16 tier; + bytes32[4] __reserved; } ``` @@ -142,28 +133,17 @@ _Struct containing data required for verifying a block. ```solidity struct Block { bytes32 metaHash; - address prover; - uint96 validityBond; + address assignedProver; + uint96 livenessBond; uint64 blockId; uint64 proposedAt; uint32 nextTransitionId; uint32 verifiedTransitionId; + uint16 minTier; bytes32[7] __reserved; } ``` -### TxListInfo - -_Struct representing information about a transaction list. -1 slot used._ - -```solidity -struct TxListInfo { - uint64 validSince; - uint24 size; -} -``` - ### EthDeposit _Struct representing an Ethereum deposit. @@ -212,13 +192,12 @@ _Struct holding the state variables for the {TaikoL1} contract._ ```solidity struct State { mapping(uint64 => struct TaikoData.Block) blocks; - mapping(uint64 => mapping(bytes32 => uint32)) transitionIds; mapping(uint64 => mapping(uint32 => struct TaikoData.Transition)) transitions; - mapping(bytes32 => struct TaikoData.TxListInfo) txListInfo; + mapping(uint64 => mapping(bytes32 => uint32)) transitionIds; mapping(uint256 => uint256) ethDeposits; - mapping(address => uint256) taikoTokenBalances; + mapping(address => uint256) tokenBalances; struct TaikoData.SlotA slotA; struct TaikoData.SlotB slotB; - uint256[142] __gap; + uint256[143] __gap; } ``` diff --git a/packages/website/pages/docs/reference/contract-documentation/L1/TaikoErrors.md b/packages/website/pages/docs/reference/contract-documentation/L1/TaikoErrors.md index 45d63a671b8..a709a371483 100644 --- a/packages/website/pages/docs/reference/contract-documentation/L1/TaikoErrors.md +++ b/packages/website/pages/docs/reference/contract-documentation/L1/TaikoErrors.md @@ -8,34 +8,58 @@ This abstract contract provides custom error declartions used in the Taiko protocol. Each error corresponds to specific situations where exceptions might be thrown. -### L1_ALREADY_PROVEN +### L1_ALREADY_CONTESTED ```solidity -error L1_ALREADY_PROVEN() +error L1_ALREADY_CONTESTED() ``` -### L1_BLOCK_ID_MISMATCH +### L1_ALREADY_PROVED ```solidity -error L1_BLOCK_ID_MISMATCH() +error L1_ALREADY_PROVED() ``` -### L1_EVIDENCE_MISMATCH +### L1_ASSIGNMENT_EXPIRED ```solidity -error L1_EVIDENCE_MISMATCH() +error L1_ASSIGNMENT_EXPIRED() ``` -### L1_INSUFFICIENT_TOKEN +### L1_ASSIGNMENT_INVALID_SIG ```solidity -error L1_INSUFFICIENT_TOKEN() +error L1_ASSIGNMENT_INVALID_SIG() ``` -### L1_INVALID_ASSIGNMENT +### L1_ASSIGNMENT_INVALID_PARAMS ```solidity -error L1_INVALID_ASSIGNMENT() +error L1_ASSIGNMENT_INVALID_PARAMS() +``` + +### L1_ASSIGNMENT_INSUFFICIENT_FEE + +```solidity +error L1_ASSIGNMENT_INSUFFICIENT_FEE() +``` + +### L1_ASSIGNED_PROVER_NOT_ALLOWED + +```solidity +error L1_ASSIGNED_PROVER_NOT_ALLOWED() +``` + +### L1_BLOCK_MISMATCH + +```solidity +error L1_BLOCK_MISMATCH() +``` + +### L1_INVALID_ADDRESS + +```solidity +error L1_INVALID_ADDRESS() ``` ### L1_INVALID_BLOCK_ID @@ -68,12 +92,6 @@ error L1_INVALID_EVIDENCE() error L1_INVALID_METADATA() ``` -### L1_INVALID_ORACLE_PROVER - -```solidity -error L1_INVALID_ORACLE_PROVER() -``` - ### L1_INVALID_PARAM ```solidity @@ -104,16 +122,22 @@ error L1_INVALID_PROVER() error L1_INVALID_PROVER_SIG() ``` -### L1_NOT_PROVEABLE +### L1_INVALID_TIER ```solidity -error L1_NOT_PROVEABLE() +error L1_INVALID_TIER() ``` -### L1_SAME_PROOF +### L1_NOT_ASSIGNED_PROVER ```solidity -error L1_SAME_PROOF() +error L1_NOT_ASSIGNED_PROVER() +``` + +### L1_TIER_NOT_FOUND + +```solidity +error L1_TIER_NOT_FOUND() ``` ### L1_TOO_MANY_BLOCKS @@ -122,34 +146,46 @@ error L1_SAME_PROOF() error L1_TOO_MANY_BLOCKS() ``` +### L1_TRANSITION_ID_ZERO + +```solidity +error L1_TRANSITION_ID_ZERO() +``` + ### L1_TRANSITION_NOT_FOUND ```solidity error L1_TRANSITION_NOT_FOUND() ``` -### L1_TX_LIST_NOT_EXIST +### L1_TXLIST_INVALID_RANGE + +```solidity +error L1_TXLIST_INVALID_RANGE() +``` + +### L1_TXLIST_MISMATCH ```solidity -error L1_TX_LIST_NOT_EXIST() +error L1_TXLIST_MISMATCH() ``` -### L1_TX_LIST_HASH +### L1_TXLIST_NOT_FOUND ```solidity -error L1_TX_LIST_HASH() +error L1_TXLIST_NOT_FOUND() ``` -### L1_TX_LIST_RANGE +### L1_TXLIST_TOO_LARGE ```solidity -error L1_TX_LIST_RANGE() +error L1_TXLIST_TOO_LARGE() ``` -### L1_TX_LIST +### L1_UNAUTHORIZED ```solidity -error L1_TX_LIST() +error L1_UNAUTHORIZED() ``` ### L1_UNEXPECTED_TRANSITION_ID @@ -157,3 +193,9 @@ error L1_TX_LIST() ```solidity error L1_UNEXPECTED_TRANSITION_ID() ``` + +### L1_UNEXPECTED_TRANSITION_TIER + +```solidity +error L1_UNEXPECTED_TRANSITION_TIER() +``` diff --git a/packages/website/pages/docs/reference/contract-documentation/L1/TaikoEvents.md b/packages/website/pages/docs/reference/contract-documentation/L1/TaikoEvents.md index 34a0ae37b8c..fc3d44b19af 100644 --- a/packages/website/pages/docs/reference/contract-documentation/L1/TaikoEvents.md +++ b/packages/website/pages/docs/reference/contract-documentation/L1/TaikoEvents.md @@ -14,53 +14,79 @@ L1 libraries._ ### BlockProposed ```solidity -event BlockProposed(uint256 blockId, address prover, uint256 reward, struct TaikoData.BlockMetadata meta) +event BlockProposed(uint256 blockId, address assignedProver, uint96 livenessBond, uint256 proverFee, uint256 reward, struct TaikoData.BlockMetadata meta) ``` _Emitted when a block is proposed._ #### Parameters -| Name | Type | Description | -| ------- | ------------------------------ | ------------------------------------------------------------------- | -| blockId | uint256 | The ID of the proposed block. | -| prover | address | The address of the assigned prover for the block. | -| reward | uint256 | The proposer's block reward in Taiko token. | -| meta | struct TaikoData.BlockMetadata | The block metadata containing information about the proposed block. | +| Name | Type | Description | +| -------------- | ------------------------------ | ------------------------------------------------------------------- | +| blockId | uint256 | The ID of the proposed block. | +| assignedProver | address | The address of the assigned prover for the block. | +| livenessBond | uint96 | The bond which needs to be paid by the assigned prover. | +| proverFee | uint256 | The amount paid to the prover. | +| reward | uint256 | The proposer's block reward in Taiko token. | +| meta | struct TaikoData.BlockMetadata | The block metadata containing information about the proposed block. | -### BlockProven +### TransitionProved ```solidity -event BlockProven(uint256 blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) +event TransitionProved(uint256 blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint96 validityBond, uint16 tier) ``` -_Emitted when a block is proven._ +_Emitted when a block transition is proven or re-proven._ #### Parameters -| Name | Type | Description | -| ---------- | ------- | -------------------------------------------------- | -| blockId | uint256 | The ID of the proven block. | -| parentHash | bytes32 | The hash of the parent block. | -| blockHash | bytes32 | The hash of the proven block. | -| signalRoot | bytes32 | The signal root of the proven block. | -| prover | address | The address of the prover who submitted the proof. | +| Name | Type | Description | +| ------------ | ------- | ------------------------------------------------------------------------- | +| blockId | uint256 | The ID of the proven block. | +| parentHash | bytes32 | The hash of the parent block. | +| blockHash | bytes32 | The hash of the proven block. | +| signalRoot | bytes32 | The signal root of the proven block. | +| prover | address | The address of the prover who submitted the proof. | +| validityBond | uint96 | The amount prover pays to have finanical incentive to submit legit proof. | +| tier | uint16 | The tier per given transition. | + +### TransitionContested + +```solidity +event TransitionContested(uint256 blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address contester, uint96 contestBond, uint16 tier) +``` + +_Emitted when a block transition is contested._ + +#### Parameters + +| Name | Type | Description | +| ----------- | ------- | ---------------------------------------------------------- | +| blockId | uint256 | The ID of the proven block. | +| parentHash | bytes32 | The hash of the parent block. | +| blockHash | bytes32 | The hash of the proven block. | +| signalRoot | bytes32 | The signal root of the proven block. | +| contester | address | The address of the contester. | +| contestBond | uint96 | The amount contester pays to signal it's legit intentions. | +| tier | uint16 | The tier per given transition. | ### BlockVerified ```solidity -event BlockVerified(uint256 blockId, address prover, bytes32 blockHash) +event BlockVerified(uint256 blockId, address assignedProver, address prover, bytes32 blockHash, bytes32 signalRoot) ``` _Emitted when a block is verified._ #### Parameters -| Name | Type | Description | -| --------- | ------- | ------------------------------------------------------------------ | -| blockId | uint256 | The ID of the verified block. | -| prover | address | The address of the prover that proved the block which is verified. | -| blockHash | bytes32 | The hash of the verified block. | +| Name | Type | Description | +| -------------- | ------- | ------------------------------------------------------------------ | +| blockId | uint256 | The ID of the verified block. | +| assignedProver | address | The address of the originally assigned prover. | +| prover | address | The address of the prover that proved the block which is verified. | +| blockHash | bytes32 | The hash of the verified block. | +| signalRoot | bytes32 | The latest value of the signal service storage. | ### EthDeposited @@ -76,25 +102,75 @@ _Emitted when an Ethereum deposit is made._ | ------- | --------------------------- | --------------------------------------------------------------------- | | deposit | struct TaikoData.EthDeposit | The Ethereum deposit information including recipient, amount, and ID. | -### BondReceived +### TokenDeposited ```solidity -event BondReceived(address from, uint64 blockId, uint256 bond) +event TokenDeposited(uint256 amount) ``` -_The following events are emitted when bonds are received, returned, -or rewarded. Note that no event is emitted when a bond is kept/burnt as -for a single block, multiple bonds may get burned or retained by the -protocol, emitting events will consume more gas._ +_Emitted when a user deposited Taiko token into this contract._ + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | ------------------- | +| amount | uint256 | The deposit amount. | -### BondReturned +### TokenWithdrawn ```solidity -event BondReturned(address to, uint64 blockId, uint256 bond) +event TokenWithdrawn(uint256 amount) ``` -### BondRewarded +_Emitted when a user withdrawed Taiko token from this contract._ + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | --------------------- | +| amount | uint256 | The withdrawn amount. | + +### TokenCredited ```solidity -event BondRewarded(address to, uint64 blockId, uint256 bond) +event TokenCredited(uint256 amount, bool minted) ``` + +_Emitted when Taiko token are credited to the user's in-protocol balance._ + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | ----------------------------------- | +| amount | uint256 | The withdrawn amount. | +| minted | bool | Indicating if minting is necessary. | + +### TokenDebited + +```solidity +event TokenDebited(uint256 amount, bool fromLocalBalance) +``` + +_Emitted when Taiko token are debited from the user's in-protocol balance._ + +#### Parameters + +| Name | Type | Description | +| ---------------- | ------- | ----------------------------------------------- | +| amount | uint256 | The debit amount. | +| fromLocalBalance | bool | Indicating if debit from local balance or burn. | + +### TokenWithdrawnByOwner + +```solidity +event TokenWithdrawnByOwner(address to, uint256 amount) +``` + +_Emitted when the owner withdrawn Taiko token from this contract._ + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | ------------------------ | +| to | address | The beneficiary address. | +| amount | uint256 | The amount. | diff --git a/packages/website/pages/docs/reference/contract-documentation/L1/TaikoL1.md b/packages/website/pages/docs/reference/contract-documentation/L1/TaikoL1.md index d5d94b68358..7929606efad 100644 --- a/packages/website/pages/docs/reference/contract-documentation/L1/TaikoL1.md +++ b/packages/website/pages/docs/reference/contract-documentation/L1/TaikoL1.md @@ -4,6 +4,284 @@ title: TaikoL1 ## TaikoL1 +### state + +```solidity +struct TaikoData.State state +``` + +### receive + +```solidity +receive() external payable +``` + +_Fallback function to receive Ether and deposit to Layer 2._ + +### init + +```solidity +function init(address _addressManager, bytes32 _genesisBlockHash) external +``` + +Initializes the rollup. + +#### Parameters + +| Name | Type | Description | +| ------------------ | ------- | ------------------------------------ | +| \_addressManager | address | The {AddressManager} address. | +| \_genesisBlockHash | bytes32 | The block hash of the genesis block. | + +### proposeBlock + +```solidity +function proposeBlock(bytes input, bytes assignment, bytes txList) external payable returns (struct TaikoData.BlockMetadata meta) +``` + +Proposes a Taiko L2 block. + +#### Parameters + +| Name | Type | Description | +| ---------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| input | bytes | An abi-encoded BlockMetadataInput that the actual L2 block header must satisfy. | +| assignment | bytes | Data to assign a prover. | +| txList | bytes | A list of transactions in this block, encoded with RLP. Note, in the corresponding L2 block an "anchor transaction" will be the first transaction in the block. If there are `n` transactions in the `txList`, then there will be up to `n + 1` transactions in the L2 block. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------------------------------ | -------------------------------------- | +| meta | struct TaikoData.BlockMetadata | The metadata of the proposed L2 block. | + +### proveBlock + +```solidity +function proveBlock(uint64 blockId, bytes input) external +``` + +Proves a block with a zero-knowledge proof. + +#### Parameters + +| Name | Type | Description | +| ------- | ------ | ---------------------------------------------------------------------------------------------- | +| blockId | uint64 | The index of the block to prove. This is also used to select the right implementation version. | +| input | bytes | An abi-encoded {TaikoData.BlockEvidence} object. | + +### verifyBlocks + +```solidity +function verifyBlocks(uint64 maxBlocks) external +``` + +Verifies up to N blocks. + +#### Parameters + +| Name | Type | Description | +| --------- | ------ | ------------------------------- | +| maxBlocks | uint64 | Max number of blocks to verify. | + +### depositTaikoToken + +```solidity +function depositTaikoToken(uint256 amount) external +``` + +Deposits Taiko tokens to the contract. + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | ---------------------------------- | +| amount | uint256 | Amount of Taiko tokens to deposit. | + +### withdrawTaikoToken + +```solidity +function withdrawTaikoToken(uint256 amount) external +``` + +Withdraws Taiko tokens from the contract. + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | ----------------------------------- | +| amount | uint256 | Amount of Taiko tokens to withdraw. | + +### depositEtherToL2 + +```solidity +function depositEtherToL2(address recipient) public payable +``` + +Deposits Ether to Layer 2. + +#### Parameters + +| Name | Type | Description | +| --------- | ------- | ------------------------------------------------------------ | +| recipient | address | Address of the recipient for the deposited Ether on Layer 2. | + +### getTaikoTokenBalance + +```solidity +function getTaikoTokenBalance(address addr) public view returns (uint256) +``` + +Gets the Taiko token balance for a specific address. + +#### Parameters + +| Name | Type | Description | +| ---- | ------- | ----------------------------------------- | +| addr | address | Address to check the Taiko token balance. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | --------------------------------------- | +| [0] | uint256 | The Taiko token balance of the address. | + +### canDepositEthToL2 + +```solidity +function canDepositEthToL2(uint256 amount) public view returns (bool) +``` + +Checks if Ether deposit is allowed for Layer 2. + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | -------------------------------- | +| amount | uint256 | Amount of Ether to be deposited. | + +#### Return Values + +| Name | Type | Description | +| ---- | ---- | -------------------------------------------------- | +| [0] | bool | true if Ether deposit is allowed, false otherwise. | + +### getBlock + +```solidity +function getBlock(uint64 blockId) public view returns (struct TaikoData.Block blk) +``` + +Gets the details of a block. + +#### Parameters + +| Name | Type | Description | +| ------- | ------ | ------------------- | +| blockId | uint64 | Index of the block. | + +#### Return Values + +| Name | Type | Description | +| ---- | ---------------------- | ----------- | +| blk | struct TaikoData.Block | The block. | + +### getTransition + +```solidity +function getTransition(uint64 blockId, bytes32 parentHash) public view returns (struct TaikoData.Transition) +``` + +Gets the state transition for a specific block. + +#### Parameters + +| Name | Type | Description | +| ---------- | ------- | ------------------------- | +| blockId | uint64 | Index of the block. | +| parentHash | bytes32 | Parent hash of the block. | + +#### Return Values + +| Name | Type | Description | +| ---- | --------------------------- | --------------------------------------- | +| [0] | struct TaikoData.Transition | The state transition data of the block. | + +### getCrossChainBlockHash + +```solidity +function getCrossChainBlockHash(uint64 blockId) public view returns (bytes32) +``` + +Fetches the hash of a block from the opposite chain. + +#### Parameters + +| Name | Type | Description | +| ------- | ------ | ------------------------------------------------------------------------- | +| blockId | uint64 | The target block id. Specifying 0 retrieves the hash of the latest block. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | --------------------------------------------------- | +| [0] | bytes32 | The hash of the desired block from the other chain. | + +### getCrossChainSignalRoot + +```solidity +function getCrossChainSignalRoot(uint64 blockId) public view returns (bytes32) +``` + +Retrieves the root hash of the signal service storage for a +given block from the opposite chain. + +#### Parameters + +| Name | Type | Description | +| ------- | ------ | ------------------------------------------------------------------------- | +| blockId | uint64 | The target block id. Specifying 0 retrieves the root of the latest block. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | ------------------------------------------------------- | +| [0] | bytes32 | The root hash for the specified block's signal service. | + +### getStateVariables + +```solidity +function getStateVariables() public view returns (struct TaikoData.StateVariables) +``` + +Gets the state variables of the TaikoL1 contract. + +#### Return Values + +| Name | Type | Description | +| ---- | ------------------------------- | ------------------------------------------------- | +| [0] | struct TaikoData.StateVariables | StateVariables struct containing state variables. | + +### getVerifierName + +```solidity +function getVerifierName(uint16 id) public pure returns (bytes32) +``` + +Gets the name of the proof verifier by ID. + +#### Parameters + +| Name | Type | Description | +| ---- | ------ | ------------------- | +| id | uint16 | ID of the verifier. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | -------------- | +| [0] | bytes32 | Verifier name. | + ### getConfig ```solidity @@ -18,8 +296,6 @@ Gets the configuration of the TaikoL1 contract. | ---- | ----------------------- | -------------------------------------------------- | | [0] | struct TaikoData.Config | Config struct containing configuration parameters. | ---- - ## title: ProxiedTaikoL1 ## ProxiedTaikoL1 diff --git a/packages/website/pages/docs/reference/contract-documentation/L2/TaikoL2.md b/packages/website/pages/docs/reference/contract-documentation/L2/TaikoL2.md index 45904f8c188..eff1b301e08 100644 --- a/packages/website/pages/docs/reference/contract-documentation/L2/TaikoL2.md +++ b/packages/website/pages/docs/reference/contract-documentation/L2/TaikoL2.md @@ -152,20 +152,6 @@ message verification. | l1Height | uint64 | The latest L1 block height when this block was proposed. | | parentGasUsed | uint32 | The gas used in the parent block. | -### updateEIP1559Config - -```solidity -function updateEIP1559Config(struct TaikoL2.EIP1559Params _param1559) public -``` - -Updates EIP-1559 configurations. - -#### Parameters - -| Name | Type | Description | -| ----------- | ---------------------------- | ---------------------------------------------------- | -| \_param1559 | struct TaikoL2.EIP1559Params | EIP-1559 parameters to set up the gas pricing model. | - ### getBasefee ```solidity diff --git a/packages/website/pages/docs/reference/node-troubleshooting.mdx b/packages/website/pages/docs/reference/node-troubleshooting.mdx index acf91c54438..eb0081579ce 100644 --- a/packages/website/pages/docs/reference/node-troubleshooting.mdx +++ b/packages/website/pages/docs/reference/node-troubleshooting.mdx @@ -30,7 +30,7 @@ Your RPC provider has a limit on the number of requests. You can try using an RP The block that you want to prove has already been verified, you can ignore this. -#### `error: L1_ALREADY_PROVEN` +#### `error: L1_ALREADY_PROVED` This block has been proven by someone else, but it's not verified yet, you can ignore it. diff --git a/packages/website/public/images/protocol/BlockLifecycle.png b/packages/website/public/images/protocol/BlockLifecycle.png new file mode 100644 index 00000000000..9e936d9f3d9 Binary files /dev/null and b/packages/website/public/images/protocol/BlockLifecycle.png differ diff --git a/packages/website/public/images/protocol/ContestableZkRollup.png b/packages/website/public/images/protocol/ContestableZkRollup.png new file mode 100644 index 00000000000..c0f8642e47d Binary files /dev/null and b/packages/website/public/images/protocol/ContestableZkRollup.png differ