北大-区块链技术与应用2-密码学基础

Zoella Lv4

Crypto-currency(加密货币)

区块链和比特币主要用到:哈希函数 和 数字签名

一、Cryptographic Hash Function(哈希函数)

区块链用到了哈希函数的 抗碰撞性 和 隐私性;比特币除了这两个性质,还要求 谜题友好性

(1)Collision resistance(抗碰撞)

x≠y, H(x)≠H(y)
给定一个x,没有高效的方法找到一个y,满足H(x)=H(y),可以用 brute-force(蛮力破解)

Message digest(信息摘要):给定一个消息m,用H(m)检测对消息的篡改
对m’≠m,H(m’)≠H(m)

MD5已经可以被人为地制造碰撞

(2)Hiding(隐私性)/ Not invertable(单向不可逆)

x –> H(x),没有高效的方法从H(x)得到x,除了 brute-force

(3)Puzzle friendly(谜题友好)

不知道如何选定x,使H(x)落在某个区间内,Exp. 00…0XXX…X(以k个0开始)

挖矿过程:找一个nonce,和区块块头中的其他信息和在一起作为输入,哈希过后的值要小于等于目标域值,即H(block header) ≤target
其谜题友好意味着,挖矿的过程不存在捷径,只能靠 brute-force,所以该过程才能作为 power of work(pow,工作量证明)
设置 mining puzzle 的原则:Difficult to solve, but easy to verify

Example 1

比特币中用到的哈希函数是 SHA-256(Secure Hash Algorithm),满足以上三个性质

Example 2

Digital commitment(数字承诺),又名 Digital Equivalent of a Sealed Envelope(密封信封的数字等价物),允许一方将某个值(秘密或消息)“承诺”给另一方(验证者)

结合了哈希函数的抗碰撞和隐私性
Hiding:公开m=H(x),给定x’,如果H(x’)=m,即可保证x’=x

扩大输入空间的方法:选取nonce(number once)随机数,H(x||nonce)

二、Digital Signature(数字签名)

不同于银行的开户流程,比特币是去中心化的,只要在本地创建一个公私钥对(public key,private key),就代表一个比特币账户,来源于非对称加密体系(asymmetric encryption algorithm)

在比特币系统中,公私钥用于签名:发布者用自己的私钥对交易进行签名,接受者通过发布者的公钥验签

生成公私钥、以及签名 都需要 a good source of randomess

总结

在比特币系统中,通常对一个message取哈希,然后再对该哈希值进行签名

  • Title: 北大-区块链技术与应用2-密码学基础
  • Author: Zoella
  • Created at : 2025-01-02 13:24:53
  • Updated at : 2025-01-13 20:58:05
  • Link: https://zoella-w.github.io/2025/01/02/31-北大区块链-密码学基础/
  • License: This work is licensed under CC BY-NC-SA 4.0.