3
数字货币技术特点
(一)去中心化
比特币之父中本聪在设计比特币模型时,就将其设定成去中心化的,在结构上使用P2P(Peer-To-Peer,点对点)网络模型。这种网络的特点是,不需要中央服务器,每一台联网电脑都是一个独立的个体,通过协议连接到其他成百上千台电脑,最后全球的电脑能够连接成一个密密麻麻的网络。在这个P2P网络上的所有电脑都直接或者间接连通,某一个节点上发出的信息,最终可以扩散到全球所有节点。举例而言,A在中国,B在美国,A和B的连通方式可以是直接连接,也可以是通过位于欧洲的C电脑搭桥间接连接起来。因此,即使其中一部分节点发生故障,整个网络的通信不会受到显著影响。
所有节点均可直接或间接连通的特点意味着P2P网络一旦启动,就无法关闭,除非所有联网的电脑全部关机,或者全部关闭了比特币客户端。
与此同时,对比特币网络的维护也是去中心化的,不存在独立的第三方对网络进行集中监管。比特币的安全支付与流通由矿工维护,而矿工分布于全球各地,彼此通过竞争监管交易、获得奖励,这一互相协作同时又互相竞争的群体很难被外部力量掌控。通过对矿工的奖励,比特币实现了发行的去中心化,没有任何一个机构或个人可以集中发行比特币,比特币在矿工成功抢到记账权时自动发行。
这些去中心化的措施,使得比特币网络异常稳固,由算法发行决定的发行机制、竞争性的维护机制使人们不用担心比特币被个别人或组织控制、利用,也不用担心网络被关闭、比特币被没收,因此,比特币的信心支撑非常稳固。
(二)基于密码学的安全通信
P2P网络的连通性几乎无懈可击,但是信任问题无法只通过P2P网络解决。例如,A发出一条信息给B, B通过P2P网络最终接收到此信息。这条信息可以是直接从A电脑传递过来,也可能是通过多台电脑转手传递过来。于是B会有两个问题:第一,这条信息到底是不是由A发送的?第二,这条信息是否可能被人窥探乃至篡改过?
这就回到了我们上节提到的公钥、私钥和非对称加密技术。A要发送一条信息给B,确保这个信息只有B才能解密。那么A就用B的公钥(公钥是公开的,整个P2P网络都知道B的公钥)加密原始信息,这条信息在整个P2P网络上传播,虽然所有人都有B的公钥,但是用公钥无法解密这条信息,只有B的私钥才能解开。最后B收到这条信息,用自己的私钥解密,读到A发来的消息。
那么A怎么证明自己是这条信息的发出者呢?在网络上,每个人都可以把自己伪装成任何人,B收到信息时,可能传递信息给B的那台电脑会声称它就是A, B当然不能轻信,那么有什么办法可以使B确认这条消息是由A发出的呢?
很简单,A只要把消息分两步加密就可以了:第一步,用A自己的私钥对原始信息做第一层加密;第二步,在上一步获得的数据基础上再用B的公钥做第二层加密。B收到这个加密的信息后,以相反的次序做两次解密操作:第一步,用B自己的私钥解密收到的信息,得到被A的私钥加密过的信息;第二步,在第一步获得的数据基础上用A的公钥再解密一次即得到未加密信息。
第一层加密的目的是证明这个信息是由A加密并发出的,因为只有A的私钥才能完成这样的加密,这一步也叫做数字签名,它排除了消息是别人伪造或者别人冒充A的可能性。第二层加密的目的是确保信息只有B能够解密、看到未加密信息,因为只有B有解密私钥,即使别人看到了加密后的信息,也无法解密,更无法篡改。
有了这一密码学技术保障,即使在匿名的P2P环境中,也无须担心比特币网络通信的安全性,更不用担心有人“冒领”比特币。
(三)公开透明
比特币的本质是一个互相验证的公开记账系统。这个系统所做的事情,就是记录所有账户发生的所有交易。每个账号的每笔数额变化都会记录在全网总账本(区块链)中。而且每个人手上都有一份完整的账本,每个人都可以独立统计出比特币有史以来每个账号的所有账目,也能算出任意账号当前余额是多少。
这里最关键的一点在于每人手上都有完整的账本,因此系统里没有任何人有唯一决定权。任何想隐藏或修改交易数据的行为都会被整个网络否决掉,除非有人有能力修改50%以上用户的账本,这就是比特币系统里所谓的51%攻击。
比特币客户端在使用时会进行大量的数据同步,它同步的就是全网总账本,这些数据保障了整个体系的去中心化和每个客户端的一切知情权。正是因为所有数据公开透明,而整个比特币软件也是开源的,任何人都可以去查看它的源代码,人们才会信任这套去中心化的系统,而不担心里面是否隐藏着什么阴谋。
(四)算力民主
矿工们对篡改全网总账本及双重支付问题的监督,实际上依靠的是计算力投票机制。以双重支付为例,由于同一笔比特币被支付两次,必然形成不一致的区块数据,导致区块链分叉,承认哪次支付、拒绝哪次支付,由矿工投票决定。
投票规则如下:假如双重支付形成两个不一致的区块A和B,此时矿工甲抢到了A的记账权,把A挂接在当前的区块链末尾,矿工乙抢到了B的记账权,同样把B挂接在当前的区块链末尾,此时的区块链分叉为A链和B链。在下一个记账周期里,矿工们会决定把新生成的区块挂在A链还是B链上。依此类推,随着时间的推移,A链和B链会不断延长,直到某个链的长度显著超过了另外一个,然后链被舍弃掉,长链中包含的交易被确认。
同样,篡改网络总账本也意味着区块链的分叉,一个链是被篡改的假账本,另一个链是绝大部分人持有的真账本。由于大部分矿工看不到篡改过的假账本,因而他们只会在正确的链上挂接新数据块,也就是正确的区块链会被绝大部分的矿工维护,而被篡改的区块链只有篡改者自己维护,竞争的结果自然是篡改者的假账本被抛弃。
比特币系统任何规则的更改几乎总会引起区块链的分叉,矿工们通过向不同的链挂接新数据块的方式表达自己对新、旧规则的态度。显然,私自更改的规则将无法获得绝大多数矿工的支持,因为规则内嵌于挖矿软件之中,矿工们不更新软件(即拒绝私自更改规则的软件),就不可能在新规则的区块链之后挂接新数据块。
因此,在比特币的世界里,几乎一切都依赖于计算力投票。比特币的发行靠计算力投票获得,比特币的安全传输靠计算力投票保障,比特币交易的不可欺骗、不可撤销也靠计算力投票达成,甚至比特币规则的更改、客户端的完善都靠计算力投票选择。计算力投票保障了比特币网络的发展壮大。其中的关键在于,计算力背后是一个个矿工,他们用矿机直接为对自己最有利的行为投票,因而比特币网络实质上完成了一场大范围直接民主的实践,每个人依靠自己的直接投票权建立起了一种新型的P2P契约。这种契约在零信任的前提下达成,理论上极其不稳定,实践上却极其有效。