区块链技术用数学方法实现分布式记账,并解决信任问题,从而完成了去中心化,将在通信、金融、物联网、政府管理等众多领域带来深远的影响。
区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,是一种全民参与记账的技术方式。而此前的记账方式都是中心化的,需要中心化的中介,无论这个中介是传统的政府、金融机构、公证机构还是新兴的电商平台、网络支付平台。
经济学假设中,信息是充分的。实际上,正是因为信息不充分,才存在非常庞大的中介机构。而中介机构的存在,增加了交易成本,提高了交易门槛。区块链技术本质上来说是一个大规模协作工具,它首次使用纯技术方式让直接的价值转移成为可能,并延续了互联网去中心化和去中介化的趋势。去中介的区块链技术将极大地颠覆信息中介行业。
源自比特币的区块链技术
2008年11月1日,一位化名中本聪(Satoshi Nakamoto)的程序员,在MIT计算机系统安全组的网站上发表了一篇仅8页长的学术论文,《Bitcoin: A Peer-to-Peer Electronic Cash System》。中本聪描述了一种完全基于点对点的电子现金系统,使支付可以由交易双方直接进行,摆脱了通过第三方中介(如商业银行)的传统支付模式,创造了一种全新的货币体系。
2009年1月,第一个序号为0的比特币区块——创世区块诞生。几天后的1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着比特币区块链的诞生。
比特币因其剧烈的价格波动、高度的匿名性、与犯罪相连的坏名声以及其他技术原因,2009年诞生至今仍远未进入主流。然而2014年以后,作为比特币背后的数据结构,区块链却越来越受到广泛关注。
区块链技术是构建比特币数据结构与交易信息加密传输的基础技术,该技术实现了比特币的发行与交易。区块链技术的核心是所有当前参与的节点共同维护交易及数据库,使交易基于密码学原理而不基于信任,使得任何达成一致的双方,能够直接进行支付交易,不需第三方的参与。
从技术上来讲,区块是一种记录交易的数据结构,反映了一笔交易的资金流向。系统中已经达成交易的区块连接在一起形成了一条主链,所有参与计算的节点都记录了主链或主链的一部分。
比特币的产生需要依据特定的算法,通过大量复杂的运算才能生成,俗称“挖矿”。挖矿就是指产生新区块并计算随机数的过程,以解决一项复杂的数学问题来保证比特币网络分布式记账系统的一致性。这项复杂的数学问题是寻找一个随机数散列值(也称为哈希值)。散列值由散列函数生成,散列函数的功能是将任意长度的不同信息(例如数字、文本或其他信息)转化为长度相等但内容不同的二进制数列(由0和1组成)。
比特币采用的是散列算法中的SH256算法,任意长度的信息输入通过这个函数都可以转换成一组长度为256的二进制数字,以便统一存储和识别。256个0或1最多可以组合成2256个不同的数,这个庞大的集合能够满足与比特币相关的任何标记需要。且散列还有一个重要特征,若想要生成一个特殊的输出数字,只能通过随机尝试的办法逐个进行正向运算,而不能由输出结果逆向推出输入信息。这个特征是比特币能够顺利运行的重要基石。挖矿就是通过改变随机数来生成不同的散列值,直到符合要求。
一个区块包含以下三部分:交易信息、前一个区块形成的哈希散列和随机数。交易信息是区块所承载的任务数据,具体包括交易双方的私钥、交易的数量、电子货币的数字签名等;前一个区块形成的哈希散列用来将区块连接起来,实现过往交易的顺序排列;随机数是交易达成的核心,所有节点竞争计算随机数的答案,最快得到答案的节点生成一个新的区块,并广播到所有节点进行更新,如此完成一笔交易。
分布式记账成为可能
比特币使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为。在信息传递过程中,发送方通过一把密钥将信息加密,接收方在收到信息后,再通过配对的另一把密钥对信息进行解密,这就保证了信息传递过程的私密性与安全性。比特币的交易并非简单的支付货币本身。由于每笔交易单都记录了该笔资金的前一个拥有者、当前拥有者以及后一个拥有者,依据交易单可实现对资金的全程追溯。这也是比特币的典型特征之一。最后,当每一笔交易完成时,系统都会向全网进行广播,告诉所有用户这笔交易的实施。
比特币系统大约每十分钟创建一个区块,其中包含了这段时间里全球范围内发生的所有交易。每个区块中也包含了前一个区块的ID,这种设计使得每个区块都能找到其前一个节点,如此可一直倒推至起始节点,从而形成了一条完整的交易链条。
因此,从比特币的诞生之日起,全网就形成一条唯一的主区块链,其中记录了从比特币诞生以来的所有交易记录,并以每十分钟新增一个节点的速度无限扩展。这条主区块链在每添加一个节点后,都会向全网广播,从而使得每台参与比特币交易的电脑上都有一份拷贝。
在现实世界里每笔非现金交易都由银行系统进行记录,一旦银行计算机网络崩溃所有数据都会遗失。而在互联网世界里,比特币的所有交易记录都保存在全球数量巨大且分散的计算机中,只要有一台装有比特币程序的计算机还能工作,这条主区块链就可以被完整地读取。如此高度分散化的交易信息存储,使得比特币主区块链完全遗失的可能性极小。
每个人在对交易的有效性进行验证后,都可以根据这些交易数据生成新区块。为了避免虚假交易或重复交易,使这一新区块被信任需要构建工作量证明机制。如果想要修改某个区块内的交易信息,就必须完成该区块及其后续连接区块的所有工作量,这种机制大幅提高了篡改信息的难度。同时,工作量证明也解决了全网共识问题,全网认可最长的链,因为最长的链包含了最大的工作量。