区块链社会:区块链助力国家治理能力现代化
上QQ阅读APP看书,第一时间看更新

5.3 隐私保护及探索方向

对于交易的匿名和隐私保护方面,达世币(DASH)、门罗币(XMR)、大零币(ZEC)分别在混币技术、环签名和零知识证明技术上进行了尝试和探索。

隐私保护的另外一个领域是智能合约的隐私保护,以防止针对智能合约的攻击。目前有几个方向的探索:

代码混淆(Code Obfuscation):隐藏程序中的私有数据,降低攻击风险。不可分辨性混淆(Indistinguishability Obfuscation)是正在努力的方向。

预言机(Oracle):智能合约与链外数据源之间的信息载体,有助于隐私信息的保护。

可信执行环境(Trusted Execution Environment,TEE):保证内部加载的代码和数据在保密性和完整性上得到保护。

代码混淆亦称花指令,是将计算机程序的代码转换成一种功能上等价、但是难以阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。

黑箱混淆器(Black Box Obfuscator)是理论上非常理想的混淆器,但早在十多年前就被证明是不可能的。2013年,美国加州大学洛杉矶分校的A. Sahai教授及其合作者们提出了一种不可分辨性混淆技术,其基本思想是把一个程序转换为一种被称为多线性拼图(Multilinear Jigsaw Puzzle)的游戏,从而将混淆技术的安全性转化为一类与格(Lattice)有关的数学难题。与理想的黑箱混淆器相比,这种混淆技术具备了黑箱混淆器的大多数特性。不仅如此,这一技术自提出以来,已经经受住了领域内一大批专家(包括提出者)的第一轮攻击。

代码混淆器也会带来一些问题。主要的问题包括:

被混淆的代码难以理解,因此调试及除错也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。

代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。