🎉 Share Your 2025 Year-End Summary & Win $10,000 Sharing Rewards!
Reflect on your year with Gate and share your report on Square for a chance to win $10,000!
👇 How to Join:
1️⃣ Click to check your Year-End Summary: https://www.gate.com/competition/your-year-in-review-2025
2️⃣ After viewing, share it on social media or Gate Square using the "Share" button
3️⃣ Invite friends to like, comment, and share. More interactions, higher chances of winning!
🎁 Generous Prizes:
1️⃣ Daily Lucky Winner: 1 winner per day gets $30 GT, a branded hoodie, and a Gate × Red Bull tumbler
2️⃣ Lucky Share Draw: 10
Bitcoin Magazine: What challenges does Rollup face?
Source: Bitcoin Magazine; Compiled by: Wuzhu, Golden Finance
Rollups have recently become the focus of BTC expansion, becoming the first thing to truly steal the thunder from the Lighting Network in a more widespread attention. Rollups aim to be an off-chain second layer not constrained or restricted by the core Liquidity of the Lighting Network, i.e., end users need someone to allocate (or ‘lend out’) funds in advance in order to receive money, or intermediate routing nodes need channel balances to facilitate the full flow of payment amounts from sender to receiver.
These systems were initially running on Ethereum and other Turing Complete systems, but the recent focus has shifted to porting them to UTXO-based blockchains (e.g. BTC). This article is not intended to discuss the current implementation on BTC, but to discuss the idealized Rollup functionality that people have been pursuing for a long time, which depends on the ability to directly verify Zero-Knowledge Proofs (ZKPs) on BTC, a capability that BTC currently does not support.
The basic architecture of Roll is as follows: a single account (UTXO in BTC) holds the balances of all users in the Rollup. This UTXO contains a commitment, which exists in the form of the Merkle root of a Merkle tree, committing to all the current balances of accounts in the Rollup. All these accounts are authorized using Public Key/Private Key pairs, so in order to make off-chain expenditures, users still need to sign certain content with their Secret Key. This part of the structure allows users to exit at any time without permission, by simply producing a transaction proving their account is part of the Merkle tree, they can unilaterally exit the Rollup without the permission of the operator.
Rollup operators must include a ZKP in the transaction to update the merkle root of the on-chain account balance during off-chain transactions. Without this ZKP, the transaction will be invalid and cannot be included in the blockchain. This proof allows people to verify that all changes to the off-chain account are properly authorized by the account holder and that the operator has not maliciously updated the balance to steal user funds or dishonestly reallocate them to other users.
The question is, if only the root of the Merkle tree is published on-chain, and users can view and access it, how do they put their branches in the tree so that they can withdraw without permission whenever they want?
Appropriate Rollup
In the appropriate Rollup, each time a new off-chain transaction is confirmed and the state of the Rollup account changes, the information will be directly put into the blockchain. Not the entire tree, that would be ridiculous, but the information needed to rebuild the tree. In a simple implementation, the summary of all existing accounts in Rollup will include the balance, and the account will only be added in the updated transactions of Rollup.
In more advanced implementations, balance differences are used. This essentially summarizes which accounts have increased or decreased funds during the update process. This allows each Rollup update to only include the balance changes that occurred. Then, users can simply scan the chain and ‘compute’ from the beginning of the Rollup to determine the current state of account balances, which allows them to reconstruct the Merkle tree of the current balances.
This can save a lot of expenses and Block space (thus saving funds), while still allowing users to ensure access to the information required for unilateral exit. The rollup rule requires that these data be included in the formal rollup provided by the Block chain to the user, and transactions that do not include account summaries or account differences are considered invalid transactions.
Validity Period
Another way to address the issue of data availability for user withdrawals is to place the data somewhere outside of the blockchain. This introduces subtle issues, as rollups still need to enforce that the data is available elsewhere. Traditionally, other blockchains have been used for this purpose, specifically designed to serve as data availability layers for systems like rollups.
This has created a dilemma of equally strong security. When data is directly posted to the BTCBlock chain, Consensus rules can ensure that it is absolutely correct. However, when it is posted to an external system, the best it can do is to verify the SPV proof, i.e. the data has been posted to another system.
This requires verifying that the data exists in other on-chain proofs, which ultimately is an Oracle Machine problem. The BTC Block chain cannot fully verify anything other than what happens on its own Block on-chain. The best it can do is verify ZKP. However, ZKP cannot verify whether the Block containing rollup data has been publicly broadcast after generation. It cannot verify whether external information is truly public to everyone.
This opens the door to data withholding attacks, which involve creating commitments to published data and using them to advance rollup, but the data is not actually available. This results in users being unable to withdraw funds. The only true solution is to rely on value and incentive structures outside of BTC entirely.
A dilemma
This has brought a dilemma to rollup. When it comes to data availability issues, there is basically a binary choice of whether to publish the data to the BTC blockchain or elsewhere. This choice has a significant impact on the security, sovereignty, and scalability of rollup.
On the one hand, using BTCBlock chain as the data availability layer will set a hard limit on the scalability of rollups. Block space is limited, which sets a limit on the number of rollups that can exist at once and the total number of off-chain transactions that can be processed by all rollups. Each rollup update requires block space proportional to the number of accounts whose balances have changed since the last update. Information theory only allows data to be compressed to a certain extent, and at this point, there is no more potential for expansion.
On the other hand, using different layers to achieve data availability eliminates the hard upper limit on scalability gains, but it also brings new security and sovereignty issues. In the Rollup that uses BTC to achieve data availability, if the data that users need to extract is not automatically published to the blockchain, the state of the Rollup cannot change. With Validiums, this guarantee depends entirely on the ability of the external system used to resist fraud and data hiding.
Now, any Block producer on the external data availability system can hijack BTCRollup users’ funds by producing Blocks instead of actually broadcasting them, thus making the data available.
So, if we really achieve the ideal Rollup implementation on BTC, and truly realize unilateral user withdrawals, what would that be like?