Exploring OP_DROP and its Upcoming Role in sBTC on Stacks' Bitcoin L2

As Bitcoin transaction costs continue to rise and its secure yet limiting scripting language hinders app builders from creating fully expressive smart contracts, there is a pressing need for a secure, scalable, and user-friendly Bitcoin layer. One intriguing development is the expected use of OP_DROP in the context of BTC deposit transactions on the Stacks layer for Bitcoin. In this article, we'll delve into the mechanics and advantages of OP_DROP as the ecosystem looks to further develop its Bitcoin L2 with sBTC.

Understanding sBTC

Bitcoin L2s aim to activate the Bitcoin economy by making BTC deployable in smart contracts on a scalable and user-friendly Bitcoin layer. sBTC, a 1:1 Bitcoin-backed asset, will address the main bottleneck to unlocking this BTC capital: A decentralized way to move BTC from Bitcoin L1 to and L2 and back. In more technical terms, sBTC serves as a decentralized BTC ‘peg’ on the Stacks Bitcoin Layer, secured by Stacks’ consensus. The process of moving BTC to sBTC is generally referred to as a ‘deposit’ (and out as a ‘withdrawal’), but you may also see the terms ‘peg-in’ and ‘peg-out’ and occasionally even ‘mint’ and ‘burn’ depending on a particular person’s preference, but they all describe the same action. Read more about sBTC here.

OP_DROP Mechanism

You can see how important deposit operations are to sBTC and therefore to the layer overall, so it follows that how those transactions get done is also extremely important.

Enter, OP_DROP.

OP_DROP is a mechanism used to format a deposit transaction. OP_DROP plays a crucial role in encoding the sBTC destination address into the Bitcoin L1 address used for depositing BTC.

What sets this system apart is the ability to deposit BTC to sBTC directly to a Stacks address via a single Bitcoin L1 transaction. OP_DROP works by sending BTC to a slightly modified Bitcoin address that contains the Stacks address to which sBTC should be minted. OP_DROP also enables users to deposit BTC to sBTC from any wallet, exchange, or custodian using a user interface connected to a Stacks address. In contrast to OP_RETURN, this user-friendly approach allows users to deposit via a single transaction.

This is a big step up from OP_RETURN systems that require a second output to be generated, which is both a larger task for exchanges and requires specialized wallet software with knowledge of how the deposit/withdrawal system works, limiting growth.

With OP_DROP, users can deposit their BTC into sBTC with a single, standard Bitcoin transaction.

Use Case: Zest Protocol

Consider a user who wants to earn yield on their BTC through Decentralized Finance protocol Zest. By sending BTC on Bitcoin L1 to a Zest Protocol yield pool, sBTC enters the Zest Protocol yield pool on the Stacks L2. In the same block, Zest Protocol mints a receipt token to the user.

This new mechanism without a second output represents a significant leap forward with multiple benefits for users and entities aiming to leverage Bitcoin layer Stacks.

Broader Accessibility

Building a second output is a tough ask to a custodian (like Coinbase) to do just to support sBTC deposits. With OP_DROP, a user can generate a deposit address and send BTC there from Coinbase. This wouldn’t work with OP_RETURN, since Coinbase would have to build the second output in the transaction with an added Stacks address.

Cost Efficiency and User Experience

This approach not only enhances user experience by simplifying the process but is also tax-efficient. Unlike in many jurisdictions where wrapping tokens can trigger taxable events, users in this system do not need to hold sBTC.

OP_DROP on the Stacks Layer

As of now, Stacks is the only layer capable of leveraging OP_DROP deposits. This is because Stacks has in-depth and detailed read access to Bitcoin state, while ensuring that Stacks nodes are in sync with Bitcoin state. As a result, a Stacks smart contract can detect whether BTC has been deposited using the OP_DROP format. While other layers can read the state of the Bitcoin chain, they don’t have the same low-level script interpretation necessary to parse the data out of an OP_DROP transaction directly in their smart contract code.

In summary, the use of OP_DROP in BTC deposits on the Stacks layer introduces efficiency, flexibility, and tax benefits for users. As this technology continues to develop, it will be interesting to see how it shapes the broader landscape of decentralized finance on Bitcoin.