区块链并非单一创新技术,而是将许多跨领域技术凑在一起,包括密码学、数学、演算法与经济模型,并结合点对点网络关系,利用数学基础就能建立信任效果,成为一个无须基于彼此信任基础,也无须仰赖单一中心化机构就能够运作的分散式系统,而比特币便是第一个采用区块链技术打造出的一套P2P电子现金系统,用来实现一个可去中心化并确保交易安全性、可追踪性的数位货币体系。不过,区块链究竟是如何运作,使其被称作信任机器的?一笔交易到底要如何在一个彼此互不信任的P2P网络中,不经由传统的信任机构(如银行、证券交易所、第三方机构等中心化机构)就能完成交易验证?
要搞懂区块链运作原理,可先区分出交易与区块两个部分,这里我们分别从区块链中一笔交易产生到完成验证的流程,来了解区块链的运作原理,并进一步拆解五大区块链关键技术,看它是如何做到大家口中的基于零信任基础、去中心化、可追踪又不可篡改的。
一、区块链的关键技术
区块链的关键核心技术包括:采用哈希算法来进行工作量证明,让区块链中的各节点有机会参与验证,提高公正性;交易过程中,采用椭圆曲线数位签章演算法来确保交易安全,并在每笔交易与每个区块中使用多次哈希函数及Merkle Tree,不仅可以节省储存空间,还可以将前一个区块的哈希值加入新区块,让各区块环环相扣,做到可追踪且不可簒改,同时使用时间戳来确保区块序列。下面,我们就来依次解释这些关键技术。
1.采用工作量证明达到去中心化和公正性
工作量证明是让任一运算节点花费时间和运算资源计算出一组数学公式。要想完成一次有效的工作量证明,须经过一连串的尝试与失败。不过,一旦这个数值被计算出来,其他参与节点也能用相关的数学公式轻易地验证此值是否有效。
2.每笔交易采用椭圆曲线数位签章演算法与加密演算法
比特币区块链采用的是椭圆曲线数位签章演算法与加密演算法,二者都是公开金钥加密演算法。公钥加密技术发明于1970年,也称双金钥密码安全系统,每个使用者都会拥有公钥与私钥两把钥匙,公钥可让其他人知道,而私钥则只有本人知道。如果A要传送一条信息或交易给B,就要使用B的公开金钥来对这份交易进行加密;而加密过的信息或交易,只有使用B的私密金钥才能解开。
3. Hashcash演算法及多种哈希函数,确保资料不被簒改
区块链采用Hashcash演算法来进行工作量证明。Hashcash可以将任意长度的资料由哈希函数转换为一组固定长度代码,原理是基于密码学上的一种单向杂凑函数,还回推出原本的值。
4.由Merkle Tree将众多信息缩短成一个哈希值
在比特币区块链中,每笔交易产生后,都要被哈希成一段代码,才能广播给各节点。当然,为了节省储存空间并减少资源耗费,比特币区块链的设计还要采用Merkle Tree机制,让数百到数千笔的交易哈希值,由两两一组形成一个新哈希值,不断重复,直到最后产生一组哈希值,即Merkle Tree Root。Merkle Tree机制可以大大减少资料传输量与运算资源消耗,验证时只要对Merkle Tree的Root值进行验证即可。
5.用时间戳伺服器确保区块序列
比特币采用时间戳伺服器机制,将每个区块Hash后加上一个时间戳并发布出去,这个时间戳用来证明资料在特定时间的有效性。每一个时间戳章会与前一个戳章一起进行Hash,且这个哈希值会再与下一个时间戳章进行Hash,进而形成一个用来确保区块序列的链条。
二、区块链的运作原理
在比特币区块链中,一旦某笔交易由某个节点或钱包产生时,这笔交易就要被传送给其他节点来验证。具体做法是:将交易资料由数位签章加密,由哈希函数得出一串代表此交易的唯一哈希值,再将这个哈希值广播给比特币区块链网络中的其他参与节点。
一笔新交易产生后,就会被广播到区块链网络中的其他参与节点,之后各节点会将数笔新交易放进区块。每一节点会将数笔未验证的交易哈希值收集到区块中,各区块能包含数百笔或上千笔交易;取得验证权的节点会将区块广播给所有节点,最快完成POW的节点会将自己的区块广播给其他节点;其他节点确认此区块包含的交易是否有效,确认没被重复花费且具有效数位签章后,接受该区块。所有节点一旦接受该区块,前面没算完POW工作的区块会失效,各节点会重新建立一个区块,继续下一次的POW计算工作。
可见,区块链原理并不复杂,其广泛应用也就理所当然。如今,在把区块链原理应用到现实的过程中,已经有很多公司得到了丰硕的成果。比如,布比公司是国内领先的区块链服务商,在区块链技术平台方面已经取得多项突破,能够满足数千万级用户规模的场景,具备快速构建上层应用业务的能力。