主页 > 海外版imtoken > 比特币签名加密货币的密码学原理
比特币签名加密货币的密码学原理
内容整理自北京大学肖震教授《区块链技术与应用》公开课
加密货币 (Crypto-)
加密货币不加密,区块链上的所有交易都是公开的,包括账户地址、转账金额等。
比特币使用两个加密功能:
1.哈希(哈希函数的工作原理自行百度)hash
2. 签名
散列的两个属性:1。
指哈希冲突:如果x != y,Hash(x) = Hash(y),这是哈希冲突,两个不同的输入计算出的哈希值 相等,这是必然的。 因为无限输入映射到有限输出(256 位哈希只有 2^256 个输出,但输入是无限的),根据鸽巢原理,必须有两个输入映射到相同的输出。
这并不是说不会有哈希冲突,冲突确实存在。 此属性意味着没有有效的方法来人为地创建散列冲突。 除非遍历所有输入可能性是蛮力,否则请查看哪些哈希值完全相等。 但这种方法在实践中并不可行,因为输入空间大,加上比特币签名的密码学原理,工作量大。
该属性的作用:可以用来对消息进行摘要。 例如,如果一条消息是 m,那么它的散列 H(m) 就是摘要。 它可用于检测对消息的篡改。 例如,如果有人改变了 m 的内容,它的哈希值就会改变。 这个性质保证你找不到m,所以哈希值H(m) = H(m)。 无法在不被发现的情况下篡改内容。
目前还没有数学上可以证明的哈希函数,也无法证明这个性质,只能通过实际经验来证明。 有一些散列函数以前被认为是,但后来被发现会产生散列冲突,例如 MD5。
2.隐藏?
哈希函数的计算过程是单向的比特币加密原理,不可逆的。
理想情况下,给定 x 生成 H(x),没有办法从 H(x) 推导出 x。 换句话说,H(x) 不会揭示任何关于 x 的信息。
还有一种方法可以知道输入信息,就是通过暴力算法遍历所有可能的值 。
成立条件: 1)输入空间太大,暴力破解不可行? 2)输入分布均匀,各种取值的可能性相似
该属性的作用:结合隐藏,实现数字/数字的封印。
在现实生活中,头衔的作用:如果有人能预测股市,就可以预测第二天哪些股票会上涨或下跌。 如何证明他的预测是否正确? 如果提前公布预测结果,比特币签名的密码学原理可能会影响股市,因此不能提前公布预测结果。 但如果不提前披露,第二天收市后又如何得知预测结果是否被篡改? 最终公布的结果是提前一天做出的吗? 封印可以在这个时候使用。 把预测结果写在一张纸上,装进信封,交给第三方公证机构保管,第二天打开验证结果是否准确。
在电子世界中,以预测结果作为输入,计算哈希值并发布。 由于隐藏属性,无法预测哈希计算的结果。 然后,在第二天收市后,公布预测。 由于其性质,此结果无法被篡改。 如果更改,哈希值将不匹配。
为了保证输入空间足够大,分布更均匀,可以对x加盐,然后取整体的hash值,H(x||nonce)。
3.拼图
这个属性是比特币需要的属性,也就是说hash值的计算是事先不可预测的,很难猜到一个输入的hash值是多少,所以如果想在一定范围内,就可以尝试一个输入,看看哪个输入的哈希落在要求的范围内。 我事先不知道哪个输入会计算某个哈希值,所以我只能尝试一下。
区块头中有一个nonce,“挖矿”就是不断尝试大量的nonce,使得H(区块头)
挖矿网Ethos中文网拥有简单易用的挖矿系统,为挖矿行业提供教程软件和矿机评测及交易信息,对比计算各种数字货币在挖矿网的挖矿收益,以及介绍矿网挖矿工具比特币加密原理,矿场最新动态等。
矿业网络,版权所有丨如未注明,均为原创丨本站采用BY-NC-SA协议授权
转载请注明原文链接:比特币签名加密货币密码学原理