区块链:让隐私保护更简单

廖京辉
同态加密的技术主要用于智能合约。因为几乎前面的所有技术都不能用在智能合约领域,智能合约的逻辑由用户编写,你无法确定它的具体样子,所以你无法提前给用户编写验证的电路。但是同态加密可以在一定程度上隐藏用户的信息。

作为一个去中心化的信任数字化解决方案,区块链技术的出现,在某种程度上让我们对隐私保护的想象变成了可能。

原因主要有两点,一,区块链是一个分布式系统,所有的节点都可以获取链上的所有信息;二,区块链可信基础之一的共识算法要求所有的交易都是公开且可验证的。

基于以上两个原因,我们在使用区块链的时候,所有提交到链上的信息都是完全赤裸裸的,你发送的每一笔交易,做的每一个合约调用,乃至每一个链上活动都有迹可循。而且由于区块链的不可篡改性,这些信息将被永远记录在案。

有些人可能会认为区块链上的账户都是个人自己创建的,跟自己在物理世界里的身份信息并没有直接的关联。即使链上足迹被追踪,也不会影响自己在物理世界的隐私信息。但事实恰恰相反,虽然区块链账户的创建过程和我们自己的身份信是毫无关联,但我们在使用账户时或多或少会跟自己的真实身份产生交互,由此别人可以通过你在链上的交易信息追踪到你在物理世界的真实身份。

举个例子,门头沟幕后的黑客大佬小胖哥Kim Nilsson用了三年的时间,根据分析海量交易记录中的蛛丝马迹才定位到了黑客身份。背后原因,其一是区块链交易的可溯源性,其二是用户本身对更换账户有惰性的,经常是各处使用一个账户。

混淆器

针对区块链的隐私保护,最早的解决方案应该是针对比特币的混淆器(Mixer)。

混淆器的原理类似于,警匪片里的主角为了躲避跟踪,找了一堆穿着相仿的人在自己周围走动,混淆跟踪者的视线。混淆器会接收一大堆来自用户的输入,经过一系列复杂的中间账户的转移操作,再转出给用户指定的账户。这样在用户的输入和输出之间可能会涉及到几十甚至上百个和中间账户和中间交易,极大地削弱了输入账户和输出账户间的关联关系,使得追踪者无法定位输入账户资产的最终流向。

混淆器结构简单,便于理解和实现。

但问题是,一,用户需要把资产转入混淆器,这个过程具有风险。混淆器一旦出错,用户的资产将无法寻回;二,混淆器虽然可以极大地增加追踪的难度和复杂度,但是所有的交易依然是可以追踪的,在新的分析手段和算法加持下,其分析难度也逐渐下降。

零知识证明

除了对已有项目进行混淆之外,更好的解决方案是创建一条完全针对于隐私保护的新链。虽然这样的区块链项目不在少数,但是很多技术都使用的是零知识证明。

零知识证明,顾名思义是在证明过程中无法获得额外知识信息的过程。我们经常举的例子就是数独问题:我给你出一个数独题,但是你想知道这个数独是不是真的有答案,因此我需要向你证明这个答案的存在,但是又不能告诉你这个答案的内容。因此我证明的过程就是,你任意选列或者行,我把指定的行列的9个数收集起来打乱顺序给你,你看到每个数都在就会明白这行是有答案的,依次类推,你验证的行列越多,你就越相信这个答案的存在。但是在这个过程中,你无法获得任何跟答案有关的信息。

这也存在一些问题。首先,这个证明需要的验证数据量很大,起初大家用的是zk-snark,后来bulletproof地出现极大地减少了验证的数据量,但是零知识证明的验证很繁琐;其次,这个生成证明的过程计算量很大,比较费时间;再者,零知识证明需要针对每个特定的逻辑设计专门的电路,技术门槛比较高,不存在通用的电路来验证合约。

隐地址与环签名

隐地址与环签名,都是门罗币项目里的技术。目前绝大多数的区块项目如比特币、Neo、以太坊等,都是账户是账户、交易是交易,账户控制交易,交易关联账户。

但是门罗币是个异类,它的隐地址技术使你无法根据一个目标地址查询到任何与其关联的交易。因为交易跟账户没有任何关系,每一个交易本身都相当于一个独立账户。

举个例子,我们通常理解的交易是:我从我的账户给你转五毛钱,你查询接收。这个隐地址的交易模式是:我创建了一个账户在里面存了五毛,只有你的私钥能使用这个账户。

隐地址可以在交易中隐藏目标地址,源地址则使用环签名来进行隐藏。用户在发送交易时,会和别的用户一起构成一个环,大家都对交易进行签名。外部来看,这个交易来自于环成员,但具体是来自于哪一个成员就无法确定了,从而隐藏了交易发送者的地址。

但这也有明显的问题。别人无法查询你的信息,你自己也很难查询,比如你想知道哪一笔交易是发给你的,你必须对每一笔交易都用你的私钥来试一试,你不试一试,你也不知道这个交易到底是不是给你的。

同态加密

同态加密的技术主要用于智能合约。因为几乎前面的所有技术都不能用在智能合约领域,智能合约的逻辑由用户编写,你无法确定它的具体样子,所以你无法提前给用户编写验证的电路。但是同态加密可以在一定程度上隐藏用户的信息。

同态加密,简单理解就是计算的封闭性。

举个很简单的例子,五毛钱一斤梨,那我现在有四斤梨子,它一定值两块钱。意思就是钱和梨子有相互的对应关系,你可以从梨子到钱,也可以从钱到梨子。

同态加密就是,加密数据后再进行计算,计算的结果在解密之后和原数据直接计算的结果是一致的。这样既能保证数据的隐私性,又能保证计算结果的正确性,从而实现对智能合约执行过程隐私的保护。

可信执行环境

可信执行环境是芯片中的一处安全区域,由硬件提供最直接的安全防护,加载到可信执行环境中的数据和代码将无法被不安全的系统进程访问,从而保证数据的隐私性。

其实,可信执行环境在我们的日常生活中已经十分常见,手机的系统,无论是安卓还是苹果,芯片无论是高通还是A13还是麒麟,内部都有可信执行环境来在本地保护我们的个人隐私。

很多科研人员也正在研究将可信执行环境和区块链进行结合的方式。有可信执行环境加持的区块链系统,不仅可以实现隐私保护的交易处理、合约执行,甚至可以为比特币这种不支持智能合约的项目增加合约执行的额外功能。

侧链与通道

除了以上直接在项目本身动刀子的解决方案之外,第二层的解决方案也可以很好地解决区块链系统当前遇到的隐私问题。

与主链进行铆接的侧链,通过建立用户专有的一条链,只在关键的资产变动时才会与主链进行交互,其余时间的交易信息都仅仅由侧链进行管理,不会同步到主链上,从而避免了不必要的信息泄漏。

虽然,侧链在理论上解决了目前区块链系统面临的问题,但是它本身却是牺牲了区块链系统的去中心化特性而存在的。侧链可以由专门的组织特地建立,这样的一条链完全是中心化的,其安全性无法保证。

目前,通道系统主要基于比特币的闪电网络,原理是用户在主链上创建一个只有两方参与的多签账户,两个参与者可以在链下任意变动这个账户中的余额分配,只需把最后的结果提交到主链上即可。在这个时间内,两个参与者可以任意发起无数次的余额变动且不需要提交任何数据到主链上,从而避免了交易信息的泄漏。不过这种结构虽然简单,但却很不方便,用户在使用过程中需要提前锁定一部分的资产在通道内部。此外,通道系统的争端解决方案也存在着日蚀攻击的风险。

结语

关于区块链隐私保护的研究,方兴未艾。各种新的技术和解决方案层出不穷。相信终有一天,一个完善的解决方案会将其完美攻克。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论