金融密码学2020回顾:区块链安全、协议分析与智能合约技术

本文回顾了2020年金融密码学会议上的重要技术内容,涵盖区块链共识协议攻击、智能合约确定性执行、安全多方计算优化以及隐私保护方案等前沿研究,为密码学和分布式系统开发者提供深入的技术洞见。

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

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

以下是我们推荐查阅的一些会议论文:

安全

NEO的dBFT协议安全分析

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

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

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

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

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

自私挖矿再审视

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

程序分析

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

作者:Pablo Lamela Seijas, Alexander Nemish, David Smith, and 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, and Julien Tesson
Albert是Tezos区块链的中间表示。其到Michelson(Tezos上执行的语言)的编译器用Coq编写并验证。这是一个不错的进行中工作,我们很高兴看到编译器验证应用于智能合约语言。

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

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

协议设计

分片区块链中的负载均衡

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

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

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

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

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

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

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

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

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

如何从支付通道获利

作者:Oğuzhan Ersoy, Stefanie Roos, and Zekeriya Erkin
当作者查看支付通道中节点选择的费用时,大多数节点似乎使用默认值。这项工作形式化了节点具有最优费用的优化问题,并表明该问题是NP难的。然后提出一种贪⼼算法来寻找最优解的近似值。这里他们假设其他节点保持费用恒定,这在目前是现实的,但如果节点开始使用更有效的费用策略可能会改变。

高层次研究

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

作者:Artemij Voskobojnikov, Borke Obada-Obieh, Yue Huang, and Konstantin Beznosov
这是一项关于加密货币相关风险感知和管理的用户研究。这是一项有趣的工作,专注于一般加密货币,不仅仅是比特币。如预期,作者发现许多用户难以应对钱包和区块链应用程序的用户界面,并且一些研究的用户害怕使用加密货币,正在等待更多监管。

以太坊生态系统中智能合约类型的特征化

作者:Monika di Angelo and Gernot Salzer
这项研究专注于对以太坊主网活动进行分类。它确认了一些已知结果:大量代码被复制和/或未使用。论文还显示GasToken负责了显著百分比的交易。这种分类需要更好地理解区块链的不同趋势和用途。

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

作者:Afiya Ayman, Shanto Roy, Amin Alipour, and Aron Laszka
本文采用了一种有趣的方法来安全问题和工具引用,通过显示在Stack Exchange和Medium中最常引用的工具。将这种方法应用于其他媒体(Reddit、Twitter)并查看工具的软件质量会很有趣。例如,Oyente经常被引用,但该工具自2018年以来未更新且不再可用。

知识系统化

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

作者:Amani Moin, Kevin Sekniqi, and Emin Gun Sirer
这项工作分类了不同的稳定币,并将成为有用的参考。我们对这项工作感兴趣,因为我们审查了许多引用的稳定币。

SoK:第二层区块链协议

作者:Lewis Gudgeon, Pedro Moreno-Sanchez, Stefanie Roos, Patrick McCorry, and Arthur Gervai
论文总结了不同的第二层解决方案,并将为任何从事此主题工作的人提供有用的参考。

安全计算

通信高效(客户端辅助)安全两方协议及其应用

作者:Satsuya Ohata and Koji Nuida
本文专注于基于共享秘密(SS)的MPC,比传统混淆电路更快。大多数基于SS的MPC的主要问题是所需的通信轮数,这产生了显著的网络延迟。这使得MPC在WAN设置上部署不切实际,这似乎是MPC的反目标。作者专注于减少通信轮数,以便基于SS的MPC可以部署在WAN上。

insured MPC:具有财务惩罚的高效安全计算

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

星型网络中第k大元素的安全计算

作者:Anselme Tueno, Florian Kerschbaum, Stefan Katzenbeisser, Yordan Boev, and Mubashir Qureshi
在这里,作者提出了一种协议,当多方持有私有整数时(例如,比较员工工资而不透露工资)查找第k大元素。主要思想是在安全多方计算(SMC)中使用服务器;服务器旨在帮助协议而不访问私有信息。

密码学

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

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

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

作者:Nabil Alkeilani Alkadri, Rachid El Bansarkhani, and 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:隐私保护应用的实用基于格的盲签名 提交你的研究到我们的Crytic研究奖! 近期帖子 使用Deptective调查你的依赖项 系好安全带,Buttercup,AIxCC的评分回合正在进行中! 使你的智能合约成熟超越私钥风险 Go解析器中意外的安全陷阱 我们审查首批DKLs23库的收获 来自Silence Laboratories的23个库 © 2025 Trail of Bits。 使用Hugo和Mainroad主题生成。

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