Bitcoin cash white paper
when you wish to spend bitcoins. For Bitcoin to remain secure, enough people should keep using full node clients because they perform the task of validating and relaying transactions. Because the fee is not related to the amount of bitcoins being sent, it may seem extremely low or unfairly high. Given the serious implications of Turing-completeness, and the limited benefit, why not simply have a Turing-incomplete language?
In this paradigm, a transaction spending that utxo must provide data that satisfies the script. The one validity condition present in the above list that is not found in other systems is the requirement for "proof of work". Suppose that the contract's storage starts off empty, and a transaction is sent with 10 ether value, 2000 gas,.001 ether gasprice, and 64 bytes of data, with bytes 0-31 representing the number 2 and bytes 32-63 representing the string charlie. Anyone can register a name with some value, and that registration then sticks forever. The "state" in Bitcoin is the collection of all coins (technically, "unspent transaction outputs" or utxo) that have been mined and not yet spent, with each utxo having a denomination and an owner (defined by a 20-byte address which is essentially a cryptographic public key. The contract author does not need to worry about protecting against such attacks, because if execution stops halfway through the changes they get reverted. Initialize gas 2000; assuming the transaction is 170 bytes long and the byte-fee is 5, subtract 850 so that there is 1150 gas left. As described in the state transition section, our solution works by requiring a transaction to set a maximum number of computational steps that it is allowed to take, and if execution takes longer computation is reverted but fees are still paid. Once step (1) has taken place, after a few minutes some miner will include the transaction in a block, say block number 270. A "full node" in the Bitcoin network, one that stores and processes the entirety of every block, takes up about 15 GB of disk space in the Bitcoin network as of April 2014, and is growing by over a gigabyte per month. Instead, the fee is relative to the number of bytes in the transaction, so using multisig or spending multiple previously-received amounts may cost more than simpler transactions.