金融密码学2020回顾:区块链安全、智能合约与密码学技术深度解析

本文回顾了2020年金融密码学会议上的重要技术内容,涵盖区块链共识协议攻击、智能合约程序分析、隐私保护协议设计、安全多方计算优化及后量子密码学等前沿研究,为开发者与安全研究人员提供深入的技术洞见。

金融密码学2020回顾 - Trail of Bits博客

作者:Josselin Feist
发布日期:2020年3月18日
标签:区块链, 会议, 论文评审

几周前,我们参加了第24届金融密码学(FC)会议和可信智能合约研讨会(WTSC),展示了我们在智能合约漏洞分类方面的研究成果(参见执行摘要)以及关于Echidna的海报。尽管FC并非区块链会议,但今年及往年均包含多个区块链相关的演讲。尽管面临全球旅行限制的问题,组织者成功举办了2020年的优秀会议。

以下是我们推荐查阅的部分会议论文:

安全

NEO dBFT协议的安全分析

作者:Qin Wang, Jiangshan Yu, Zhiniang Peng, Van Cuong Bui, Shiping Chen, Yong Ding, Yang Xiang
在对NEO区块链共识协议dBFT(标准PBFT的变体)的评审中,作者发现两次成功的安全性攻击,主要原因是dBFT为优化跳过了特定消息(COMMIT)。我们在Trail of Bits评审过类似共识协议,并乐于了解此处发现的攻击。

破解莫斯科互联网投票系统的加密方案

作者:Pierrick Gaudry, Alexander Golovnev
我们评审过多个链上选举系统,因此该系统的漏洞对我们并不意外。本研究中,莫斯科近期选举中链上投票系统的加密使用了ElGamal的变体3 ElGamal,这是一种多层加密版本。尚不清楚开发者创建此变体的原因,因为它并未增强安全性。他们使用了256位密钥(如你所料)过小;但论文作者认为使用256位密钥是因为其与EVM操作数大小匹配,并允许简单的链上加密实现。该问题在选举前几周被报告,因此开发者在选举前重写了大部分代码库并移除了链上加密。作者随后发现另一个导致一位信息泄露的问题——足以识别投票人的候选人选择。不出所料,该论文受到广泛媒体报道(Coindesk、ZDnet等)。

LockDown:针对闪电网络通道的余额可用性攻击

作者:Cristina Pérez-Solà, Alejandro Ranchal-Pedrosa, Jordi Herrera-Joancomartí, Guillermo Navarro-Arribas, Joaquin Garcia-Alfaro
本文中,作者展示了在比特币闪电网络上触发余额锁定是可能的。本质上,攻击者可在网络中占据对目标的主导地位,使其成为路由支付的主要网关。有趣的是,支付通道允许路径中存在循环,增加了攻击者的费用。

自私挖矿再审视

作者:Kevin Alarcón Negy, Peter Rizun, Emin Gün Sirer
高层面上,自私挖矿发生在矿工不透露已挖掘区块时。自私矿工知道区块已挖掘,可继续挖掘下一个区块,从而获得竞争优势。自私挖矿是区块链中的已知概念,但部分社区认为其推理存在缺陷且攻击无利可图。本文介绍了一种变体,其中矿工在自私挖矿和标准挖矿间切换,并展示了矿工如何从此行为中获利。他们研究了难度调整算法,发现某些区块链似乎更脆弱。通常,以太坊的叔块奖励——当竞争区块被挖掘时(即两个矿工同时找到不同区块)矿工获得小额奖励——似乎使以太坊更脆弱。

程序分析

Marlowe:在区块链上实现和分析金融合约

作者:Pablo Lamela Seijas, Alexander Nemish, David Smith, Simon Thompson
Marlowe是一种基于Haskell的DSL,旨在表示Cardano区块链上的金融合约。该DSL非图灵完备,但旨在为最常见金融合约提供所有必要功能。这是一个不错的进行中工作;查看他们的基于Web的IDE。

强制Java智能合约的确定性

作者:Fausto Spoto
该工作聚焦Takamaka区块链,它允许智能合约用Java编写并在Java虚拟机中执行。Java的主要问题之一是保持确定性执行,而某些标准库非确定性(如HashSet)。这项进行中工作使用已知确定性库的白名单方法,并静态检测函数调用何时危险;然后添加动态检测并在检测到非确定性行为时回滚合约。

Albert:Tezos区块链的中间智能合约语言

作者:Bruno Bernardo, Raphaël Cauderlier, Basile Pesin, Julien Tesson
Albert是Tezos区块链的中间表示。其到Michelson(Tezos上执行的语言)的编译器用Coq编写并验证。这是一个不错的进行中工作,我们乐于看到编译器验证应用于智能合约语言。

组合合约形式化验证的静态分析框架

作者:Fritz Henglein, Christian Kjær Larsen, Agata Murawska
该工作提出了基于合约规范语言(CSL)的抽象解释框架。工作有趣,但不幸的是,CSL尚未找到太多实际用途。

协议设计

分片区块链中的负载均衡

作者:Naoya Okanami, Ryuya Nakamura, Takashi Nishide
本文聚焦Eth 2.0的分片重新分区。随着Eth 2.0,智能合约将在分片间分割,然后必须确定哪个合约在哪个分片。这是一个热门话题,有多种不同方法。例如,Eth 2.0可能以“Yank”操作码结束,允许合约在分片间切换。该工作提出一种负载均衡方法,其中链下竞争者提交不同重新分区方案并在方案被选中时获得奖励。

基于DAG的加密货币的公平性和效率

作者:Georgios Birmpas, Elias Koutsoupias, Philip Lazos, Francisco J. Marmolejo-Cossío
基于DAG的公共账本是区块链的替代方案。一些团队尝试使用DAG(有向无环图)而非线性数据结构存储链历史。基于DAG的账本应比区块链显著扩展更好,但它们创建了难以同步的架构。本文提出了一个无恶意矿工的场景,并显示即使在此情况下,同步仍困难且 heavily依赖矿工连接性。

支付系统区块链上的去中心化隐私保护净额协议

作者:Shengjiao Cao, Yuan Yuan, Angelo De Caro, Karthik Nandakumar, Kaoutar Elkhiyaoui, Yanyan Hu
与IBM合作完成,该工作使用zk-proof创建去中心化净额并允许银行结算余额。参见代码。

MicroCash:微支付的实用并发处理

作者:Ghada Almashaqbeh, Allison Bishop, Justin Cappos
本文中,作者创建了一种处理并行支付的微支付解决方案。大多数现有微支付解决方案需要顺序支付,限制了其使用。作者扩展了现有概率微支付方案。一个限制是系统需要相对稳定的商户集合,但可能匹配大多数现实情况。

驾驭闪电:支付通道的博弈论

作者:Zeta Avarikioti, Lioba Heimbach, Yuyi Wang, Roger Wattenhofer
此处,作者使用博弈论方法进行支付通道的经济建模。他们使用基于图的指标(介数和中⼼性接近度),旨在最⼩化⽤户成本(通道创建成本)同时最⼤化费⽤。这是⼀种有趣的⽅法。某些假设不现实(例如,假设所有节点静态),但他们的⽅法显示在节点⽀付通道位置的策略上有改进空间。

如何从支付通道获利

作者:Oğuzhan Ersoy, Stefanie Roos, Zekeriya Erkin
当作者查看支付通道中节点选择的费⽤时,⼤多数节点似乎使⽤默认值。该⼯作形式化了节点拥有最优费⽤的优化问题,并显示该问题是NP难的。然后提出了⼀种贪婪算法来寻找最优解的近似值。此处他们假设其他节点保持费⽤恒定,这对当前现实,但如果节点开始使⽤更⾼效费⽤策略可能会改变。

高层研究

生存密码丛林:北美加密货币(非)⽤户的风险感知和管理

作者:Artemij Voskobojnikov, Borke Obada-Obieh, Yue Huang, Konstantin Beznosov
这是关于加密货币相关风险感知和管理的⽤户研究。这是⼀项关注⼀般加密货币⽽⾮仅⽐特币的有趣⼯作。如预期,作者发现许多⽤户挣扎于钱包和区块链应⽤的⽤户界⾯,并且若⼲研究的⽤户害怕使⽤加密货币并等待更多监管。

以太坊景观中智能合约类型的特征化

作者:Monika di Angelo, Gernot Salzer
该研究聚焦分类以太坊主⽹活动。它确认了⼀些已知结果:⼤量代码被复制和/或未使⽤。论⽂还显示GasToken负责相当百分⽐的交易。需要此类分类以更好理解区块链的不同趋势和⽤途。

开发者的智能合约开发:社交媒体上讨论的主题和问题

作者:Afiya Ayman, Shanto Roy, Amin Alipour, Aron Laszka
本⽂通过显⽰Stack Exchange和Medium中最常引⽤的⼯具,对安全问题和⼯具引⽤采取了有趣的⽅法。将此⽅法应⽤于其他媒体(Reddit、Twitter)并查看⼯具的软件质量将有趣。例如,Oyente经常被引⽤,但该⼯具⾃2018年以来未更新且不再可⽤。

知识系统化

SoK:稳定币设计的分类框架

作者:Amani Moin, Kevin Sekniqi, Emin Gun Sirer
该⼯作分类了不同稳定币,并将成为有⽤参考。我们对此⼯作感兴趣,因为我们评审过许多引⽤的稳定币。

SoK:第⼆层区块链协议

作者:Lewis Gudgeon, Pedro Moreno-Sanchez, Stefanie Roos, Patrick McCorry, Arthur Gervai
论⽂总结了不同第⼆层解决⽅案,并将成为从事此主题任何⼈的有⽤参考。

安全计算

通信⾼效(客户端辅助)安全双⽅协议及其应⽤

作者:Satsuya Ohata, Koji Nuida
本⽂聚焦基于共享秘密(SS)的MPC,它⽐传统混淆电路更快。⼤多数基于SS的MPC的主要问题是所需通信轮数,这产⽣了显著⽹络延迟。这使得MPC在WAN设置上部署不实⽤,这似乎是MPC的反⽬标。作者专注于减少通信轮数,以便基于SS的MPC可部署在WAN上。

insured MPC:带财务惩罚的⾼效安全计算

作者:Carsten Baum, Bernardo David, Rafael Dowsley
在关于MPC安全属性的演讲中,作者解释传统⼯作主要关注MPC的正确性和隐私性,但缺少某些属性。MPC的安全性还依赖于公平性(如果敌⼿获得输出,所有⼈都获得)、可识别中⽌(如果敌⼿中⽌,每⽅知道谁导致)和公共可验证性(任何第三⽅可验证输出是否正确计算)。因此,作者提出了具有可组合性保证的公共可验证同态承诺⽅案的构建。

星型⽹络中第k⼤元素的安全计算

作者:Anselme Tueno, Florian Kerschbaum, Stefan Katzenbeisser, Yordan Boev, Mubashir Qureshi
此处作者提出了⼀种协议,当多⽅持有私有整数时(例如,⽐较员⼯⼯资⽽不泄露⼯资)查找第k⼤元素。主要思想是在安全多⽅计算(SMC)中使⽤服务器;服务器旨在帮助协议⽽⽆需访问私有信息。

密码学

Zether:⾛向智能合约世界的隐私

作者:Benedikt Bünz, Shashank Agrawal2, Mahdi Zamani2, Dan Boneh
Zether利⽤zk-proof允许私⼈资⾦转移。这是热门话题;我们之前从事过Aztec,它提出了类似解决⽅案。虽然bulletproof库是开源的,但智能合约似乎是闭源的。

BLAZE:实⽤基于格的盲签名 for 隐私保护应⽤

作者:Nabil Alkeilani Alkadri, Rachid El Bansarkhani, Johannes Buchmann
本⽂提出了⼀种后量⼦盲签名⽅案。Blaze旨在改进现有⽅案的两个当前限制,即它们要么太慢,要么签名太⼤。

提交你的研究到我们的Crytic研究奖!

FC是我们Crytic 1万美元现⾦奖推荐的同行评审会议之⼀。如果你从事智能合约的程序分析,尝试任何我们的开源⼯具(包括Slither、Echidna、Manticore)并提交你的⼯作参加我们的Crytic奖!我们乐意为任何使⽤我们⼯具进⾏学术研究的⼈提供技术⽀持——只需联系我们。

如果你喜欢此⽂章,分享它: Twitter LinkedIn GitHub Mastodon Hacker News

⻚⾯内容 安全 NEO dBFT协议的安全分析 破解莫斯科互联网投票系统的加密⽅案 LockDown:针对闪电⽹络通道的余额可⽤性攻击 ⾃私挖矿再审视 程序分析 Marlowe:在区块链上实现和分析⾦融合约 强制Java智能合约的确定性 Albert:Tezos区块链的中间智能合约语⾔ 组合合约形式化验证的静态分析框架 协议设计 分⽚区块链中的负载均衡 基于DAG的加密货币的公平性和效率 ⽀付系统区块链上的去中⼼化隐私保护净额协议 MicroCash:微⽀付的实⽤并发处理 驾驭闪电:⽀付通道的博弈论 如何从⽀付通道获利 ⾼层研究 ⽣存密码丛林:北美加密货币(⾮)⽤⻛险感知和管理 以太坊景观中智能合约类型的特征化 开发者的智能合约开发:社交媒体上讨论的主题和问题 知识系统化 SoK:稳定币设计的分类框架 SoK:第⼆层区块链协议 安全计算 通信⾼效(客户端辅助)安全双⽅协议及其应⽤ insured MPC:带财务惩罚的⾼效安全计算 星型⽹络中第k⼤元素的安全计算 密码学 Zether:⾛向智能合约世界的隐私 BLAZE:实⽤基于格的盲签名 for 隐私保护应⽤ 提交你的研究到我们的Crytic研究奖! 最近帖⼦ Trail of Bits’ Buttercup在AIxCC挑战赛中赢得第2名 Buttercup现在开源! AIxCC决赛:录⾳带故事 攻击者的提示注⼊⼯程:利⽤GitHub Copilot 作为新员⼯揭露NVIDIA Triton中的内存损坏 © 2025 Trail of Bits. ⽤Hugo和Mainroad主题⽣成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计