想知道更多区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!
1数字签名在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性有着重要应用,是现代密码学的重要分支。签名隶属于公钥密码学。签名过程:发送方用自己的私钥对发送信息进行所谓的加密运算,得到一个hash值,该hash值就是签名。使用时需要将签名和信息发给接收方。接受者用发送方公开的公钥和接收到的信息对签名进行验证,通过认证,说明接收到的信息是完整的、准确的,否则说明消息来源不对。
简单描述数字签名:私钥签名;公钥验签。
1 普通签名
签名只是用一把私钥,并且是发送方自己进行地签名动作,这类签名就是普通签名。常用的签名方法有较多,包括RSA数字签名、DSS数字签名、ElGamal数字签名、ECDSA数字签名等等。其中RSA和ECDSA签名已经在加密算法中有讲解。区块链项目中最常用的签名方法是ECDSA数字签名。签名和验签的原理不作讲解,感兴趣可以翻阅之前的章节。
因为ECDSA数字签名在区块链的重要性,我接下来只对它进行讲解如何应用。
下边代码展示简单地用ECDSA签名对数据BLOCK进行签名,上链之前需要先进行验证,验证通过之后才能上链。具体解析在代码中有说明。
过程:
1.通过ecdsa.GenerateKey产生一私钥;输出的私钥是指针类型;
2.通过私钥产生公钥;
3.对数据BLOCK进行hash运算,实际公链中就是挖矿过程;<