首页   

比特币生态上的xx20协议和以太坊生态上的ERC20协议的底层设计

闪电HSL  · 比特币  · 3 周前
每次读到比特币生态上的各种仿erc20协议的命名方式,我就觉得不协调,如brc20,cat20,这些,总感觉它们和UTXO技术的调调不一致。
可能,我们真需要认真对比一下以太坊生态上的ERCxxx协议,和UTXO技术体系下的xxx协议,在底层设计上的不同。
以太坊上的协议(如 ERC-20 和 ERC-721)实际上是一组标准接口规范,或者说有具体相同函数的一系列智能合同。这些标准接口(也可以称之为函数)主要用于规定了代币的行为,例如转账、余额查询等。
比如可以称之为erc20的合约,都会具有,总量查询函数、某个地址余额查询函数、授权批准合约支出代币函数……等等。
我们可以简单地理解为:设计一个ercxx协议,就是设计一系列规范化的函数接口的合同,具体相同函数接口的合同就是一类ercxx合约。
以太坊的这种ercxx的设计对defi的可组合性带来了巨大的好处。
比如,钱包、交易所、Dapp支持各种erc20代币就非常非常简单。
一个交易所要list一个新链的币,比如上线过btc,再上线bch,哪怕是这两个币的代码99%一样,但交易所还是要有大量的开发工作和增加服务器等工作才能再上线bch。
但如果交易所已经支持了erc20协议,那上线任何一个符合erc20标准的代币,那就是非常轻松了,开发工作可能比上线新链币要减少99%以上。
相同的道理,uniswap可以0开发(完全不需要uniswap做额外开发)就可以支持所有的erc20代币。
而任何用户都可以通过一笔简单的交易来发行一个符合erc20标准的代币,并不需要做其他工作,如搞一台服务器来运行这个币之类的事,发一笔交易后就完事了,这个币所必须的生存条件全部都在ETH链上。

比特币生态上的“协议”,都是基于UTXO(未花费输出)来设计的,设计“协议”本质上是设计特定的UTX数据结构,和锁定&解锁条件(如签名或脚本逻辑)。
比如,铭文系协议,如brc20,本质上就是将特定的数据信息结构化塞进一笔UTXO里,并定义清楚如何锁定和花费这些代币。
更久远的协议是omni Layer,五年以前还大量存在的usdt-omni,也是比特币生态上的一种代币协议,是在比特币交易的Op_return输出里塞入一些数据来定义代币。
brc20和omni和以太坊的erc20相比,差距还是巨大的。
Brc20这些并不是完整的属于btc链上的,发行一个brc20代币,需要的工作量和运行条件要远比搞一个erc20代币要复杂,比如你至少要运行一台服务器来跑索引器。
交易所list一个新的brc20代币的开发难度和新上一个新链币也是差不多的。
但其实铭文系协议,不是典型的比特币协议,本来比特币的开发者不是很热心于开发类似于erc20这种代币协议。
和erc20对应的,UTXO体系里的协议,更接近的应该是BCH的cashtoken。
Cashtoken是基于UTXO模型的一组规范化数据结构,和条件支付(锁定&解锁脚本)逻辑。
就类似于BTC、LTC、BCH这些币的本质都是UTXO,cashtoken也是做了特殊标记的UTXO,使用它来发行代币也是遵循UTXO的模式来定义这些代币,比如查询余额也是扫描和追溯UTXO,发送代币也是解锁脚本和锁定脚本。
Cashtoken这种协议在一定程度上实现了erc20的好处,如发行简单,不需要像brc20那样自己运行索引器;支持链上的合约(契约Covenant),如可实现AMM协议的dex之类的;交易所list也比上新链币更简单等。
ERC-20 协议通过标准化的智能合约接口,成就了以太坊在 DeFi 领域的繁荣,简化了钱包、交易所和 DApp 对代币的支持,并让任何用户轻松发行符合标准的代币。这种极简、互操作性强的设计,为以太坊的生态奠定了牢固的基础,并推动了defi去中心化金融的快速崛起。
相比之下,比特币生态下的“XX20”协议,更多是对 ERC-20 的简单模仿。但结果感觉不是很理想,即没有实现ERC20的优势,也没有严格遵循UTXO的数据结构和解锁脚本设计。
比特币生态开发代币协议,可能更靠谱的还是回到UTXO的设计本源,从设计数据结构和解锁脚本着手。

© 2024 精读
删除内容请联系邮箱 2879853325@qq.com