Zero-Confirmation Forfeits: Adding Security to Unconfirmed BCH Transactions
On Nov. 20, the Bitcoin Cash developer Awemany announced the first code proposal for a concept called Zero-Confirmation Forfeits (ZCF), a protocol that adds a layer of security to zero-confirmation transactions. The ZCF mechanism allows faster payments and is designed to reduce the risks involved with double-spend attacks.
For a while now the Bitcoin Cash community has bolstered the idea of zero-confirmation transactions, but proponents have also discussed the security issues involved with them. Just recently Awemany proposed the idea of ZCFs so people can test the possibilities of shielding transactions against double-spend attacks.
Awemany is the anonymous BCH developer who found the bug in the Bitcoin Core (BTC) client just a few weeks ago. Zero-confirmation transactions are basically transactions that have been broadcast to the network and are sitting in the mempool (transaction queue), but can still be accepted by users or merchants. Traditionally, services have had to wait for a single confirmation (or more), which means a transaction must be forged into the public ledger before settlement. The ZCF scheme proposed by Awemany involves using the new opcodes that were added to the code on Nov. 15. By using these opcodes, users can add a “forfeit to the transaction in an automated way” by adding a layer of security to the zero-confirmation transaction.
The time is NOW to make up lost ground in #BitcoinCash!
Zero-Conf Forfeits is poised to make BCH the most advanced form of p2p cash in existence.https://t.co/SGBmI0AKem
— BitcoinUnlimited (@BitcoinUnlimit) November 20, 2018
The Code Is Ready for Testnet Experimentation
and Miniscule Amounts of BCH
After discussing the idea at the Satoshi’s Vision conference on Nov. 20, Awemany released the preliminary code in order to execute ZCFs with the Electron Cash wallet. The developer stated that the mechanism can be used as a testing ground for developing the concept further and act as a possible reference implementation, so specifications can be added later. The proposal emphasized that the developer enjoys a “bottom-up approach of first writing code and then writing a specification that matches the code and all the pitfalls that were encountered writing it.” Right now the developer states there are four ZCF protocol schemes that work.
Awemany’s new protocol includes:
- Transactions that can be generated with a forfeit output. The forfeit output is currently set to 1.0 from the send transaction amount.
- Receiving transactions and extracting the forfeit amount, by checking for enough
- Display of forfeits in the transaction dialogue, history list tab and addresses tab
- Spending forward of the forfeits by assembling the right inputs to the P2SH forfeit contract
BCH Proponents Excited About
the Zero-Confirmation Solution
The developer has also explained that there are still bugs to iron out and the code needs a lot more polish. “Sometimes the value parser seems to miss the forfeits,” he explained. After sharing the code, he strongly emphasized that it “is by no means production ready.” However, programmers can experiment with the protocol using testnet or by using the main chain with a very small fraction of BCH.
The BCH community on Reddit has shown excitement toward the improvement of the concept and has congratulated the developer on the subreddit r/btc. Awemany seems pleased with the response and has since discussed the project further on the forum. He said there is still a lot to do in order for it to be more reliable for Electron Cash and other wallets. For example, the ZCF mechanism would be very “interesting for vending machines,” he explained. The BCH developer listed the work that still needs to go into the protocol and noted that any help would be “very much appreciated.”