Author: Natanael 2015-02-22 14:44:30
Published on: 2015-02-22T14:44:30+00:00
In an email conversation between Natanael and Peter Todd in February 2015, the topic of zero-confirmation transactions was discussed. Todd proposed implementing a general-purpose scripting language improvement to eliminate the need for relying entirely on inherently unreliable P2P networking. He suggested making a promise to never create two signatures for a specific BIP32 root pubkey and violating that promise would destroy or reallocate a fidelity bond whose value is locked until some time into the future. This fidelity bond is a separate pool of funds, and detection of a double-spend can happen later. Natanael raised concerns about the potential risks of zero-confirmation transactions. For example, if someone sends a zero-confirmation transaction that gets orphaned after one block, and Natanael creates a transaction spending that UTXO, then the UTXO_old could be tainted forever because the UTXO_new got invalidated together with UTXO_orphaned. Additionally, if only transactions where all UTXOs are currently valid work as double-spend proofs, then there is no protection against any one miner that conspires with double-spend attempting thieves. Todd's proposal of fidelity bonds raised questions about how they would function. If all transactions in the chain are covered by fidelity bonds for their own value, which one pays out to who? Does only the first one pay out, and only to the last party in the chain? Or to every subsequent party after him? In full or just a fraction? It is unclear which of these serviced their customers in full without getting full value back in exchange due to the double-spend. Other concerns were raised about whether to accept chains of unconfirmed transactions at all and what to do if the fidelity bond is too small.
Updated on: 2023-06-09T17:39:18.006050+00:00