
Web3学习
区块链技术与应用 引言 区块链不止是比特币,不要被比特币限制想象 1.1 BTC密码学原理 比特币被称为加密货币,但是加密货币是不加密的,区块链所有内容都是公开的,例如转账金额,账户地址 使用到两种哈希函数 cryptographic hash function collison resistance (哈希碰撞) 哈希碰撞 :x ! = y, H (x) = H (y) 一般来说,哈希碰撞是不可避免的,因为输入空间远大于输出空间(没有什么高效的方法使得哈希人为碰撞 collison resistance的性质:找不到H(m’) 与之相同 H(m) 与 digest 如果有人修改H(m),哈希值就会被修改 没办法篡改内容而不被检测 (类似刷机时的检验md5值)(md5就是哈希的一种,不够已经不再安全了) x 可以推出 H(x),但是反之不行 hiding:hash函数的计算过程是单向的,是不可逆的。给定一个输入X,可以计算其hash值 H(X),但是通过H(X),很难知道其输出为X。当然蛮力求解也是一个办法。hiding性质的前提是:(1)输入空间较大;(2)输入的分布比较分散。 digital commitment(digital equivalent of a sealed envelope):通过collision resistance和hiding的性质,就可以得到digital commitment这个性质。 举例:想要预测股市,但是又不能影响,只能把结果放在信封里面。 预测结果不能提前公开,就需要用到sealed envelope(密封信封),把 x 算出的哈希值公布出去,因为有哈希hiding的性质,又有collison resistance的性质,就能做到预测股市但是又不影响 如果输入不满足hiding,常用把输如拼接随机数再哈希 H( x || nonce) puzzle friendly: 要想使得计算得到的hash值在某一个范围之内,则只能够一个一个的输入去尝试,很难直接找到某个值使得其hash值在某一个范围内。挖矿 也是就是这个意思。挖矿就是把区块中的一些信息+随机数进行hash,使得其结果前K位数为0,才能够满足要求。挖矿无捷径,只能够去大量的试。所以也就产生了 工作量证明(POW)。 工作量证明(POW) 就是做了大量的尝试之后,才得到符合要求的结果,这个过程叫做工作量证明。proof of work H(block header) <= target...