As a non-techie, I am trying to understand the forward compatibility of Bitcoin.
Satoshi said this after releasing the first version.
The nature of Bitcoin is such that once version 0.1 was released, the core design was set in stone for the rest of its lifetime. Because of that, I wanted to design it to support every possible transaction type I could think of. The problem was, each thing required special support code and data fields whether it was used or not, and only covered one special case at a time. It would have been an explosion of special cases. The solution was script, which generalizes the problem so transacting parties can describe their transaction as a predicate that the node network evaluates.
My understanding is that Satoshi introduced script so that a wide variety of transaction types can be supported.
Ane he said this in the same post.
"Currently, receivers only accept two templates: direct payment and bitcoin address. Future versions can add templates for more transaction types and nodes running that version or higher will be able to receive them. All versions of nodes in the network can verify and process any new transactions into blocks, even though they may not know how to read them."
It looks like he wanted forward compatibility. And he seems to have thought the older clients would be able to understand newer types of transactions, because they are all written in script which the older versions can understand.
My questions.
Is my understanding correct that Satoshi expected Bitcoin to be forward compatible thanks to script? (My reference of forward compatibility is this. https://www.reddit.com/r/Bitcoin/comments/43j03j/comment/czis8ru/?utm_source=share&utm_medium=web2x&context=3
But the reality seems that old Bitcoin clients don't really understand new transaction types and just pass them. Why is this so, even with script? Are new opcodes introduced in the script that cannot be understood by old clients?
In the first quote from Satoshi above, what did he mean by "Future versions can add templates for more transaction types"? Does he mean that future versions will have more opcodes, with which you can introduce more transaction types? Or all the opcodes were there already, but new combinations of them, i.e. templates, will be introduced?
Thank you very much in advance!
You can get bonuses upto $100 FREE BONUS when you:
π° Install these recommended apps:
π² SocialGood - 100% Crypto Back on Everyday Shopping
π² xPortal - The DeFi For The Next Billion
π² CryptoTab Browser - Lightweight, fast, and ready to mine!
π° Register on these recommended exchanges:
π‘ Binanceπ‘ Bitfinexπ‘ Bitmartπ‘ Bittrexπ‘ Bitget
π‘ CoinExπ‘ Crypto.comπ‘ Gate.ioπ‘ Huobiπ‘ Kucoin.
Comments