kernel: update assumevalid and minimumChainWork
What changed, and why it matters
This commit updates two routine Bitcoin network parameters—'minimumChainWork' and 'assumevalid'—to point to newer, well-mined blocks on the main network, testnet, and signet. These values tell a freshly started Bitcoin node how much proof-of-work history it should require before trusting the chain it sees. The change is a standard, scheduled maintenance update and does not fix a software bug or introduce a known vulnerability. However, because these parameters influence which chain a node follows, setting them incorrectly could theoretically affect network behavior, so the commit touches a security-relevant part of the code.
No immediate action required. Treat as routine maintenance. Node operators who build from source should ensure they understand that assumevalid and minimumChainWork are updated to newer blocks, which is expected behavior. Reviewers may verify the new block hashes and chain-work values against public block explorers for the corresponding heights.
Security signals we found
Touches consensus/security-relevant parameters (minimumChainWork, defaultAssumeValid)
No accompanying advisory, CVE, or security discussion in commit message
Standard periodic chain-parameter maintenance pattern
Changes affect all default network configurations (mainnet, testnet, testnet4, signet)
Evidence from the diff
The patch bumps consensus.nMinimumChainWork and consensus.defaultAssumeValid for CMainParams, CTestNetParams, CTestNet4Params, and the default signet chain in src/kernel/chainparams.cpp. nMinimumChainWork is the minimum cumulative chain-work a chain must exhibit before a node will consider it for best-chain selection; defaultAssumeValid is a block hash that the node will treat as valid for ancestor blocks unless explicitly validated, used as a performance optimization during initial block download. The new values correspond to recent blocks (mainnet ~912683, testnet ~4550000, testnet4 ~91000, signet ~267665). This is a periodic update that reflects chain growth and is not a response to a disclosed security issue.
Changed components
src/kernel/chainparams.cppCMainParamsCTestNetParamsCTestNet4ParamsCRegTestParams (unaffected)Signet default chain parametersInspect captured patch +8 / −8
diff --git a/src/kernel/chainparams.cpp b/src/kernel/chainparams.cpp
index 0f7b0c4c..b4a5b26b 100644
--- a/src/kernel/chainparams.cpp
+++ b/src/kernel/chainparams.cpp
@@ -118,8 +118,8 @@ public:
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1815; // 90%
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
- consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000b1f3b93b65b16d035a82be84"};
- consensus.defaultAssumeValid = uint256{"00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77"}; // 886157
+ consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68"};
+ consensus.defaultAssumeValid = uint256{"00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb"}; // 912683
/**
* The message start string is designed to be unlikely to occur in normal data.
@@ -232,8 +232,8 @@ public:
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
- consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000015f5e0c9f13455b0eb17"};
- consensus.defaultAssumeValid = uint256{"00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57"}; // 3974606
+ consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000016dd270dd94fac1d7632"};
+ consensus.defaultAssumeValid = uint256{"0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34"}; // 4550000
pchMessageStart[0] = 0x0b;
pchMessageStart[1] = 0x11;
@@ -328,8 +328,8 @@ public:
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
- consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000001d6dce8651b6094e4c1"};
- consensus.defaultAssumeValid = uint256{"0000000000003ed4f08dbdf6f7d6b271a6bcffce25675cb40aa9fa43179a89f3"}; // 72600
+ consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000034a4690fe592dc49c7c"};
+ consensus.defaultAssumeValid = uint256{"000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b"}; // 91000
pchMessageStart[0] = 0x1c;
pchMessageStart[1] = 0x16;
@@ -402,8 +402,8 @@ public:
vSeeds.emplace_back("seed.signet.bitcoin.sprovoost.nl.");
vSeeds.emplace_back("seed.signet.achownodes.xyz."); // Ava Chow, only supports x1, x5, x9, x49, x809, x849, xd, x400, x404, x408, x448, xc08, xc48, x40c
- consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000000000000000002b517f3d1a1"};
- consensus.defaultAssumeValid = uint256{"000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a"}; // 237722
+ consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000000000000067d328e681a"};
+ consensus.defaultAssumeValid = uint256{"000000128586e26813922680309f04e1de713c7542fee86ed908f56368aefe2e"}; // 267665
m_assumed_blockchain_size = 20;
m_assumed_chain_state_size = 4;
chainTxData = ChainTxData{
Why this scored 28/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.