
上链:先明确研究对象
“上链”通常指通过交易把数据或状态变化纳入区块链记录。研究时应明确:记录的是交易输入、合约状态,还是某份文件的摘要;判断的是已提交、已收录,还是已经达到特定确认条件。这些层次对应不同证据,不能用一个“成功”概括。
以太坊:交易、签名与Gas
以太坊交易文档介绍了签名交易、账户序号Nonce、输入数据和Gas费用。签名用于验证授权;Nonce用于区分和排序同一账户发出的交易;Gas衡量执行所需资源,gasLimit限制消耗量。交易广播后,需要被纳入区块,所在区块还会经历最终性相关阶段。
这些概念适用于以太坊交易语境。解释费用问题时,应区分资源用量与每单位资源的价格;解释数据问题时,应区分输入内容与执行后的状态。交易携带了数据,并不自动意味着合约已按预期完成业务处理。
比特币:UTXO、区块与共识
比特币开发指南以未花费交易输出UTXO描述可供后续交易使用的输出。节点独立验证区块;区块通过前一区块哈希连接,交易通过默克尔树汇总。在有效分支之间,节点依据累计工作量选择链。区块高度表示位置,分叉时不能单独作为唯一标识。
因此,研究比特币的重复花费问题,应检查被引用的输出及其花费状态;研究某笔交易的收录位置,应结合区块哈希。以太坊账户Nonce与比特币区块头中的Nonce用途不同,同名术语需要结合所在协议和字段位置理解。
常见问题:怎样证明已经上链
有交易哈希就代表上链了吗?哈希提供识别交易的依据,不能单独证明交易已经被区块收录。研究报告需要把交易标识、收录区块以及相应确认条件分别说明。
默克尔证明能证明内容真实吗?它用于验证交易与区块中交易集合的包含关系。业务内容是否真实,还需要链外证据;包含关系证明不能替代事实核验。
确认与最终性是否相同?二者都涉及记录的稳定程度,但依赖具体协议。比较不同链时,需要交代各自的判断条件,不能把相同的区块数量直接解释为相同的安全保证。