自从区块链技术诞生以来,关于它的争议就从来没有停止过:区块链如何保证没有人作恶?区块链是低效服务吗?区块链网络能承受多大程度的攻击?这些其实都和区块链各节点如何形成共识有关。
一直到现在,绝大多数的区块链项目,不会对运行环境进行安全检查,主要依靠的是传统的加密手段。然而这些手段并不保险,一旦有木马程序盗取账号,被污染的节点就可能产生恶意行。目前而言,大多数项目解决问题的办法比较消极,只能寄希望于被感染的机器数量不够多,不足以影响到正确的共识结果。
这种方法存在着明显的隐患,实际上就相当于赌博,永远都在侥幸攻击数无法超过共识节点的极限。以著名的51%攻击为例。51%攻击是指掌握了比特币全网的51%算力之后,用这些算力来重新计算已经确认过的区块,使块链产生分叉并且获得利益的行为,理论上讲,这种51%攻击的可能性完全存在。

有人会问,既然51%攻击的威胁一直存在,那为什么到现在也没有人攻击比特币呢?
这是因为,凡是理性的人,发动攻击的目的都是为了获得更多的收益。而在比特币网络中,其权力是通过算力来体现的。换言之,51%攻击者首先必须持有足够多的算力,他们自身就是比特币世界的最大受益者。然而在发动51%攻击后,比特币币值将受到重创,损失最大的恰恰就是他们自己。因此,有能力发动51%攻击的人会更希望上涨,而非发动攻击。毕竟,谁也不会傻到杀死自己的钱。
问题是,比特币节点众多,算力很大,比特币行,其他项目行吗?我们想想看,如果一个项目足够值钱,且只要通过劫持其一定数量的节点就能够把项目中的大部分价值资产进行转移,那这个项目势必会被外界不怀好意的人盯上,轻则共识结果受到影响,重则遭遇51%攻击,价值大跌。
除了不安全外,这种方式对于共识节点还没有“质量”判断的能力,就如大家一起参加拔河比赛,为了好的成绩,大家都会选择身高、体重合适的运动员,这样效果很好。而不是盲人摸象,随便找几个人出力就可以。因此队伍选中的是身体有恙的选手,就算所有人都齐心协力,只怕实际结果也很难理想。
这并不难理解。举一个最简单的例子,《三国演义》中赤壁之战前东吴君臣的态度。我们知道,孙策死后,面对复杂的局势,接过大位的孙权为了巩固统治,安抚人心,重用周瑜和张昭之余,还选拔了一批有名望的士族和贤才进入统治核心(这批人就像一个个节点),在处理日常政务时尚能有条不紊,平稳运行。

然而,面对南下的曹操大军,这批“江东贤才”登时胆怯起来,被气势汹汹的曹操吓坏了(相当于被污染的节点),大家一致举手表决,应该投降。
张昭曰:(曹操)势不可敌。以愚之计,不如纳降,为万安之策。
众谋士皆曰:“子布之言,正合天意。”
——《三国演义》
吴主孙权彼时只有27岁,一时难以决断。这个时候,节点足够的多(东吴士大夫贤才),也已经形成了共识(投降),那对于孙权来说,最好的办法,是投降吗?
针对这个问题,可信执行环境TEE(Trusted Execution Environment)技术便大有了用武之地。简单来讲,TEE技术理念即当执行敏感操作或安全性比较高的行为时(例如指纹的比对,用私钥签名的支付动作等),此时原本系统的安全级别不足以应对(可能存在木马),通过借助TEE技术来提供一个完全隔离的运行空间,保护敏感数据免受其它环境的恶意行为,进而增强移动设备的安全特性。
TEE相当于提供一个不受外界干扰的空间,其扮演的角色,可以理解为鲁肃的一番话。鲁肃说了什么呢?鲁肃告诉孙权,群臣投降,尚不失封侯之位,而君主孙权投降,就算不沦为阶下囚,生活舒适和自由程度也会大大受到影响,哪里比得上在南边称孤道寡呢?
鲁肃曰:将军降操,欲安所归乎?位不过封侯,车不过一乘,骑不过一匹,从不过数人,岂得南面称孤哉!众人之意,各自为己,不可听也。将军宜早定大计。
——《三国演义》
正是通过这番话,孙权才判断出了谁打着自己的小算盘,笃定了投降也能活的很好的人(张昭等主降派,相当于被感染的节点),谁是真心实意为自己打算(周瑜,鲁肃等,相当于高质量节点),并亲之信之,相当于设定为白名单。

由于TEE技术确保执行的代码不会受异常进程/线程/恶意文件等其它系统因素的影响,一旦可信执行环境内的程序若出现任何与预期白名单不一致(周瑜,鲁肃等)的情况时,即立刻会在可信硬件上反应。这种低“质量”的算力节点就能立刻被辨识和并排除。
最后,也可以通过可信计算方法来量化每个共识节点“质量”好坏的程度。在实现共识时,可以直接通过对“质量”好坏程度的判断,仅选取少数优质节点作为代表以达成共识。此类方法应用可信硬件的特性,提高了节点的安全可信性,并进而减少了参与共识的节点数,从而最终实现了效率与安全性的同时提升。
网友评论