header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Scan to Download the APP

Analysis of BTC’s two major native asset protocols, BRC20 and ARC20

2023-11-18 11:51
Read this article in 8 Minutes
总结 AI summary
View the summary 收起
Source: blockpunk (@blockpunk2077)


This article provides a technical understanding of ARC20 and BRC20, helping you understand future development trends.


【BRC20】


First, let's talk about the difference between the classic BRC20 protocol. BRC20 is derived from the Ordinals protocol, which writes the complete functionality similar to ERC20 Token into the BTC output script, giving birth to BRC20. As shown in the figure below, the information of BRC20 tokens is engraved in the BTC transaction, in the script data of segregated witness. First of all, the BRC20 protocol writes the standard methods of BRC20 on BTC, including "deployment", "minting" and "transfer".


-During "deployment", BRC20 registered the name, total amount, and quantity limit of this token.  -When users participate in BRC20 token offerings, they send transactions to write data into the script, which includes the quantity of tokens.  -BRC requires users to send a transaction first when they need to transfer tokens. The result of the collected token amount is written into a Bitcoin script. Then, a second transaction is sent to send the collected balance to a specific address, also written into the script.



Firstly, we can start by understanding the three main components of the BTC protocol at the first layer: 


The protocol specifies the rules for writing data on Bitcoin.

The indexer provides the ability to query and parse this data. 

The ledger records token balances and processes transfers.


For BRC20, the index server first needs to identify each deployment of BRC20 in order to read token information. This part is called "indexing". 


For BRC20, the index server first needs to identify each deployment of BRC20 in order to read token information. This part is called "indexing". 


Meanwhile, since the balances of BRC20 tokens are all encoded in the script and cannot be recognized by the BTC network, the indexing server for BRC20 must build a ledger locally to record the balances. Whenever a transfer occurs, the transaction's ability to proceed (having enough coins) needs to be checked against the local ledger and updated accordingly.  


For each transfer of brc20 based on ordinals, two transactions need to be sent. That is, the balance needs to be queried and calculated in the local ledger before the transfer can be made. 


Ordinals are essentially designed for NFTs and are recursively increasing based on the improved complexity of BRC20 in transfers. The BRC20 indexer also serves as a ledger, which is completely separate from Bitcoin. The indexer must accurately record every balance change to ensure the integrity of the ledger.  


Therefore, as time accumulates, the indexer ledger will accumulate, and the pressure on nodes will become greater and greater. If the sorter ledger no longer provides services, BRC20 will become difficult to use. Fortunately, Unisat open-sourced the code for the indexer node very early on, and BRC20 has been built by multiple technical teams including OKX, with a very robust infrastructure. However, the ledger of BRC20 still needs to be decentralized, and a decentralized ledger for BRC20 is equivalent to creating a chain. In other words, it is inevitable to make BRC20 a decentralized ledger outside the chain.  


【ARC20】 


Atomicals protocol's method for issuing FT is called BRC20. This is a Bitcoin-native asset issuance protocol based on UTXO that registers token information in transaction scripts, with Sat as the base unit of measurement.  


Return to Arc20. Arc20 is a colored coin model, and registration information is engraved into the transaction script. Balances are represented by the amount of satoshis in UTXOs, and transfer functionality is fully processed by the BTC mainnet.


-When deploying Arc20, information such as token name, total supply, quantity limit, difficulty setting, starting block, image, and so on are required.- When users are minting ARC20 tokens, they write the token name into the script of the UTXO. The quantity is directly determined by the number of sats in the UTXO, where 1 sat equals 1 token.

-Transfer ARC20, users do not need to deposit any data to BTC anymore, just use the UXTO that continuously holds the token as the transaction input and output it to other addresses. 


Therefore, in ARC20, we do not need any off-chain systems to calculate the balance of ARC20 tokens, as the token balance is consistent with the Sat amount in UTXO. We only need an index to help us read the token registration information and identify mint transactions to confirm which UTXOs are ARC20.



Therefore, the calculation of Arc20 token transfer is processed by the BTC network itself, without the need for any off-chain ledger, and only requires sending a transaction. Therefore, based on the performance of BTC L1, the transfer performance of ARC20 is twice that of BRC20.  


This brings many benefits:

- Greatly reduces the cost of indexing servers, making it affordable for almost anyone, and the degree of decentralization is very high.

-The transfer relies entirely on the BTC network and will not create duplicate transactions. The security of Arc20 transfers is guaranteed by BTC.

-ARC20 atomicity is consistent with BTC atomicity, making it suitable for implementing many native applications.


Another update that must be mentioned is bitwork, which adds the CPU calculation process to the token minting process. This is similar to BTC's POW, where minting can only be done after calculating the POW. "One CPU, one minting opportunity".  





Welcome to join the official BlockBeats community:

Telegram Subscription Group: https://t.me/theblockbeats

Telegram Discussion Group: https://t.me/BlockBeats_App

Official Twitter Account: https://twitter.com/BlockBeatsAsia

举报 Correction/Report
This platform has fully integrated the Farcaster protocol. If you have a Farcaster account, you canLogin to comment
Choose Library
Add Library
Cancel
Finish
Add Library
Visible to myself only
Public
Save
Correction/Report
Submit