今天讲的是TEE,也就是可信执行环境。
从名字上来看:
可信,也就是可以被信任,人和人之间的信任最本质来自于哪儿?无非就是,你说了什么,就会按照自己说的做到嘛。
那在区块链,或者说网络世界,建立信任变成了一件很困难的事。为什么?
因为在线下,这个人是活生生地站在你面前的,他做了什么,做的跟他之前承诺的是不是一致,你都知道。
可一旦来到了线上,你转账给了他一笔钱,他给你发送了一个视频,这些不论是账目,还是文件,存储在电脑里后,都变成了无数的0和1的组合。
而电脑这个东西有一个强大的按键,是现实世界中没有的,那就是删除。我可以把你记好的帐擦掉,然后把户头都改成自己的名字,那时候你还认这笔账吗?或者说,在这个有删除键的世界里,还有信任可言吗?
答案是,有的。只不过这就需要一个强有力的背后的力量做依托。就好像,现实世界里,你要想让人诚信,就要有法律和道德约束。在数字世界中也是一样的,去找到这样一种约束。
继续问下去,那是在软件还是硬件上去设置一个约束呢?当然是硬件了。
如果设置在软件上,黑客还是可以来攻击你的程序,破开你的防御,夺走你的秘钥,造成不安全隐患。
而如果放在硬件上,黑客总不能潜入你的家里,砸开你的主机机箱吧。
TEE就是在硬件上做了改变,用一套复杂的方式对硬件做了改动,使得这样的硬件跑出来的程序都是在“说真话”。而我们只需要盯住对方的电脑,看他用的是不是这种硬件就好了。
而且这种盯,也不需要你爬到对方阳台上看个究竟,网络对面传过来的信号就可以弄清这一点。
可信执行环境中的第二个词,叫执行。简单来说,我这东西不是什么都干的,我只是执行命令。它就像一个机器人一样,在出厂的一瞬间就被编写好了程序,用来执行发送给它的命令。比如,存储私钥啊,加密啊,这些涉及到重大安全问题的命令,交给它做。
最后一个词,环境。环境表示一部分空间,与外界是隔离的。这里,它就是与非可信执行环境,也就是普通环境分开的。普通环境下运行一些无足轻重,即便不安全也没有太大伤害的程序。可信的执行环境下,运行最重要,最需要隐私的那部分程序。这就像你家后院和你家保险箱之间的关系了。
那么,实现了这个有什么好处呢?
好处太多了。它就像一个补丁一样,给原先破着个洞的各种区块链技术打了个补丁,让这些技术更完美了。
比如隐忍了很多年的有向无环图DAG。它的好处是能把账记得很快,但它的坏处就是在拜占庭问题的基础上,一旦出现1/3以上的记账者叛变了,试图记假账,整个系统就会全部被击垮,因为没有人愿意明知是假账还要继续在上面玩下去。
但是,给DAG打上TEE这个补丁就会完美很多。原因在于,试图叛变的人根本就进不来这个系统。为什么?
因为DAG在最开始就设置了规矩,只有你拿着带有TEE的硬件设备,我才让你进这个门,记这些账。这样,就可以成功地把坏人挡在门外了。所有进来记账的好人,愿意也好,不远也罢,硬件程序设定好了在那,你就无法凭借自己的主管意愿去作恶,去篡改。
那么现在比区块链链条式的记账方式快的DAG,加上硬件上防止你记假账的TEE,一定会诞生一个进化得更好的物种。
非常高兴能看到市场上已经有这样的项目了,那就是mixin。用DAG+TEE,mixin实现了在记对账的基础上,更快速的记账,所以也就使得我们的每笔转账都会非常快,并且没有任何手续费。
站在DAG的角度,我们可以不必因为遇到了拜占庭容错的1/3问题,就否定掉它的一切,因为未来有可能有这样一个补丁来补上这部分缺失,需要做的就是稳步前行,把自己做到最好,等待TEE的到来。
站在TEE的角度,我们就专精于一点,解决一个“说到做到”的问题,然后去跟其他技术对接,像U盘一样生存,服务他人,连接他人。
这个世界肯定不是只用一项技术就能把账记得又快又不出错,因为一旦你什么都想要,最后一定会沦为平庸。就好像所有古代包治百病的特效药,一定是吃了什么用都不管的面团。
这也给我们投资时敲了一个警钟,如果一个项目声称自己既要做大面积网络建设,又专注于具体内容分发,既要搭建起一个用户生态,又独立开发每个生态应用,那我希望你能想起今天的课程,然后捂好自己的口袋,默默地送给它一个祝福。