主页 > imtoken硬件钱包安全吗 > 联科漫谈|有链首席架构师何长斌深度解读有链技术白皮书

联科漫谈|有链首席架构师何长斌深度解读有链技术白皮书

imtoken硬件钱包安全吗 2023-04-04 07:27:22

今天《Linker Talk》邀请到YOUChain首席架构师何长斌来到Linker直播间,与大家共同探讨YOUChain技术白皮书首发,首席架构师深度解读这一话题。

以太坊矿池数据_电厂以太坊数据_以太坊数据同步与存储改进

何长斌:YOUChain首席架构师。 毕业于北京大学,在分布式计算和高并发系统架构方面具有扎实的理论基础和丰富的实践经验。 擅长亿级光伏分布式系统的设计、实现和优化,是微服务和容器化的深度践行者。 在加入YOUChain之前,作为联合创始人&CTO,他创立了业内知名的开发者服务平台Bugtags,服务数万家企业客户。 此前,曾在国内多家一线互联网公司担任技术专家。

以下为AMA问答内容:

主持人:首先请何总简单介绍一下YOUChain是一个什么样的项目?

何长斌:YOUChain的核心团队来自蚂蚁金服、腾讯、微软、比特大陆等公司,致力于开发能够承载大规模商业应用和繁荣生态的公链系统。

YOUChain有四大技术突破。 YPoS(Caravel)支持海量节点快速共识; 超级路由实现复杂网络的穿透和高效通信; 存储压缩使移动设备成为节点,实现完全去中心化。

主持人:共识投票分为三类。 NextIndex 投票仅在共识失败时使用。 共识成功后,会不会有额外的通信消耗,影响整个链的运行?

以太坊矿池数据_以太坊数据同步与存储改进_电厂以太坊数据

何长斌:验证者投票给NextIndex的主要作用是告诉其他验证者,如果本轮共识失败,在下一轮共识中继续投票给某个区块。 如果超过 2/3 的验证者投票给同一个区块的 NextIndex,则意味着下一轮区块提议者不会形成新的区块并向全网广播,从而节省通信消耗。

如果这一轮共识成功,NextIndex 投票机制也将受益。 由于不能保证所有验证者都处于同一轮共识的同一阶段,因此很可能一部分验证者处于先进状态,而另一部分验证者处于滞后状态。 先进状态的验证者在未来很可能会收集滞后状态的验证者的Precommit票,从而超时并确定共识失败,并开始下一轮共识。 但只要验证者收集到足够多的 Prevote 票,他们就会在固定时间投票给 NextIndex。 因此,处于高级状态的验证者很可能在某个区块中收集到超过 2/3 的 NextIndex 选票。 这样一来,在进入下一轮共识后,高级状态的验证者就不会再将交易打包形成新的区块并进行广播,从而减少带宽的损失。

在我们技术白皮书的复杂度分析部分,通过比较提出一个新区块所需的通信消耗和一轮NextIndex投票所需的通信消耗,我们可以知道,当区块大小超过382kB时,NextIndex机制可以被使用 减少通信消耗。 因此,如果即时共识成功,只要能够减少哪怕是一个新区块在全网的广播,所有验证者进行一轮NextIndex投票也是值得的。

主持人:共识成功后,commit信息不会像其他共识算法一样在commit阶段向全网广播。 这会影响节点的同步吗?

何长斌:首先,验证者在commit阶段向全网广播commit信息的目的是通知其他验证者自己已经认可了某个区块。 我们的共识中没有这种联系的主要原因是验证者只有在同时收集到超过 2/3 的 Prevote 选票和 Precommit 选票时才会批准该区块。 因此,再进行一轮commit投票是多余的,因为如果其他验证者也收集了超过该区块2/3的Prevote票和Precommit票,他们自然会批准该区块。

在我们技术白皮书的安全证明部分可以知道,在同一轮共识中,两个区块不可能同时拥有超过2/3的Prevote和Precommit票数。 因此,如果其他验证者没有收集到足够的票数,而收集到足够票数的验证者广播提交信息,则有两种可能。 1、commit信息包含了它收集到的所有投票信息,其他验证者自然可以利用这些投票信息对区块达成共识。 但是,那样会大大增加整个网络的通信消耗。 2. 收集到的Prevote和Precommit投票信息不包含在commit信息中,因此收到commit信息的其他验证者无法根据这些信息做出批准区块的决定。 因此,在提交阶段广播提交信息是多余的。

我们在实际测试中发现,单个投票消息包大小不超过300B,大部分节点都能收集到足够的选票。 只有少数网络环境差或严重落后的节点无法收集到足够的选票。 对于这些节点,我们在共识模块之外有额外的区块同步机制来保证节点之间可以快速同步。

主持人:能否进一步解释一下数据同步和存储技术如何支持“手机为节点”的目标?

电厂以太坊数据_以太坊矿池数据_以太坊数据同步与存储改进

何长斌:“手机就是一个节点”是我们努力的方向。 手机可以对应技术白皮书中的“轻节点”概念。 关于轻节点,我们基于一些基本的约束和功能需求来考虑对轻节点的数据同步和存储技术的支持,即: 1. 轻节点的存储资源相对有限,无法提供大容量存储; 2.轻节点加入和离开网络可能比较频繁。 当它加入网络时,它应该能够快速跟上当前的区块高度; 3. 轻节点可以参与共识投票。

基于以上考虑,我们从一开始就考虑了快速同步的问题。

首先,在区块数据结构和共识机制方面,为实现快速同步奠定了基础,即通过CHT的概念,将已经共识完成的区块的区块号和区块哈希组织起来形成一棵树,然后以固定的区块间隔,将 CHT 树根存储在特定的区块头中,然后通过额外一轮的共识投票为其附加见证。 这样,新节点可以通过跳跃式验证附加见证来验证 CHT 树根是否可信,然后通过树根形成对大量历史区块的背书。

其次,对于最近的一些区块,可能没有CHT背书,但是基于caravel共识的特点,我们也可以在快速同步区块的时候验证区块的合法性。 以上两种机制的结合是我们快速同步技术的核心。 其技术细节、安全性和性能演示,有兴趣者可进一步参考技术白皮书2.4、2.5、2.6章节。

那么,在上述快速同步的基础上,轻节点可以更好地实现轻量级的数据存储。

首先,对于新加入网络的轻节点,我们也提供了轻同步模式。 光同步的原理和快同步一样。 不同的是,对于大量较老的历史区块,其数据和世界数据是不能同步的状态,只有同步了最新的区块,才会同步相关数据。 这大大减轻了轻节点对历史数据的存储负担。

其次,轻节点参与共识后,需要不断地存储数据,但是随着区块的增长,我们也会定期删除一些不需要轻节点继续存储的旧数据,所以数据存储容量轻节点比全节点小得多。

主持人:你们的快同步和以太坊的快同步有什么区别?

以太坊数据同步与存储改进_以太坊矿池数据_电厂以太坊数据

何长斌:我们的同步技术跟以太坊类似,确实借鉴了以太坊的一些思想。 但在一些关键机制方面,我们有很多独创性:

首先,我们从区块数据结构和共识层面考虑了数据同步问题,增加了机制支持。 我们的越级同步技术是首创。 像以太坊等一些项目,大部分都是依赖可信检查点机制实现第一次大跨度追赶(可信检查点之前的历史数据不需要或不检查)。

其次,我们的快速同步技术是基于共识机制的确定性和可验证性的。 以太坊的快速同步也有skip verification的逻辑,但是其skip verification的安全性是基于概率的,而不是确定性的。

最后,以太坊所依赖的可信检查点机制在一定程度上是中心化的; 而我们的数据同步技术没有任何集中控制,任何新添加的节点都是立即可用的。

综上所述,我们的数据同步技术具有全新的考虑,可以为节点快速加入网络提供很好的支持。 对于一个无需许可的区块链网络,任何节点快速加入网络的能力都很重要,我们很好地提供了这个能力。

主持人:为什么用QUIC而不是TCP?

何长斌:Caravel是一个交互式的共识协议,所以在共识过程中会产生大量的数据,占用的网络消耗比较高。 在实际的公网中以太坊数据同步与存储改进,数据包的丢失是不可避免的。 TCP协议的核心是“丢包必须处理”。 当发生丢包时,连接将被阻塞,从而等待数据包的恢复。 它是由协议的拥塞控制机制决定的。 TCP使用滑动窗口动态调整发送速率,在丢包恢复过程中,滑动窗口始终有一个等待时刻,会消耗一个RTT,相当于50~100msg。 另外,丢包时发送速率减半,带宽利用率不高。 QUIC协议对连接进行IO多路复用,为每个数据传输流提供独立的丢包恢复机制和滑动窗口机制。 如果单个传输流丢包,不会影响其他数据传输,这样比较好。 提高数据传输效率和带宽利用率。

QUIC默认支持TLS加密技术,连接建立消耗一个RTT优于TCP的TLS加密连接建立。

以太坊数据同步与存储改进_电厂以太坊数据_以太坊矿池数据

移动网络设备一直是我们的重点。 移动网络中的设置IP和端口会随着连接的基站而变化。 TCP协议使用一个四元组(源IP、源端口、目的IP、目的端口)来唯一标识连接,如果四元组中的任何一个元素发生变化,就需要重新建立连接。 连接建立后,QUIC会生成一个ID来代表连接。 当节点的IP或端口发生变化时,可以通过ID继续进行数据通信,无需重新建立连接,正好符合移动设备的用户体验。

主持人:NAT优化为什么会提高连接成功率?

何长斌:我们每个人都有一个身份证号来标识一个人,互联网上的每个设备也都有一个“身份”——IP来标识,IP是Internet Protocol(互联网互连协议)的缩写,即TCP/IP系统中的网络层协议。 众所周知的IPv4诞生于1970年,意思是Internet Protocol version 4(互联网协议版本4),是TCP/IP协议使用的数据报传输机制。 IPv4的设计虽然很好,但是随着互联网的发现,它的缺点也逐渐暴露出来,其中最致命的就是数量有限。 一个IPv4地址由四组以点分隔的数字表示,每组数字是一个8位的二进制数,因此IPv4一共有32位,代表了大约43亿个IP地址。 2019年11月26日,全球43亿个IPv4地址全部分配完毕,也就是说已经没有可用的IPv4地址了。 为了解决IPv4地址耗尽的问题,提出并设计了一种新技术NAT技术来解决这个问题。 NAT的全称是Net Address Translate。 它的主要功能是转换IP地址。 NAT通常部署在组织网络的出口处,通过将内网IP地址替换为出口公网IP地址,提供公网访问和上层协议连通性。 目前,NAT广泛应用于网络的各个角落,可以更好地利用有限的IPv4地址。 一份研究报告指出,70%的P2P用户都位于NAT之内,这意味着大部分PC设备都需要通过NAT连接到互联网。 但是,不同的NAT设备对IP地址的转换策略不同,形成了六种不同的NAT类型,这就造成了不同设备通过NAT上网后,由于NAT类型不同而无法上网的问题。 . 因此,我们在节点发现过程中对NAT类型进行了优化,保证节点收到的邻居节点的NAT类型与本节点自身的NAT类型相匹配,才能连通。 因此,节点路由中的所有邻居节点都可以连接起来,从而大大提高了连接的成功率。 避免了连接资源的浪费。

主持人:我在白皮书中看到了一个奖励等级的概念,可以介绍一下吗?

何长斌:奖励等级是我们在奖励结算中引入的一个概念,意在最大程度避免产生不必要的数据,从而进一步降低节点存储的压力。

我们将在奖励计算中为每种类型的节点设置一个全局奖励级别。 对于一个节点来说,只需要使用该节点历史结算的等级快照以太坊数据同步与存储改进,与当前最新的奖励等级进行比较,就可以知道自己可以赚取奖励并进行结算。

主持人:节点破坏如何判断? 代价是什么? 如果需要重启服务器,是否会被判定为破坏?

何长斌:我们通过节点的活跃度来判断共识节点是否慢。 在特定的区块区间内,如果共识节点没有参与足够的区块投票,将被认定为蓄意破坏,并处以一定数量的抵押。

以太坊矿池数据_电厂以太坊数据_以太坊数据同步与存储改进

如果服务器需要维护,可以发送节点下线操作,生效后可以关闭服务器。 维护完成后记得让节点重新上线,这样才能参与共识获得区块奖励。

主持人:主网什么时候上线,用户如何参与挖矿?

何长斌:2020年5月18日正式主网上线;

进入节点管理平台抵押即可成为节点,或上线后在链上抵押,即可参与验证人并获得奖励。

主持人:你们在开发者招募方面有什么计划? 另外,YouChain代码是否友好,社区开发者需要掌握哪些开发语言? 是否需要专门培训?

何长斌:我们会拿出慷慨的YOU作为奖励,与开发者共建公链生态。

YOUChain将完全开源; 支持主流语言SDK; 编程模型类似于 eth/tron。 因此,入门成本极低,现有DApp的迁移成本也极低。

以太坊矿池数据_以太坊数据同步与存储改进_电厂以太坊数据