9月21日,Trias在香港大学举办了技术分享会。此次分享会以“基于TEE的高速区块链共识原理及应用”为主题,CTO魏明博士出席此次活动并发表了主题演讲。

魏明博士介绍到,想要加入Trias的共识网络成为TEE超级共识节点,都必须经历诞生传播天梯变化四个部分。

诞生:

首先需要按照Trias的社区要求,对自己要加入的共识节点运行环境进行配置或安装。条件是你得有TEE的基础,比如SGX、TrustZone、TXT等。如果没有的话,我们可以提供模拟的方式,但是不推荐,因为安全系数较低。如果每个新的待加入的共识节点安装好对应的环境,并按要求接入了Trias的网络,它会立刻自动的开始玩一个小游戏。我们暂时称之为“上帝掷筛子”。

为什么要玩这个游戏呢?传统的中心化系统中,为了每个节点的安全,它不断的隐藏自己,不让别人知道自己到底在什么地方,甚至通过物理隔离的方式来保证安全。但是在Trias的公链中,如果想当选这个网络中的超级TEE共识节点,你就需要让大家都认可你的安全能力。就像丛林法则,你必须要比其它人更优秀才能成为这里的领导。一旦一个人想在某个武林派系中当大师,那么他就要经受住所有挑战者的挑战。而新加入的节点得通过“上帝掷筛子”的游戏,根据全网的算力情况,不断的制造各个面都是完全平衡的筛子(默认是6个面筛子)。

制作的原理是首先通过贝叶斯随机制造出一个分布,然后使用尾数随机的方法,不断的进行6面筛子的重量随机数质量制造。直到6面的质量分布都属于同样的贝叶斯分布区间就证明是可以使用的公平筛子。

传播:

新加入的节点会随机的在网络中广播消息,代表着请求其他节点来证实自己状态的一个“挑战”,从而解决了网络中证实发起的问题。各节点间的证实信息采用gossip协议来在全网进行广播,将节点可信信息传播开来。

天梯:

网络中的任何节点都可能会出现被恶意攻击的可能性,如果当前共识节点中的某个共识节点已遭到攻击并被控制,那么网络中的参与证实该节点的其他节点将会发该问题并记录到Kernel中,如果该问题被多个节点发现存在问题,那么该节点将会被认为是恶意节点,并被动态的从共识节点集合中移除。此时,将通过这一周期发布的天梯,顺序选择出一个排名最高且安全的非共识节点,来替换这一存在问题的节点。

变化:

动态改变共识节点其实需要修改的是ValidatorSet,目前Trias是基于天梯发榜,获取新共识节点的列表,通过列表获取每个节点的公钥,然后构造Validator List通过RPC Client请求EM的RPC Server,EM收到请求更新内存中的Validator List。TM生成块发送EndBlock给EM时,EM会返回Validator List给TM,TM更新本地Validator List。

节点共识动态变更过程

在共识的最后阶段调用ConsensusState的finalizeCommit函数,通过调用ApplyBlock。ApplyBlock会先ValExecBlock->execBlockOnProxyApp->EndBlockSync获得EndBlock,并从其中获取validators,然后通过State的SetBlockAndValidators来更新block和validators。最后通过ConsensusState的updateToState将新的validators更新到ConsensusState的validators。

最后,魏明博士还演示了TEE天梯的形成及变化。他介绍到,现在大部分的公链项目,每个共识节点的运行环境安全是无法保证的,所以需要很多共识节点一起来达成共识来提高安全性,这样就造成如下问题:

1.安全性无法确定;

2.性能会随着节点数增多下降;

有部分的项目靠少数超级节点,但是每个节点的运行环境怎么保证的呢?如果超级节点一起同谋放入恶意程序干坏事怎么办?每个超级节点的确定就是靠人为投票决定?

为了解决这些问题,Trias以TEE为基础来保证共识环境的可信度,让每个共识节点都很难做恶。举个例子,把干活的人一直放在一个X光的安检房间里面工作,旁边有一堆人盯着它干活,他只能做1,2,3,4…的事情,哪怕做了1个字节不属于1,2,3,4…的事情。我们立刻就会发现并惩罚他,不让他有作恶的机会。假设你获得了一个超级共识节点的管理员权限和所有的密码,然后在上面利用权限临时编写一个恶意的脚本。如果一旦运行,TEE共识环境会立刻发现它,然后把它踢出TEE超级共识节点,同时根据TEE共识的算力成绩自动选出最好的候选人成为新的TEE超级共识节点。

Trias CTO魏明博士

演讲结束后,来自香港大学的同学们就Trias的共识机制、TEE技术、节点选举等与魏明博士进行了深入的交流。Trias团队始终以技术为本,以让全人类相信机器为使命,欢迎更多区块链技术爱好者加入我们!

如何防止超级节点“同谋”作恶?相关推荐

  1. 盗窃60秒java_EOS节点投票60秒刷新一次 EOS Asia 金马(下) 欧链·宁话区块链 EOS超级节点访谈...

    欢迎收看<欧链·宁话区块链>第二季,上一季我为大家介绍了区块链的基础知识,希望你们能有所收获.EOS最近成为了区块链行业最热门的话题,那么什么是EOS?EOS真正的价值在哪里?这一季,我将 ...

  2. BUMO:BU Firework超级节点实时竞选系统

    BU Firework超级节点实时竞选系统 简介 动机和目标 角色说明 竞选系统 Firework共识 架构 社区治理 生态节点 竞选 准入细则 评估维度 竞选流程 退出和作恶惩罚 投票 投票准则 投 ...

  3. 火币矿池参选EOS超级节点, 不只为分一杯羹

    4月24日下午,火币对外发布公告称:火币矿池宣布竞选EOS超级节点,并将成立EOS专区,为EOS提供技术研发助力,为EOS生态提供更多的应用场景.火币矿池将举办EOS开发者大会,还将联合DoraHac ...

  4. 超级节点根据自身的能力参与维基链生态建设

    包括维护网络稳定.产品开发.海内外宣传等.届时会根据这些维度的表现划分A.B.C.D.E共5个等级,每个季度分别可获得6万.3万.2万.1万.0.5万枚WICC贡献奖励.超级节点此部分奖励,也可以根据 ...

  5. 参加维基链超级节点竞选有什么好处呢?

    用户投票也是有收益的,具体收益取决于超级节点制定的奖励规则,节点可以自定义投票奖励给自己的支持者. 如果超级节点自己没有充足的票数,那他就会尽可能提高给用户的奖励,积极地寻求更多社区用户的支持.当然, ...

  6. 维基链超级节点竞选的具体细节有哪些?

    简单来说是两方面的条件,这个和其他公链做的节点是一样的,一个是硬件要求,一个是投票要求.硬件要求可以参考官方发布的细节(icon网页链接),而投票要求就是前面提到的100万票数门槛.选举.算票.票锁定 ...

  7. 维基链超级节点竞选开展如火如荼

    维基链超级节点竞选活动是维基链团队在今年启动的一个重头戏,维基链在早期一直是官方代持11个超级节点,由官方代持的好处是,可以更高效地进行开发,缩短公链基本建设的时间,在瞬息万变的区块链领域,抢占先机, ...

  8. EOS 共识机制 (5)超级节点投票

    1. EOS 的超级节点投票 1.1 投票方式 命令行进行操作 安全的第三方钱包操作 1.2 投票的基本逻辑 step1. EOS Token持有者需要抵押他们的Token才能进行投票(关于抵押的逻辑 ...

  9. EOS.CYBEX社区满分入围EOS超级节点候选人!

    点击上方 "蓝色字" 可关注我们! 作者:CybexExchange EOS.CYBEX社区 正式成为EOS超级节点 候选人 截至北京时间3月29日早上9点,官方已正式通过EOS. ...

  10. eos bp节点 超级节点搭建

    https://github.com/nebulaprotocol,这个网址里面有一个 fake-terminal-website 比较有意思,可以看看示例: https://bp.nebulapro ...

最新文章

  1. Kafka设计解析(二):Kafka High Availability (上)
  2. 紧急通知,读者服务群大调整
  3. 用java程序将GBK字符转成UTF-8编码格式(转)
  4. 如何在Dart中合并列表
  5. Netty--ByteBuf
  6. python input 拖入路径 去除转义 空格_python学习笔记(基础-2)(转载)
  7. mysql set substring_MySQL substring()函数
  8. 输出三角形字符阵列 (15 分)
  9. Velocity 语法学习
  10. NYOJ --25--A Famous Music Composer
  11. vray渲染里服务器信息,Vray使用手册——设置V-Ray渲染服务器
  12. 如何搭建运营级的网络直播平台
  13. Java获取本机ip地址的代码
  14. 妙控键盘大写按哪个键_苹果键盘怎么输入大写字母
  15. 关于 opengl3.3 - 4.1 ABO 的感触. 传统 VBO往 ABO+VBO的 代码移植
  16. 基于SSM java学校教务管理系统
  17. 2017级算法第二次上机-C.芸如的入学测试
  18. 数据分析之matplotlib画图工具的使用(一)
  19. python用len()函数说明
  20. 计算机网络合集(除应用层之外)

热门文章

  1. Android自定义view实现日历控件
  2. vue自定义组件,ElementUi表单校验v-model不能即时生效的解决方法
  3. 网络编程(6)--------javaweb(TCP协议)
  4. DFB激光器电流温度与波长的关系
  5. 幼儿学习品质提升的培养策略问卷
  6. 机器学习入门项目——加州房价预测
  7. python 创建高维数组列表
  8. 如何用CSS3画出一个立体魔方?
  9. Lempel-Ziv算法 具体过程
  10. linux androidx86双系统,ubuntu下安装RemixOS双系统(Android x86)