我们的大央行又双叒叕要研发数字货币了: 震撼!央行局长:国务院已批准央行数字货币的研发,你准备好了吗?, 哦看错了,这次是批准了, 我记得最早的时候央行试运行数字货币大约是在 2017 年的7月份, 当时消息一出立马拉升了一波各种韭菜币的行情, 然后同年9月份的时候国内所有的数字货币交易所就被关停了, 从此以后我就断了炒币致富的念头, 开始淡定地研究比特币的技术原理了, 我啃了几个月把中本聪的论文啃烂了,把比特币的协议文档翻了个底朝天, 最后不过瘾我自己又用 c 语言写了一个供自己玩的比特币, 我不是拷贝中本聪的源代码实现的,我是参照着比特币的协议一行一行代码从零敲出来的, 看下我的创世区块:

$  hexdump -C gens-tx.bin

00000000  01 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 ff ff ff  ff 3c 04 ff ff 00 1d 01  |.........<......|
00000030  04 34 46 72 6f 6d 20 34  2f 53 65 70 74 2f 32 30  |.4From 4/Sept/20|
00000040  31 37 20 43 68 69 6e 61  20 73 74 61 72 74 20 73  |17 China start s|
00000050  75 70 70 72 65 73 73 69  6e 67 20 74 68 65 20 42  |uppressing the B|
00000060  69 74 63 6f 69 6e ff ff  ff ff 01 00 e4 0b 54 02  |itcoin........T.|
00000070  00 00 00 19 76 a9 14 05  09 ba 51 4a fa 00 3a 67  |....v.....QJ..:g|
00000080  9a c7 b6 d7 c2 e2 c9 6b  37 d5 dc 88 ac 00 00 00  |.......k7.......|
00000090  00                                                |.|
00000091

这个创世区块中包含了一段英文, 这段英文和中本聪创世区块中的 The Times 03/Jan/2009 Chancellor on brink of second bailout for banks 一样记录了一件历史上的事情. 今天我来说说央行应该如何来做数字货币。

无论是阅读中本聪写的比特币论文:Bitcoin: A Peer-to-Peer Electronic Cash System, 还是在现实生活中实际使用比特币, 你都会发现比特币这个系统有一个比较奇特的地方: 记录交易和生成比特币是必须同时进行的, 矿工通过运行挖矿算法,打包交易, 生成区块从而获得比特币奖励, 这些新生成的比特币通过区块中的 coinbase 交易支付到矿工手里的, 具体的技术细节不展开讲了,知道有这么回事就行了。为什么说这个地方比较奇特呢? 因为按照我们日常生活的感受和理解, 记录交易和生产货币是两件独立的事情,专业点的解释就是这两件事是异步进行的,互不干扰, 就好比挖金子的矿工把金子挖出来以后卖给你,从此以后你怎么花费这笔金子就和矿工没有一点关系了,但是在比特币的世界里,你必须通过矿工才能把这笔金子花出去。中本聪为什么要这么设计比特币呢? 因为他要保证比特币是一种完全去中心化的货币,他既要保证记录交易是去中心化的,同时也要保证生产货币也是去中心化的,同时为了防止双花和防御攻击,他要鼓励和约束矿工们维持最长的主链, 这一切一切的考量,都必须使记录交易和生成比特币这两件事是同时进行的, 当然到了2140年时,比特币世界将不再有新的比特币产生, 比特币网络就只干一件事情了: 记录交易或者叫流通货币.

如果我们的央行要发行一种数字货币, 该怎么做呢? 首先要起一个好的名字, 名字里千万不要有任何中心化的字眼,什么 center, central 啊, 这些词都是要不得的, 我开篇引用的文章里央行欲研发的数字货币叫做 央行数字货币(Central Bank Digital Currency 简称“CBDC”), 这个名字不接地气, 脑门上写着大大的中心化三个字, 这是犯了大忌, 你要明白你不能以发行数字货币的心态来做这件事,你是在建立一种宗教,一种信仰, 你是在做一件伟大的事情, 如果只是想发行一种数字货币,以太坊的ERC20 Token了解下, 找个不贪玩的初中生就能搞掂了. 我们看看对岸 facebook 的 Libra, 天秤座, 寓意着公平公正,普渡众生, 这就是境界, 扛着公平公正,普渡众生这杆大旗, 身边聚拢着数以亿计的信徒, 那真的是遇神杀神,佛挡杀佛, CBDC 在名字上已经输了气势, 请换个名字吧. 泱泱中国上下5千年,我就不相信找不到一个合适的名字,翻翻山海经,道德经,易经,论语, 你说什么? 好名字都被华为拿去注册商标了? 如果实在找不到一个好名字,我给个现成的 DaTong Currency, 大同币,简称 DTC, 寓意着八方来客, 四海一家, 天下大同。名不正言就不顺,名字承载着大义,取名一定要慎重。

接下来的事情就比较难了,是要实打实地割自己一刀了,很痛! 我在前面已经说过比特币的世界里记录交易和生成比特币是必须同时进行的, 这句话暗含的意思是比特币的世界只做了两件事情: 通过 POW 记录交易和生成比特币, 如果央行要发行 DTC, 完全可以把生成 DTC 这件事情让渡出去,让全世界的人民一起来挖矿生成 DTC, 我大央行就放下身段, 忠诚地替全世界的劳苦大众记记账就好了. 那么怎么挖矿生成DTC? 这个可以完全照抄比特币, 改改变量调调参数就可以了, 比如每挖出一个区块就生成1万个 DTC, 平均 30 分钟出一个区块, 最后 DTC 不设置数量上限(也许可以给一个比较大的上限?)从而满足广大人民群众对美好货币日益增长的需求. 简单地说 DTC 的生成法则和比特币的生成法则是一样的, 去中心化,竞争制, 需要通过 POW 挖矿生成(这点至关重要), 并且以最长的链为准, 唯一不同的地方就是 DTC 的区块里只包含一笔 coinbase 交易,就是那笔用于兑付矿工奖励的交易, 不包含其它的普通交易. 这不正好救赎了央行会滥发 paper currency 的原罪么?

那记账这件事情怎么做呢? 记账这件事情同样可以参考比特币的实现来做, 中本聪设计的比特币对去中心化做到了一种近乎变态的完美程度, 为什么说近乎变态呢? 因为他本人都遁了。 即使比特币的世界出现了一个类似央行的中心机构, 这个中心机构从技术层面来讲它能做的事情非常有限, 既不能修改交易,也不能删除交易, 只能验证和追加交易, 至于怎么实现这种效果的,这里不展开讲了,知道有这么回事就行了。实在想知道怎么做到的可以自己去看论文或者看我在文尾写的两篇文章. 那为什么中本聪不引入这样一个中心机构呢? 既能提高交易的效率,又干不了坏事, 岂不是完美? 实际上这样的一个中心机构对于比特币来说 是非常糟糕的, 因为它很容易被一锅端, 服务器被贴上危害国家安全的封条。但是央行就不一样了,没有人敢给央行的服务器贴封条。

如果央行能够按照我上面写的去实现 DTC,我觉得 DTC 会是一种非常不错的数字货币, DTC 的生产方式是完全去中心化的,全世界的人和机构包括央行自己都可以通过挖矿的形式参与 DTC 的生产, DTC 的整个生产过程都是透明的,可以验证的, 并且包含了 POW. 由央行来作为 DTC 交易的记账中心将使交易的处理过程变得非常高效, 当然央行可能会做一些其它的事情比如 KYC(要求交易地址或者钱包实名制), 比如拉黑一些参与违法犯罪交易的地址, 在适当的程度下,我觉得这些措施都是可以接受的.

[区块链技术探索(一), 构造比特币的创世区块]http://baya.github.io/2017/05/11/7daystalk.html

[区块链技术探索(二), 打造我们自己的比特币]http://baya.github.io/2017/09/04/build-our-btc-system.html