
先理解区块链解决的问题
区块链把记录分批组织成区块,并通过密码学引用连接前后区块。网络中的节点依据规则验证记录,形成共同认可的历史。入门时应抓住三个问题:数据如何关联、谁来检查有效性、出现不同历史时如何选择。
共享账本的意义在于让参与者按共同规则核验记录。理解一种应用时,可以先问它需要哪些参与者共享什么数据,再看区块链在其中承担存储、验证还是程序执行的职责。

用比特币理解交易与共识
比特币开发者指南介绍了交易输入、输出与未花费交易输出。普通交易使用此前尚未花费的输出,同一输出不能在有效链上被重复花费。区块通过前一区块头的哈希相连,默克尔根则汇总区块内的交易。

比特币采用工作量证明。节点独立验证区块,并在有效分支之间依据累计工作量选择历史。因此,区块高度只是位置标记,分叉时同一高度可能存在不同区块;识别具体区块需要区块哈希。
用以太坊理解可编程应用
以太坊技术介绍将其描述为能够共同维护计算状态的区块链。智能合约是部署到网络中的程序,交易可以请求执行合约,由以太坊虚拟机按规则计算结果。以太坊采用权益证明,计算请求需要支付相应费用。
理解应用时,应区分用户界面、合约代码和链上状态。界面负责交互,合约规定执行逻辑,链上状态记录执行结果。程序能否正确表达业务条件,是理解这类应用的重要环节。
应用成立需要哪些条件
区块链应用需要明确共享记录的范围、参与者的权限以及可验证的执行规则。对于包含程序执行的应用,还要考虑计算和存储所带来的资源成本。不能仅凭使用了区块链,就判断应用一定更高效。
如果业务依赖现实世界的信息,还必须解释这些信息如何进入系统、由谁提供。链上的验证规则可以检查记录是否符合协议,却不能单凭记录被写入链上,就证明其对应的现实事件真实发生。
入门常见问题
哈希是否等于加密?哈希用于生成数据摘要,在这里帮助关联区块和校验交易内容,本身不承担隐藏原文的作用。智能合约是否会自主理解约定?它执行的是代码中明确写出的条件与操作。
记录上链后是否绝对不能改变?更准确的理解是,历史修改受到链接结构和共识机制的约束,比特币还可能发生分支切换。学习时应分别理解交易有效、进入区块与获得更强确认,避免把它们视为同一个状态。