广播与验证机制是区块链网络产生信任、形成高安全性的基础,也是区块链网络达成共识、形成全网共同维护账本的基础性工作。 在区块链的分布式网络中存在两种广播机制:一种是交易广播机制。即对每笔交易来说,需要向全网进行广播,取得全网中服务节点例如矿工的验证,被矿工打包进入区块的构造过程;另一种是区块构造广播机制。即由网络服务机构(矿工)完成的广播。 验证机制是指节点对广播的交易信息和区块进行验证的过程。区块链中没有中心机构进行交易信息检验和保证,因此每项交易需要依靠全网节点的验证来保证,只有经过至少51%节点验证交易的交易才能取得信任,成为区块链封装中的交易组合信息。 对于网络节点来说,在接收到交易信息的广播后,最重要的验证是支付资金的来源是否可追溯。以比特币网络为例,A向B支付100个比特币,当这笔交易广播出去后,其他节点如矿工就要检验这100个比特币的来源,是A挖矿所得还是购买所得?这100个比特币是否已经花费过?就是避免重复使用的意思。通过查询100个比特币各自对应的前一交易地址,层层回溯,这样这两个问题就能找到答案。 假设这100个比特币20个是A挖矿所得,另外80个比特币是A向其他节点购买所得,那么验证时还需要进一步回溯到挖矿的币基交易值、购买的哈希值是否来源于其他区块。需要说明的是,从理论上讲,只要有时间和资源进行回溯,那么所有的交易都可以一直回溯到创世区块。 由于区块数量较大,并考虑交易的时效性、验证的经济性,所以节点对交易的验证过程并不关注过多的回溯和源交易的细节,一般只对源交易的哈希值进行验证,只需要确认源交易的哈希值是可信的,而且存在于此前的区块中即可。 这是一种可行的提高效率的措施,因为在区块链的验证机制之下,源交易已经通过验证并形成了哈希值,无须再去层层溯源到创世区块,前面的所有来源都已经在历史的交易过程中被验证过了。交易信息的其他验证,包括数据格式的验证、交易双方的数字签名等,都作为支付验证的辅助信息。只有通过了全网验证的交易,在得到了网络的一致认可后,被支付方才能真正“取得”支付的资金,用于自己的其他交易。 区块构造的验证也是非常重要的,也拿比特币网络为例,当最先完成区块封装及竞争计算的矿工把构造结果广播出去以后,其他节点的矿工就会停止对本区块的构造,转为验证该区块的计算结果是否成立。每个节点将在新的区块转发到其他节点之前,都会进行一系列的测试去验证它,从而确保了区块的合格与有效。 区块构造验证也是一种保证系统正常运行的激励机制,没有这种机制,区块链系统难以稳定运行。 在这种机制下,只有矿工将一段时间内完成的真实交易封装并进行算力竞争,诚实节点构造的区块才能通过验证,并最终纳入区块链的主链中,矿工也是由此得到奖励的挖矿费。 如果矿工在构造区块的过程中有任何弄虚作假行为,比如故意将比特币支付给自己的钱包等,由于哈希算法的特点,其他节点在验证时会发现其哈希值与父区块对于不上,因此直接丢弃这个区块,转而去验证别的节点发出来的区块,那么作弊矿工构造的区块就不能通过验证,会被大多数节点所抛弃,也不能链入主链中,最终既得不到奖励的挖矿费,也浪费了本来可以通过算力竞争构造新区块的机会,还导致了电费、矿机损耗等方面的损失。在这种正向和反向双重激励之下,矿工诚实,勤勉地日夜工作,从而保证了比特币网络的稳定运行。 在新区块验证通过后,矿工就以该区块为父区块,进行下一个区块的封装和计算。如果未通过验证,该矿工的区块就会被抛弃。如果有其他的矿工广播出新的区块,那么网络将重复区块验证过程。如果同时有数个区块被计算出来,并且都可以通过全网的验证,那么网络将重复区块验证过程。如果同时有数个区块被计算出来。并且都可以通过全网的验证,那么其他矿工可以任选一个区块进行新的区块挖矿,并广播挖出新的区块。这时候就产生了多链现象。但由于网络节点随机性的存在,一般不超过6个新区块的范围内,原来的多链就会出现长短不一的情况,此时马太效应显现,全网节点都会选择最长的那条链进行后续区块构造,其他短链都被抛弃,从而保证了主区块链的唯一性。 —- 编译者/作者:杨旭 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
广播与验证机制
2019-12-10 杨旭 来源:区块链网络
LOADING...
相关阅读:
- Blockrockets选择AZHOS作为本月的区块链初创企业2020-08-05
- 以太坊的总资本流入达到70亿美元的高位2020-08-05
- 以太坊2.0测试网上线,公链将迎来新时代2020-08-05
- 速览 7 月 DeFi 重要进展:YFI 流动性挖矿当红,Aave 推出信贷委托机制2020-08-05
- Peertec,hiblocks加入Kakao GroundX区块链平台2020-08-05