区块链本身作为一个分布式数据库,从技术角度并不容易入门,涉及密码学、分布式事务、副本一致性、并发控制策略等很多大的方向,每个方向都需要仔细研究,不要求深入到代码层面,至少要在原理上搞清楚逻辑。本系列文章希望从技术角度分析区块链的应用比特币,从而了解区块链的系统架构。今天介绍去中心化和非对称加密。
比特币的背景
2008年,中本聪提出了比特币的白皮书《Bitcoin: A Peer-to-Peer Electronic Cash System》,2009年比特币系统上线运行,至今稳定运行了9年时间,从系统稳定性角度看,是一个非常成功的分布式系统了,也值得去深入了解其原理。今天根据这份白皮书来了解比特币(分布式账本)的起源。
传统货币
纸质货币由银行发行,银行提供验钞机,当有人造伪钞时,就无法通过验钞机的验证,这种机制保证只有银行可以制造货币。在这种情况下,银行就是一个可信的第三方,因此我们可以放心使用纸质货币,也可以让银行帮自己进行转账。通过这样,实现部分的P2P(两个人直接用纸币交易,不用去银行转账),但还是依赖银行发行货币与统一的验证方式。
电子货币的思想和纸质货币类似。转账 *** 作也是通过金融机构统一处理,这个可靠的金融机构会帮你检查余额。
在上述例子中,是有第三方机构来保证货币的可靠性以及验证是否是真实货币。比特币的目的就是要实现去中心化,第一个问题是,为什么去中心化(第三方)?基于第三方的系统的本质是信任第三方,只要有第三方存在,交易就可逆,数据容易被篡改。而区块链的一大目的就是数据写入后不可修改。
分布式架构
在分布式数据库中通常有两种架构,主从架构 和 P2P架构。
主从架构中有一个主节点,典型的就是 Hadoop 中的 Master 节点,这个 Master 节点控制着整个系统的运行,包括元数据的管理和数据的分区等。这种架构也叫中心化。
而 P2P架构,也就是去中心化,系统中没有 Master 节点,所有节点都是平等的,如 Cassandra。这个时候,任何一个节点都可以处理读写请求,当一个节点接收到请求后,它会成为这个请求的协调者节点,来协调其他节点共同处理这个请求。可以看到,去中心化系统中也并不是完全没有中心节点,而是人人都可以是中心。
而比特币为了避免中心架构中主节点的不可靠,选择了去中心化架构。
非对称加密、数字签名
密码学中的非对称加密技术让去中心化后的可信变成了可能。
主要功能:B 能确认接收到的 A 的信息是不是 A 发出的原始信息,没有被篡改。
基本原理:非对称加密中包括私钥和公钥两个概念,两个秘钥不同,可以分别对信息进行加密和解密。这样就能达到一个效果:两个人在不安全的网络中实现安全的通讯。A 用 B 的公钥加密信息,私钥只由自己保存,只有 B 能用自己的私钥解密信息。反过来也是这样。
数字签名是非对称加密的一个应用:私钥由个人保管。这个人可以用私钥将信息加密,而其他人可以利用公钥验证信息的有效性。示例图如下(来自 https://en.wikipedia.org/wiki/Digital_signature)
私钥和公钥这种方式有个特点,那就是需要一个人来保管私钥,只有他能发布有效的物品。利用这种思想来理解一下中心化的纸质货币和电子货币。
可信
如何利用非对称加密技术保证可信?一个人用他的私钥对一笔转账签名,其他人可以用他的公钥确认这笔交易。比如 A 签名:A 转给 B 5 元,所有人都可以用 A 的公钥验证这笔交易。这样,每个人都充当了第三方监管的作用。
电子签名技术中的等式:
消息+私钥=签名
签名+公钥=消息
这里有个问题,那我岂不是想签多少就签多少?因此,为了解决这个问题,还需要标记你每笔钱的来源。这样就做到了有源头,可追查,并且每笔交易可验证。
总结
中心化的货币管理是很简单的,因为有一个可信的第三方。去中心化要解决的第一个问题就是如何保证可信。而非对称加密技术实现了可信,让分布式账本成为了可能。
致谢:DPer。研究信息安全,有兴趣可以关注公众号《差分隐私》:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)