From 8bd162b22a5de6765fead37a1dc409166fb819a8 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Wed, 15 Feb 2023 15:45:08 +0800 Subject: [PATCH] Revert "Revert "fix(protocol): make mixHash have random number from beaconchain (#13156)"" This reverts commit a691892539b4c82f973577415457eaa8f05813f4. --- packages/protocol/contracts/L1/libs/LibProposing.sol | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/protocol/contracts/L1/libs/LibProposing.sol b/packages/protocol/contracts/L1/libs/LibProposing.sol index 3ce587aff3c..0377f88669e 100644 --- a/packages/protocol/contracts/L1/libs/LibProposing.sol +++ b/packages/protocol/contracts/L1/libs/LibProposing.sol @@ -109,9 +109,13 @@ library LibProposing { meta.l1Hash = blockhash(block.number - 1); meta.timestamp = uint64(block.timestamp); - // if multiple L2 blocks included in the same L1 block, - // their block.mixHash fields for randomness will be the same. - meta.mixHash = bytes32(block.difficulty); + // After The Merge, mixHash contains the prevrandao + // from the beacon chain. Since multiple Taiko blocks + // can be proposed in one Ethereum block, we need to + // add salt to this random number. + meta.mixHash = keccak256( + abi.encodePacked(block.prevrandao, state.nextBlockId) + ); } uint256 deposit;