
点对点网络与节点验证
比特币开发者文档说明,节点通过点对点网络交换区块和交易,全节点对接收的数据进行验证。归档节点保留完整区块链历史,裁剪节点则不保留全部历史区块。节点发现可以结合已有节点记录、其他节点提供的地址和DNS种子等途径。
理解这一层时,应区分传播与验证:网络连接解决数据从哪里来,验证规则决定数据能否被接受。收到一条消息,并不意味着它已经成为有效记录;保留历史数据的多少,也不能直接等同于是否执行完整验证。

账户、交易与智能合约
以太坊开发者文档将智能合约描述为位于特定链上地址的程序,包含代码与状态。用户通过交易调用合约功能;Solidity、Vyper等语言编写的合约需要编译,才能由以太坊虚拟机执行。部署和执行相关操作涉及Gas费用。

账户用于识别交互对象,交易表达一次操作请求,合约状态记录程序执行后的结果。设计应用时,需要把业务要求转化为明确的输入条件、权限和状态变化。例如,多方共享的登记流程需要明确谁能提交、谁能修改,以及哪些条件满足后才能变更记录。
可组合性与链外数据
智能合约能够调用其他合约,这构成了应用的可组合性。合约本身不能直接获取链外事件信息,需要通过预言机引入外部数据。多重签名合约则要求达到约定数量的有效签名后才能执行操作。
这些能力分别对应功能协作、外部信息接入和多人授权。适用条件也不同:跨合约协作需要关注依赖关系;使用现实世界数据需要明确数据来源和更新方式;多人授权需要合理安排签署权限及密钥管理。
应用适用条件与常见问题
判断应用是否适合使用区块链,可以先看参与方是否需要共享记录、按共同规则更新状态,以及独立核验结果。若需求主要是单一机构内部的数据读写,仍需比较链上执行的成本与协作价值。
智能合约能保证外部信息真实吗?程序按输入执行规则,不能仅凭执行成功证明输入符合现实。多重签名能消除全部风险吗?它能分散单一密钥承担的权限,但仍依赖签署者和合约规则。不同区块链的机制是否相同?比特币的节点网络与以太坊的合约机制应在各自语境下理解,不能直接互相套用。