课程链接:
北京大学肖臻老师《区块链技术与应用》公开课_哔哩哔哩_bilibili
参考资料:
BitCoin and Cryptocurrency Technologies A Comprehensive Introduction
以太坊白皮书、黄皮书、源代码
Solidity文档
比特币中主要用了两个密码学中的两个功能:哈希碰撞和签名
哈希碰撞:在哈希表中,会存在两个不同的输入被映射在同一个位置上。能通过线性探测法、开放定址法等方法处理。
主要性质:
1.由于哈希碰撞,很难通过某个函数、方法直接找到能够满足H(x)=H(y)的x、y值,该性质能够有效检测出数据是否被篡改
2..计算过程单项不可逆,输出结果不透露输入(蛮力求解可破解)
3.哈希值的计算结果很难预测,很难通过输入值来预测输出值
比特币所用哈希函数(SHA-256 Secure Hash Algorithm)
数字签名:信息的发送者产生的别人无法伪造的一段数据,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
对称加密:接收方和发送方所持的密钥一致,所以密钥分发不方便
非对称加密:会生成公私钥对,加密用公钥,解密用私钥(用接收方的公私钥)解决了对称加密密钥分发不方便的问题。
在比特币中:公钥(视为账户地址)、私钥(视为账户密码) 在进行交易的时候,转帐方需要用自己的私钥进行签名,其他人收到之后用转帐方的公钥进行验证签名。
挖矿的本质其实就是找一个随机数x,x和区块里的其他信息合在一起作为输入,所取出的哈希值小于等于某个指定的目标阈值 H(block header) ≤ target
但在挖矿时需要有良好的随机源,否则会有私钥泄露的风险。