区块链基本概念
2020-02-17 本文已影响0人
QuietHeart
区块链是实现比特币的核心技术,这里是对后面参考资料所涉及文章中的知识进一步的整理总结。
概念(历史不可更改)
- 区块链=区块集合
- 区块=区块头+区块体
- 区块头=时间+上区块hash+区块体hash+其它?
- 区块体=数据?
- 区块hash=hash(区块头)
区块链更新过程(非实时,耗时间)
写入时机
- 规定应当平均每10分钟写一次区块链(追加区块)
- 实际写时需要计算hash,hash值小于target才允许写入区块链,
注:计算符合条件的hash,实质是部分hash的破解。
时机的确立
- 通过难度系数决定hash大小,进而决定计算时长,target=maxtarget/难度系数,
- 计算时,通过引入穷举的nonce值参与本区块hash值反复计算,以便尝试生成满足条件的hash(没有则允许修改区块体)
注:引用穷举的nonce值参与hash计算,实质是使用暴力方式进行部分hash破解。
难度系数的确立与调整
- 两周调整一次难度系数,如果本轮两周平均时间大于/小于10分钟一个区块,则难度系数相应调低/调高
注:通过调节难度系数,实质是要求部分hash破解所破解的信息更多一些。
区块链更新确认(六次确认,多数人定真伪)
如果同时两个(多个?)计算hash成功并写入区块链,那么他们的自分叉点区块后,谁先到达6个就采用谁的分支。
以上被称作6次确认,最长分支拥有主要算力,按照上述说法,对于区块链的更新确认,理论平均1个小时才能达到。
参考资料
- 实例 最基本的区块链hello world(python3实现)
- 区块链入门教程 (阮一峰)