思考
1.哈希指针
block header中只有hash值,没有指针。那么如何查找到前一个区块的内容?
(key,value)levelDB
只要掌握了最后一个区块的hash值,就可以通过levelDB的查找,查到hash值的key,取得value
区块的块头里又有指向前一个区块的哈希值再去查找key-value,一步步往前 即可查询到整个区块的所有信息。
有些节点只保存区块链部分信息,如果需要用到前面的区块,可以问其他节点要。哈希指针性质保证了整个区块链内容是不可篡改的。
2.区块链
不要用截断私钥的方法
2 256 > > 2 128 > > 2 64 2 ^ {256 }>>2^{128}>>2^{64} 2256>>2128>>264
用多重签名
3.分布式共识
没有实现真正的共识(分叉)
4.比特币的稀缺性
不适合作为货币,需要一定的膨胀性
5.量子计算
量子技术距离现实有一定距离
量子先破坏金融行业
以后还会有量子加密
量子从公钥破解私钥 比特币加了 从地址-》公钥-》私钥 hash 计算的时候有很多值都丢失了。比特计算时,暴露公钥生成的hash即可。
实际中使用的并非公钥,而是可以用公钥哈希。而哈希函数一般都是不可逆的,所以即使量子计算也无法反推私钥。
BTC中用的SHA-256,无论输入多大,最终结果都为256位,必然会导致信息丢失,无法反推原本数据。
加密和取哈希是不一样的:加密可逆、哈希不可逆;加密不损失信息、哈希破坏信息