阅读笔记《区块链技术与应用》
本文最后更新于: 2023年4月9日 上午
[toc]
密码学原理
比特币中 Hash 算法的特性
- hash collision resistance 哈希碰撞💥 x≠y ,H(x)=H(y) 像这样 两个不同的输入算出的hash 值是相等的,这就是hash 碰撞
- hiding x—>H(x) 输入到输出是不可逆的
digital commitment sealed envelope
现实中的例子:预测结果提前公布了,会影响结果,sealed envelope 就是找一个可信的地方存起来预测结果,等次日结果出来后,对比是不是预测对了。
数字中的例子就是 hash 函数加密,因为不可逆性 和 不可人为哈希碰撞性。
- puzzle friendly hash 值的计算是不可预测的,比如产生 000…xx..x 这样的hash 值,实现并不知道什么样的输入更有可能算出这样的hash 值
H(block header) ≤ target (符合要求的hash) 挖矿就是算出这个 nonce,挖矿很难其他人验证这个 nonce 是不是符合要求却很容易。
SHA-256 比特币中用的 Hash 算法
签名
- 非对称加密 对称加密 通过 一个encyption 来验证,但是需要安全的环境,不然 密钥泄露就能解析出信息。 于是 就有了 public key, private key 公钥和私钥 这种
非对称加密设计
出现。 非对称加密就是加密和解密使用的不是相同的密钥:只有同一个公钥-私钥对才能正常加解密。 因此,如果小明要加密一个文件发送给小红,他应该首先向小红索取她的公钥,然后,他用小红的公钥加密,把加密文件发送给小红,此文件只能由小红的私钥解开,因为小红的私钥在她自己手里,所以,除了小红,没有任何人能解开此文件。 电子钱包里就是本地产生一个私钥
数据结构
哈希指针 has pointers
代替了普通的指针,区块链就是使用了哈希指针的链表
tamper-evident log 记录
merkle tree
merkle proof 流程:
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!