Author: Peter Todd 2013-02-26 02:44:58
Published on: 2013-02-26T02:44:58+00:00
Bitcoin's transaction/scripting system can be used as a way to prove that a set of pubkeys authorized the movement of coins from one place to another. However, it is flawed as a currency due to the double spend problem. In the event of double-spend fraud, proof can be provided to others by using a new opcode and scriptPubKey. Anyone with proof of a double-spend attempt in the blockchain can collect a reward. Transactions themselves can follow the Bitcoin system of scripts, scriptPubKeys, and scriptSigs and re-use the existing validation machinery. The block hash is optional and provides a way to further link a block into some sort of system to make double-spend fraud detectable. Withdrawals from the ledger to the blockchain proper can happen the same way, but this time it's the ledger that provides the transaction, and the transaction owner that spends the transaction to an address of the ledger's choosing. Double-spend detection is undefined from the point of view of the Bitcoin validation machinery.The simplistic scriptPubKey presented allows for the ledger to create their own fraud proof and run with the funds. A way to constrain the destination of those spend funds is needed. Token creation and redemption can be audited by tracking the total value of all tokens issued. Tokens themselves are pubkeys which authorize their own redemption. Clients can show that either their redemption request has not been honored, or that the value of outstanding tokens does not match up. To force redemptions, a special unspent txout can be allowed, which can only be spent by the creation of the requested txout, thus transferring the funds to the rightful owner. By the addition of a relatively small number of opcodes to the existing scripting language, we can create a ledger built on top of Bitcoin whose honesty and performance are incentivized by the prospect of losing something of value.
Updated on: 2023-06-06T10:17:41.113921+00:00