密码学原理

比特币了利用了密码学中两个功能:哈希(cryptographic hash function)、签名(非对称加密)

一、哈希

collision resistance(抗碰撞性):给定x和y且x!=y,给定一个哈希函数Hash(),可以使Hash(x)=Hash(y)称为hash碰撞,它是不可避免的,因为输入空间总大于输出空间

很难collision resistance保证给定x,找到一个y,能够在x!=y的前提下,使得Hash(x)=Hash(y)

MD5一个很流行哈希函数目前已经知道如何制造碰撞

hiding(单向不可逆):前提是输入空间足够大,分布比较均匀.

给定x和Hash(),可以很容易得到Hash(x),但在已知Hash(x)和Hash()的情况下,无法反推出x的具体取值(除非蛮力破解)

collision resistance + hiding ---->digital commitment(数据保证):把预测结果作为输入x,算出一个哈希值,将哈希值公布,hiding让人们知道哈希值而不知道预测值,最后再将x公布,因为有collision resistance的性质,预测结果是不可篡改的。

Puzzle friendly(不可预测):哈希值计算事先不可预测,想要H(x)落入某个范围,没有什么好办法只能一个一个试

在挖矿过程中保证了工作量证明(POW)机制,挖矿难验证易,比特币系统中采用SHA-256哈希函数

二、签名(非对称加密)

创建一个公私钥对,公钥是公开的,私钥只有自己知道,加密用公钥,解密用私钥

交流:A用B公钥对信息加密,B用自己私钥解密

签名:A用自己私钥给信息加密,大家用A的公钥对这个信息进行验证,防止有人仿冒A

Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。

更多推荐