隐私保护和数据安全:区块链的隐私问题、零钞:基于zkSNARK的完美混币池、Hawk:保护合约数据私密性、Coco框架、Baby Zoe

第十章


一、区块链的隐私问题

1、化名和匿名

所谓化名就是我们在网络中使用的一个与真实身份无关的身份,在比特币或者以太坊紫彤的交易中,使用者使用公钥散列值作为交易地址。因此区块链中的交易具有化名性。
匿名:指的是具备无关联性(unlinkability)。由于用户反复使用公钥散列值作为交易标识,交易之间显然能建立关联。所以不具有匿名性。

2、去匿名攻击:交易表分析

若用户在一段时间内用不同的地址均与Y交易,则可能被攻击者归为地址簇。再结合现实中直接发生的交易来给地址簇加上标签,就可以画出一个标签蔟图,从而展开交易分析来对大部分的区块链交易去匿名化。

二、零钞:基于zkSNARK的完美混币池

零钞(Zcash)是一种利用零知识证明(zero knowledge proof)来构造一个完美混币池的密码学货币。

1、零知识证明

指的是证明者能够在不向验证者提供任何有用信息的情况下,是验证者相信某个论断是正确的。
zkSNARK是一种基于现代密码学的证明方法,需要一个NP问题作为基本难题。在P!=NP的假定下,暴力猜出一个输入量很大的NP问题的解被视为计算上不可行,验证一个解释对应NP问题的解则比较快。
zkSNARK需要证明者向验证者证明自己知道某个知识时,构造无需证明内容对应的NP问题的解。该NP问题仅与此时的问题相关,与证明者掌握的具体知识无关。Zcash采用的NP问题时二次算数问题QAP(Quadratic Arithmetic Problem),验证时只取一个点对函数值进行验证,因此验证只有O(1)的时间代价。

2、零钞的运行原理

在这里插入图片描述

当用户要花这个币的时候,与比特币需要提供签名不同,用户需要:给出序列号,利用zkSNARK证明自己知道生成存在于承诺列表中的某个承诺的用户私钥(但不透露具体是哪个承诺。
而矿工只需要验证交易发起方的零知识证明,确认某个交易发起人可以使用承诺列表里的某个承诺,并把承诺把对应序列号放入列表。在这个过程中,矿工不知道用户具体用了哪个承诺,而仅仅知道某个承诺被使用了。而序列号的唯一性保证了同一个承诺不能使用两次(防止双花)。
用户还可以赎回操作把混币池中的零钞提取出来。

三、Hawk:保护合约数据私密性

零钞方案正对交易双方身份,金额等信息进行隐私保护,但并不能保护区块链合约内容的隐私性。
多方计算是密码学中一类经典算法,专门用于解决多实体在乎不透露秘密的情况下合作利用秘密来计算的问题。如姚期智百万富翁问题。
可信计算是一种利用硬件来实现一个可信的黑盒子,用于进行多方计算的技术,例如Intel SGX。
Hawk项目是基于以太坊的智能合约平台进行的此时,包括合约部分用的也是Serpent语言。巧妙的结合了zkSNARK和多方计算或者是可信计算。
一个典型的Hawk系统中的合约分为共有合约和私有合约部分。其中私有合约部分负责处理用户的输入并且结合多方计算以及零知识证明来隐藏用户身份和输入数据的具体值,这部分是在manager节点处进行执行的,这也是合约的主要逻辑所在;而公有合约部分表达了一个押金的逻辑,保证任何交易方都不能在中途退出,否则将支付违约金。
为了提供一个隐私保护的执行环境,Hawk借鉴了Zcash中的铸币和浇铸操作,用户可以利用这两个操作隐藏自己的地址;然后只要浇铸的地址目标设定为智能合约地址,矿工在收到交易后会利用多方计算或者可信计算来执行智能合约,算出正确的结果。相比于多方计算,可信计算的效率更高。但是由于需要使用专门的可信计算硬件,则普适性和去中心化不如前者。
与以太坊不同的是,Hawk还提出了如何将智能合约分为公开合约部分和私有合约部分。前者保证公平性,后者用于保证合约的执行和私密性。但是Hawk不能保证合约代码的私密性,只能保证合约代码的输入的私密性。

四、Coco框架

为了解决Quorum通用性不强以及Hawk无法加密合约代码的弊端,Coco框架理论上可以用来保护任意区块链系统的隐私性。
Coco框架充分利用了可信执行环境TEE。利用TEE的证明(attestation)功能和黑箱性质,如果经过证明的区块链代码被完全放入可信硬件这个黑箱中运行,那么区块链的运行状态江边的可信且完全不被外界所知。
Coco框架的优点:灵活、强大的隐私性;更高的效率:可以将低效的共识机制换成更高效的,如Raft等。

1、TEE环境简介

可信计算环境TEE(Trusted Execution Environment)。TEE环境既可以证明放入代码的正确性又可以保证运行时内部数据对外界不可见以及不被篡改,进而可以保障区块链协议关键代码和数据的机密性和完整性,使得区块链应用可以在完全受信任的成员节点上高效运行。

五、以太坊隐私保护技术路线:Baby Zoe

Coco是针对联盟链且需要特殊的硬件。以太坊团队对于隐私保护采用了传统的基于密码学的方式。相比于Zcash,Zoe进行了大量简化,只保留了匿名转账中验证相关的椭圆曲线操作以及复用了Zcash中的公共初始化参数,并只在C++版本的以太坊中加入了libsnark(zkSNARK的代码库)相关代码来辅助生成合约。
ZoE的运行模式和零钞极其类似。但是与普通转账相比,依然会极大的增加转账的代价。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_53982314/article/details/124475831