区块链的核心运作方式, 其实就是靠一个分布式记账系统来不停地生成新的区块。当一笔交易的发起者点击了确认按钮之后, 这笔交易想要被全网的所有节点都写进账本里面去, 中间还要经历好几道手续, 这些手续包括把交易打包起来, 进行共识投票, 还有出块检查验证等等步骤。
只有把这些环节全部都拆开来看一看, 大家才能弄明白区块链技术为什么既安全又不可篡改。
区块链怎么生成新区块
节点在收到交易的时候, 并不会把这笔交易立刻写进去, 而是先把那些还没有得到确认的交易都收集起来, 然后放到一个叫做候选区块的地方去, 同时还会在这一块儿里加上前面那个区块的哈希值, 这样做的目的就是为了让整个结构变成链条一样的形式, 这种进行打包的操作是由矿机或者是验证者来完成的, 在共识机制通过之前, 这个被称为候选区块的东西其实仅仅就只是相当于一个草稿而已。
当打包任务全部结束之后, 系统就会接着进入到关于达成一致性意见的这个阶段里面去。在采用工作量证明机制的场景里, 各个节点需要不停地去尝试各种不同的随机数, 直到能够计算出一个满足了那个难度条件要求的哈希值为止。
而在采用权益证明机制的情况下, 那么那些手里持有硬币量比较大、数量比较多的验证者, 会被一个随机的办法选中, 从而获得出块的资格。一旦有一个新的区块通过了这个共识过程的验证, 它就会马上向整个互联网进行广播。
在这个时候, 每一个节点都要对这个新区块的内容进行验证, 等到确保没有任何错误之后, 才会把这个区块追加到自己本地的账本里面去, 只有到了这个地步的时候, 出块过程才算真正完成。
新区块生成要多久
出块的间隔, 是取决于具体协议是怎么设计的。比特币, 大约需要十分钟才能出一个区块。以太坊在合并之后, 大约只需要十二秒就可以出一个区块。至于联盟链, 是可以做到亚秒级的出块速度的。
当然, 出块的间隔如果越短, 那么交易的确认速度就会越快。不过, 与此同时, 网络的安全性和运行的效率之间所存在的权衡关系, 也会变得更加的敏感。
其实用户在等的那个事儿, 往往并不是那个区块本身被生产出来,而是等着这个区块往后被后面的好些个区块给覆盖掉。比特币那边儿, 大家伙儿一般把这六个确认当作是那个什么的不可逆阈值来着, 这大概得一个小时的时间;至于以太坊, 它只需要好多个区块出来之后, 就能算是那个最终的确认了。

从交易签名的这一环节, 一直到区块上链的那个过程, 每一个步骤都受到了密码学以及共识规则这两方面的约束制约, 把这条完整的链路给看清了以后, 再去谈论进行分片扩容或者是实现跨链互操作这些事情的时候, 底层的认知才算得上是真正扎扎实实的。
转载请注明出处:imtoken,如有疑问,请联系()。
本文地址:https://zmdyd.cn/imazbqb/11118.html
