咨询电话:13305142280
您的位置:首页 > 产品中心

圈带动平衡机

斯诺克直播球迷网

零知识证明的力量:去中心化世界的隐私驱动创新

来源:斯诺克直播球迷网    发布时间:2024-01-29 16:45:13

产品详情

零知识证明的力量:去中心化世界的隐私驱动创新


  零知识证明(Zero-Knowledge, 或简称 ZK)技术能解决去中心化世界中的隐私和安全问题。本文通过 DEX、Oracle、投票和拍卖四个实例,说明了 ZK 技术在其中发挥的关键作用。ZK 技术被用于确保在 DEX 上的交易既可以被验证,又可保护用户的隐私,隐藏用户的身份或其他交易细节。基于 ZK 技术能保证从预言机获取的数据的准确性,防止数据在传输或计算过程中被篡改。在区块链投票项目中,有资格的投票者可以以匿名身份做投票,投票信息能预防被预篡改,也是 ZK 技术能够解决的。该技术也可以为区块链拍卖项目中的竞拍者提供身份隐私保护功能,同时还能解决虚假出价的问题。

  区块链没有秘密,所有信息都在公众视野之下,这使得其在隐私保护方面有所欠缺。此外,很多智能合约的运行离不开链下数据,这就带来的额外的安全风险。下文,我们将详细探讨这两大特性会引发的安全问题和潜在风险。

  区块链的公开透明性保证了交易的可追溯性,但同时也会引发安全性问题。比如,DeFi 中的个人隐私的泄露风险和抢跑交易风险。

  隐私泄露:通过地址标签染色法、交易 IP 匹配和广播节点探针等办法能够轻易关联链上地址在现实世界中的实际身份。这些分析方法不但可以揭露用户的身份,还透露了用户的行为模式和投资策略。例如,某个地址的频繁交易或特定类型的交易活动会透露出该用户的投资偏好或习惯,这种信息经常被不正当地用于竞争优势或不恰当地利用。

  抢跑交易:攻击者能利用区块链的透明性来监控待确认的交易队列。他们通过一系列分析这些未处理交易,可以在交易中设置更高的手续费,从而诱导矿工优先处理这些交易。这样,攻击者可以在其他用户之前执行交易,以获取先机优势,为自己谋取利益。这种行为不仅扭曲了交易过程的公平性,还会导致市场操纵和不利于其他用户的情况。

  因此,DeFi 协议的设计和实施应当最大限度地考虑这些潜在的安全威胁。我们应考虑引入额外的隐私保护的方法,以保护用户免受隐私泄露和交易行为分析等风险。

  在区块链中,智能合约无法直接获取链下数据,它们只能访问区块链上的交易数据或其他合约的状态。智能合约是区块链上自动执行的程序,其运行结果必须在所有节点中保持一致性,即给定相同的输入,其执行结果必须完全一致。由于链下数据可能变化,如果智能合约直接获取链下数据,不同节点在执行相同的合约时可能得到不同的结果,这将破坏区块链的一致性。

  然而,许多场景下,智能合约需要依赖链下的数据。例如,一个 DEX 需要获取特定股票或者数字货币的最新价格。这些价格数据通常要从链下的金融市场或者其他交易所获取。区块链系统通常会通过预言机来获取链下的数据。当智能合约需要链下数据时,它能请求预言机,预言机将获取链下数据并返回给智能合约。而且,预言机也可以将链上的数据传输至链下。

  不过,引入预言机也带来了新的安全风险,在一些场景下预言机会因错误或恶意行为提供不准确的数据。因此,预言机的设计和实现需要对安全性给予高度重视。

  涉及到投票和拍卖的区块链项目,也需要仔细考虑特别的安全保护的方法。区块链技术为投票平台提供了透明和不可篡改的特性。然而,筛选合格选民、选民匿名投票、防止投票信息被预先篡改慢慢的变成了了新的挑战。链上拍卖的核心问题是虚假出价和账户可视。当你可以看透对方的筹码,那你就具有了先发优势。

  区块链的公开透明性为 DeFi 领域的许多项目带来了隐私上的挑战。面对这样的挑战,Salus 将以 DEXs 为例,探讨 ZK 技术在增强 DEXs 隐私保护方面的关键作用。

  假设有一个具有隐私保护功能的 private DEX。利用 ZK 技术,它能够隐藏交易信息的部分内容,同时还能验证这些交易的有效性。在这个 DEX 中,只有部分交易信息是公开的,例如所有注册用户,他们的银行账户、存款和取款的资产名称以及数量,如图 1 所示。交易者本人会清楚自己的全部交易信息,但其他交易者无法看到他人的完整交易信息。以下,以五个具体的交易事件为例:

  假设在这个 private DEX 平台上发生了五笔交易,他们相对应的事件信息是:

  平台记录了 Alice 的总支出和总收益,分别是 480 美元和 600 美元。

  这个 private DEX 平台基于 ZK 技术实现了隐私保护功能,其中完整的交易信息只对参与交易的用户可见。该平台不会公开展示完整的交易事件信息,而是提供隐私的事件信息。接下来,我们将详细说明这些隐私事件信息具体指什么,以及怎么样做验证:

  当存款 1000 美元时,银行账户会显示 Alice 的身份。然后 Alice 会得到一个由平台生成的资产凭证或签名。为避免双重支付并确保合规,签名的消息必须包含超出资产细节的额外属性。这些属性包括一个唯一的资产标识符,即 Alice 的用户标识符。这一些信息应该被隐藏,以保持用户的匿名性。Alice 被要求基于 ZK 技术来证明她的盲化用户标识符(the blinded user identifier)等于她的注册凭证(registration credential)。为满足税务报告 - 客户合规要求( tax-report-client-compliance),交易所中卖出资产的收益和提现交易需要被计算。这需要在存款和交易中包括资产购买时的确切成本。为此,我们在资产凭证中引入购买价格作为额外属性。

  当 Bob 存入 10 BTC 时,平台不知道 Bob 的身份。因为这一笔交易并不是法币存款。

  当 Alice 以 800 美元兑换 0.5 BTC 时,她使用 1000 美元的资产凭证请求两个新的凭证,分别是剩余的 200 美元和 0.5 BTC,保持隐藏其细节。平台在特定条件下批准她的请求,这些条件包括基于 ZK 技术证明她有足够的美元,确保凭证共享相同的用户标识符,确认剩余美元金额为非负,匹配 BTC 的价格与最新的凭证,并验证总交易价值等价。

  当提取 0.3 BTC 时,类似于交易操作,除了被交换的资产。Alice 也在区块链上验证了以提取的 BTC 的收据。

  当总支出为 480,总收益为 600 时,Alice 展示了一个带有她身份的有效注册凭证,并请求一个带有新索引的更新注册凭证,将支出和收益重置为零,并获取一个用于向监督管理的机构展示的文件凭证。文件凭证包含 Alice 的线,以及一些监管辅助信息。由于支出和收益被平台隐藏以避免信息泄露,Alice 应证明承诺的支出和收益等于她注册凭证中的数值,平台会进行盲签名(sign blindly)。Alice 解除盲签名并将消息签名对提交给监督管理的机构进行税务报告。

  假设存在一个基于区块链的农业保险智能合约,该合约根据预言机提供的天气数据来判断是否向投保的农场主支付赔偿。例如,如果某地区发生严重干旱,那么该地区的农场主就能从这个保险合约中获得赔偿。

  但是,如果预言机由于某些原因错误报告了该地区的天气状况,比如实际上该地区正遭受严重干旱,而预言机却报告称降雨量正常,这种错误的信息将导致智能合约做出错误判断,从而拒绝向实际上正面临干旱困境的农场主支付赔偿。

  从上面这个例子能够准确的看出,保证预言机提供数据的准确性是至关重要的。zkOracle是基于 ZK 技术的预言机,一个无需信任且安全的预言机。以下,我们将具体介绍传统预言机和 zkOracle 的主要区别,并解释为什么 ZK 技术在其中发挥了关键作用。

  传统的预言机可以被划分为三种不同的类型,我们将从以下四个维度来阐述和比较每种预言机之间的差异:

  在本文中,我们专注于对 Output Oracle 和 I/O Oracle 的讨论。这两种预言机的数据均源自区块链,这在某种程度上预示着这一些数据已经经过了区块链的验证和保护。如何保证预言机计算和传输的安全性是我们讨论的重点问题。

  可以使用 ZK 技术对传统预言机工作流程中的步骤②和步骤③进行 ZK 改造,步骤①保持不变:

  在 computation 组件中基于 ZK 技术对从数据源获取到的数据来进行计算,通常是排序、聚合和过滤,计算的结果是一个 ZK 证明。使计算和输出可验证。

  步骤②计算得到的 ZK 证明可以在智能合约或任何别的环境中被验证。可以通过确认步骤②验证计算的有效性。

  步骤②计算的输出包括链上数据(作为 calldata 完成智能合约调用)和一个可验证的 ZK 证明。这个 ZK 证明可以在智能合约或任何别的环境中被验证。验证可以确认步骤②计算的有效性。

  在区块链上进行的投票活动,所有信息都是公开的,这会使投票者的隐私信息被潜在的攻击者获取。基于区块链的投票项目面临着两大挑战:

  投票结果的可验证性:防止投票数据被篡改,要设计一种机制以确保投票结果的真实性可被验证。

  在基于区块链的投票项目中,如何既保护投票者的身份隐私,又确保投票结果的可验证性,是一个需要巧妙处理的问题。利用 ZK 技术,可以轻松又有效地实现这两者的平衡。

  在区块链匿名投票项目中,结合使用 ZK 技术和 merkle tree 实现匿名投票并验证。我们将投票流程分为三个主要阶段:

  投票者在做投票之前需要用自己的实际身份信息进行资格确认和身份验证。验证通过后,他们将得到一个与自己实际身份无关的匿名身份(anonymous identity)。投票者以该匿名身份做投票可保护个人身份信息不被泄露。

  投票者使用匿名身份做投票之前,需要验证其匿名身份,验证通过的投票者才可以投票。

  使用一个Merkle tree来存储所有投票者的匿名身份,这样做才能够防篡改,保证投票者身份信息的完整性。

  将投票者的匿名身份信息生成的身份承诺作为叶子结点,由少数的叶子结点构造 merkle tree。使用一个基于 merkle tree 的验证电路验证投票者的身份。验证需要三方面的数据:

  当前投票者的身份承诺,记作输入目标节点(input target node)。

  输入目标节点到根节点的路径索引(path index)。路径索引表示目标节点在 merkle tree 中的位置信息,由左 0 右 1 表示。

  在由输入目标节点和路径索引生成根节点的过程中,使用由兄弟节点和用户个人信息生成的身份承诺来确定用户的身份。为了确认和保证用户选票的唯一性,个人会使用经过哈希处理后的身份标识符和外部标识符作为投票证明。

  计算问题:将投票者的匿名身份插入到 merkle tree 中,并进行验证。

  公共参数生成:为了确认和保证 ZK 系统的安全性,需要一个可信的设置来生成用于生成证明和验证证明的公共字符串。

  生成 ZK 证明:能够正常的使用 ZK 电路为投票者生成 ZK 证明。为了产生这样的证明,需要以投票者匿名身份信息和投票信息作为 ZK 电路的输入,这一步通常在链下完成。之后,生成的 ZK 证明就会被上传到区块链上。

  验证 ZK 证明:在链上验证证明,即验证投票的有效性,也就是验证投票者的投票是不是满足这个电路有界系统。如果验证成功,则返回 1,否则返回 0。

  投票合约(Voting contract):投票合约根据部署的验证合约和验证秘钥对投票结果做验证。在用户与合约交互的过程中,ZK 证明的生成和验证都是基于 ZK 电路进行计算的,可以很大程度上保护投票者的身份信息。

  区块链公开拍卖存在一个弊端。由于区块链交易都是公开的,任何人都可以观察到投标者的出价和资金状况。如果一个投标者知道了其他投标者的出价。或者,他知道了其他投标者的身份,就能够准确的通过区块链公开的交易信息得知此账号拥有的可用资金。这个投标者就能够准确的通过其他投标者的出价或者可用资金来调整自己的出价以赢得拍卖。公开区块链拍卖面临着投标者身份公开和资金敞口等挑战。隐私拍卖可以有效的预防这种不公平现象的发生。

  在隐私拍卖中,投标者可以在不透露身份或可用资金的情况下提交出价。要想实现隐私拍卖,必须攻克两大难关。

  保护买方身份:买方账户的身份需要保密,因为揭示账户就会揭示他们在拍卖中的可用资金。

  保护卖方利益:拍卖需要防止恶意投标者(买方)提交超过他们可用资金的出价。

  使用 ZK 技术来保护投标者的身份隐私,同时能验证他们拥有出价的可用资金。

  公开的质押账户(Public staking account):用于提前转移拍卖的入场费;

  隐私账户(Private account):这个账户持有投标者用于满足中标出价的实际资金。换句话说,如果投标者成功中标,这个账户里的钱就会被用来支付中标的价格。

  这两个账户地址毫不相关,其他人无法通过投标者质押账户的交易来确定隐私账户下的最高出价。

  每一个投标者将账户地址的哈希值和可用资金的哈希值预提交至 merkle tree。基于 ZK 技术验证该用户确实拥有该账户地址,即哈希值的原像(原始数据)与账户地址和可用资金一致。

  在投标者递交报价之前,隐私拍卖合约可以检验上一位投标者的账户。为避免同一账户人为抬高价格,上一位投标者不能和当前投标者是同一人。虽然这样的设置无法完全避免一个人同时控制两个质押账户和两个隐私账户,但必须要格外注意的是,拥有两个账户意味着每个账户中的可用资金会减少。这逐步降低了赢得拍卖的机会,因为在资金被质押给 merkle tree 之后,将无法将其转移到隐私账户中。

  使用比较器电路(comparator circuit)来验证投标者的可用资金是否高于出价,主要验证以下内容:

  比较可用资金和投标者的出价。如果比较器的 ZK 电路返回的结果是 true,表明投标者的可用资金等于或高于出价,即出价有效,否则出价无效。

  我们不可以忽视区块链项目在安全性方面所面临的挑战。ZK 技术能为 DeFi 项目提供隐私保护功能,避免用户身份泄露和抢跑攻击等安全问题。该技术也可以为预言机提供更安全的数据验证方法。在区块链投票项目中,ZK 技术的应用可实现匿名投票,既保护了投票者的身份隐私,又能验证投票信息的真实性。在区块链拍卖项目中,使用该技术能保护投标者的身份隐私,同时验证他们拥有足够的出价资金,从而保护卖方的利益。

  然而,这仅仅是 ZK 技术潜力的冰山一角,其真正的能力远远没有被完全挖掘出来。在未来,我们期望看到 ZK 技术在更多的区块链项目中得到应用,为用户更好的提供更好的隐私保护和安全保障。


标签:

相关推荐

在线客服
咨询电话

咨询电话

13305142280

微信咨询
斯诺克直播球迷网
返回顶部
X斯诺克直播球迷网

截屏,微信识别二维码

微信号:13305142280

(点击微信号复制,添加好友)

  打开微信

微信号已复制,请打开微信添加咨询详情!