这周学习的区块链概念,叫做可信执行环境TEE(Trusted Execution Environment)。它是被这样解释的:在硬件层面划出一块独立于操作系统的区域,能无忧无虑地运行代码。
很多TEE技术基于CPU芯片,使用环境很丰富,比如手机会把你的指纹和密钥存在可信环境中,当需要验证指纹时,在TEE中执行判断,直接输出结果,保障隐私。
而InteL公司的SGX将安全范围扩展至内存条。其实就是将安全操作软件的运行保护在一个独立区,名为Endave,在TEE的操作概念中,指独立于操作系统外安全的硬件区域。
它的关键点是即使被恶意感染,也无法篡改代码。即证明数据和代码未被改动。
一、平静表面下的危机
看似完美的运行环境,但遇到电容泄露,安全就是一层脆弱的窗棂纸。
因为计算机的内存是由无数个存储单元组成,而近年来的内存容量大幅上升,电容排列密度又强。所以一旦因高频读写某段内存区域,相邻的存储单元就会因为电容泄露而产生“比特币翻转”。
这就好比桌上铺满硬笔,应该按次数有序翻转正反面,一但翻转过激桌子一抖,硬币便无序翻转。
这一行径产生的后果就是代码未经授权,便可被动执行操作,这样的操作,系统被瘫痪后可想而知能造成怎样的损失。
二、试试又何妨
区块链的BFT共识机制给出了一套逻辑,在记录数据的节点上披上TEE铠甲。即使个别节点被攻破,执行了恶意代码,产生了“比特币翻转”。只要故障节点低于总节点数的1/3,就达到了正确记账的要求,使分布式账本不出错。
这个逻辑有些反认知,既不是谁保护谁的机制,也不是谁证明谁的身份。而是将成本收益和可信执行环境同行推出,使得恶意篡改不仅要面对矿工的搏斗,还要面对可执行环境下的身份验证。
这就使得恶意篡改者不可能戴着面具抢利益,因为面具会在可执行环境的作用下打码标识,使得要完成的小动作无所遁形。
三、小结
由TEE引申区块链中的其他场景,无非我们还是在研究它的安全、信任、效率这些问题。而从炒币到应用的实际落地,就是依靠这些技术迭代,逐步铺开才能解决这个过程中的点、面问题,将成本贵过收益改写,这样应用的使用才能被真正落实。
(学习资料文章《如何给网络披上铠甲?》作者:汤强)