引言
为什么BTC 铭文(Inscription)会点燃市场?当一个市场处于下行阶段,泡沫逐渐消去,快速的增长预期逐渐现实化。人们的视角更多会关注安全、降本和增效,这是一个非常务实的选择。2022年,中心化交易所FTX的暴雷,UST链上的死亡螺旋都证明了中心化和安全性的对立面。目前市场上最安全的资产储备只有BTC链上,没有之一。但是单纯的链上交易和储值,很难让沉淀资产产生流动性带来创新性的增长。在这个背景下,轻量化的Ordinal协议进入了开发者视角,Ordinal协议最大的成功就是轻量化,轻量化意味着安全性没有太大牺牲。在安全的前提下,带来了BTC生态的资产流动性。
为什么Layer2 不是ETH的终局?2013年的ETH在BTC社区的争议中横空出世,目标也是构造一个安全的开发者生态,打破BTC原教旨主义的固执,但是ETH并没有很好的解决性能和成本的问题。Layer2核心思想是将链上交易转移到链下发生,无论是ZK还是Optimistic的Rollup本质上都是对安全的牺牲来换取低成本和性能提升。显然来说,任何链下的妥协对资产的安全都是负面的影响,以太坊作为所有安全和共识的基座,需要的不仅仅是开发者的活跃,更重要的是共识的安全。
无论对于BTC或者ETH,甚至更多的计算网络层,开发者的繁荣的长久基座只有安全。基于这个前提, 链上原生扩展才是最终的归宿,技术层面可能包括轻节点、新的网络存储协议、高校合约虚拟机等,铭文(Inscription)只是这种设计思想下一次尝试,不一定完美,但是方向正确。
Ethscriptions Virtual Machine的设计思路
Tom Lehman和他的facet 协议
Tom在这个月初正式宣布了facet协议的上线,本身并没有和BTC 铭文有显式的关系性。这个协议最初的设计目标是在以太坊网络上建立一个更低成本的交易和合约平台,相比较Layer2更加原生和安全。同样原生的链上Swap交易,基于Facet协议可以降低80%以上的成本,同时保证安全性。
Facet协议设计思想。
Facet出发的视角非常的独特和犀利,Solidity和EVM对于以太坊网络来说是一个最好的设计方案么?Facet给出的答案是,No! 对于一个确定性的函数执行单元,比如i= i + 1 ,如果在输入确定的基础上,EVM执行的输出一定是确定的。但是由于所有的字节码执行都是全网公开执行和检查,这将会耗费大量的计算和时间等待。
Facet的改进思想也很简单,将计算和存储分离,合约代码和数据状态发生和存储在链上(CallData接口)保证了原始的安全,执行过程不再全网执行,这样降低了成本和计算复杂度。为了提供一个友好的开发者体验,Facet 在对标Solidit的基础上,设计了Dumb语言和合约规范。
合约接口
以NFT Mint为例,Dumb合约基本结构和Solidity很相似。
pragma :rubidity, "1.0.0"
import './ERC20.rubidity'
function :_mint, { to: :address, amount: :uint256 }, :internal, :virtual do
s.totalSupply += amount
s.balanceOf[to] += amount
emit :Transfer, from: address(0), to: to, amount: amount
end
合约部署
和Solidity合约部署不同的是,Dumb合约字节码存储在CallData结构中,相当于寄生在以太坊原生的交易环境中,调用参数 "op": "create”,返回dataURI地址用于后续的合约调用。
application/vnd.facet.tx+json;rule=esip6,{
"op": "create",
"data": {
"args": {
"name": "Token0",
"symbol": "TK0",
"maxSupply": "1000000000000000000000",
"perMintLimit": "1000000000000000000000",
"decimals": 18
},
"source_code": "pragma(:rubidity, \\"1.0.0\\")\\ncontract(:ERC20, abstract: true) {\\n event(:Transfe...",
"init_code_hash": "0xb1b0ed1e4a8c9c9b0210f267137e368f782453e41f622fa8cf68296d04c84c88"
}
}
合约调用
基于上述dataURI,可以通过交易去触发CallData中的合约和历史数据,更新状态。
application/vnd.facet.tx;rule=esip6,{
"op": "call",
"data": {
"to": "0x1234eccd1000898941bc19d3f356322783941fa6",
"function": "mint",
"args": {
"amount": "1000000000000000000000"
}
}
}
从Facet协议到以太坊铭文虚拟机(ESC VM)
Facet本身的Dumb语言已经能实现低成本的链上合约VM系统,相比较Layer2有着更高的安全性。BTC上的Ordinal体系的铭文主要功能为发行和转移资产,例如BTC NFT和BRC-20。
受启发于BTC铭文,Facet扩展了在以太坊上面的铭文功能,将铭文改造成了Dumb合约的指令单元,不仅仅和发行资产,还可以调用Dumb合约。类似于一下基于ETH铭文,调用一个合约Mint函数。
data:application/vnd.esc.contract.call+json,{
"contractId": "0xb1bdb91f010c154dd04e5c11a6298e91472c27a347b770684981873a6408c11c",
"functionName": "mint",
"args": {
"amount": 1000
}
}
链上原生计算协议的展望
铭文(Inscription)打开了链上原生扩展协议的潘多拉魔盒。Ordinal协议和ESC VM的理念再次启发了链上原生扩展协议的路径,相比较闪电网络和Layer2的笨重和安全牺牲,链上协议需要更加精妙和收敛的姿态,步步为营,平衡好扩展性和安全性。
更多“铭文”的可能性探索。对于BTC的扩展性而言,除了铭文的解耦式设计,也可以展望BTC脚本的功能扩展,直接软分叉的基础上实现NFT和BRC20的功能。但是这种思路会增加区块的大小,带来节点的状态膨胀,最终走向以太坊的路径。所以链上原生的状态压缩协议,精简合约字节码设计都是影响未来更多安全扩展协议设计的发展。
铭文(Inscription)不是一个终点,而是一个新起点,像是16世纪的文艺复兴,继承和发展。
本文所有版权归ZenFox Labs所有,如有合作或者捐赠支持意向请联系本文作者:hello@zenfoxlab.com