# Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG

Post by: satoshi on June 17, 2010, 06:46:08 PM

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. &nbsp;Because of that, I wanted to design it to support every possible transaction type I could think of. &nbsp;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. &nbsp;It would have been an explosion of special cases. &nbsp;The solution was script, which generalizes the problem so transacting parties can describe their transaction as a predicate that the node network evaluates. &nbsp;The nodes only need to understand the transaction to the extent of evaluating whether the sender's conditions are met.

The script is actually a predicate. &nbsp;It's just an equation that evaluates to true or false. &nbsp;Predicate is a long and unfamiliar word so I called it script.

The receiver of a payment does a template match on the script. &nbsp;Currently, receivers only accept two templates: direct payment and bitcoin address. &nbsp;Future versions can add templates for more transaction types and nodes running that version or higher will be able to receive them. &nbsp;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.

The design supports a tremendous variety of possible transaction types that I designed years ago. &nbsp;Escrow transactions, bonded contracts, third party arbitration, multi-party signature, etc. &nbsp;If Bitcoin catches on in a big way, these are things we'll want to explore in the future, but they all had to be designed at the beginning to make sure they would be possible later.

I don't believe a second, compatible implementation of Bitcoin will ever be a good idea. &nbsp;So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network. &nbsp;The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint.

---

Source file: bitcoin-forum-satoshi-nakamoto.tgz

External link: https://bitcointalk.org/index.php?topic=195.msg1611#msg1611
