Hash指针
指针保存的是本地内存地址,只在本地计算机上才有意义,发送到其它计算机上就没有意义了。所谓的Hash指针只是一种形象的说法,实际系统中用到的时候只有Hash,没有指针。
那么怎么才能找到前一个区块的内容呢?全节点一般是把这些区块存储在一个key-value的数据库中:key是区块的Hash,value就是区块的内容。一个常用的key-value数据库是level DB。区块链这种链表结构实际上是在level DB中用Hash值算出的。通过最后一个区块的Hash值,你可以通过level DB的查找出对应的的块,这个块中存储着前一个区块的Hash,通过这个Hash可以查到它对应的块,以此类推,一步一步往前找,最终能够把整个区块链都找出来。
区块恋
说明
恋爱中的双方合买比特币,之后将私钥截断,各自保留一部分。之后如果两个人一直走下去,可以拼合私钥取出比特币;分手的话这些钱就永久锁在比特币网络中,永久保存在UTXO中。
问题
类似这种将私钥分段保存操作,会带来以下两个问题:
- 一方丢失了一部分私钥,那这个私钥对应的比特币将永久丢失
- 比特币的安全性是靠私钥的长度保证的,知道部分私钥后,计算出完整私钥的难度会大幅下降
解决方案
多重签名
分布式共识
严格来讲,比特币并没有取得严格的共识。比特币中达成的共识是随时都可能被推翻的,比如发生分叉攻击。
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。