原创<br> 中国区块链商学院:区块链基础知识( 七 )

钱包软件可以分为移动钱包、桌面钱包、互联网钱包和纸钱包,都支持保存用户的私钥,钱包也可以根据私钥是否是种子产生的,而分为决定性钱包和非决定性钱包,关键区别在于私钥的备份和易恢复性。

区块链的存储和接受

比特币的区块链使用Berkeley DB(文件数据库)作为钱包数据库,使用LevelDB(键值数据库)存储区块的索引和UTXO(Unspent Transaction Output,未开销的比特币交易输出)。节点在启动的时候,将整个区块链的索引从LevelDB加载入内存。当收到一个新区块时,节点对新区块中的所有交易进行检测,验证交易格式、交易大小、交易签名、UTXO是否匹配、交易签名、脚本合规等方面。

如果验证成功,检查上一区块头与链头区块哈希值是否一致,如果是一致,则更新UTXO数据库和回滚交易数据库,如果不是,则将该区块放在孤儿区块池中 。当节点发现网络中存在另一条更长的区块链时,就需要断开现有的区块并对区块链进行重组。如果验证不成功,会抛弃该区块,继续等待新区块的到来(矿工会继续计算新区块的数学难题)。

区块链的工作量证明计算机制

推荐阅读