近年来,以比特币(BTC)、以太币(ETH)为代表的加密货币(cryptocurrency)备受追捧,有人深信它们会成为未来货币,有人嗅到了欺诈、投机、炒作的机会,也有人对其背后的区块链技术充满期待。虽然加密货币目前市场规模不大(2018年1月其最高市值时与苹果公司的市值相当),但其高风险特征已经引起各监管当局乃至G20的关注。
加密货币本质上是一套“代币+簿记系统”,其中簿记系统就是区块链(或称分布式账本),运行在区块链上的代币(token)就是加密货币。代币仅仅是区块链簿记系统中的一串数码,其本身没有任何内在价值,只有赋予其一定价值,才能与现实世界中的价值体系相联系。
我们都知道,人民币是钱,美元是钱,金银财宝是钱。
我问一个问题,它们为什么能成为钱?
你可能回答,因为它们有价值,或者是价值的代表。但是,有价值的东西多了,为什么只有这些品种成为了钱?
答案很容易想到,因为人们普遍相信(认同)它们的价值,其他东西的价值难以得到普通认同,无法成为钱。比如,邮票的价值就没有普遍的认同,除了集邮爱好者,其他地方都不能当钱用。一般来说,认同的人越多,这种钱的通用性就越高。
比如你去俄罗斯旅行,当地货币是卢布。可是,一旦离开俄国,没人相信它的购买力,所以卢布离开俄国就没用了。相反,全世界人民都相信美元的价值,所以全世界都能用。当你用美元付账的时候,会发现那些俄国人也很满意。
所以,钱的本质,或者说货币的本质,就是它的可信性和流通性。它必须使人们相信,它是有价值的,然后才能成为钱,才能被收藏和支付。
比特币要解决的核心问题,就是创造一种可信的数字凭证。由于这种凭证可信,所以能够当做货币。
比特币的技术基础(底层技术)是加密学,因为只有加密学才能保证它的可信性。一旦加密被破解,它就没法当作货币了。这也是这一类数字凭证被称为"加密货币"的原因。
技术人员对比特币感兴趣,还有一个重要原因。任何需要可靠的数字凭证的场合,也许都可以用到这种技术。它是不是货币,可能不是那么重要,重要的是它背后的那些加密技术,也许有更大的应用场景。
区块链就是一个数据库,记载了所有的交易,用作中央记账系统,分布在无数个节点之上。
每笔交易的核心,就是一句话,比如"张三向李四转移了1个比特币"。为了证明这句话可信,张三为它加上了数字签名。任何人都可以用张三的公钥,证明这确实是张三本人的行为。另一方面,其他人无法伪造张三的数字签名,所以不可能伪造这笔交易。
矿工们收到这句话,首先验证数字签名的可信性,然后验证张三确实拥有这些比特币(每一笔交易都有上一笔交易的编号,用来查询比特币的来源)。验证通过以后,就着手把这句话写入区块链了。一旦写入区块链,所有人就都可以查询到,因此这笔比特币就被认为,从张三转移到了李四。
比较麻烦的是另一种情况,就是张三把同一笔钱付给两个人。他先向区块链提交一个交易"张三向李四转移了1个比特币",然后又提交了另一个交易"张三向王五转移了1个比特币"。这两个交易都可能被认为是真实的交易,从而进入区块链。因此,必须有办法防止出现这种情况。
情况一:同一个矿工收到了这两个交易。那么他会察觉到,它们不可能同时成立,因此选择其中的一笔写入区块链。
情况二:矿工 A 收到了第一笔交易,矿工 B 收到了第二笔交易,他们各自都会认定这是合法的交易,分别把这两笔交易写入了两个区块,这时区块链就出现了分叉。
比特币协议规定,分叉点之后最先达到6个区块的那个分支,被认定为正式的区块链,其他分支都将被放弃。由于区块的生成速度由计算能力决定,所以到底哪一笔交易最后会被写入区块链,完全由它所在的分支能吸引多少计算能力决定。隐藏的逻辑是,如果大多数人(计算能力)选择相信某一笔交易,那么它就应该是真的。
综上所述,双重支出不可能发生。因为中央记账系统总有办法发现,你把同一笔钱花了两遍。但是,这也说明了比特币的一个代价,就是交易不能实时确认,必须等待至少一个小时。
如果这么繁琐,匿名交易的场景应用又在那里呢?