
先建立整体认识
区块链架构和应用入门需要了解什么,可以围绕一条主线展开:用户提出请求,节点检查请求,网络按共同规则组织记录,应用读取这些记录或更新共享状态。理解这条链路,比孤立记住技术名词更有帮助。
架构分析可以分为数据、网络、共识和执行几个方面。这是一种学习方法,具体系统的模块划分并不完全相同,也不能把某条链的机制推广到所有区块链。

比特币示例:数据如何连接与验证
比特币开发者指南介绍,区块头引用前一区块,交易通过默克尔树汇总。全节点独立验证区块;普通交易消耗未花费交易输出,即UTXO,以约束重复花费。工作量证明增加改写历史的成本;出现竞争分支时,节点在有效链中遵循累计工作量最大的链。

这里需要区分三个问题:哈希关联帮助发现数据变化,交易规则判断花费是否有效,共识机制帮助网络选择历史分支。仅仅把数据串成链,并不足以实现这些能力。
以太坊示例:从记账走向程序执行
以太坊技术介绍说明,以太坊通过权益证明维护共识,并由以太坊虚拟机执行智能合约。合约是部署到网络中的可复用程序,交易可以调用程序、改变共享状态,执行所需资源通过费用机制计量。
理解应用时,可以把界面、交易请求和合约执行分开:界面表达用户意图,请求携带调用参数,合约按规则处理。界面显示操作成功,与请求已经进入网络认可的状态,是需要分别判断的事情。
应用适用条件与设计问题
若业务需要多方依据共同规则核对记录,可以进一步评估区块链方案。评估重点包括谁提交数据、谁验证结果、哪些状态需要共享,以及执行成本是否可接受。单纯需要保存数据,并不能说明必须使用区块链。
应用设计还应明确链上规则的边界。例如,程序可以检查输入是否满足条件,但输入所描述的现实事件是否真实,需要另行建立可信依据。可验证的执行过程,不能自动解决所有数据来源问题。
常见问题与学习顺序
区块链记录是否绝对不能改变?更准确的理解是,历史修改受到密码学关联、验证规则和共识成本的约束。比特币存在竞争分支,因此区块高度也不能单独作为区块的唯一标识。
智能合约是否等于完整应用?合约承担链上逻辑,用户交互还需要相应的软件组件。入门可以先理解交易和区块,再学习节点与共识,最后梳理合约调用怎样影响状态;比较不同系统时,应分别确认其数据模型与执行规则。