2008年比特币的概念被提出来的时候,世界人民正在忙着应对金融危机,没几个人有工夫朝这个新生事物瞟上一眼。仅仅不到十年,比特币已经炒到了上万美元一个,市值几千亿美元,其底层技术区块链也成为资本市场宠儿,随便一家公司只要发个进军区块链市场的公告,股价就能大幅上涨。投机客在市场上杀得眼红,只有各国政府在背后操碎了心,一方面出台政策限制过度炒币,一方面还要积极跟进区块链技术研究,令人感动不已。
比特币令某些人激动的点在于其分布记账、信用自生、交易匿名、不可抵赖等特征,终于出现一种不再需要中央银行管控,不受政府监督的货币,惊不惊喜,刺不刺激。但其实吃瓜群众根本不在乎什么交易匿名信用自生的概念,他们只想着炒币炒链一夜暴富,央妈想的却是利用这种新兴货币形态提升社会效率提高人民生活水平,再次感动。
从央妈的角度看,比特币点对点的交易方式展现了一种更便捷的货币跨国跨机构流通方法、交易路径的完整记录让人看到了精准调控和监测货币的新希望。但实事求是地讲,每秒7笔的交易速度,完全匿名的交易方法,通过挖矿生成货币的铸币方式,别说央妈看不下去,连人民都没法接受。
在各国央行的区块链实验方案中,不少都是找咨询公司对现有区块链方案稍作改进,忽悠自己和自己的人民,只有英国央行的RSCoin让人眼前一亮。这个方案有五大亮点:
一是铸币不再需要挖矿,货币发行权掌握在央行手中
二是通过分组记账实现了处理能力随记账节点个数线性增长
三是央行授权商业银行加入网络共同记账,契合主流的“央行-商业银行”二元模式
四是货币流通过程透明,方便货币政策调整
五是交易日志详尽且交叉引用,防止节点篡改信息,支持交易审计
RSCoin是个框架性的方案,整体架构请看图一。先熟悉几个概念:
• 三种实体:央行、mintette(可理解为商业银行)、用户
• 两种分组:对交易分组,对节点分组,特定交易组只给特定节点组处理
• 两层账本:低级别区块链由节点组维护,只记录本组交易。高级别区块链由央行维护,汇总所有交易并作为唯一标准记录。
• 两个阶段:采用二阶段提交算法,转账时首先从付款地址的记账节点拿到货币合法且未双花的认证,再发给收款地址的记账节点完成记账
• 两种周期:epoch和period,每个epoch周期,节点生成一个区块进行记账(epoch怎么生成),每个period周期,节点把最新账本提交央行汇总
• 三种队列:UTXO队列,pset队列,txset队列。UTXO队列记录了当前节点负责的,可以花出去的钱。pset队列记录了当前period周期内花过的钱(付款节点记)。txset记录了当前周期内接受过的交易(收款节点记)
• 一个服务:寻址服务,相当于114查号台,负责告诉用户交易地址的处理组
交易方式是交易系统的核心,我们首先看下RSCoin的交易方式,然后简要介绍这种交易方式能提供什么样的交易性能。
RSCoin方案中采用UTXO记录货币,每一笔交易都涉及到付款地址和收款地址,具体交易流程如下(图二):
一、 用户发起转账交易申请,由地址1付款至地址2。用户首先将地址1和地址2发给寻址服务,分别得到地址1和地址2的处理组
二、 用户将交易发给地址1的处理组1,处理组1中的mintettes,独立对交易进行验证并将验证结果发回给用户。如果处理组1中大多数mintette都通过验证,则说明这笔代付款项是没有问题的,可以进行交易。mintette 验证过程如下:
(1) 检查交易是否有效以及地址1在不在本组处理范围内
(2) 检查是否“双花”,首先看地址1标志的UTXO在不在自己的UTXO队列中,如果在,说明这笔钱没有被花过。如果不在,则检查这个交易在不在自己的pset中。如果在pset中,则说明这笔交易已经认证过了,mintette再发一次签名认证。如果不在,则说明这笔钱已经被花过了,认证不通过
(3) 如果认证通过,则从UTXO队列中删除交易涉及的UTXO,同时将这笔交易加入pset队列,最后对交易签名,将结果返回给用户。若认证不通过,则返回空
三、 如果用户取得了处理组1中大多数mintette的签名认证,则将认证结果打包发送至地址2的处理组2,处理组2通过验证后,将交易金额及收款地址记录进自己的UTXO队列,并将交易加入txset,最后将结果反馈至用户,作为转账交易成功的标志。验证过程如下:
(1) 这个地址在不在自己的处理范围内
(2) 是不是大部分处理组1中的mintette都做了签名认证
在每个period结束的时候,节点组将各自的账本提交至央行,央行汇总后形成一个全局的总账。然后各节点以央行为准修正自己维护的数据,同时清空pset和txset队列。
从RSCoin团队公布的数据中可以看到,
• 在安全性方面,RSCoin通过同时记录交易和交易日志保证了防双花、防抵赖、可审计等特性;
• 在网络负载方面,RSCoin将通信核心转移到了用户端,保证了服务端的低负载,可以更好地支撑高频交易;
• 在交易速度方面,RSCoin通过对账本分层,对节点分组,实现了处理能力随记账节点个数线性增长,在试验方案中,每组节点数不变的情况下,每增加一个节点可以增加70笔/秒的交易速度提升,因此30个节点可以支撑约2000笔/秒的交易速度。
前边说过这只是个框架性的方案,还有很多不完善的地方,具体的讨论可以看人行姚所长这篇《中央银行加密货币——RSCoin系统之分析》。但是姚所长说了,“RSCoin作为一个学术研究模型具有较好的借鉴价值”,赶紧埋头借鉴吧。