区块链 · 数字资产知识 · 行业资讯
文章库关于本站

风险识别

区块链公链开发协议的应用边界是什么

摘要

公链协议可以提供共同验证的交易记录,并在支持智能合约的网络上执行链上规则;但它不能自行获知现实世界信息,也不能保证合约交互可撤销。理解数据来源、执行成本、公开性与共识分叉等限制,有助于判断哪些环节适合上链。

区块链公链的科技主题配图

公链协议的核心作用

公链开发协议的能力可以从两层理解:账本如何达成共识,以及链上程序如何执行。比特币开发指南介绍的区块链,是公开、按序记录交易的账本;全节点依照共识规则独立验证,交易输出只能被花费一次,以防止双重支付。

以太坊智能合约文档则说明,智能合约把代码和状态部署在链上,用户通过交易调用预先定义的功能。这些机制适合形成多方可核验的数字记录和程序化规则,但不等于公链能自动接管完整的线下业务。

边界一:链上程序不能自行获知现实信息

智能合约不能直接读取链外事件或数据。若应用需要使用现实世界的信息,就必须通过预言机等外部工具把数据提供给合约。合约可以按收到的输入执行规则,却不能仅凭自身代码证明输入所描述的现实情况属实。

因此,涉及链外事实的系统,除了设计合约逻辑,还要评估数据从哪里来、由谁提供,以及如何处理输入错误等问题。把数据写进区块链,并不会自动消除数据来源本身的不确定性。

边界二:开放调用不等于零成本或天然可靠

在支持智能合约的公链上,合约可以由任何人编写并部署;已部署的合约也可能像公开接口一样被其他程序调用。这种可组合性方便复用功能,但使用者仍需了解被调用合约的行为及其依赖关系。

以太坊文档指出,部署合约需要支付 gas,部署成本高于普通 ETH 转账。因而,公开部署和组合调用并不代表执行没有成本,也不能替代对代码规则、接口和权限的审查。

边界三:合约交互的不可逆性与区块分叉

以太坊智能合约文档指出,合约默认不能删除,与合约的交互也不可逆。设计应用时,应在部署前明确规则和操作范围;不能假设链上操作发生后,就能像修改普通数据库记录一样随意撤回。

另一方面,不宜把区块记录概括成任何情况下都绝不会变化。比特币开发指南说明,矿工可能在相近时间产生同高度的区块,节点会在有效分叉之间继续跟随工作量更大的链;修改较早区块的难度会随后续区块增加。这是比特币工作量证明机制下的说明,不应直接套用为所有公链的共识方式。

适用条件与常见问题

如果多个参与方需要共同核验一份交易记录,且业务规则能够清楚地写成程序,可以评估是否把相关状态和规则放到公链上。若核心判断依赖链外事实、数据需要保密,或业务要求操作能够灵活撤回,则应进一步划分链上与链外职责,而不是期待合约单独解决所有问题。

常见问题:智能合约能直接读取现实数据吗?不能,通常需要预言机等外部数据通道。上链操作能否任意撤销?不能这样假定,合约交互可能不可逆。区块历史是否绝对不变?应结合具体公链的共识规则理解;比特币指南描述了分叉及后续工作量影响链选择的情形。

← 返回全部文章

延伸阅读 · 相关栏目

安全防护钱包与账户风险识别信息核验