浅谈 CBDC 系统与区块链的结合应用
CBDC 介绍
从 2016 年以来,包括中国在内的许多国家均开始构建自己 CBDC (央行数字货币)系统。那么什么是 CBDC,一句话概括,这是与实体的现金协同运作的,由央行发行的,数字形式的现金,它能给现金系统更高的安全性,并且更加方便央行进行管理。
CBDC 可分为面向大众的,以及面向金融机构的。前者例如中国已经可以使用的数字人民币APP,下载后即可在商店使用。后者可用于银行之间的实时结算,提高跨国转账的效率。
CBDC 的主要需求可以概括为:
- 可控性
- 完整性
- 可验证性
同时,央行数字货币可以在这些方面帮助经济的发展:
- 比实体货币更容易辨别假币。
- 防止金融机构内部成为监管黑盒。
- 便于跨国结算业务。
- 有利于打击跨国犯罪,在互信的框架内,各国监管机构能够进行合作,验证每一笔交易的合法性,并冻结特定的交易。
- 保护公民日常交易的隐私免受侵害。
时间推进到 2001 年,署名中本聪的人发布了比特币白皮书:“比特币--一种点对点的电子现金系统”。在白皮书中,中本聪引用了3篇来自 Haber 和 Stornetta 的论文,足以说明他们之间的技术传承关系。比特币同样使用默克尔树结构来连接交易。关键的创新之处是使用工作量证明替代了报纸,来实现默克尔根的分发。
由于比特币技术本身的代码开放性,各种类似的项目层出不求,导致区块链行业良莠不齐、鱼龙混杂,相当多一部分项目打着区块链的名义进行庞氏诈骗活动,我们也应当擦亮眼睛,提高辨别能力,避免成为给诈骗项目背书的工具。那么,有没有一个简单的标准来判断一个区块链技术的好坏呢?答案是有的,一是交易吞吐量,也叫 TPS(Transaction Per Second),二是每笔交易的费用。TPS越高,证明这个系统的可扩容性、可用性越好;交易费用越低,证明这个系统能源的利用效率越高。反之,TPS越低,手续费越高,说明这个系统越低效率,当低到一定程度,我们可以认为这个系统属于应该被淘汰的落后产业。
现在存在一种观点,认为区块链技术一定是低效率的。实际上这种观点站不住脚的,首先,默克尔树的二叉树结构,决定了其叶子节点的数量和树层数呈对数关系,一亿个叶子节点,只需要 27 层的树就可以容纳得下。换句话说,验证一亿个叶子节点中的任意一个是否属于某个默克尔根所代表的树,只需要获得沿途的 27 个哈希数据即可。其次,由于工作量证明的公开和竞争,势必导致“挖矿”行业的规模化、集中化。数据中心式的巨型矿厂将逐步取代非法的零散矿厂,这些数据中心的数量必然不会很多,它们之间的网络连接也必然是非常专业化的。分布式系统中,节点数量与网络达到一致的难度成反比,更少的专业化节点,有效提高了网络处理交易的效率。
技术架构 那么区块链技术在 CBDC 系统的架构中究竟能扮演一个什么样的角色?在探讨这个问题之前,我们应先了解普通银行中是如何管理电子数据的。根据报道,2020年南非邮政银行因为根密钥泄漏遭到了巨大损失,消息称,虽然银行因为由此产生的欺诈行为损失了仅仅 320 万美元,但因为 master key 的泄漏,银行将不得不挂失并更换 1200 万张银行卡,而这将花费 5800 万美元。
银行在处理电子业务时高度依赖 PKI(Public Key Infrastructure)与 CA(Certification Authority),这就导致根密钥成为了银行数据安全的命门,一旦根密钥泄漏,之前的所有签名数据都会面临巨大风险。
【浅谈 CBDC 系统与区块链的结合应用】另一方面,PKI 系统中,需要定期更换根密钥,而这一过程往往非常繁琐和原始。例如在 DNSSEC (一种对 DNS 数据进行签名的安全方案)系统中,每隔一段时间就需要更换 KSK(Key Signing Key),具体的方式是在网络直播的情况下,将存储有旧的密钥的存储卡使用剪刀破坏掉,以证明此密钥已被彻底销毁。
区块链创新性地设计了一种新的安全模式,即不再依赖任何签名算法来保证数据完整性。有些朋友可能会说,使用比特币转账不是需要ECDSA签名吗?是的,但利用区块链验证一笔交易的时间戳时,并不需要用到任何签名或密钥。将区块链与 PKI 系统相结合,可以得到以下好处:
- 防篡改的历史数据。
- 能够废除特定的证书
总结 综上所诉,我们首先讨论了衡量区块链系统优劣的两个关键指标 -- TPS和交易费用;其次,我们探讨了银行内部 PKI 系统的重要性以及其存在的安全隐患;最后,我们提出了通过结合区块链技术,我们可以如何消除这些隐患,并帮助建设 CBDC 系统。
推荐阅读
- 嵌入式|stm32指纹、蓝牙识别门禁系统项目详解
- 单点登录|Authing Share|系统安全与防范
- chrome|Selenium Chrome驱动安装(windows系统)
- Linux系统编程|【Linux】Linux环境基础开发工具使用 —— yum | vim | gcc & g++ | gdb | make & makefile | 进度条 | git
- vue|基于spring cloud + nacos + gateway + ssm+的学生管理系统
- 浅谈vue响应式原理及发布订阅模式和观察者模式
- python实现会员管理系统
- Java实现超市会员管理系统
- 广数980tc3从u盘复制到系统_广州数控GSK980TC3系列|广数980tc3从u盘复制到系统_广州数控GSK980TC3系列 编程及操作手册.pdf
- 技术杂记|医疗仪器中几种常用图形系统