一文带你深入浅出Arc-20和Brc-20协议

中级2/1/2024, 8:16:59 AM
本文从技术角度出发深入两个协议的细节以及优劣势。

引言

在近期Arc-20协议出现后又使铭文市场大火了一把,本文将从技术角度出发深入两个协议的细节以及优劣势。

为什么会出现Brc-20 和 Arc-20?

比特币最初被设计为一种安全、稳定且可靠的去中心化数字货币。然而,由于其技术架构和脚本语言相对不如以太坊灵活,因此比特币并不适合直接运行智能合约。

尽管如此,开发者的创新思想和大胆尝试为比特币生态带来了繁荣,其中一个典型例子就是Brc-20协议。该协议核心思想是实验性的代币形式,以meme为中心。任何人都可以根据先到先得的原则,在比特币链上直接铸造这些代币,而无需依赖智能合约。Brc-20代币的关键特征是其分散化性质,摒弃了私人发售、预售以及解锁或质押等机制。这确保了参与的真正去中心话。

在这一背景下,Arc-20协议再次引发了对铭文的浓厚兴趣。

什么是UTXO模型?

Brc-20协议和Arc-20协议都基于Btc链,因此在正式介绍Arc-20协议和Brc-20协议之前,我们需要简单的认识一下UTXO(unspent transaction output)

当我们谈论比特币时,UTXO(未花费的交易输出)模型是一种重要的设计概念。它是比特币使用的一种账户模型,与传统的账户余额模型(如银行账户)有所不同。

在UTXO模型中,每个比特币交易都创建了一系列未花费的输出,每个输出代表了一定数量的比特币。这些未花费的输出实际上是未使用的数字货币单位,类似于纸币或硬币。当你收到比特币时,实际上是有人创建了一个新的未花费的输出,该输出与你的比特币地址相关联。这个输出就是UTXO。

让我们用一个简单的例子来解释UTXO模型:

如果你有两笔交易,一笔收到了0.7 BTC,另一笔收到了0.5 BTC,你将拥有两个 UTXO,一个价值0.7 BTC,一个价值0.5 BTC。当你想要支付1 BTC 时,你不能简单地使用一个 UTXO,而是需要将两个 UTXO 合并为一个新的 UTXO(总额为1.2 BTC),然后将1 BTC 发送给收款方,剩余的0.2 BTC 作为找零返回给你自己。但找零实际情况可能会低于0.2BTC,因为用户需要给矿工一笔手续费以确保交易的正常运行。

Brc-20协议技术实现

BRC-20是一个实验性标准,演示了通过利用序数理论和铭文,在比特币的第一层(layer 1)上创建可互换代币的可能性。Ordinals协议(第一个按照该协议标准所铸造的代币)允许内容,包括文本、图像或视频,被铭记在比特币最小单位 — — 聪(Satoshi)上,从而创造出独特的数字资产。

序数理论是在BTC网络上实现铭文的关键。

每个聪本质上是一样的,Ordinals通过叙述理论制定了一套聪的排序协议,这个排序基于聪的挖出和他们交易输入和输出的顺序

序数有几种不同的表示方法:

  • 整数表示法:2099994106992659 是根据聪挖掘的顺序分配的序数。
  • 小数表示法:3891094.16797 第一个数字是聪被挖掘的区块高度,第二个数字是聪在区块内的偏移量。
  • 度数表示法:3°111094′214″16797‴。稍后我们会讲到这个。
  • 百分位表示法:99.99971949060254%。表示聪在比特币供应中的位置,用百分比表示。

度数表达法中包含四个部分:A°B′C″D‴,并且A,B,C,D代表着不同的含义:

  • A:周期,从0开始编号。 (周期循环:每六次减半就会发生一些神奇的事情:减半和难度调整会同时发生,这就是所谓的相合,相合之间的时间周期是一个周期。大约每24年就会发生一次相合,第一次相合应该会发生在2032年的某个时候。)
  • 减半时代内的区块索引。
  • 难度调整期间的区块索引。
  • 区块内聪的索引。

叙述理论通过度数表达法来确定一个聪的顺序,并且通过顺序来给每个聪定义不同的稀有程度,从而实现每个聪的独一无二

  • 普通:区块中的任意非第一个聪。
  • 罕见:每个区块的第一个聪。
  • 稀有:每个难度调整周期的第一个聪。
  • 史诗:每个减半时代的第一个聪。
  • 传说:每个周期的第一个聪。
  • 神话:创世区块中的第一个聪。

举例说明,比如现有一个度数表达为 1°1′0″0‴ ,其中

  • 1°:代表第二个循环周期
  • 1′:代表不是减半周期的第一个区块
  • 0″:代表难度调整的第一个区块
  • 0‴ :代表区块的第一颗聪

通过上面的稀有度定义,这个聪被定义为罕见的聪。

大致的流程如下所致:

在Ordinals中是如何通过代码实现的呢?

py# 计算给定高度的块的叙述(奖励)

def subsidy(height):

return 50 * 100_000_000 >> height // 210_000

这个函数用于计算给定高度的比特币块的奖励,其中 50 * 100_000_000 是比特币的起始奖励,>> 是右移位运算符,相当于除以 2 的整数除法。这个函数返回一个整数,表示在给定高度的块的奖励数量。

计算给定高度的块的第一个奖励的序数

def first_ordinal(height):

start = 0

for h in range(height):

start += subsidy(h)

return start

这个函数计算在给定高度的块的第一个奖励的序数。通过迭代高度并累加每个块的奖励,计算从第一个块到给定高度的总奖励数量,从而得到第一个奖励的序数。

为给定块分配序数

def assign_ordinals(block):

first = first_ordinal(block.height)

last = first + subsidy(block.height)

coinbase_ordinals = list(range(first, last))

为给定块分配序数

def assign_ordinals(block):

first = first_ordinal(block.height)

last = first + subsidy(block.height)

coinbase_ordinals = list(range(first, last))

for transaction in block.transactions[1:]:

ordinals = []

for input in transaction.inputs:

 ordinals.extend(input.ordinals)

for output in transaction.outputs:

 output.ordinals = ordinals[:output.value]

 del ordinals[:output.value]

coinbase_ordinals.extend(ordinals)

for output in block.transactions[0].outputs:

output.ordinals = coinbase_ordinals[:output.value]

del coinbase_ordinals[:output.value]

这个函数用于为给定的比特币块分配序数。它首先计算块的第一个和最后一个奖励的序数范围。接下来,它迭代块中的每个交易,为每个输出分配序数。最后,为交易的输出分配序数,以确保整个块中的所有聪都有唯一的序数。

简而言之,通过序数理论,oridinals将本质上每个相同的聪(Satoshi) 通过加工变得独一无二起来,并且通过规则为每一个聪定义稀有熟悉, 实现收藏属性或者适制定玩法的规则。

使用场景

  • 趣味性:独特有趣的协议将会为比特币生态再次带来繁荣。
  • 资产发行:brc-20代币可以作为资产、权益或其他可互换实体的数字表示。这些可以是稳定币、实用代币,也可以是基于meme的代币。
  • dApp集成:开发人员可以将brc-20代币集成到利用比特币网络的去中心化应用程序中。它们的应用范围从产生收益和抵押贷款到权益质押等多方面。
  • 资产代币化:brc-20标准促进了任何资产或权益的代币化,打开了许多可能性,例如基于代币的社区或DAO投票。
  • 交换机制:brc-20代币可以通过各种平台在比特币网络的第一层进行便捷的交换和交易。虽然它们目前可以通过订单簿进行访问,但将它们整合到流动性池交换中的计划已经在近期出现在大众视野中

Arc-20技术实现

Atomicals 协议是一个简单而灵活的协议,用于在未花费的交易输出(UTXO)区块链(如比特币)上铸造、转移和更新数字对象(传统上称为非同质化代币)。一个 Atomical(或称为 “atom”) 是一种管理数字对象的创建、转移和更新的方式 — — 本质上是根据一些简单规则定义的数字所有权链。

Arc-20采用了染色币模型,也就是说一个Arc-20 token都必须有一个聪支持,而非像Brc-20通过排序进行区分。由于Arc-20 代币完全基于聪,使得他可以像Btc一样进行拆分和合并(也就是文章开头提及的UTXO),并且可以直接通过比特币网络进行转帐。

举例说明,通过Atomicals 协议,我们将指定的100个聪定义为100张“电影票”,用户可以在支持Atomicals协议的电影院,拿这100个聪中的一个来支付,充当电影票的职能

但是矿工和比特币网络并不能知道哪个UTXO经过了”Atomicals”化,从而可能误把Arc-20代币当成矿工费用,为了解决这一问题,Artomicals通过指令操作,将每一个Arc-20代币都作为交易的第一个输出来避免代币的误销毁。

使用场景

  • 数字收藏品、媒体和艺术
  • 数字身份、身份验证和令牌门控内容。
  • Web托管和文件存储
  • 点对点交换和原子交换
  • 数字命名空间分配
  • 虚拟土地和所有权注册
  • 游戏中的动态对象和状态
  • 社交媒体个人资料、帖子和社区
  • 任何安全性和去中心化是关键问题的地方。具备军用级别的安全性和验证要求。

Brc-20 vs Arc-20

接下来,我们将分析比较两个协议的异同。

Brc-20

协议大致分为三步

  • 部署者需要将代币的相关信息按照协议格式写入至BTC链上

{

“p”: “brc-20”,

“op”: “deploy”,

“tick”: “ordi”,

“max”: “21000000”,

“lim”: “1000”

}

  • 索引器读取链上代币相关数据
  • 链下账本记录代币的相关余额,处理转账

由于部署者在部署代币时,代币信息本身无法被BTC所识别,因此需要一个索引器(indexer)来获取链上相关数据并通过该数据在链下创建一个账本来记录相关历史以及处理相关操作并进行数据更新。

链下索引器需要精准的捕获每次一代币操作并更新线下账本。但同区块链一样,随着交易的增多,节点存储的数据将会越来越大,如何保证账本的完整性以及在庞大的数据量中找到需要更改的信息,将会成为brc-20的挑战

Arc-20

同样的,Arc-20协议在部署代币时也需要在BTC链上根据格式记录相关信息

program.command(‘init-dft’)

.description(‘Initialize fungible token (FT) atomical in decentralized issuance mode’)

.argument(‘<ticker>’, ‘string’)

.argument(‘<mint_amount>’, ‘number’)

.argument(‘<max_mints>’, ‘number’)

.argument(‘<mint_height>’, ‘number’)

.argument(‘<file>’, ‘string’)

.option(‘—rbf’, ‘Whether to enable RBF for transactions.’)

.option(‘—funding <string>’, ‘Use wallet alias wif key to be used for funding and change’)

.option(‘—satsbyte <number>’, ‘Satoshis per byte in fees’, ‘15’)

.option(‘—mintbitworkc <string>’, ‘Whether to require any bitwork proof of work to mint. Applies to the commit transaction.’)

.option(‘—mintbitworkr <string>’, ‘Whether to require any bitwork proof of work to mint. Applies to the reveal transaction.’)

.option(‘—bitworkc <string>’, ‘Whether to put any bitwork proof of work into the token mint. Applies to the commit transaction.’)

.option(‘—bitworkr <string>’, ‘Whether to put any bitwork proof of work into the token mint. Applies to the reveal transaction.’)

.option(‘—parent <string>’, ‘Whether to require a parent atomical to be spent along with the mint.’)

.option(‘—parentowner <string>’, ‘Wallet owner of the parent to spend along with the mint.’)

.option(‘—disablechalk’, ‘Whether to disable the real-time chalked logging of each hash for Bitwork mining. Improvements mining performance to set this flag’)

.action(async (ticker, mintAmount, maxMints, mintHeight, file, options) => {

…..

}

atomicals-js cli源码中可以找到初始化一个代币的相关指令,必须要在链上记录的参数有:

ticker: 代币名称

mint_amount: mint总量

max_mints: 单次mint数量

mint_height: 指定开始mint的区块高度

file: 相关元数据

但与Brc20不同的是, Arc20采用了染色币模型,在代币相关信息录入BTC链上后,该协议将会把代币与Sats做锚定:1 token = 1 sat。

同时,染色币模型的使用使得用户在进行交易时可以直接通过BTC网络实现而非链下账本,因为代币余额与UTXO中的聪保持一致,代币的相关变化都可以在链上直观的反映。索引器在Arc-20中只是用来读取代币在链上的相关部署信息,并且验证哪些是符合Arc-20协议的代币。

总结

Brc-20的设计结构更依赖与链下账本,而Arc-20更符合Btc的相关特性,并且相较于Brc-20会更去中心化。但同时,染色币模型使得Arc-20无法完成meme币的发售,因为meme币往往有很高的代币总数,而1 token = 1 sat这一特性使得在发售meme币时需要消耗大量Btc

声明:

  1. 本文转载自[medium],著作权归属原作者[@YanAemons],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。

一文带你深入浅出Arc-20和Brc-20协议

中级2/1/2024, 8:16:59 AM
本文从技术角度出发深入两个协议的细节以及优劣势。

引言

在近期Arc-20协议出现后又使铭文市场大火了一把,本文将从技术角度出发深入两个协议的细节以及优劣势。

为什么会出现Brc-20 和 Arc-20?

比特币最初被设计为一种安全、稳定且可靠的去中心化数字货币。然而,由于其技术架构和脚本语言相对不如以太坊灵活,因此比特币并不适合直接运行智能合约。

尽管如此,开发者的创新思想和大胆尝试为比特币生态带来了繁荣,其中一个典型例子就是Brc-20协议。该协议核心思想是实验性的代币形式,以meme为中心。任何人都可以根据先到先得的原则,在比特币链上直接铸造这些代币,而无需依赖智能合约。Brc-20代币的关键特征是其分散化性质,摒弃了私人发售、预售以及解锁或质押等机制。这确保了参与的真正去中心话。

在这一背景下,Arc-20协议再次引发了对铭文的浓厚兴趣。

什么是UTXO模型?

Brc-20协议和Arc-20协议都基于Btc链,因此在正式介绍Arc-20协议和Brc-20协议之前,我们需要简单的认识一下UTXO(unspent transaction output)

当我们谈论比特币时,UTXO(未花费的交易输出)模型是一种重要的设计概念。它是比特币使用的一种账户模型,与传统的账户余额模型(如银行账户)有所不同。

在UTXO模型中,每个比特币交易都创建了一系列未花费的输出,每个输出代表了一定数量的比特币。这些未花费的输出实际上是未使用的数字货币单位,类似于纸币或硬币。当你收到比特币时,实际上是有人创建了一个新的未花费的输出,该输出与你的比特币地址相关联。这个输出就是UTXO。

让我们用一个简单的例子来解释UTXO模型:

如果你有两笔交易,一笔收到了0.7 BTC,另一笔收到了0.5 BTC,你将拥有两个 UTXO,一个价值0.7 BTC,一个价值0.5 BTC。当你想要支付1 BTC 时,你不能简单地使用一个 UTXO,而是需要将两个 UTXO 合并为一个新的 UTXO(总额为1.2 BTC),然后将1 BTC 发送给收款方,剩余的0.2 BTC 作为找零返回给你自己。但找零实际情况可能会低于0.2BTC,因为用户需要给矿工一笔手续费以确保交易的正常运行。

Brc-20协议技术实现

BRC-20是一个实验性标准,演示了通过利用序数理论和铭文,在比特币的第一层(layer 1)上创建可互换代币的可能性。Ordinals协议(第一个按照该协议标准所铸造的代币)允许内容,包括文本、图像或视频,被铭记在比特币最小单位 — — 聪(Satoshi)上,从而创造出独特的数字资产。

序数理论是在BTC网络上实现铭文的关键。

每个聪本质上是一样的,Ordinals通过叙述理论制定了一套聪的排序协议,这个排序基于聪的挖出和他们交易输入和输出的顺序

序数有几种不同的表示方法:

  • 整数表示法:2099994106992659 是根据聪挖掘的顺序分配的序数。
  • 小数表示法:3891094.16797 第一个数字是聪被挖掘的区块高度,第二个数字是聪在区块内的偏移量。
  • 度数表示法:3°111094′214″16797‴。稍后我们会讲到这个。
  • 百分位表示法:99.99971949060254%。表示聪在比特币供应中的位置,用百分比表示。

度数表达法中包含四个部分:A°B′C″D‴,并且A,B,C,D代表着不同的含义:

  • A:周期,从0开始编号。 (周期循环:每六次减半就会发生一些神奇的事情:减半和难度调整会同时发生,这就是所谓的相合,相合之间的时间周期是一个周期。大约每24年就会发生一次相合,第一次相合应该会发生在2032年的某个时候。)
  • 减半时代内的区块索引。
  • 难度调整期间的区块索引。
  • 区块内聪的索引。

叙述理论通过度数表达法来确定一个聪的顺序,并且通过顺序来给每个聪定义不同的稀有程度,从而实现每个聪的独一无二

  • 普通:区块中的任意非第一个聪。
  • 罕见:每个区块的第一个聪。
  • 稀有:每个难度调整周期的第一个聪。
  • 史诗:每个减半时代的第一个聪。
  • 传说:每个周期的第一个聪。
  • 神话:创世区块中的第一个聪。

举例说明,比如现有一个度数表达为 1°1′0″0‴ ,其中

  • 1°:代表第二个循环周期
  • 1′:代表不是减半周期的第一个区块
  • 0″:代表难度调整的第一个区块
  • 0‴ :代表区块的第一颗聪

通过上面的稀有度定义,这个聪被定义为罕见的聪。

大致的流程如下所致:

在Ordinals中是如何通过代码实现的呢?

py# 计算给定高度的块的叙述(奖励)

def subsidy(height):

return 50 * 100_000_000 >> height // 210_000

这个函数用于计算给定高度的比特币块的奖励,其中 50 * 100_000_000 是比特币的起始奖励,>> 是右移位运算符,相当于除以 2 的整数除法。这个函数返回一个整数,表示在给定高度的块的奖励数量。

计算给定高度的块的第一个奖励的序数

def first_ordinal(height):

start = 0

for h in range(height):

start += subsidy(h)

return start

这个函数计算在给定高度的块的第一个奖励的序数。通过迭代高度并累加每个块的奖励,计算从第一个块到给定高度的总奖励数量,从而得到第一个奖励的序数。

为给定块分配序数

def assign_ordinals(block):

first = first_ordinal(block.height)

last = first + subsidy(block.height)

coinbase_ordinals = list(range(first, last))

为给定块分配序数

def assign_ordinals(block):

first = first_ordinal(block.height)

last = first + subsidy(block.height)

coinbase_ordinals = list(range(first, last))

for transaction in block.transactions[1:]:

ordinals = []

for input in transaction.inputs:

 ordinals.extend(input.ordinals)

for output in transaction.outputs:

 output.ordinals = ordinals[:output.value]

 del ordinals[:output.value]

coinbase_ordinals.extend(ordinals)

for output in block.transactions[0].outputs:

output.ordinals = coinbase_ordinals[:output.value]

del coinbase_ordinals[:output.value]

这个函数用于为给定的比特币块分配序数。它首先计算块的第一个和最后一个奖励的序数范围。接下来,它迭代块中的每个交易,为每个输出分配序数。最后,为交易的输出分配序数,以确保整个块中的所有聪都有唯一的序数。

简而言之,通过序数理论,oridinals将本质上每个相同的聪(Satoshi) 通过加工变得独一无二起来,并且通过规则为每一个聪定义稀有熟悉, 实现收藏属性或者适制定玩法的规则。

使用场景

  • 趣味性:独特有趣的协议将会为比特币生态再次带来繁荣。
  • 资产发行:brc-20代币可以作为资产、权益或其他可互换实体的数字表示。这些可以是稳定币、实用代币,也可以是基于meme的代币。
  • dApp集成:开发人员可以将brc-20代币集成到利用比特币网络的去中心化应用程序中。它们的应用范围从产生收益和抵押贷款到权益质押等多方面。
  • 资产代币化:brc-20标准促进了任何资产或权益的代币化,打开了许多可能性,例如基于代币的社区或DAO投票。
  • 交换机制:brc-20代币可以通过各种平台在比特币网络的第一层进行便捷的交换和交易。虽然它们目前可以通过订单簿进行访问,但将它们整合到流动性池交换中的计划已经在近期出现在大众视野中

Arc-20技术实现

Atomicals 协议是一个简单而灵活的协议,用于在未花费的交易输出(UTXO)区块链(如比特币)上铸造、转移和更新数字对象(传统上称为非同质化代币)。一个 Atomical(或称为 “atom”) 是一种管理数字对象的创建、转移和更新的方式 — — 本质上是根据一些简单规则定义的数字所有权链。

Arc-20采用了染色币模型,也就是说一个Arc-20 token都必须有一个聪支持,而非像Brc-20通过排序进行区分。由于Arc-20 代币完全基于聪,使得他可以像Btc一样进行拆分和合并(也就是文章开头提及的UTXO),并且可以直接通过比特币网络进行转帐。

举例说明,通过Atomicals 协议,我们将指定的100个聪定义为100张“电影票”,用户可以在支持Atomicals协议的电影院,拿这100个聪中的一个来支付,充当电影票的职能

但是矿工和比特币网络并不能知道哪个UTXO经过了”Atomicals”化,从而可能误把Arc-20代币当成矿工费用,为了解决这一问题,Artomicals通过指令操作,将每一个Arc-20代币都作为交易的第一个输出来避免代币的误销毁。

使用场景

  • 数字收藏品、媒体和艺术
  • 数字身份、身份验证和令牌门控内容。
  • Web托管和文件存储
  • 点对点交换和原子交换
  • 数字命名空间分配
  • 虚拟土地和所有权注册
  • 游戏中的动态对象和状态
  • 社交媒体个人资料、帖子和社区
  • 任何安全性和去中心化是关键问题的地方。具备军用级别的安全性和验证要求。

Brc-20 vs Arc-20

接下来,我们将分析比较两个协议的异同。

Brc-20

协议大致分为三步

  • 部署者需要将代币的相关信息按照协议格式写入至BTC链上

{

“p”: “brc-20”,

“op”: “deploy”,

“tick”: “ordi”,

“max”: “21000000”,

“lim”: “1000”

}

  • 索引器读取链上代币相关数据
  • 链下账本记录代币的相关余额,处理转账

由于部署者在部署代币时,代币信息本身无法被BTC所识别,因此需要一个索引器(indexer)来获取链上相关数据并通过该数据在链下创建一个账本来记录相关历史以及处理相关操作并进行数据更新。

链下索引器需要精准的捕获每次一代币操作并更新线下账本。但同区块链一样,随着交易的增多,节点存储的数据将会越来越大,如何保证账本的完整性以及在庞大的数据量中找到需要更改的信息,将会成为brc-20的挑战

Arc-20

同样的,Arc-20协议在部署代币时也需要在BTC链上根据格式记录相关信息

program.command(‘init-dft’)

.description(‘Initialize fungible token (FT) atomical in decentralized issuance mode’)

.argument(‘<ticker>’, ‘string’)

.argument(‘<mint_amount>’, ‘number’)

.argument(‘<max_mints>’, ‘number’)

.argument(‘<mint_height>’, ‘number’)

.argument(‘<file>’, ‘string’)

.option(‘—rbf’, ‘Whether to enable RBF for transactions.’)

.option(‘—funding <string>’, ‘Use wallet alias wif key to be used for funding and change’)

.option(‘—satsbyte <number>’, ‘Satoshis per byte in fees’, ‘15’)

.option(‘—mintbitworkc <string>’, ‘Whether to require any bitwork proof of work to mint. Applies to the commit transaction.’)

.option(‘—mintbitworkr <string>’, ‘Whether to require any bitwork proof of work to mint. Applies to the reveal transaction.’)

.option(‘—bitworkc <string>’, ‘Whether to put any bitwork proof of work into the token mint. Applies to the commit transaction.’)

.option(‘—bitworkr <string>’, ‘Whether to put any bitwork proof of work into the token mint. Applies to the reveal transaction.’)

.option(‘—parent <string>’, ‘Whether to require a parent atomical to be spent along with the mint.’)

.option(‘—parentowner <string>’, ‘Wallet owner of the parent to spend along with the mint.’)

.option(‘—disablechalk’, ‘Whether to disable the real-time chalked logging of each hash for Bitwork mining. Improvements mining performance to set this flag’)

.action(async (ticker, mintAmount, maxMints, mintHeight, file, options) => {

…..

}

atomicals-js cli源码中可以找到初始化一个代币的相关指令,必须要在链上记录的参数有:

ticker: 代币名称

mint_amount: mint总量

max_mints: 单次mint数量

mint_height: 指定开始mint的区块高度

file: 相关元数据

但与Brc20不同的是, Arc20采用了染色币模型,在代币相关信息录入BTC链上后,该协议将会把代币与Sats做锚定:1 token = 1 sat。

同时,染色币模型的使用使得用户在进行交易时可以直接通过BTC网络实现而非链下账本,因为代币余额与UTXO中的聪保持一致,代币的相关变化都可以在链上直观的反映。索引器在Arc-20中只是用来读取代币在链上的相关部署信息,并且验证哪些是符合Arc-20协议的代币。

总结

Brc-20的设计结构更依赖与链下账本,而Arc-20更符合Btc的相关特性,并且相较于Brc-20会更去中心化。但同时,染色币模型使得Arc-20无法完成meme币的发售,因为meme币往往有很高的代币总数,而1 token = 1 sat这一特性使得在发售meme币时需要消耗大量Btc

声明:

  1. 本文转载自[medium],著作权归属原作者[@YanAemons],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!