区块链基础知识(四)

知识点辨析

  1. 区块链的链和c语言中的指针的区别:c语言中指针可以指向一个空的内存,而哈希值必然是根据前一个区块的区块头生成的,如果篡改了某一个区块的数据,那么它的hash一定会发生变化,如果不同步更改后面所有区块的数据,链接关系就会断开,这也是不可篡改性的其中一个保证。

  2. 公链网络一般是部署在互联网之上的,其一致性目前只能实现最终一致性,而无法实现完全确定的一致性。

  3. 梅克尔树是通过交易事务数据的hash生成的,而不是根据区块hash生成的(即区块头hash)

  4. 比特币对时间的校验条件是:必须大于过去11个区块的平均时间戳,并且小于当前网络时间两小时以内。

  5. 区块链中的数据的不可篡改性是取决于部署节点的广泛程度,如果是私链,还是可以篡改的,或者虽然是公链,但是节点稀少,被一家控制,那也是不能保证不可篡改的。

  6. 软分叉和硬分叉:软分叉一般是通过代码编写,设定到某个条件的时候自动激活新版本的功能,通常是向前兼容的,也就是说老的没有升级的节点程序依然可以和新的节点一起工作;硬分叉是指对底层协议进行大的改动,与老的节点完全分叉,产生了两条不一样的链。

  7. 交易数据发生后,首先会广播到网络中,并暂存到节点的内存池中等待确认。

  8. 共识机制必须是设计为可独立验证的,凡是不可独立验证的共识机制都会带来验证死循环的问题。比如比特币的工作量证明机制,其他节点接受到区块后只需要验证一下是否符合难度值就可以,并不需要去找其他的节点来交互信息。

  9. 在公链中,为什么区块数据要经过多个区块的确认后才保险:因为在公链系统中,根据FLP原理,它只能拥有最终一致性,经过多个区块的确认后,才能最大限度的保证他是出于主链中的,不会被竞争区块所覆盖掉。

  10. 孤块:区块链发现一个区块无法跟现有的账本衔接起来

你可能感兴趣的:(区块链基础知识(四))