Why not witnessless nodes?



Summary:

On the Bitcoin-dev mailing list, Kalle Rosenbaum asked why a full node that does initial block download must also download witnesses if they are going to skip verification anyway. He proposed the concept of witnessless nodes, which would only be witnessless for blocks up to X and would not download witnesses but instead send witnessless blocks to peers. This would allow witnessless nodes to sync faster, provide full service to SPV wallets and local wallets, serve blocks to other witnessless nodes with the same or higher assumevalid block, and potentially even serve blocks to non-segwit nodes. However, there is a concern that implementing witnessless nodes could divide the network in two parts, one witnessless and one with full nodes, with few connections between the parts. It is important to verify the witness root hash because a bad peer may send invalid witnesses during initial block download, and if the witness root hash doesn't actually commit to them, the node will get banned by peers requesting the blocks from it because it sends garbage. Therefore, downloading witnesses allows nodes to send witnesses to others without getting banned.


Updated on: 2023-05-20T04:33:41.080108+00:00