本文试图在尽量不涉及计算机专业知识的前提下讲解加密货币(cryptocurrency)(也叫数字货币)的意义和原理.注意为了方便理解,一些细节描述并不十分严谨.
相对于数字货币,各国政府发行的货币称为法币.法币的出现最早在 1694 年的英国,在此之前的漫长岁月中,人类基本在使用一些天然的物质充当货币,如早期的贝壳,直到黄金.直到今天,黄金仍然承担着货币的角色,各个国家的国库中依然存有大量的黄金作为法币的信用保证.
黄金能作为等价物是大家的共识,但注意它没有任何政府背书或发行,且总量基本固定.那么它作为货币时,价值体现在哪里呢?简单来说就体现在它的记账功能.如果直接以商品交换商品,效率非常低,因为很难配对到合适的人.黄金或者一般等价物的使用,相当于产生了不可篡改账本,安全地记录每个人所拥有的资源.
黄金使交易更便捷,从而对古代经济发展起到了重大的助推作用.为什么不能用纸和笔记账?因为不安全——陌生人难以辨认真伪,很可能造假,也可能被大量增发.可见要让大家都信任一个中立的记账系统,它必须具有以下特点
综上,黄金的价值就在于它利用其出色的物理特性,在历史上相当长的时间里充当账本的角色,极大地促进了人类社会的早期发展.需要指出的是这个 “账本” 只记录每人的余额而不记录转账历史,这是又一缺点.
在互联网高度发达的今天,我们是否可以在互联网上建立一个像黄金一样的数字账本呢?只要把以上三点实现得更好,它就具有比黄金更大的潜在利用价值.这看起来容易,实则非常困难,要付出巨大的代价.我们的网银,支付软件,游戏币,充值卡等,本质上是政府或者公司发行的,政府(或公司)对这些系统的全部服务器和数据库有绝对的控制权.理论上他们可以对其进行任意修改,且一旦公司倒闭或者政权不稳定,他们发行的数字代币的信用也也很难保证.
另一方面,政府为了刺激经济会经常增发货币,但也有可能导致通货膨胀.例如美国在 2020-2021 年因新冠疫情大量增发美元使其他国家的美元储备贬值;发行者有能力冻结或没收账户中的财产,或者控制它与其他币种之间的兑换.所以只从以上的第 1 点来看,所有被政府或公司控制的中心化数字记账方式都远不如黄金.所以即使第 2 和第 3 点做得再好也还是有缺憾.
那么创造数字黄金的难点就在于如何使这个系统像黄金一样不受任何组织的控制,即去中心化(decentralize).只有这样才可能使第 1 点的安全性能和黄金媲美.这就要求没有个体或者少部分人能够篡改(或毁灭)该网络账本.直到中本聪在 2009 年提出区块链的概念并发行了比特币后,这种机制才慢慢成为可能.比特币网络是一个去中心化网络,也就是没有中心服务器,人人都可以搭建服务器并接入该网络,共同完成记账.账本在每个服务器中都有一个完整的备份,这包含有史以来每一个账户发生的每一笔交易记录,根据这些交易记录可以得到每个账户的余额.
用户可以匿名地注册任意多的账户,注册时无需提供任何身份信息,每个账户都有一个独特的公开的地址,称为公钥(public key),以及与之匹配的密码,称为私钥(private key).转账的操作和微信等支付软件类似,使用一个账户和密码就可以联网后请求比特币服务器把余额转到任意指定的地址1.只有一笔交易取得网络中大部分服务器的共识(concensus),确认一致后才能生效.由于任何人都可以搭建服务器进行记账,所以所有的交易记录也都是只能是公开的,但由于账户是匿名注册的且可以注册任意多个,甚至每笔交易都使用一个不同的账号,所以用户的隐私仍然可以得到保障.
既然任何人都可以参与到比特币网络中,那么将其恶意破坏也会变得比中心化网络更容易.对于中心化服务器,控制者只需要给服务器设置一个密码就可以防止被入侵,而如果有人要恶意破坏比特币网络,他只需要购买大量服务器,在网络中的数量达到多数就可以通过所谓的 “共识” 来做假账,例如花一笔钱然后事后抹掉记录再花一次(即双花,double spending)2.所以为了提高整个网络的安全性,我们必须使得 “买下大部分服务器” 这件事变得异常艰难.即大大提高每台服务器所需的成本.比特币网络的做法就是把记账权和服务器的算力(计算能力)挂钩,服务器必须完成一些很难(但没有意义)的数学题才能获取更多的记账权.理想状况下是整个网络的总算力极高,且服务器的所有权非常分散,使得少部分人几乎不可能取得该网络的控制权从而对数据进行恶意篡改.这些无意义的计算最终会消耗大量资源,但这却是维持去中心化账本的安全性的必要代价.在 2016 年,据估计比特币网络的总算力已经达到世界前 500 的超级计算机集群的总和.这使得比特币比其他的货币更为安全.
在另一些加密货币中,为了不过多消能源和硬件,也有采用把服务器所有者的加密货币余额作为比重获取记账权.比特币的方法叫做工作证明(proof of power),后者叫做持有量证明(proof of stake).另一种较新的方式是储存空间和时间证明(proof of space and time),也就是所谓的硬盘挖矿.但无论如何,为了使网络具有安全性,网络中的服务器必须以某种珍贵的资源作为记账权的分配标准,且这种资源需要容易证明且无法造假.
既然服务器需要那么多资源,为什么还有人愿意搭建呢?为了补偿这些维护比特币网络安全性的服务器所有者,比特币协议规定每十分钟就会对成功解出数学题并获得记账权的账户进行奖励,所以人们就形象地把提供服务器算力并获取奖励的行为称为挖矿(mining),挖矿的人称为矿工(miner)3.而所有的比特币都是通过挖矿产生的.比特币协议规定每 4 年挖矿的收益就会减半,从而使其总量存在上限.除了挖矿获得奖励外,矿工还会获得一些转账手续费,手续费在用户转账时扣取.当所有比特币都被挖完后,理想情况下此时比特币的价格已经昂贵到足以让转账手续费支持所有矿工的开支,这样该系统就能自给自足地一直运行下去.
1. ^ 服务器并不储存私钥,但是可以用公钥轻易地验证转账请求中用于签名的密码是否和账户的地址匹配.转账请求中同样不包含密码,只包含用密码生成的数字签名,这涉及到密码学中的非对称加密,超出了本文范围.
2. ^ 但他仍然不能把其他任意账户中的钱转给自己,因为他没有其他账户的密码(密钥).
3. ^ miner 也可以指挖矿所用的软件.