# 区块链技术与应用02-BTC密码学原理

By [kanikig.eth](https://paragraph.com/@kanikig-2) · 2022-10-28

---

[![]({{DOMAIN}}/editor/youtube/play.png)](https://www.youtube.com/watch?v=0XbzvsuPmzI)

比特币运用了密码学中两个功能：

*   哈希 cryptographic hash function
    
    *   collision resistance：防哈希碰撞，即不同输入的哈希输出相等。通过brute force碰撞难度极高。用处：哈希作为digest，检查原信息是否被篡改。md5已可以人为制造哈希碰撞
        
    *   hiding：通过输出没法知道输入，只能蛮力求解。需要输入空间足够大，且分布均匀。实际操作中在输入内容后面拼接一个nonce，一个选取的随机数，使输入足够大且均匀
        
    
    两种性质结合，可以用于digital commitment。即sealed envelope，预测不可提前公开。可以先公开哈希值，出结果后只需对哈希值就可确认是否篡改
    
    *   puzzle friendly：除了上述两个密码学的性质要求外，比特币还具备这个性质。哈希输出不可预测，只能暴力算。挖矿就是找nonce，使blockheader的哈希值小于等于某阈值。挖矿很难，但验证简单
        
    
    比特币用的是SHA256，secure hash algorithm
    
*   签名
    
    *   比特币的账户：公私钥对。非对称加密体系 asymmetric encryption algorithm。对称加密就一个密钥，密钥分发可能不安全。加密用接收方公钥，解密用接收方私钥。
        
    *   公私钥用于签名，发布交易时用私钥签名，全网用他的公钥验证。
        
    *   比特币生成钱包和签名采用的随机源要足够好，不然就存在产生相同公私钥对的风险

---

*Originally published on [kanikig.eth](https://paragraph.com/@kanikig-2/02-btc)*
