一、去中心化
数字货币模型被设定成是去中心化的,在结构上使用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契约。这种契约在零信任的前提下达成,理论上极其不稳定,实践上却极其有效。