
从试用目标识别技术概念
区块链的试用场景涉及哪些技术概念,可以围绕三个问题理解:记录什么变化、谁有权发起变化、变化要满足哪些规则。记录流转关注交易模型,核验权限关注数字签名,自动执行流程关注智能合约。不同链采用的实现方式不完全相同。
交易模型与密码学授权
比特币开发文档中的普通交易通过输入引用先前输出,并生成新的输出。尚未花费的输出称为UTXO,其支出需要满足脚本条件。在文档介绍的P2PKH类型中,公钥、哈希和数字签名共同参与授权验证,交易标识与输出序号用于定位被花费的记录。
这一模型有助于理解流转试验的核验目标:记录是否可用、授权是否有效、支出条件是否满足。数字签名证明对应密钥的控制和授权关系;如果业务还要求确认操作者的现实身份,就需要另外建立身份与密钥之间的联系。
智能合约与执行环境
以太坊开发文档将智能合约解释为位于链上地址的代码和状态。交易可以调用合约函数,部署和执行涉及gas费用;Solidity、Vyper等语言编写的程序需要编译后交由以太坊虚拟机执行。合约之间还可以相互调用。
规则明确、条件可以用程序判断的流程适合进行合约试验。例如,试验重点可以是权限校验和状态更新是否符合规则。组合多个合约时,还需检查被调用合约的行为与权限,不能只验证单个函数。
链外数据与多人治理
合约使用现实世界信息需要预言机等链外数据接入机制。多人共同控制的操作,则可以通过多签合约设置签名门槛。前者处理信息如何进入链上,后者处理哪些参与者共同授权。
用于业务试验时,数据接入应明确来源、更新方式与异常处理;多人授权应明确签名人的职责及密钥管理。把外部数据写入链上,不会自动证明原始数据真实;增加签名要求也不能替代参与者对操作内容的判断。
适用条件与常见问题
是否所有流程都适合合约化?需要先判断规则能否明确表达、输入能否可靠提供,以及执行成本能否接受。含糊的判断标准难以直接转换成可靠的程序条件。
链上执行错误能否直接撤销?试用设计不应假定已经确认的操作可以随意回退。应事先检查权限边界、错误输入及补救机制,并区分链上状态变化与现实业务履约,两者需要通过具体业务安排衔接。