Trias的挑战者模式

11月5日,北大软微-八分量协同创新实验室以“Trias共识技术研讨”为主题开展学术沙龙活动。Trias创始人团队、北京大学沈晴霓教授、杨雅辉教授以及实验室众多博士生出席了此次活动,双方就Trias的共识技术、合作研究方向等做了深入交流。在会上,Trias CTO 魏明详细讲解了Trias项目的共识部分。

为了帮助大家更好的了解这一部分内容,我们将呈现讲解内容的文字版,供大家学习。以下是讲解内容。

今天主要说的还是共识,大概从诞生、天体、传播、变化这四个方面来说。在这里我想和各位同学说一下,如果你选择了去中心化,就一定要把原来固有的思想丢掉。如果你在共识算法等技术中提到这些的话,大家一定觉得你不是在做链。

还有一点我要强调,在没有TEE的传统系统下,大家都选择让自己非明文,让别人不知道你。而在Trias里,设置的是一种挑战者模式,因为如果要选出整个网络里最可信的节点,就要让整个网络里的全部节点都认为我是最可信的。我们开发团队曾经开玩笑说,这个理念有点像刘慈欣《三体》里的黑暗森林法则。他认为,全世界的人都不希望被更高级的文明发现,。在Trias 里,如果你想要成为我们的超级节点,你必须是最强的,而且要能接受整个Trias网络里所有节点的挑战。目前其它链选择超级节点的方式,没有和我们一样的。比如说EOS,通过人为投票来选择超级节点。而Tiras是靠计算机,通过TEE的证实,来看你是不是有能力做超级节点,是不是全网最安全、最健壮的节点。

从整个链圈来看,Tiras的挑战者模式是独一无二的。当然,我们还有很多工程上的问题要解决。

图 1.  TEE共识过程状态机

目前我们的第一版状态机图已经是按照PPT现实开发完成了的,但是中间还存在一些BUG我们还在不断的改善。接下来我来介绍一下过程:第一步任何想加入Trias节点的,进来之后就好像刘慈欣《三体》中黑暗森林一个新的文明诞生了一样,你要加入一个群体就要广播,告诉整个网络我加入了,需要让所有人都知道你的地址。通过Gossip、P2P的方式告诉所有节点:首先我要加入Trias网络,其次我要成为最优秀的节点。该节点会将机器所有的信息发送出去,比如IP地址、机器可信状态哈希值以及机器现在可信的白名单。其他节点拿到这些信息之后就是挑战者。

我们要设置一个东西,来防止网络风暴。因为通过gossip传播时,实际上它是类似于小世界网络那样的跳转。当它在跳转的时候,你不可能每一秒都让全世界所有人都知道。所以我们现在实际上是通过两种,一个是网络状态,另外一个是时间戳。比如说我现在通过UTC知道现在的时间是12点,然后突然拿到了一个有人想要我向他挑战的挑战书,而发送时间是11点57分,已经过去了三分钟,说明我们隔得很远。从网络角度来说,我们肯定不是一个小世界的,我们两个距离不近,所以我们会涉及一个全址。因此,我收到一个挑战书,不能是一年前的,这样没有意义,我们必须在一个很近的距离。我们靠gossip来确定是不是一个小世界的人。

我拿到挑战书,一看这个时间,如果我们离的很近,我看到我身边还有一个新生的(节点),我打一下他,这一块地盘是我的,所以每一台机器上面默认可信节点都要通过serve挑战,所以每一台机器既可以挑战别人,又要受到别人挑战。这个状态机就是这样。

图 2.  节点状态更新题

 

上图中为什么有蓝色节点,因为怕有独立的地方军阀。如果单纯靠gossip去确定,即通过网络通讯来确定他的距离,会出现独裁的情况。在一定区域,总是这七个节点,如果你不改变它的网络状态,它总是最先拿到。这样,如果在Trias上运行一年的话,就很可能形成小团队,就像中心化那样,为了解决这个问题,我们会派出超级节点。也就是说,仅仅依靠gossip还是不够的,还要派出我们的超级代表,来做董事会的成员之一。所以说在这样一个团队中,他们在不断的相互证实。一旦发现其中有一个节点,不管之前它对了多少次,哪怕它对了十年,十年没犯过错,只要它有一个时间点计算出来的哈希值有问题,我们就会立刻把它踢掉。然后,我们会通过gossip找离这个团队更近的网络节点,然后把它加入进来。这里除了距离外,还要考虑TEE的值,TEE的值越高,证明在整个历史过程中,你基本没有犯过错,你的信誉,征信系统记录好。

猜你喜欢

转载自blog.csdn.net/triaslab/article/details/83902079
今日推荐