
DECO科普周:深度研究系列二(数据溯源和真实性)
作者:Chainlink Labs研究团队
作者:Siam Hussain
贡献者:Lorenz Breidenbach、Dahlia Malkhi、Alexandru Topliceanu、Xiao Wang, Chenkai Weng和Fan Zhang
在上一篇文章中,我们提到了证明者需要让验证者相信TLS响应是从某个特定服务器发送的。
DECO包含以下三个部分,即:证明者(Alice或简称“她”)、验证者(Bob或简称“他”)以及TLS服务器(Charlie或简称“它”)。在TLS协议中,客户端(注:在DECO中客户端就是证明者)在每一轮新的会话中会发起秘密挑战,以验证服务器的真实性。TLS是交互式协议,因此验证者需要参与协议执行才能验证数据的真实性。他会作为证明者和服务器之间的代理,记录在TLS协议中传输的字节。在之后证明数据真实性的环节中,这些字节就是证明者和验证者所知的“事实”(truth)。这里需要注意的是,TLS协议可以确保数据无法被“偷听”到,也就是说验证者无法偷听到数据。
服务器完全不知道自己参与了DECO协议。这就需要在执行时不对TLS协议做任何修改,而DECO则需要严格按照TLS协议的每一步执行。首先,证明者会生成TLS会话密钥。然后,再用这把密钥来解密TLS密文。
TLS密钥协议和绑定密钥的证明
在TLS协议一开始,证明者和服务器会使用密钥交换协议(如:Diffie–Hellman)来生成一个TLS会话密钥K,而验证者并不知道K是什么(注:否则就无法保障TLS的安全性)。不过这里存在一个安全漏洞:假如证明者在后续ZKP证明中使用假密钥K′怎么办?这是完全有可能的,因为在现代TLS协议中,加密算法中的密文可以用好几种方式解密。证明者可以将密文解密成服务器之前从来没发送过的内容,而这样做会破坏数据完整性。DECO给出的解决方案是让证明者提交一份绑定密钥的证明,以证明对会话密钥做出的承诺[K]是有效的。
之所以提出这个要求,是为了让证明者向验证者证明,会话密钥K是与验证者记录的会话一对一绑定的。要了解其底层逻辑,首先得了解TLS会话密钥是如何创建的。
我们将用[GZBW22]的TLS 1.3简化版来举例(注:为了方便大家理解,我们将省略证书验证环节,并将多个密钥统一用K来表示)。首先,证明者和服务器会生成一个共享秘密(secret),验证者看不到这个秘密,我们称之为S。然后,他们会在本地基于S计算出密钥K。在下述协议中,HMAC指散列消息认证码(Hash-Based Message Authentication Code),HKDF指HMAC密钥派生函数(HMAC Key Derivation Function),而HASH则是哈希函数。
而在这些中间环节的数值中,服务器只向证明者发送SF。证明者对收到的SF进行验证,查看是否匹配本地计算出的数值。
验证者观察并记录A、B以及SF,并同时知道g和p。他无法计算出K,因为他不知道a和b。要验证[K]是否正确,一个最直接的方式就是证明者将秘密a作为ZKP中的隐私输入来对其作出承诺。然后,证明者和验证者利用已知的数值,可以通过ZKP协议计算出[K]。这个方法虽然很安全,但成本也很高,因为公钥的执行电路(即:计算A和S的模幂)包含大量的与门(AND gates)。
[GZBW22]利用了哈希函数的抗碰撞性(collision-resistance)来优化这个电路。在优化的版本中,证明者不是对a,而是对S做出承诺,因此ZKP电路只需要包含第六到十步。由于验证者已经作为代理在记录SF,因此证明者在第八步后会打开[SF],而验证者则会将[SF]与记录的数值进行对比。哈希函数具有抗碰撞性,因此可以确保证明者无法计算出错误的S≠gab mod p并算出同样的SF值。经过这样的优化后,我们就可以避免在ZKP协议中执行公钥操作,而是只涵盖HMAC和HKDF这两项。HMAC和HKDF中计算最密集的部分就是多次哈希运算(如:SHA-256)。这个哈希函数的电路非常大,但是由于近期交互式ZKP技术取得了一定进展,因此还是可以在合理时间内完成的。
需注意的是,TLS会话中包含多个密钥,不同TLS版本的密钥数量也有所不同。TLS 1.3版包含四个密钥,handshake和appdata中两个方向各有两个密钥。第十步中的K就是从服务器到证明者的appdata密钥。第六到第十步在相反方向中也会重复一遍。在下一章以及后续文章中,我们会具体讲解服务器到证明者的appdata,即:TLS响应。本系列的最后一篇文章会详细讲解证明者到服务器的appdata,即:TLS请求。DECO还会双向验证handshake密钥。
TLS会话解密
证明者和验证者就密钥达成一致协议后,会持有对TLS会话密钥K做出的承诺[K]以及服务器发送的加密TLS响应C。证明者收到C(即:TLS客户端),而验证者则作为代理将其记录下来。在之后证明数据真实性的环节,C就是证明者和验证者都知晓的“事实”(truth)。
证明者和验证者首先会计算对TLS响应R做出的承诺[R]。要做到这一点,他们需要通过ZKP协议执行解密电路R=decrypt(K,C),其中[K]和C是输入的参数。TLS支持许多不同的密码套件,decrypt()的具体内容会根据每一轮会话所选的密码套件而有所差异。在顶层,decrypt()会基于响应的长度反复调用一个对称加密函数(如:AES-GCM-128)。在DECO与Teller的一个概念验证应用中,为了解密一个响应(即:证明者的财务报告),大约调用了1700次AES-128函数。解密一个区块(大小为126B)的AES-128电路包含6400个与门。也就是说,计算[R]需要计算对超过1000万个与门输出做出的承诺。储存这么多承诺对于内存的要求是巨大的。索性,commit-and-prove ZKP能够忘记之前的承诺,因此我们只需要储存一个AES-128电路的承诺即可,其大小不超过1GB。更重要的是,对内存的要求跟对AES-128电路的调用次数没有关系,因此也跟TLS响应的大小没有关系。
在这一步中,证明者和验证者会持有对TLS响应做出的承诺[R]。验证者相信响应是真实的,因为响应来自对加密TLS响应C的解密,而这个C是验证者作为代理记录下来的,而且他使用承诺的密钥[K]验证了计算的有效性。在下一篇文章中,我们将讲解如何解析一个已经验证过的响应。
这是Chainlink Labs研究团队发布的DECO深度研究系列的第二篇文章。欢迎查看本系列的其他文章:
文献参考
[GZBW22] Paul Grubbs、 Arasu Arun、Ye Zhang、Joseph Bonneau和Michael Walfish。
“Zero-Knowledge Middleboxes”,2022年在USENIX安全研讨会上发表。
加入Chainlink官方渠道▼
了解及集成Chainlink预言机服务请联系▼
Chainlink 官方渠道
微博: https://weibo.com/chainlinkofficial
知乎:https://www.zhihu.com/people/chainlink
中文 Twitter: https://twitter.com/ChainlinkCN
Twitter: https://twitter.com/chainlink
中文爱好者电报群:https://t.me/chainlinkfans
Telegram: https://t.me/chainlinkofficial
Discord: https://discord.gg/aSK4zew
GitHub: https://github.com/smartcontractkit/chainlink
SegmentFault:https://segmentfault.com/u/chainlink
QQ群: 6135525
合作联系: [email protected]
比推快讯
更多 >>- Hash Epoch 平台代币 HEST 将于 7 月 9 日全网上线交易
- Matrixport 近 1 小时从 Binance 提取 1500 万 USDT
- 印度捣毁“最多产的暗网毒品集团”,嫌疑人使用门罗币洗钱
- 观点:因加密禁令没收中国用户 FTX 索赔资金缺乏法律依据,FTX 债权以美元计价并结算
- ZachXBT:不承接 Sui 生态相关案件,在该生态系统未得到支持
- 沉寂两年的鲸鱼向 Kraken 转入 230 枚 ETH,价值约 57.9 万美元
- 某巨鲸清仓 21.6 万枚 HYPE,亏损 29 万美元
- Miller Value Partners 首席投资官 Bill Miller IV 质疑比特币征税合理性
- Binance Alpha 昨日交易量报 4.586 亿美元,BR、KOGE、CARV 分列前三
- 马斯克暗示美国党将参与明年中期选举
- RootData:BB 将于一周后解锁价值约 385 万美元的代币
- 某鲸鱼半小时前从 Binance 提取 3000 枚 ETH,其 6 月 10 日以来累计建仓 7001 枚 ETH
- 3 月以来四次做空 BTC 鲸鱼加仓空单,现浮盈已达 1360 万美元
- 区块链珠宝品牌 Bitring 全球扩张,门店选址 LVMH 旗下商场
- 某聪明钱今晨多转空 ETH,现持有价值 386 万美元 25 倍空单
- 马斯克回应“参选时间”为明年
- SOON、BMT、CHESS 等代币于今晨 1 时同时跳水,现跌幅最大超 37%
- 某鲸鱼近半小时向 Hyperliquid 存入 1000 万 USDC 以买入 HYPE 现货并做多 HYPE
- 世界银行将 2025 年全球 GDP 增速预期下调至 2.3%,为 5 年来最低水平
- James Wynn 曾收费拟为 OnlyFans 女主播 meme 币做推广
- 马斯克回应为何对特朗普由爱转恨:赤字会使美国破产
- 过去 7 天 NFT 交易额环比上涨 10.44%达 1.365 亿美元,其中 Polygon 网络交易额涨超 50%
- 1inch 投资基金 5 小时前购买 965.2 万枚 1INCH,价格 0.18 美元
- 最近 24 小时 LetsBonk.fun 发射代币首次多于 Pump.fun
- 疑似同一实体地址购入 350 万枚 FARTCOIN,价值约 426 万美元
- 马斯克在社交媒体上宣布成立“美国党”
- 分析:美国经济表现强劲,纳斯达克指数领跑全球市场
- 新加坡以 2150 万美元罚款收官 22 亿美元洗钱案,涉加密、现金与房产
- 美国特勤局在过去十年追回价值 4 亿美元的数字资产
- 数据:过去 24 小时全网爆仓 7017.21 万美元,多单爆仓 4639.57 万美元,空单爆仓 2377.64 万美元
- 以太坊 L2 TVL 回升至 330.8 亿美元,7 日涨幅 2.16%
- Coinbase 研究主管:所谓“史上 ETH 最大空头头寸”系严重夸大
- 说唱歌手 Drake 新歌中提及比特币
- 灰度:相信以太坊能够从美国加密货币友好政策转变中受益
- 下周宏观展望:特朗普关税“终审”倒计时
- 以太坊社区基金:致力于推动 ETH 达到 1 万美元,即将发布后续工作详情
- Sonic 空投第一阶段申领将于 7 月 15 日至 22 日期间随机开放
- 欧央行管委:欧元还未准备好挑战美元的全球储备货币地位
- 加密交易平台 NBX 完成 540 万挪威克朗融资,将用于增持比特币
- 1confirmation 创始人:全力支持 ETH,企业建立 ETH 财库或是好事
- 调查:78%的人表示特朗普的关税将使债务管理变得更加困难
- 柬埔寨与美国达成贸易协议,近期将发布对等关税的联合声明
- Vitalik Buterin:很多机构重视以太坊,以太坊将造福后代
- 众安在线完成 39 亿港元配售,旗下业务或将受益香港稳定币新政
- 疑似 Arthapala 的三个关联地址再次向币安充值 6789 枚 ETH
- 香港财库局长:稳定币储备资产只可放于优质、流动性高的资产
- 分析师:对新入场的公司而言,比特币财库策略的红利期或以结束
- 马斯克是否创建美国党投票已经有超 116 万人参与,65%赞成
- 过去 24 小时 CEX 净流入 5965.36 枚 BTC
- 香港财库局:正筹备发行第三批代币债券并推动贵金属等资产及金融工具代币化
比推专栏
更多 >>观点
比推热门文章
- Hash Epoch 平台代币 HEST 将于 7 月 9 日全网上线交易
- Matrixport 近 1 小时从 Binance 提取 1500 万 USDT
- 印度捣毁“最多产的暗网毒品集团”,嫌疑人使用门罗币洗钱
- 观点:因加密禁令没收中国用户 FTX 索赔资金缺乏法律依据,FTX 债权以美元计价并结算
- ZachXBT:不承接 Sui 生态相关案件,在该生态系统未得到支持
- 沉寂两年的鲸鱼向 Kraken 转入 230 枚 ETH,价值约 57.9 万美元
- 某巨鲸清仓 21.6 万枚 HYPE,亏损 29 万美元
- Miller Value Partners 首席投资官 Bill Miller IV 质疑比特币征税合理性
- Binance Alpha 昨日交易量报 4.586 亿美元,BR、KOGE、CARV 分列前三
- 马斯克暗示美国党将参与明年中期选举