密码算法在区块链系统中的重要性,相当于整个体系的骨骼,如果没有骨骼会怎样?毫无疑问, 整个大厦将会坍塌, 下面介绍联盟链中密码算法的应用。
(1)账户地址生成
对公开密钥算法的巧妙使用,首先生成一对密钥,即私钥和公钥, 由于公钥是可以公开的,因此可以作为对外的一个账号,而又由于公钥必须和对应的私钥匹配才能验证通过,因此这种方式生成的地址, 先天就具备可验证性。
(2)价值转移保卫
无论是比特币、以太坊、超级账本 Fabric 还是其他区块链系统, 要想在一个分布式的公网上发送一笔代表价值的数据,需要解决两个基本问题:
1)证明这笔数据确实是发出者的,不是篡改或伪装的;
2)确保只有接收者才能解码这笔携带价值的数据。
以上两点同样可以通过公开密钥算法完美地解决,发送者使用自己的私钥进行签名,接收者可以使用发送者公开的公钥进行身份验证以确保无误。发送者不但使用了自己的私钥签名,还使用了接收者的公钥进行了一段关键的加密,只有接收者使用自己的私钥才能解密这个公钥,因此就能保证不被别人截获。
(3)完整性证明
在这个领域主要应用哈希算法,在节点同步区块数据时,通过构建的交易哈希树来验证数据是否一致。
(4)零知识证明
要想证明自己拥有某笔资产或者拥有某个能力,或者更直接地说, 要想证明自己具备对区块链上某一笔交易的所有权。在这里密码算法起到了非常大的作用,只要解码一段与交易内容相关但是又不泄漏真正交易内容的编码,能够解码成功就能证明所有权。