BRC-20和「客户端验证」:你不该继续购买用这些「协议」发行的Token

协议中有且只有一种东西:

原文来源:@AurtrianAjian,BTCStudy内容贡献者

、上链的意义与客户端验证

:为什么你不该继续购买用这些协议发行的 —它们根本不能被称为协议。

比特币协议中有且只有一种东西:UTXO,比特币交易的输出,它的数额代表它的价值(以聪为单位),它的ScriptPubKey(脚本公钥)表示它的花费条件(解锁条件)。  

可以用来编写脚本公钥的操作码是由比特币的共识规则提供的。这些操作码的意义在于编程验证条件(例如单签名、多签名、时间锁,等等),从而为一笔比特币 UTXO 设定花费条件(锁);但它并不能用来定义任意我们想要的规则。

也就是说,比特币脚本并不能用来创造一种不是比特币的 UTXO,也不能用来制作任意的安全机制(其实这两者是一回事)。
所以,如果你想要在比特币链上发行资产,你永远只能依靠链下协议,举凡 Omni、Counterparty、RGB、Taro、,都不例外。 

关键在于,既然脚本公钥(被比特币网络理解的验证程序)不能被任意编程,则这些链下协议所发行的资产,无论往链上写入什么数据,都不可能转化成这些资产的安全机制。举例,假如你发行了一种资产,无论你往链上写入什么数据,都不可能要求比特币网络来控制这种资产不通胀。 

Omni 协议使用 OP_RETURN 输出记录交易数据、Ordinals NFT 利用特定的格式(inscription)加载内容,但这些东西都无法进入脚本公钥,都无法成为有意义的安全机制。
那么,如何增设这些自定义的规则呢? 

答案是:

(1)我们要让资产的买方运行额外的验证程序(证据由买方提供),验证卖方所卖出的资产的属性,这就是所谓的客户端验证(client validation)。比如,买方验证卖方所卖出的资产具有资产发行者的签名,以验证它是真币;

  

(2)要让资产附身于某一个 UTXO,从而让比特币交易变成链外交易的证据(witness)、防止同一个资产被重复花费(因为一个 UTXO 不可能被花两次)。 

这些自定义的规则,假设它能在客户端验证的基础上支撑其一个安全的协议,当然可以写入到比特币区块链,但是,这样的操作并不能增加安全性,因为真正的安全性来自于客户端验证。比特币协议做的事情,只是阻止 UTXO 重复花费,同时允许运用比特币脚本,为这样的资产编写在比特币链上转移的方法。 

当前 Inscription 将内容通过见证脚本暴露出来的方法,仅仅起到了上文所述的(2)的作用,即标记特殊的比特币交易、阻止重复花费,但是,只要它不要求客户端运行额外的验证,就无法为这些 NFT 也好 FT 也好增加定制化的规则。 

(1)将资产附着到 UTXO 上并不需要你将资产的内容完全公布上链;

(2)将为资产转移而提供的数据写到链上将耗费大量空间,经济性极差。这都是没有意义的事,将这些数据在链下提供给买方就可达成同样的效果(认为放在链上可以防止丢失的观点也是可疑的,它存在不意味着你就能找回来)

所以,请停止买入使用 Inscription 方法发行的 Token,直到这些 Token 的开发者提供允许客户端验证的规则,否则你买入的就是空气,得不到任何的保护。开发者们,如果你真的在乎你的用户,请先设想这样的客户端验证规则并实现这样的客户端。  

许多朋友从别的社区进入这个生态,往往带着固有的认知来理解比特币,但在别的链上有意义的事,在比特币上不一定有意义。

请好好理解比特币,理解客户端验证范式,理解将一切其余资产都交给链外协议的智慧。通过消耗区块空间(共识资源)来获得可编程性的做法,注定在可扩展性和隐私性上面临可悲的结局。

如果你想寻找在客户端验证上最完整的想法,请了解 RGB 协议: https://btcstudy.org/tags/RGB/,

RGB 的钱包和工具库:https://rgb.info/zh/home/

另一个 RGB 网站:  https://t.co/8SG3T1ld6k

原文出处:https://twitter.com/AurtrianAjian/status/1655604896023056390

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此网站受reCAPTCHA和Google隐私权政策服务条款适用。

Scroll to Top