Scalability =========== What are the scalability issues for blockchain? Want to process more transactions per second--what is bottleneck? 2 possible bottlenecks: block size or transaction processing Want to reduce size of the blockchain state needed by full nodes Also want to reduce data needed for SPV wallets Can Bitcoin just increase the blocksize? Not without a hard fork Bitcoin hates hard forks, and in fact Bitcoin cash (BCH) is such a fork Another idea: soft-fork move some data out of main block (SegWit) Recall transactions can have separate "Witness data" Stored in separate Merkle tree outside main block Bogus 0-BTC coinbase output has RETURN PUSH <0xaa21a9ed || merkle-root> Witness data organized in same order as transaction inputs Introduce 2 new ScriptPKs: P2WPKH - OP_0 <20-byte Public-Key-Hash> (the 0 is a version number) ScriptSig empty, witness data: Can be nested inside a P2SH for backwards-compatible address P2WSH - OP_0 <32-byte script hash> ScriptSig empty, witness data: [ ...]