
1.1.1 区块链是什么
中本聪(Satoshi Nakamoto)在《比特币:一种点对点式的电子现金系统》论文中开创性地提出了基于密码学原理而非信用的电子支付系统——比特币。它是一种去中心化的数字货币,其原理是使用公共密钥密码来管理所有权,并通过一种称为“工作量证明”的一致性算法来跟踪货币的持有者。这种“工作量证明”算法提供了一种有效的、简单有节制的共识算法,允许网络中的节点一起同意比特币总账状态的一组更新。该算法还提供了一种允许任何节点自由达成共识的处理机制,这一机制解决了不同节点之间建立信任、获取权益等难题,同时阻止了女巫攻击(1)。之后,人们提出了“权益证明”这一新方案,通过选举的形式,其中的任意节点被随机选择来验证下一个区块,节点需要提供一定数量加密货币的所有权作为权益,权益份额的大小决定了被选为验证者的概率,从而得以创建下一个区块。这两种方法都可以作为加密数字货币的支柱算法。
区块链作为比特币底层技术,伴随着比特币和之后各种数字货币的大热,逐渐吸引了大家的关注。什么是区块链?这个问题已经成为各类搜索引擎中的热门话题。
狭义上讲,区块链是一个开放的分布式账本或分布式数据库,也就是一个不断增长的列表,这个列表是由一个个区块以加密的方式连接而成的,每个区块都记录了一系列交易,并且每一个区块都包含了前一个区块的哈希值、时间戳和交易数据。广义上讲,区块链技术是利用加密链式区块结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化基础架构和分布式计算范式。
可以将区块链想象为一个遍布全球的公共账簿,任何参与节点都能够拥有这个账簿的所有记录,可以追根溯源。因为所有的参与节点共同维护这个公共账簿,所以任何一个节点不能随意更改、伪造。假设有一个可信任的中央服务器,那么按照需求所描述的去编写代码,就可以轻松地把状态记录在中央服务器的硬盘上。但如果试图去建立一个像比特币一样的去中心化的货币系统,就需要考虑将状态转移系统与一致性系统相结合,从而确保每个人都同意一笔交易的顺序。比特币去中心化的一致性处理进程要求网络中的节点连续不断地尝试对交易打包,每个以这种方式打成的包就称为一个“区块”,每个区块都包含一个时间戳、一个随机数、一个对上一区块的引用和从上一个区块开始的所有交易的列表。这样的区块每隔十分钟左右就会被网络创建出来,随着时间的推移,就能够创建一个持久的、不断增长的区块链,这个区块链不断地被更新,保证了其始终代表着最新的比特币总账的状态。
区块链上面的代码一旦发布运行之后是无法改变的,因为区块链的原创思想就是应用一旦推出,就再也无法修改,必须按照既定的代码运行。区块链的革命性在于其利用本身不可篡改的特性实现了人类社会从中心化的个人信任和制度信任转变为去中心化的机器信任模式。区块链记录了所有状态的初始情况,以及之后每次更改和变动记录,不依赖于任何组织或者个人。通过一条条不可更改的历史记录,区块链实现了让互不信任的个体就历史状态达成一致。
互联网行业的特点是强者越来越强,最终进入了巨头垄断时代,形成权利和信用中心。而“区块链解决了操纵问题”(Vitalik Buterin,以太坊发明者),区块链网络中的数据是完全公开透明的,链状结构代表的每条记录都能够追溯到初始状态,想要更改区块链上的任何一个信息单元都需要付出和全网作对的昂贵算力代价。中心化权利被下放,不再依赖单点或单一可信的仲裁者,每个人都将自己的所有记录保存在一个不属于任何人的不可篡改的数据库里。如果网络能够真正实现全球参与,那么分布式的特性保证了区块链能够跨越国界和任何物理因素的制约,实现真实世界和网络世界的完美结合。
区块链技术因为比特币而受到关注,但是它的应用并不仅仅局限于数字货币。作为“未来诚信的沃土”,区块链正在改变未来,而有幸的是,我们正作为见证者,或者说参与者。