Can someone please help to confirm my understanding of SegWit ?
Originally, signatures are included in each block alongside each transaction, these signatures can be read by nodes to prove validity of each transactions.
With SegWit, signatures are omitted from the blocks, but instead recorded in a side-chain called Witness blockchain.
Whoever wants to verify a transaction can refer to the corresponding signature from the Witness side-chain
The total amount of data remains the same, but since we now have two separate chains running in parallel, the size of each block is effectively doubled.
Is my understanding correct please?
Does it mean that for old-fashioned Nodes who don’t look at Witness side-chain, they can only verify transactions up to the Segwit implementation, and will have to reject new blocks because they won't find a valid signature within the new blocks?
In that case, how is it a soft-fork? Since all nodes will be forced to upgrade in order to operate. (by here I am sure I am wrong somewhere..)
Finally, do miners and nodes now keep both chains and when they broadcast the new block, they also broadcast the new Witness block?
The only nit above is the total amount of data is increased a little - so little that it can be ignored.
Does it mean that for old-fashioned Nodes who don’t look at Witness side-chain, they can only verify transactions up to the SegWit implementation, and will have to reject new blocks because they won't find a valid signature within the new blocks?
Wrong. SegWit outputs look like AnyoneCanSpend outputs to legacy nodes (AnyoneCanSpend = P2SH address that can be spent without a signature - you just have to know the script to spend it.) While new nodes understand the "Witness Program" and verify witness signatures, legacy nodes think it's just a usual AnyoneCanSpend script. Hence, they accept transactions that spend Witness addresses.