阅读笔记《区块链技术与应用》

本文最后更新于: 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 tree
merkle proof 流程:
zvOg2X