第1章 公链设计架构
1.1 概述
区块链技术起源于2008年中本聪的论文《比特币:一种点对点电子现金系统》,区块链诞生自中本聪的比特币。
区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库分布式账本是一种在网络成员之间共享、复制和同步的数据库,记录网络参与者之间的交易,比如资产或数据的交换。
区块链分类如下。
❏ 公链:无官方组织及管理机构,无中心服务器。参与的节点按照系统规则自由地接入网络,节点间基于共识机制开展工作。
❏ 私链:建立在某个企业内部,系统运作规则根据企业要求进行设定,读写权限仅限于少数节点,但仍保留着区块链的真实性和部分去中心化特性。
❏ 联盟链:若干个机构联合发起,介于公链和私联之间,兼容部分去中心化的特性。
本书基于国内优秀项目比原链(Bytom),为读者展开公链技术的完整实现。如果说比特币代表区块链1.0时代,以太坊拥有图灵完备性代表的是区块链2.0时代的话,比原链则基于UTXO模型支持了更丰富的功能(图灵完备的智能合约、多资产管理、Tensority新型的PoW共识算法等),其代表的是区块链2.5时代。比原链是一个开源项目,整个项目基于GO语言开发,代码托管于GitHub上(https://github.com/Bytom/bytom)。
本书基于比原链的1.0.5版本源码进行分析。读者不用纠结本书为何不使用比特币或以太坊作为示例,所谓“有道无术,术尚可求也,有术无道,止于术”,作者认为大部分区块链技术实现都是相似的。目前主要在共识算法(PoW、PoS)和模型(UTXO或Account模型)方面有所不同。比原链作为国内优秀的公链,代码量并不多,而且清晰的源码结构使得程序员和链圈爱好者的学习成本也不高。我们从中可以学到很多东西,如GO语言程序设计及应用、公链设计架构、公链运行原理等。
本章主要内容包括:
❏ 比原链的总体架构。
❏ 比原链架构内部各模块功能。
❏ 比原链编译部署及应用。