# 区块链技术与应用02-BTC密码学原理 **Published by:** [kanikig.eth](https://paragraph.com/@kanikig-2/) **Published on:** 2022-10-28 **URL:** https://paragraph.com/@kanikig-2/02-btc ## Content 比特币运用了密码学中两个功能:哈希 cryptographic hash functioncollision resistance:防哈希碰撞,即不同输入的哈希输出相等。通过brute force碰撞难度极高。用处:哈希作为digest,检查原信息是否被篡改。md5已可以人为制造哈希碰撞hiding:通过输出没法知道输入,只能蛮力求解。需要输入空间足够大,且分布均匀。实际操作中在输入内容后面拼接一个nonce,一个选取的随机数,使输入足够大且均匀两种性质结合,可以用于digital commitment。即sealed envelope,预测不可提前公开。可以先公开哈希值,出结果后只需对哈希值就可确认是否篡改puzzle friendly:除了上述两个密码学的性质要求外,比特币还具备这个性质。哈希输出不可预测,只能暴力算。挖矿就是找nonce,使blockheader的哈希值小于等于某阈值。挖矿很难,但验证简单比特币用的是SHA256,secure hash algorithm签名比特币的账户:公私钥对。非对称加密体系 asymmetric encryption algorithm。对称加密就一个密钥,密钥分发可能不安全。加密用接收方公钥,解密用接收方私钥。公私钥用于签名,发布交易时用私钥签名,全网用他的公钥验证。比特币生成钱包和签名采用的随机源要足够好,不然就存在产生相同公私钥对的风险 ## Publication Information - [kanikig.eth](https://paragraph.com/@kanikig-2/): Publication homepage - [All Posts](https://paragraph.com/@kanikig-2/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@kanikig-2): Subscribe to updates - [Twitter](https://twitter.com/kanikig2): Follow on Twitter