Before the discussion, I wrote some thoughts about what native introspection operations would mean for Bitcoin Cash:
I’ll be joining the @CashDiscussions livestream shortly to talk about native introspection opcodes for Bitcoin Cash. These opcodes would allow us to build far more secure wallets, efficient recurring payments, and more. (1/x)
Since Satoshi’s original release, Bitcoin’s contracting language has allowed developers to specify complex spending requirements: e.g. “to unlock this money, provide signatures from these 3 keys OR if 30 days have passed, any 2 of the 3”.
With introspection operations, Bitcoin Cash’s contracting language would also support validating the spending transaction itself, e.g. “to unlock this money, provide a signature in a transaction withdrawing no more than 10% of the funds to a pre-approved address”.
This kind of control is critical for global, peer-to-peer electronic cash. Across the cryptocurrency space, a surprising amount of value is still locked up in single-key, instantly-drainable wallets, often held by poorly-verified hardware/software stacks. We can do much better.
With introspection opcodes, we can build new kinds of high-security wallets: time-delayed withdrawals, withdrawal value and frequency limits, withdrawal address pre-authorization and review periods, distress modes, and much more.
In the fiat world, these security features are typically only available to the wealthy – and even then are only possible with stable, centralized institutions. With introspection opcodes, this kind of security becomes available to every BCH holder, everywhere.
Beyond security, native introspection opcodes make covenant contracts like CashChannels far more efficient, reducing their size and making them easier to audit.
And finally, by making covenants easier to develop and audit, introspection opcodes pave the way for a more advanced contract ecosystem: tokens, derivatives, decentralized exchanges, and prediction markets.
The Cash Improvement Proposal (CHIP) for native introspection opcodes includes much more detail, including the full technical specification: