共识机制 互联网计算机中的子网由多个节点来维护,每个节点都需要保存子网所有容器的状态,并处理新的进程。为了网络的安全和可靠,每个节点的备份要完全相同,消息的处理顺序也要保持一致,以达成一致的状态,因此需要节点对收到的消息进行共识。也就是节点通过点对点网络收集外界的信息,信息在路由传递之前通过共识层达成统一的消息并创建公证过的区块。在 DFINITY 中采用 VRF 和 BLS (随机可验证方程和门限签名)算法,实现能满足三分之一容错率的区块链协议。 图 3:DFINITY 中信息的处理过程 在 DFINITY 中,共识通过四步达成:产生区块,公证,随机数信标,以及最终确认。在每轮共识开始时,节点将收集到的消息汇总成区块并进行广播,再由节点进行签名公证,在公证达成一致后,各公证节点的签名会压缩成多签以节约空间。随机信标的引入是防止在同一区块高度上出现多个区块,并且促使共识快速达成。每个区块都存在一个随机信标,它是由节点通过 BLS 的方式生成且不可预测。在收到区块的随机信标后,节点使用 BLS 框架对其进行签名,如果一个区块有超过 50% 的公证者签名,区块上的签名会被聚集成多签的同时产生随机数信标。 图 4:随机信标的生成 通过随机信标可以对节点进行排名,区块的公证时间被分割,排名在先的节点先进行公证,如果超时换为下一位。如果存在多个公证区块,那么排名在先的公证区块成为最终区块。公证节点在观察到高度为 h 的区块后,如果决定不再公证高度小于等于 h 的区块,则对此区块发起最终签名确认,超过三分之二的节点对同一区块进行确认后,则达成了区块的最终确认。 Chain Key Technology Chain Key 是 DFINITY 实现子网扩建和进行密钥管理的技术,能够保证网络的安全可用。Chain Key 关系到互联网计算机的密钥系统,包括对信息的验证,密钥的管理和分配方式,主要应用了 BLS (门限签名)和非交互的密钥生成系统技术。在 DFINITY 中,可以使用唯一的公钥验证信息,而不是需要像其他区块链一样下载全节点账簿。而且每个子网都存在一个由 NNS 发放的固定公钥,公钥可以验证来自子网发送的签名信息。在发送信息时,不是由节点单独进行签名,而是由子网中节点共同签名,即使用门限签名的方式对信息进行签名确认,保证足够容错率的同时确保信息经过足够多的节点确认。门限签名指的是对消息进行签名时,需要多个私钥且达到一定数量的签名才可以进行汇总表示子网整体对信息的确认。 (责任编辑:admin) |