比特币是如何利用区块链技术,构建一个安全的电子虚拟货币系统的?

区块链被自入世以来,一直被认为是一个颠覆性革命性的技术而比特币是区块链截至目前唯一一项成功落地的应用。那么,比特币是如何利用区块链作为底层架构,解决电子虚拟货币系统中去中心化存储问题,货币发行问题,实现货币交易的账户安全,从而构建一个当前的比特币系统的呢?

本文将结合比特币的三个核心范畴即数字签名技术、哈希技术、博弈论与区块链的特性相结合,解决比特币系统中去中心化存储、货币发行、货币交易三个问题。


去中心化存储

实现去中心化的解决办法就是采用分布式系统,把原先存储在某个第三方机构的信息数据,分布存储在一个P2P的网络结构中,同时借助区块链技术实现数据的不可篡改、达到最终一致性。


先来说说为什么是P2P网络协议。在比特币系统中,如果需要某个节点协调点与点之间的通信,那么一旦破坏这个节点,那么整个比特币系统就容易遭到摧毁,因此比特币的去中心化存储中,最重要的一点就是实现整个网络集群的保护,使其难以遭到破坏,存储数据难以被篡改。这就需要特定的协议进行数据维护,而通过P2P协议进行节点之间的数据传输,无需中心节点,任意两个节点之间能够实现彼此的信息传递,在这个协议的基础上,任何节点都可以随时加入或离开比特币网络集群,而不会对比特币网络集群产生影响,即便出现故障机器未能及时修复,也不会影响整个系统的运行。

 

利用P2P协议进行节点之间数据传输主要有两个功能点:

a. 把需要存储的数据广播到所有节点上进行储存。

b. 查询整个网络集群中所有节点的最新数据,如果自己节点的数据与大部分节点的数据不一致,则更新自身的数据与大部分节点存储的数据一致。

 

因此,如果想要破坏比特币系统,就必须同时篡改整个网络一半以上的数据,这还有可能做到的,但是成本太高。这就涉及到比特币的三个核心范畴之一的“博弈论”,区块链技术采用了一种社会学博弈的激励措施,形成了一种典型的负反馈效应,即完全信息静态博弈中的平衡机制“纳什均衡”,利用其稳定状态保证了比特币系统的参与者不会单独改变策略,也就是说没有节点可以通过不诚实的行为获得更高的回报。最终让作恶变得成本高昂。从而达到维护比特币网络集群不被轻易破坏的目的。

 

具体什么意思呢?

我们知道区块链是由若干区块链接而成,而数据区块由区块头和区块体两部分组成:

 比特币是如何利用区块链技术,构建一个安全的电子虚拟货币系统的?

(图片来源:网络)

如上图所示,我们可以看出区块链在交易存储上是采用Merkle树结构,并且每笔交易都会生成一个hash值,然后不同的hash值向上继续做hash运算,最终生成唯一的Merkle根。随即把这个Merkle根放入数据区块的区块头。利用Merkle树和哈希算法,以确保每一比交易都不可伪造和没有重复交易。这里涉及到比特币的第二个核心范畴“哈希技术”,哈希算法是区块链中保证交易信息不可篡改的单向密码机制,将信息压缩成散列字符串,计算得到哈希值标识每个区块,以此构建区块链全局公共账本,使既有交易不可抵赖,离线破坏交易难。

 

我们再来看一下默克尔树在比特币上的应用:

 比特币是如何利用区块链技术,构建一个安全的电子虚拟货币系统的?

(图片来源:网络) 

在图中可以看出,矩形是区块头,包含了前一个节点的hash值(Prev Hash), 用于工作量证明的随机值(Nonce),区块时间戳(Timestamp),和默克尔树的根节点(Merkle Root)。

 

根据比特币的设计,它把所有的交易生成一棵默克尔树,然后节点可以根据自身情况选择是否要保存整棵树,对于矿工来说,倘若保存整个区块链的数据将是一个相当大的容量,因此可以选择只保存区块头,即只保存默克尔树的各节点,舍弃其它子节点,以此减少存储容量。

 

Merkle树和哈希算法的基础上,还涉及到比特币的最后一个核心范畴数字签名技术 即依靠公钥加密技术,实现信息加密和解密两个过程。发送者用自己的私钥对信息进行加密后传送给接收者,接收者只有用发送者的公钥才能解密被加密的信息,整个过程利用离散对数难题(针对ECC算法而言)进行保护,因此每一次交易都难以遭到在线破坏。

 

在这样的比特币网络集群中,如果要篡改数据,就需要盗取他人的**,并且把握时效性。如果把数据库表比喻为一本帐本,区块链就是让系统每10分钟自动生成一本新帐本,新的交易都记录在新帐本中。而新账本是如何创建的呢?就是我们上文中所提到的默克尔树结构式与区块链链式结构结合,生成hash值,系统时间戳(10分钟一个维度),再找一个随机值,几个数据加在一起后满足一定的条件,系统就会接收这个新帐本。产生的新帐本通过帐本顺序号(Prev Hash)串在上个帐本之后,形成一个帐本的链式结构,新的帐本依赖于上一个帐本的数据和当前系统时间戳,因此一旦新帐本产生后,历史帐本的数据就无法被篡改,因为一旦篡改,就与之后的帐本对不上,帐本被破坏,而在P2P网络结构中,系统会依据少数服从多数的原则,自动更新为网络集群中大部分节点维护的相同的帐本,这也加大了数据篡改的难度和成本。

 

与篡改数据相反的,是维护数据。这里涉及到比特币的一个核心词汇“挖矿”,什么是挖矿?挖矿是指比特币矿工在比特币网络上将搜集到的交易单据纳入自己生成的一个区块中,并将该区块链接到唯一的区块链上。而交易单只有被纳入到了区块链以后,它具有有公信力和安全性,才会因此产生价值,矿工才会得到确定的比特币奖励。

 

也就是在数据维护层面,交易者生成单据向全网传播,为了自己能够优先得到矿工的服务,即他希望自己的交易单优先被确认纳入到区块链,给矿工一些比特币小费是理所应当的。比特币系统规定,一张交易单的所有输入和所有输出之间的差额即小费,一个矿工出块后,该区块包含的所有交易单的小费即交易费,归该矿工所有。

 

这样对比起来显然维护数据比篡改数据来得简单而且有效益!只要遵守规则,低成本的简单操作就能实现共赢,而高成本的破坏行为导致两败俱伤。如果是你,你会选择哪个?按照社会心理学理论,正常人都会选择第一个,这也是我们上文说到的“博弈论”。

 

说到这里,也就解释了比特币系统中的数据不可篡改性及最终的一致性。接下来我们谈谈比特币是如何实现货币发行和货币交易的。

 

货币发行

在比特币系统中,电子货币的发行实际上就是账本记录的产生。矿工在寻找账本的过程中,为了找到能够被区块链系统所接受的随机值,需要消耗了大量算力,而新帐本一旦被系统接收,那么系统自动在产生的这个新帐本,增加一条转帐给他一定个数比特币的纪录,这样就完成了货币的发行。

比特币的这种运行机制不断激励着矿工投入到挖矿之中,不断的挖出新帐本,添加区块记录来支撑着比特币系统的运行。

 

 

货币交易

在比特币的世界里,没有属于个人的账户的概念,只有比特币钱包,所谓的比特币钱包,其实可以理解为一个公开的账户地址,其基本含义就是“任何人都可以放钱进去,但只有你自己可以拿钱出来”。这就像你的银行账户,任何人都可以汇款给你,但能从中取出钱的只有你自己,这是因为你手里有着取款密码。也就是说,一个钱包好比一个公钥,而你持有和公钥对应的私钥。

 

在没有账户只有钱包的情况下,所有能花费的钱被统一表示成UTXO(即Unspent Transaction Output),UTXO是比特币世界的基本消费单位,与钱包地址关联,如果你想查询你总共有多少钱可以花,只能将你所有钱包相关联的UTXO累加起来,就能计算出你的“账户余额”。

 

一般来说,UTXO的来源有两个途径:

1.别人转给自己

2.自己挖矿所得

 

“挖矿”我们之前已经简单说过了,现在讨论第一种来源,即别人转给自己的UTXO。这就涉及到交易层面。为了能够准确验证交易双方的身份,保证交易的真实性,比特币系统采用了非对称密码技术,使用A的公钥来对A钱包的比特币输出进行锁定,只有A拥有的私钥才能解锁。

比特币是如何利用区块链技术,构建一个安全的电子虚拟货币系统的? 

在非对称密码技术层面,用户消费比特币时,需要用私钥进行签名,系统会用钱包地址也就是公钥验证签名真实与否,并且根据用户的钱包地址从历史的交易中计算出当前户的真实金额,确保用户操作的资金在真实金额之内以此来确保交易的合法性。

 

所以,比特币系统之所以能成功落地,不仅依靠区块链等技术层面,还在于它融合了金融学、社会学、心理学等多种科学知识,这也是它的高明之处。

 

———— / END / ————

扫码关注或微信搜索【凌云科技NV

获得更多区块链干货及合作机会

比特币是如何利用区块链技术,构建一个安全的电子虚拟货币系统的?