tingke 2019-10-21
密码算法在区块链系统中的重要性,相当于整个体系的骨骼,如果没有骨骼会怎么样呢?就好像一栋大楼,没有钢筋骨架整栋大厦就会坍塌,我们来举一下例子,看看都起了哪些作用吧。
密码算法的应用:
1.账户地址生成
这个其实就是对公开密钥算法的巧妙使用,首先是生成一对密钥,即公钥和私钥。
由于公钥是可以公开的,因此,可以作为一个对外的账号,又由于公钥必须和对应的私钥匹配才能验证通过,通过这种方式生产的地址,先天就具备可验证性。
2.价值转移保卫
无论是比特币、以太坊、超级账本Fabric还是其他区块链系统,要想在一个分布式的公网上发送一笔代表价值的数据(如数字资产、证券还是资产所有权等)都需要解决两个基本问题:
1.证明这笔数据确实是发出者的,不是篡改或者伪装的。
2.确保只有接收者才能解码这笔携带价值的数据。
而这两个基本问题,可以完美的通过公开密钥算法完美解决,发送者使用自己的私钥签名,相当于盖上了自己的公章,接收者可以使用发送者公开的那个公钥进行身份验证确保无误。发送者不但使用了自己的私钥签名,还使用了接收者的公钥进行了一段关键的加密,只有接收者使用自己的私钥才能解密这个公钥。
3.完整性证明
完整性证明是在哈希算法这个领域里的,在节点同步区块数据时,通过构建的交易哈希树来验证数据是否一致。
4.零知识证明
顾名思义,零知识证明里的证明者能够在不向验证者提供任何有用的信息的情况下,又不把有关的信息泄漏出去,即给外界的 “知识” 为“零”。
“能够在不知道用户是谁,或者他们有多少钱的情况下判断‘一个用户是否有足够的钱发送给另一个用户’的问题,是零知识证明在区块链中的主要应用之一。”
在这个场合里,密码算法就起到了非常大的作用,只要解码一段与交易内容相关 但又不泄露真正交易内容的编码,就能够解码成功并获得所有权。
举一个生活中的例子,我们入住酒店都需要使用居民身份证进行登记,以方便酒店开展服务和管理。当有关部门人员对酒店进行安全检查时,他们只需验证身份证号码是否有效,就可以证明我们是不是合法公民,而对于职业、住址等涉及个人隐私的信息,他们并不会去查询。这也是一个典型的零知识证明案例。
因此,零知识证明可以在不泄露信息本身内容的情况下,证明我知道这个秘密,可以有效解决许多验证问题。
【总结】密码算法在区块链里的应用是十分重要的,以上举了一些常见的应用价值的例子,在实际的生活中还有很多可用之处的。直到今日,区块链作为一种新兴产物,是基于传统技术上加上创新而创造出来具有革命性意义的。