其他分享
首页 > 其他分享> > 北大肖臻《区块链技术与应用》学习笔记

北大肖臻《区块链技术与应用》学习笔记

作者:互联网

一、密码学原理

视频地址:https://www.bilibili.com/video/BV1Vt411X7JF?p=2

BTC中的密码学原理

比特币称为加密货币(crypto-currency)

比特币用到了哈希和签名两个功能

区块链上内容都是公开的,包括区块的地址,转账的金额

BTC的三个性质

  1. Collision resistance(哈希碰撞)(密码学要求)

    例如x≠y H(x)=H(y) 两个不同的输入,输出却是相等的,这就称哈希碰撞。它是不可避免的,因为输入空间总大于输出空间。给出x,很难找到y,除非蛮力求解(brute-force)。
    该性质的作用:对一个message求digest
    比如message取m m的哈希值是H(m)=digest 如果有人想篡改m值而H(m)不变,则无法做到。
    哈希碰撞无法人为制造,无法验证,是根据实践经验得来的

  2. hiding(隐藏性 哈希函数的计算过程是单向的,不可逆的)(密码学要求)

    (从H(x)无法推导出x) hiding性质前提是输入空间足够大,分布比较均匀。如果不是足够大,一般在x后面拼接一个随机数,如H(x||nonce)
    该性质的作用:和collision resistance 结合在一起,用来实现digital commitment(又称为digital equivalent of a sealed envelope)(将预测结果转换成层哈希值,将哈希值公布出去,在得奖结果出来后 去验证预测结果)
    把预测结果作为输入x,算出一个哈希值,讲哈希值公布,hiding让人们知道哈希值而不知道预测值,最后再将x公布,因为有collision resistance的性质,预测结果是不可篡改的。

  3. Puzzle friendly(哈希值的输入是不可预测的)

    指挖矿过程中没有捷径,为了使输出值落在指定范围,只能一个一个去试。所以这个过程还可以作为工作量证明(proof of work)。

    difficult to solve ,but easy to verify(挖矿很难,验证很容易)

BTC基础知识

  1. 比特币中用的哈希函数叫作SHA-256(secure hash algorithm )以上三个性质它都是满足的。

  2. 开户:在本地创立一个公私钥匙对(public key ,private key),这就是一个账户。公私钥匙对是来自于非对称的加密技术(asymmetric encryption algorithm)。

  3. encyption key(密钥)

    假设产生公私钥时有一个好的随机源(a good source of randomness),产生公私钥是随机的,如果随机源不好,就有可能产生相同的公私钥。比特币中用的签名算法,不仅是生成公私钥的时候要有好的随机源,之后每一次签名时也要有好的随机源。只要有一次签名用的随机源不好的话,就有可能泄露私钥。

  4. 交易(公私钥使用)

    假如A想向B转10个比特币,A把交易放在区块链上,别人怎么知道这笔交易是A发起的呢?这就需要A要用自己的私钥给交易签名,其他人收到这笔交易后,要用A的公钥去验证签名。签名用私钥,验证用公钥,用的仍然是同一个人的。创建账户产生相同公私钥的可能性微乎其微,所以大量创建账户来窃取其他人账户是不可行的。

标签:区块,公私,比特,笔记,签名,哈希,肖臻,密码学,随机
来源: https://www.cnblogs.com/addc/p/15073723.html