区块链一——hash函数,签名和验证
区块链简介——hash函数、签名和验证
Date: 2020-08-26
Blockchain是保存持续增长的记录的分布式数据库。
基础知识:
hash函数性质(假设输入空间很大,而且平均分布)
1.抵制碰撞:难以找到不同的输入,映射到同一个输出(但是不代表不会出现)。可防篡改,因为篡改输入,输出改变。
2.隐藏:输出难以推出输入。可用于防泄漏。
3.hash(任意长度的消息)->固定长度的消息(数字摘要)
hash函数常被用于区块链签名
区块链签名过程分为签名和验证,如下:
签名:hash函数对交易记录信息进行hash变换,生成数字摘要。之后使用秘钥对数字摘要进行签名。
验证:签名完成之后,付款的节点向其他节点进行广播,广播信息包括原始交易信息和签名。其他节点使用验证算法,对交易信息和签名进行计算,得出的结果如果与摘要相同,则验证通过,将交易记录写入账本并进行广播。被广播的节点验证完成后会向其他相邻节点广播,直至所有节点验证完成。(暂时忽略余额验证)