写在前面

使用chatpdf,翻译摘要,借鉴参考链接:https://github.com/hzysvilla/Academic_Smart_Contract_Papers的方式快速调研当前顶会的论文idea。

Phoenix: Detect and Locate Resilience Issues in Blockchain via Context-Sensitive Chaos

论文动机:作者关注如何检测区块链系统中的弹性问题。弹性是指区块链系统在遇到异常情况后恢复到正常状态的能力。

核心思想:作者引入混沌工程技术来测试区块链系统的弹性。(混沌工程,是一种提高技术架构弹性能力的复杂技术手段。)

设计:作者利用混沌工程在共识层面、网络层面、区块链层面测试了区块链的弹性问题。当发现问题时,收集对应的问题序列,用于问题的回放和分析。

实现:作者根据他们提出的方法提出了Phoenix。 Phoenix 可以部署在 Hyperledger Fabric、FISCO-BCOS、Quorum、Go-Ethereum 和 Binance Smart Chain 上。

评估:Phoenix 已检测到 13 个弹性问题,并成功为所有问题生成了重现序列。

CCS23 | Fuzz on the Beach: Fuzzing Solana Smart Contracts

动机:作者重点讨论如何使用模糊测试来检测 Solana 合约中的安全问题。

核心思想:作者尝试实现一个基于字节码代码覆盖率指导的solana合约模糊测试工具。

设计:作者首先构建链上环境来模拟账户、合约信息等,然后在Solana的eBPF虚拟机中变异交易序列并对合约进行模糊测试。

实施:作者开发了一个工具 FuzzDelSol 来实施他们提出的方法。 FuzzDelSol 使用 libalf 来指导模糊测试并实现了六个漏洞的检测,包括:i)缺少签名者检查,ii)缺少所有者检查,iii)任意跨程序调用,iv)缺少密钥检查,v)整数错误,vi)和基于 lamports 的 bug oracle 来检测 lamport 盗窃。

评估:对 6049 个智能合约的评估表明,FuzzDelSol 的 bug 预言机以高精度和召回率发现了影响较大的漏洞。

Three Birds with One Stone: Efficient Partitioning Attacks on Interdependent Cryptocurrency Networks.

动机:本研究探讨如果区块链网络的自治系统(AS)不独立,对区块链本身安全的威胁。

背景:应用服务器拥有一系列IP,通常是电信运营商或云服务提供商。

核心思想:作者利用不同区块链共享相同AS的特点,首先对Ripple区块链发起分区攻击,进一步分区比特币和以太坊。

技术挑战:区块链网络经常重叠,因此挖掘拓扑数据并不容易。

解决方案:Ripple的网络信息公开,因此通过Ripple发起攻击。

评估:9.4K个区块链节点可被分区攻击。

Towards Automated Safety Vetting of Smart Contracts in Decentralized Applications

动机:作者主要研究DApp的前端UI和DApp的后端合约的不一致,然后对DApp进行一些风险研究。

前期研究:前期工作主要采用启发式规则来检测Dapp漏洞,不具有普适性。

做法:作者首先采用静态分析的方式从DApp的合约代码中提取出程序语义图,然后从DApp的UI中提取出合约的业务逻辑,然后进行一致性检测和风险验证。

创新点:作者利用UI信息来获取Dapp的业务逻辑(即形式化分析中的规范)

评估:作者在野外发现了过期彩票、双重投票等19个新的安全隐患。(expired lottery tickets and double voting)

VRust: Automated Vulnerability Detection for Solana Smart Contracts.

动机:检测 solana 链上智能合约的安全问题。

背景:Solana 是一个无状态的区块链,它要求调用者在合约的接口参数中提供自己需要的数据,这导致了新的攻击面。

核心思想:作者开发了一个静态合约验证工具VRust,将合约转换为MIR的形式,然后比较作者提出的八种固定漏洞模式来检测安全问题。

评估: VRust 已对超过百个 Solana 项目进行评估,发现了 12 个未知漏洞,其中 3 个是核心开发人员确认的 Solana 官方编程库中的严重漏洞

Understanding Security Issues in the NFT Ecosystem

背景:文章首先介绍了以太坊生态系统的基本构成,重点介绍了非同质化代币(NFTs)及其周围形成的经济体系。以太坊是支持加密货币以太币(ETH)和数千个去中心化应用程序(dApps)的技术。以太坊区块链是一个分布式的公共分类账,交易通过矿工解决加密工作证明(PoW)挑战而被打包成区块。文章还介绍了以太坊中的账户类型和智能合约的概念。

动机:作者指出现有文献尚未探索新兴NFT生态系统中的安全挑战,也未对相关威胁进行系统和全面的分析。因此,本文填补了这一空白,旨在帮助NFT市场和其用户了解NFT空间的危险,并为NFT市场避免错误提供指导。

挑战: NFT市场存在着诸多安全、隐私、可用性和经济威胁,而这些威胁可能会对市场参与者造成财务损失。文章试图系统地识别NFT市场中的弱点,并分析外部实体对NFT生态系统构成的威胁。

核心思想:文章的核心思想在于系统化地分析NFT生态系统,包括市场参与者(市场、外部实体和用户)及其相互作用,并提出了一种分析框架。作者还表示将开源他们的分析框架和收集的数据,以帮助研究人员发现新兴NFT经济的更多有趣见解。

Practical Security Analysis of Zero-Knowledge Proof Circuits

动机:作者专注于零知识证明电路中的漏洞检测,特别是由 Circcom 语言编程的电路。

核心思想:作者首先收集现有零知识电路中的漏洞进行分类和建模,然后将零知识电路转换成图,在图上进行漏洞模式匹配和检测。

设计:作者将现有 zkp 电路的漏洞分为三类,包括不安全的组件使用、约束计算差异和非确定性信号。然后作者将零知识协议电路的程序抽象为图结构,即电路依赖图(CDG),并为CDG建立了一套谓词语义检测规则。基于谓词语义检测规则,作者针对上述三类漏洞创建了不同的反模式,然后在图上进行漏洞检测。

实现:作者根据他们提出的方法实现了ZKAP工具。

评估:作者使用该框架实现了 9 个不同的检测器,并对 Github 上流行的 Circcom 项目的超过 258 个电路进行了实验评估。

Confusum Contractum: Confused Deputy Vulnerabilities in Ethereum Smart Contracts.

背景:本文首先提供了区块链技术和智能合约的背景信息。它解释说,区块链驱动的应用程序是通过智能合约实现的,智能合约是存储在区块链上并由以太坊虚拟机(EVM)执行的不可变程序。智能合约在去中心化金融(DeFi)生态系统中发挥着至关重要的作用,在区块链上实现复杂的金融协议。然而,该论文强调了与智能合约相关的潜在安全风险,包括由于安全漏洞和区块链网络的不可变性而造成财务损失的可能性

动机:这项研究的动机源于人们对区块链驱动的去中心化应用程序(dApp)的兴趣日益浓厚以及以太坊生态系统的兴起。作者强调需要解决智能合约中的安全漏洞,特别是被称为混淆合约漏洞的一类漏洞。他们在智能合约相互通信的背景下引入了混淆代理漏洞的概念,攻击者可以将混淆合约中的远程调用转移到他们选择的目标合约和功能上,从而可能导致经济损失或恶意修改持久性合约。

挑战:本文解决的关键挑战之一是大规模识别混乱的合约漏洞。作者强调了考虑到生态系统中部署的大量智能合约,自动识别和利用以太坊主网上的混乱合约和候选目标合约的难度。

核心理念:论文提出的核心思想是开发一个名为 JACKAL 的系统,该系统旨在自动识别和利用以太坊主网上的混淆合约和候选目标合约。 JACKAL 利用自动化分析来识别混淆的合约及其相关的可能目标,旨在解决智能合约交互中混淆的代理漏洞的安全影响。依旧采用了CFG construction,符号执行等方法。

DEFECTCHECKER: Automated Smart Contract Defect Detection by Analyzing EVM Bytecode

这篇文章的方法论是基于符号执行的方法,提出了一种自动化工具DefectChecker,用于检测以太坊智能合约中的合约缺陷。作者首先介绍了智能合约的背景知识,包括智能合约的定义、部署和执行方式。然后,作者提出了八种可能导致智能合约不良行为的合约缺陷,并给出了代码示例。接着,作者介绍了DefectChecker的架构,并对其进行了评估。评估结果表明,DefectChecker在整个数据集上获得了较高的F分数(在整个数据集中为88.8%),并且只需要合理的时间来分析字节码。最后,作者还通过以太坊智能合约的大规模评估和两个真实世界的攻击案例展示了DefectChecker的有效性。
这篇文章的创新之处在于提出了一种基于符号执行的方法来检测智能合约中的合约缺陷,并且设计了一个自动化工具DefectChecker来实现这一目标。通过对智能合约进行符号执行,DefectChecker能够发现八种可能导致不良行为的合约缺陷,为智能合约的安全性提供了保障。
在解决问题方面,这篇文章主要解决了智能合约中存在的合约缺陷可能导致的不良行为和安全隐患问题。通过提出一种自动化工具DefectChecker,作者成功地解决了如何有效地检测智能合约中的合约缺陷,并通过大规模评估和真实世界案例验证了其有效性。
然而,这项研究也面临一些困难,比如智能合约的复杂性和多样性,以及对符号执行技术的高要求。针对智能合约的复杂性和多样性,作者需要设计一种通用的方法来检测各种类型的合约缺陷。而对于符号执行技术的高要求,作者需要解决符号执行在大规模智能合约中的效率和可扩展性问题。
总的来说,这篇文章通过提出一种基于符号执行的方法和自动化工具DefectChecker,成功地解决了智能合约中的合约缺陷检测问题,为智能合约的安全性提供了重要保障。

Proxy Hunting: Understanding and Characterizing Proxy-based Upgradeable Smart Contracts in Blockchains.

这篇文章的主要研究对象是区块链中的可升级代理智能合约(USC),旨在全面了解USC的安全性问题。文章采用了大规模的智能合约数据集,包括8个主流区块链(如以太坊、币安智能链等)中的800,000多个智能合约,时间跨度从2017年到2022年。

文章的方法论主要包括四个方面:挑战、解决方案、详细分析和限制。在挑战和解决方案部分,文章列举了在研究过程中需要解决的技术难题以及提出的解决方案。在详细分析部分,文章描述了对研究问题的分析方法。在限制部分,文章讨论了研究的可能限制。

文章的创新点主要体现在以下几个方面:首先,文章提出了USC的分类法,系统地描述了USC在语法和语义层面的独特行为。其次,文章发现了11种不同的USC设计模式,并分析了它们的优缺点。最后,文章揭示了2546个与USC相关的安全问题,涵盖了六个类别。

在解决问题方面,文章回答了三个重要的研究问题:1)USC在当今区块链世界中的重要性;2)USC的独特行为和设计模式;3)USC的安全问题。通过对这些问题的研究,文章为区块链开发者和用户提供了重要的参考和建议。

文章的困难主要在于如何处理大规模的智能合约数据集,并从中提取有用的信息。此外,由于USC的复杂性和可升级性,研究USC的安全问题也是一个挑战。为了解决这些问题,文章采用了多种技术手段,如静态分析、动态分析和模式识别等。

总之,这篇文章通过对大规模智能合约数据集的研究,全面了解了USC的安全性问题,并提出了有价值的解决方案和建议。这对于区块链开发者和用户来说是非常有意义的。

A Large Scale Study of the Ethereum Arbitrage Ecosystem

动机:当前的大规模套利将如何影响区块链生态。

背景:套利被定义为在两个不同市场以不同的有利价格同时购买和出售同一资产。

核心思想1:作者提出了一种基于图分析的方法来识别套利行为。首先,作者识别代币行为,然后构建代币交易图,然后查找图中是否存在循环,最后提取套利信息。

核心思想2:作者通过重播历史交易来识别过去存在的套利机会。 观察1:当前套利产生的收入可能足以让矿工作恶,因为它远远超过共识挖矿产生的收入。

观察2:当前的套利利益可能使预言机价格操纵攻击更容易实施。

The Blockchain Imitation Game.

这篇文章主要介绍了一种名为“区块链模仿游戏”的方法,该方法旨在探讨利用区块链进行自动化和对抗性交易的可能性。文章提出了一种名为APE的实时模仿攻击方法,该方法支持对以太坊虚拟机(EVM)基础的区块链交易进行自动合成对抗性智能合约。这一方法的创新之处在于能够实时模仿交易并获取显著的财务收益,同时解决了现有保护机制的挑战。
在方法论方面,文章首先介绍了区块链的透明性导致了新型对手的出现,这些对手能够实时复制和抢先执行有利可图的待定交易,从而获得显著的财务收益。为了解决这一问题,文章提出了一种实时模仿攻击方法,通过自动合成对抗性智能合约来替代原有的受害合约,从而实现对交易的模仿和前置执行。
在创新方面,该方法的创新之处在于能够实现对区块链交易的实时模仿和前置执行,从而获得显著的财务收益。同时,文章还介绍了一种用于防御的模仿攻击方法,以及对已知的以太坊和BSC上DeFi攻击的研究结果。
在困难和解决的问题方面,文章指出了实施模仿攻击的三个技术挑战:短暂的前置执行时间窗口、递归识别受害合约并替换为对抗性合约、以及区块链虚拟机的仪器化。为了解决这些挑战,文章提出了相应的技术方法,包括动态控制流图、利润分析器、智能合约合成等技术手段。
总的来说,这篇文章通过提出一种实时模仿攻击方法,解决了区块链交易透明性带来的新型对手问题,并提出了相应的技术方法来克服实施模仿攻击的技术挑战,具有一定的创新性和实用性。

A Mixed-Methods Study of Security Practices of Smart Contract Developers.

动机:作者调查并分析了当前智能合约开发人员对安全的看法。

方法:作者首先对29名参与者进行半结构化访谈和代码审计测试,然后对171名参与者进行在线问卷调查。
观察1:当前开发者不重视智能合约的安全性。原因包括他们更注重效率、代码是从知名项目中分叉出来的、以及他们依赖安全审计。
观察2:开发者对安全漏洞的认知度较高,只有不到一半的参与者在作者设计的审计任务中识别出安全漏洞。
观察3:仅仅依靠文档、参考实现和安全工具等现有措施不足以帮助初级开发人员识别合约安全漏洞。
见解1:行业需要投入更多资源来帮助开发者学习和理解安全漏洞。

Smart Learning to Find Dumb Contracts.

动机:作者研究智能合约漏洞检测问题,具体来说,如何将现有形式化检测工具的源代码级分析能力扩展到字节码。
核心思想:作者使用静态分析工具在源代码级别进行监督学习,然后将源代码编译为字节码,然后通过将源代码级别的漏洞结果与字节码进行匹配来进行机器学习。
实现:作者提出的系统首先使用slither来分析合约源代码,然后将源代码编译为字节码,然后将字节码与slither的检测结果关联起来。
挑战:对于闭源合约,作者会进行两次相似度分析,第一次用于过滤掉那些与已检测到的漏洞相似的字节码,第二次测试用于漏洞检测。
实验:作者提出的系统以 100% 的完成率、99.7% 的准确率和 0.2 秒的平均合约分析时间领先,即比竞争对手快 10-1,000 倍。此外,真阳性率为98.7%,假阳性率为0.6%。

Snapping Snap Sync: Practical Attacks on Go Ethereum Synchronising Nodes.

动机:本研究主要关注以太坊客户端(即go-ethereum)同步机制的安全问题,即通过干扰以太坊的同步机制来达到分叉区块链的目的。
核心思想:作者利用以太坊客户端(geth)同步机制的一些缺陷,如链导入机制、状态剪枝机制、分段区块验证机制等,构建了三种不同的攻击方案。
范围:PoS 分叉之前的以太坊主网中的 geth、以太坊经典、以太坊 PoW。
实现方式:第一种Attack方式利用区块导入机制和状态剪枝机制使合法链失效;第二种攻击方式利用客户端的特征随机验证区块,构造虚假区块,攻击共识;第三种攻击方法是前两种方法的结合。
成本:本次攻击的最优成本只需要百万分之一的挖矿算力即可达到分叉区块链的目的。

Token Spammers, Rug Pulls, and Sniper Bots: An Analysis of the Ecosystem of Tokens in Ethereum and in the Binance Smart Chain (BNB).

动机:作者主要关注以太坊和币安链流动性池中的代币生态,包括:代币生命周期、代币垃圾邮件发送者、代币交易机器人。
方法:作者运行以太坊和币安链全节点收集交易数据,然后根据代币接口和代币事件收集代币信息;根据Dex事件收集代币交易对信息。
洞察1:大约60%的代币活跃时间不到一天,1%的地址创建了异常数量的代币(在20%到25%之间)。
Insight2:作者发现了一种新的骗局,称为“1-day rug pull”,即一天内发生的“rug pull”。这个骗局创造了 2.4 亿美元的利润
Insight3:作者发现市场上的一些代币交易机器人因为无限制地购买代币而成为拉动的受害者。

Automated Inference on Financial Security of Ethereum Smart Contracts.

动机:作者关注如何普遍检测代币合约中的漏洞。
现有工作: 程序静态分析技术仅限于固定模式匹配,不具有通用性;而自动推理技术只能智能检测单个漏洞,不具备可扩展性。
核心思想:作者抽象了代币的相关变量,并利用自动推理技术来检测这些抽象变量的合理性,达到了多漏洞检测的目的。
实现:作者首先利用K框架对代币合约的源代码进行了抽象,然后将代币合约的变量分为不变性(如余额总额)和等价性(如每个账户的余额) ),然后使用Tamarin Prover进行自动推理,最后使用z3检查相关变量是否满足相应的约束。
实验:作者提出的系统可以检测交易顺序依赖(TOD)、时间戳依赖(TD)、可重入、无gas发送、上溢/下溢、transferMint,识别代币合约的准确率高于98%。

Your Exploit is Mine: Instantly Synthesizing Counterattack Smart Contract.

动机:作者研究实时防御针对区块链上智能合约的攻击,特别是通过合约执行中的漏洞发起的攻击。
设计:作者假设相关的攻击交易已经被检测到,所以其主要思想是如何识别攻击合约,生成对抗合约,然后抢先运行攻击者的恶意交易。
挑战:生成反合约时如何识别合约并解除攻击者的访问控制。
思路:对于攻击合约的识别,作者通过部署时间短、攻击交易之间的数据流依赖关系来发现攻击合约。关于攻击者在生成合约时的访问控制,作者通过重放攻击交易并找到跳转语句和交易属性参数(msg.sender或tx.origin)来绕过。
评估:对最近 62 个现实世界漏洞的评估证明了该方法的有效性,成功反击了其中 54 个漏洞。

Mixed Signals: Analyzing Ground-Truth Data on the Users and Economics of a Bitcoin Mixing Service.

摘要:
本文研究了比特币混合服务的用户和经济数据,通过分析真实数据,揭示了用户的风险和策略。研究人员收集了数千笔混合交易的数据,探讨了用户在使用比特币混合服务时尝试保护其匿名性的方法,并对混合交易的真实数据进行了分析,从中获得了有价值的见解。
方法论:
研究采用了数据分析和实证研究方法,通过收集和分析真实的比特币混合交易数据,揭示了用户行为和经济特征。研究人员还对比特币混合服务的内部运作进行了分析,以了解其对用户隐私和安全的影响。
创新:
本研究的创新之处在于利用真实数据对比特币混合服务进行了深入分析,揭示了用户行为和经济特征,为了解加密货币生态系统中的隐私和安全问题提供了有益见解。
困难:
在研究过程中,研究人员面临了收集和分析大量比特币混合交易数据的挑战,以及对比特币混合服务内部运作进行深入理解的困难。
解决的问题:
通过收集大量真实数据并进行深入分析,研究人员解决了对比特币混合服务用户和经济数据的理解问题,为加密货币生态系统中的隐私和安全问题提供了有益的见解。

Is Your Wallet Snitching On You? An Analysis on the Privacy Implications of Web3.

这篇文章主要分析了Web3技术对用户隐私的影响。Web3技术旨在通过去中心化应用程序实现Web的去中心化,而钱包作为应用程序和用户之间的接口起着至关重要的作用。然而,这些技术并没有考虑到用户隐私的保护。因此,本文通过系统地测量了网站和第三方脚本使用钱包信息跟踪用户的普遍性,并评估了各种DApps和钱包泄露用户钱包地址的情况。此外,本文还测量了5个流行的黑名单的有效性,并发现当它们全部结合使用时,44%的第三方仍无法被阻止。
在方法方面,本文使用DuckDuckGo的Tracker Radar Collector(TRC)来爬取流行网站并测量它们的行为。TRC是一个专为大规模Web测量而设计的爬虫,使用Puppeteer库控制基于Chromium的浏览器进行自动化和测试。本文还使用了一些其他的技术和工具来实现其目标。
本文的创新之处在于,它是第一篇系统地测量网站和第三方脚本使用钱包信息跟踪用户在线的研究,并发现了1325个网站中有一些探测用户钱包的行为。此外,本文还是第一篇对各种DApps和钱包泄露用户钱包地址的情况进行大规模测量的研究。
本文的困难在于,Web3技术的去中心化特性使得难以保护用户隐私。此外,由于Web3技术是相对较新的技术,因此缺乏相关的研究和工具来保护用户隐私。
本文解决的问题是,Web3技术的普及使得用户的隐私面临着越来越大的威胁。本文通过系统地测量和分析,揭示了Web3技术对用户隐私的影响,并提出了一些解决方案来保护用户的隐私。

How to Peel a Million: Validating and Expanding Bitcoin Clusters

这篇论文的摘要是关于比特币交易的新启发式方法,以及对现有聚类方法的验证和扩展。研究人员提出了一种新的启发式方法,用于跟踪比特币在全球可见的交易账本中的流动。他们使用平衡的真实数据集来评估这些方法,并探讨了比特币交易的伪匿名性质。

在方法论方面,研究人员设计了一种新的启发式方法,用于跟踪称为“剥离链”的特定类型流动,这代表了同一实体执行的许多交易。他们还开发了基于机器学习的验证方法,并使用真实数据集评估了所有方法,并将它们与现有技术水平进行了比较。

创新之处在于,研究人员提出了一种新的启发式方法,用于跟踪比特币交易中的特定类型的流动,并对现有聚类方法的结果进行验证和扩展。他们还开发了一种基于机器学习的验证方法,以及使用真实数据集进行评估的方法。

在困难方面,比特币交易的伪匿名性质使得跟踪比特币流动变得具有挑战性。研究人员需要克服这种伪匿名性质,以验证和扩展现有的聚类方法。

这篇论文解决了比特币交易中的伪匿名性质,提出了一种新的启发式方法,以及开发了一种基于机器学习的验证方法,为比特币交易的跟踪提供了新的视角和方法。

Abusing the Ethereum Smart Contract Verification Services for Fun and Profit.

这篇文章主要对以太坊智能合约验证服务进行了全面的安全分析,揭示了存在的漏洞,并提出了检测和利用方法。文章首先介绍了以太坊智能合约的背景和重要性,以及智能合约验证服务的设计和实现。接着,文章总结了智能合约验证服务应满足的关键安全属性,并观察到了可能破坏验证的八种漏洞。针对每种漏洞,文章提出了一种通用的检测方法和相应的概念证明,以说明它们如何被利用。文章的分析结果显示,所有研究的智能合约验证服务都可以被攻击。最后,文章测量了这些漏洞的影响,并观察到数百个合约已经被操纵以进行欺诈活动。本文的创新在于对以太坊智能合约验证服务进行了全面的安全分析,并提出了检测和利用方法,揭示了存在的漏洞和潜在的风险。文章的困难在于需要对智能合约验证服务的设计和实现进行深入的研究,并提出通用的检测方法和概念证明。文章解决的问题是智能合约验证服务的安全性和可信度问题,为以太坊生态系统的安全和稳定性提供了重要的参考。

Double and Nothing: Understanding and Detecting Cryptocurrency Giveaway Scams

随着加密货币越来越受欢迎以及用户获取和管理自己的资产,攻击者正从仅仅滥用加密货币作为支付机制转向窃取最终用户的加密资产。在本文中,我们报告了对加密货币赠品诈骗的首次大规模分析。赠品诈骗是一种看似简单的骗局,攻击者设置网页宣传虚假活动,并承诺用户将发送到特定钱包地址的资金增加一倍或三倍。为了了解这些诈骗的数量,我们设计并实现了 CryptoScamTracker,这是一种使用证书透明度日志来识别可能的赠品诈骗的工具。

通过长达 6 个月的实验,CryptoScamTracker 总共发现了 10,079 个针对所有流行加密货币用户的赠品诈骗网站。除了分析赠品诈骗者的托管和域名偏好之外,我们还使用被滥用的加密货币的公共区块链对被盗资金进行了首次定量分析,提取了与属于诈骗者的 2,266 个钱包相对应的交易。我们发现,仅在我们报告期内发现的骗局中,攻击者就已经窃取了相当于数千万美元的资金,并组织了跨不同加密货币的大规模活动。最后,我们发现有证据表明,攻击者试图通过提供资金追回服务来再次伤害用户,并且一些受害者多次向同一骗子发送资金。

动机:作者衡量并调查了攻击者利用网站以高额加密货币回扣对受害者进行网络钓鱼的现状。

做法:作者利用证书信息获取了攻击者的大量钓鱼网站,然后对这些网站的信息进行了大量的分析。此外,作者还分析了攻击者钱包账户的相关交易,以评估损失。

观察1:在作者研究的六个月内,总共观察到 10,079 个钓鱼网站,平均每天 55.7 个钓鱼网站。

观察 2:在作者研究的六个月内,攻击者窃取了相当于数千万美元的资金。

观察3:作者提取了属于诈骗者的2,266个钱包对应的交易。

Partitioning Ethereum without Eclipsing It

这篇文章介绍了一种名为Gethlighting的实际分区攻击,该攻击可以将以太坊全节点与网络隔离数小时,而无需占用目标节点的所有对等连接。作者们提出了一种低速拒绝服务(DoS)策略,有效地阻止了本地区块链的增长数小时,同时未干扰其他以太坊节点的运行。他们讨论了Gethlighting的实际影响、攻击的可扩展性、低成本和发动的简易性,并通过对以太坊主网和测试网中的完整节点进行了受控和实际环境下的实验,证明了攻击的可行性。
方法论方面,作者们详细介绍了五个以太坊客户端的关键特征,这些特征使得Gethlighting攻击成为可能。他们还提出了潜在的对策,指出由于这些特征是系统设计中的一些基本权衡的结果,因此简单地禁用或删除它们并不能可靠地对抗Gethlighting。
该研究的创新之处在于引入了一种新的分区攻击方式,降低了对分区攻击的要求,同时也提出了一些潜在的对策。然而,作者们也指出,由于这些以太坊特征是基本的系统特性而非漏洞,因此并没有简单完备的解决方案可供选择,而提出的一些微小调整可能会带来新的安全隐患,需要进行大规模测试以确定它们在以太坊网络中的最佳组合。
在解决问题方面,作者们提出了Gethlighting攻击的热修复,并指出以太坊基金会已经在2022年9月承认了Gethlighting的漏洞,并在Geth 1.11.0中包含了热修复。
总的来说,这项研究解决了以太坊网络面临的新型分区攻击问题,并提出了一些潜在的对策,为以太坊网络的安全性提供了重要的参考和启示。

Smarter Contracts: Detecting Vulnerabilities in Smart Contracts with Deep Transfer Learning

动机:如何高效、细粒度、可扩展地检测智能合约中的漏洞。

前期工作:非机器学习方法,例如程序分析,效率低且不可扩展;基于机器学习的方法依赖于源代码并智能地执行二元分类。

方法:作者利用迁移学习快速、轻量级地训练包含新漏洞的网络,同时确保漏洞的多分类。

实现:作者首先从区块链中获取合约字节码,然后使用现有的漏洞检测工具(例如Oyente、Mythril、Vandal、Maian)对合约进行标记,最后发送到神经网络进行训练。

评估:本研究中的工具平均可以在每个智能合约 0.15 秒内检测出 11 个漏洞类别,并且所有评估类别的平均 F1 分数为 97%。

BlockScope: Detecting and Investigating Propagated
Vulnerabilities in Forked Blockchain Projects

摘要:
这篇论文介绍了一种名为BlockScope的工具,旨在检测和调查从比特币和以太坊传播到其分叉项目中的漏洞。作者发现了101个先前未知的漏洞,并对漏洞的传播和修补过程进行了深入调查。研究结果显示,比特币的分叉项目发布修补程序的延迟通常很长,大多数超过200天,而以太坊的分叉项目的修补程序发布延迟相对较短,大部分在100天左右。
方法论:
作者提出了一种基于补丁的克隆检测方法,用于在分叉项目中检测易受攻击的代码克隆。他们设计了一种基于上下文的搜索方法,通过相似性度量来高效地定位候选代码克隆,并提出了一种计算两个代码片段相似性的新方法,可以抵御Type-1/2/3克隆。
创新:
本文的创新点在于提出了一种新颖的漏洞检测方法,并成功应用于检测比特币和以太坊分叉项目中的101个先前未知的漏洞,具有较高的精度和召回率。
困难:
在研究过程中,作者面临了从比特币和以太坊传播到其分叉项目的漏洞检测和调查的挑战。此外,他们还发现了修补程序发布的延迟问题,特别是比特币的分叉项目的修补程序发布延迟较长。
解决的问题:
通过提出BlockScope工具和相应的方法论,作者成功解决了在分叉区块链项目中检测和调查漏洞传播的问题,并发现了大量先前未知的漏洞,为区块链安全研究提供了重要的发现和见解。

BlockScope: Detecting and Investigating Propagated
Vulnerabilities in Forked Blockchain Projects

由于区块链的开源性质生态系统中,新区块链分叉或部分分叉是很常见的重用经典区块链的代码。例如,流行的狗狗币、莱特币、币安 BSC 和 Polygon 都是变体比特币/以太坊。因此,这些“分叉”区块链可以
遇到从 Bit-传播的类似漏洞分叉或随后提交获取期间的硬币/以太坊。在本文中,我们对检测和调查分叉区块链中传播的漏洞项目。为了促进这项研究,我们提出了 BlockScope,一种新颖的可以有效且高效地检测多种类型的工具给定现有比特币/以太坊输入的克隆漏洞安全补丁。具体来说,BlockScope 采用基于相似性的代码匹配并设计了一种计算代码相似度的新方法涵盖所有语法范围的变体(即 Type-1、Type-2 和
3型)克隆。此外,BlockScope 自动提取和利用补丁代码的上下文来缩小搜索范围范围并仅定位潜在相关的代码以进行比较。我们的评估表明 BlockScope 实现了良好的精度和高召回率均为 91.8%(召回率比
在最先进的 ReDeBug 中,同时具有接近的精度)。BlockScope 使我们能够发现 101 个以前未知的漏洞
比特币 16 个分叉项目中的 13 个项目的能力以太坊,其中 16 个来自狗狗币,6 个来自莱特币,1 个来自
币安 BSC,以及 Optimism 的 4。我们已经报告了所有开发人员的漏洞;其中40个已修复或已接受,66 个已确认或待处理,并且仅4 被拒绝。我们进一步研究传播和已发现漏洞的修补过程,并揭示了三个从源到分叉项目的漏洞传播类型,以及发布的长时间延迟(大多超过200天)比特币分叉中的补丁(相对于以太坊分叉的 ∼100 天)。

摘要:
这篇论文介绍了一种名为BlockScope的工具,旨在检测和调查从比特币和以太坊传播到其分叉项目中的漏洞。作者发现了101个先前未知的漏洞,并对漏洞的传播和修补过程进行了深入调查。研究结果显示,比特币的分叉项目发布修补程序的延迟通常很长,大多数超过200天,而以太坊的分叉项目的修补程序发布延迟相对较短,大部分在100天左右。

方法论:
作者提出了一种基于补丁的克隆检测方法,用于在分叉项目中检测易受攻击的代码克隆。他们设计了一种基于上下文的搜索方法,通过相似性度量来高效地定位候选代码克隆,并提出了一种计算两个代码片段相似性的新方法,可以抵御Type-1/2/3克隆。

创新:
本文的创新点在于提出了一种新颖的漏洞检测方法,并成功应用于检测比特币和以太坊分叉项目中的101个先前未知的漏洞,具有较高的精度和召回率。

困难:
在研究过程中,作者面临了从比特币和以太坊传播到其分叉项目的漏洞检测和调查的挑战。此外,他们还发现了修补程序发布的延迟问题,特别是比特币的分叉项目的修补程序发布延迟较长。

解决的问题:
通过提出BlockScope工具和相应的方法论,作者成功解决了在分叉区块链项目中检测和调查漏洞传播的问题,并发现了大量先前未知的漏洞,为区块链安全研究提供了重要的发现和见解。

SolCMC: Solidity Compiler’s Model Checker

动机:如何提高智能合约在编译阶段的安全性。

做法:将形式化验证工具SolCMC集成到solc编译器中,让形式化验证工具在编译阶段发挥作用,对智能合约进行更多的安全检查,为开发者提供更多的安全警告。

实现:作者将AST转换为由Horn子句组成的CFG,然后使用定理求解器和模型检查工具进行自动化漏洞推理。根据断言和要求条件,该工具可以检测出界、缺乏下溢、溢出、除以零以及余额不足的传输等问题。基于测试工具检测重入或自毁等问题。

评估:作者使用Beacon Chain Deposit Contract和ERC777的OpenZeppelin实现来证明该工具的有效性。

Demystifying the Composition and Code Reuse in Solidity Smart Contracts.

动机:作者实证研究了智能合约开发过程中的代码重用问题,特别是开发人员重用的代码类型、用途和部署方法。

方法:作者收集了35万个合同项目。由于一个项目可能由多个合同组成,因此笔者将其分为外部合同和自研合同。

Find1:80%的合约来自外部参考,其中NPM占大多数。

Find2:自研合约代码定制化程度不足5%

Find3:35%的外部合约都是相关标准接口(如ERC20),但存在大量接口误用。

Find4:作者提取了61个常见的复用合约部署场景,比如使用uniswap代码获取权限等。

Understanding Solidity Event Logging Practices in the Wild

编写日志消息是一种行之有效的传统编程实践,对于各种应用都至关重要。软件开发活动。 Solidity 中的日志机制编程由高级事件功能启用,但向上到目前为止,还缺乏理解 Solidity 事件日志记录的研究在野外的实践。为了填补这一空白,我们在本文中提供了当前Solidity事件的首次定量特征研究使用 2,915 个流行的 Solidity 项目进行记录实践GitHub。该研究系统地探讨了事件的普遍性日志记录,当前事件日志记录实践的优点,以及特别是事件日志代码演变的原因,并提供8 项原创且重要的发现。调查结果特别包括存在很大比例的独立事件日志代码修改以及不同类别的根本原因独立事件日志记录代码修改是多种多样的(例如,错误修复和节省gas)。我们还给出了影响我们的发现以及这些影响可以启发开发人员,研究人员、工具构建者和语言设计者来改进事件记录实践。为了说明我们的潜在好处研究中,我们在我们的一个项目之上开发了一个概念验证检查器调查结果和检查器有效地检测到有问题的事件日志代码,这些代码在 35 个流行的 tHub 项目中消耗了额外的 Gas9个项目业主已确认发现问题。

EtherDiffer: Differential Testing on RPC Services of Ethereum Nodes

区块链是一种分布式账本,记录点对点网络上用户之间的交易。其中,以太坊是最受欢迎的通用平台,它对智能合约的支持催生了一种新的应用程序形式,称为去中心化应用程序(DApps)。典型的DApp具有链下前端和链上后端架构,前端通常需要与后端网络进行交互,例如获取链上数据或进行交易。因此,以太坊节点实现了官方的RPC规范,并向前端公开了一组统一的RPC方法。然而,该规范有两点不够充分:(1) 缺乏对非确定性事件处理的说明,(2) 缺乏对无效参数的规范。为了有效地揭示由于不足而导致的偏差,本文引入了 EtherDiffer,它可以自动对四个主要节点实现的 RPC 服务进行差异测试。 EtherDiffer 首先通过多并发交易和传播延迟生成一条非确定性链。然后,它应用我们称为基于属性的生成和类型保留突变的关键技术来生成语义有效和语义无效但可执行的测试用例。 EtherDiffer 在目标节点上执行测试用例并报告错误处理或返回值中的任何偏差。评估显示了我们的测试用例生成技术的有效性,成功率分别为 98.8% 和 95.4%。此外,EtherDiffer 还检测到 48 种不同类别的偏差,包括 11 个实施错误,例如崩溃和拒绝服务错误。我们向规范和节点开发人员报告了 44 个检测到的类,并收到了致谢和错误补丁。最后,它在各个技术方面都显着优于官方节点测试工具。我们相信,我们的研究成果可以通过减少节点之间的不一致,为更稳定的 DApp 生态系统做出贡献。

SmartFix: Fixing Vulnerable Smart Contracts by Accelerating Generate-and-Verify Repair using Statistical Models

我们推出了 SmartFix,一种修复易受攻击的智能合约的新技术。由于智能合约是安全关键软件,手动调试繁琐且容易出错,因此迫切需要开发智能合约的自动错误修复技术。虽然最近提出了几种修复方法,但它们并不令人满意,因为现有技术无法同时实现高可修复性、全自动化和安全保证,给实际使用带来了重大问题。 SmartFix 旨在通过使用“生成并验证”方法来解决这些缺点,该方法迭代枚举候选补丁,同时通过调用安全验证器来验证其正确性。然而,在这种方法中,由于搜索空间巨大并且基于验证的补丁验证成本昂贵,因此出现了技术挑战。为了应对这一挑战,我们提出了一种新技术,使用从验证者的反馈中得出的统计模型来加速生成和验证修复过程。在现实世界的以太坊智能合约上的实验结果表明,SmartFix 对于关键类别的漏洞能够实现 94.8% 的修复成功率,远远超过现有最先进技术 sGuard 的 65.4% 的成功率。

TransRacer: Function Dependence-Guided Transaction Race Detection for Smart Contracts

智能合约是定义在区块链上运行的交易规则的程序。由于同一块内的任何合格交易序列都可以由区块链矿工编排,因此由于交易之间的数据竞争(称为交易竞争),可能会出现意外结果。令人惊讶的是,智能合约中的交易竞争尚未得到充分调查。为了解决这个问题,我们提出了 TransRacer,这是一种自动化方法和开源工具,它采用符号执行来检测智能合约中的交易竞争。 TransRacer 分析函数依赖性以识别隐藏在特定合约状态中的交易竞争。它还生成可以触发此类竞争的见证交易。在 50 个真实智能合约上的实验结果显示了 TransRacer 的有效性和效率:它在 255.9 分钟内检测到 426 场比赛,其中包括 149 个导致状态不一致的比赛错误。

DeepInfer: Deep Type Inference from Smart Contract Bytecode.

动机:作者主要关心闭源合约的功能接口恢复问题。具体来说,作者希望从合约字节码中恢复参数的类型和数量以及返回值。

核心思想:作者使用静态分析进行特征提取,然后使用机器学习技术进行类型分析。

挑战:嵌套复杂类型没有固定的规则,很难推断,并且返回值需要推断整个函数。

方法:作者利用多个神经网络在不同阶段扮演不同的角色来解决上述挑战。

设计与实现:第一步,作者使用Gigahorse将字节码升级为SSA的IR,然后提取IR上的类型特征(常量、RD关系),最后在IR上构建CFG;在第二部分中,作者首先使用Word2Vec模型来恢复简单类型和复杂类型的嵌套类型的分类;第三步,作者利用序列生成模型动态还原复杂的嵌套类型;第四步,作者利用GAT网络从CFG中学习返回值类型。

评价:作者设计的系统在准确性和精度方面优于现有系统,并且可以适应不同的编译器版本。

MANDO-GURU: vulnerability detection for smart contract source code by heterogeneous graph embeddings

智能合约越来越多地与区块链系统一起用于高价值应用。人们非常希望在部署智能合约源代码之前确保其质量。本文提出了一种新的基于深度学习的工具 MANDO-GURU,旨在准确检测粗粒度合约级别和细粒度行级别的智能合约中的漏洞。使用控制流图和 Solidity 代码调用图的组合,我们设计了新的异构图注意力神经网络,以编码此类图的不同类型节点和边之间更多的结构和潜在语义关系,并使用图的编码嵌入和节点来检测漏洞。我们对现实世界智能合约数据集的验证表明,根据漏洞类型,MANDO-GURU 可以在合约级别的 F1 分数方面显着改进许多其他漏洞检测技术高达 24%。它是以太坊智能合约中第一个基于学习的工具,可以识别线路级别的漏洞,并将传统的基于代码分析的技术显着改进高达 63.4%。我们的工具可在 https://github.com/MANDO-Project/ge-sc-machine 上公开获取。目前,测试版本已部署在 http://mandoguru.com 上,我们工具的演示视频可在 http://mandoguru.com/demo-video 上观看。

An empirical study of blockchain system vulnerabilities: modules, types, and patterns

区块链作为一种分布式账本技术,变得越来越受欢迎,特别是在支持有价值的加密货币和智能合约方面。然而,区块链软件系统不可避免地存在许多缺陷。尽管智能合约中的错误已被广泛研究,但底层区块链系统的安全错误却很少被探索。在本文中,我们从比特币、以太坊、门罗币、Stellar这四种具有代表性的区块链中,对区块链的系统漏洞进行了实证研究。具体来说,我们首先设计了一个系统的过滤流程,从 GitHub 上的 34,245 个问题/PR(拉取请求)和 85,164 个提交中有效识别 1,037 个漏洞及其 2,317 个补丁。因此,我们构建了第一个区块链漏洞数据集,可从 https://github.com/VPRLab/BlkVulnDataset 获取。然后,我们在三个级别对该数据集进行独特的分析,包括(i)通过识别和关联跨项目的模块路径进行文件级漏洞模块分类,(ii)通过自然语言处理和基于相似性的句子聚类进行文本级漏洞类型聚类,以及(iii)通过生成和聚集捕获补丁代码片段的语法和语义信息的代码更改签名来进行代码级漏洞模式分析。

我们的分析揭示了三个关键发现:(i)某些区块链模块比其他模块更容易受到影响;值得注意的是,与共识、钱包和网络相关的每个模块都有 200 多个问题; (ii) 大约 70% 的区块链漏洞属于传统类型,但我们还确定了四种针对区块链的新类型; (iii) 我们获得了 21 个特定于区块链的漏洞模式,这些模式捕获了独特的区块链属性和状态,并证明它们可用于检测其他流行区块链(例如狗狗币、比特币 SV 和 Zcash)中的类似漏洞。

Declarative smart contracts

本文介绍了 DeCon,一种用于实现智能合约和指定合约级属性的声明式编程语言。由于智能合约操作和合约级属性可以自然地表达为关系约束,DeCon 将每个智能合约建模为一组存储交易记录的关系表。智能合约的这种关系表示可以方便地指定合约属性,促进对潜在属性违规的运行时监控,并通过数据来源使合约调试变得清晰。具体来说,DeCon 程序由一组基于关系表示的声明性规则和违规查询规则组成,分别描述智能合约的实现和合约级属性。我们开发了一种工具,可以将 DeCon 程序编译为可执行的 Solidity 程序,并带有用于运行时属性监控的工具。我们的案例研究表明,DeCon 可以实现现实的智能合约,例如 ERC20 和 ERC721 数字代币。我们的评估结果显示,与开源参考实现相比,DeCon 的边际开销为执行时产生 14% 的中值 Gas 开销,以及用于运行时验证的中值 16% 的 Gas 开销。

SolSEE: a source-level symbolic execution engine for solidity

现有的智能合约符号执行工具大多对字节码进行分析,这会丢失源代码中呈现的高级语义信息。这使得交互式分析任务(例如可视化和调试)极具挑战性,并极大地限制了工具的可用性。在本文中,我们提出了 SolSEE,一种用于 Solidity 智能合约的源代码级符号执行引擎。我们描述了 SolSEE 的设计,重点介绍了其主要功能,并通过基于 Web 的用户界面演示了其用法。 SolSEE 在其支持的高级 Solidity 语言功能和分析灵活性方面展示了相对于其他现有源代码级分析工具的优势。演示视频位于:https://sites.google.com/view/solsee/。

SmartState: Detecting State-Reverting Vulnerabilities in Smart Contracts via Fine-Grained State-Dependency Analysis.

动机:作者专注于智能合约中一类漏洞的识别,即状态恢复漏洞(SRV)。

核心思想:作者基于状态读写和控制流关系构建了新的状态依赖图(SDG),并利用历史交易数据帮助完成图的构建,然后基于图进行SRV检测。

设计:作者首先依靠状态变量的读写关系在函数中构建SDG,然后基于控制流和数据流构建函数之间的SDG边,然后基于静态分析构建一些无法找到的边历史交易指导。最后作者通过判断敏感状态变量是否缺乏访问控制以及在图上是否存在不确定的状态依赖来判断是否存在SRV。

实现:作者构建了一个工具SmartTest来实现其提出的方法。

评估:SmartTest 的准确率达到 87.23%,召回率达到 89.13%,并在真实合约上检测到 11 个 SRV。

iSyn: Semi-automated Smart Contract Synthesis from Legal Financial Agreements

动机:作者研究如何将文本法律协议转换为智能合约程序。

挑战:如何自动将法律协议中的语义保留到智能合约的实施中。

解决方案:作者实现了一种新的IR(中间表示),用于法律协议的语义抽象。

Beyond “Protected” and “Private”: An Empirical Security Analysis of Custom Function Modifiers in Smart Contracts.

动机:作者研究并检测了 Solidity 智能合约中修改器的安全性。修饰符指的是合约函数入口处的一些关键条件,类似于C语言中的assert()。

挑战:复杂合约状态变量的数据依赖以及函数之间的调用关系。

核心思想:作者构造了一个修饰符依赖图(MDG),将修饰符抽象成一个函数,然后利用变量之前的依赖关系和函数的调用关系将修饰符与全局状态变量和函数连接成边,然后在解决千年发展目标的安全问题中。

设计与实现:第一步,作者首先使用Slighter将源代码转换为IR,在Slighter的IR上构建MDG,然后迭代构造新的边(有些边需要多次构造才能获得),直到达到固定点。步骤2,作者使用Z3对MDG进行求解,检测是否有任何修饰符可以被绕过。步骤3:作者利用NLP技术对装饰器的名称进行聚类,然后对当前的装饰器进行分类。

评估:系统分析了包含 62,464 个合约的大型数据集,其中 400 多个合约被识别为可绕过修改器。

Automated Generation of Security-Centric Descriptions for Smart Contract Bytecode

智能合约和 DApp 用户面临着巨大的风险,因为他们没有获得必要的知识来帮助他们避免使用易受攻击和恶意的合约代码。在本文中,我们开发了一种新颖的系统 Tx2TXT,它可以直接从智能合约字节码自动创建以安全为中心的文本描述。为了捕获金融应用程序的安全性,我们正式定义了一个资金转移图来对智能合约中的关键资金流进行建模。为了确保从这些图导出的描述的表达性和简洁性,我们采用基于 GCN 的模型来识别与安全相关的条件语句,并有选择地将它们添加到我们的图模型中。为了将低级字节码指令转换为人类可读的文本脚本,我们利用强大的 API 签名来恢复字节码语义。我们在 890 个标记良好的易受攻击、恶意和安全的合约上评估了 Tx2TXT,其中提供了开发人员制作的描述。我们的结果表明,Tx2TXT 的性能优于最先进的解决方案,可以有效帮助最终用户避免有风险的合约。

Detecting State Inconsistency Bugs in DApps via On-Chain Transaction Replay and Fuzzing

动机:作者关注智能合约中的状态不一致漏洞。具体来说,状态不一致是指合约不符合开发者或用户的期望的状态。例如,抢先交易、重入、缺乏访问控制等都是此类漏洞。

先前的工作:先前使用静态分析的研究误报率极高,而使用动态分析则需要健全的预言机。

核心思想:作者利用历史交易及其上下文(状态、合约调用关系)供模糊测试用户发现此类漏洞。为了避免使用预言机,作者利用每个交易序列执行后状态的一致性来判断合约是否存在漏洞。

设计和实现:作者将他们的方法实现到了工具 IcyChecker 中。 IcyChecker首先收集交易痕迹,然后生成并变异交易序列来对Dapp合约进行模糊测试,并通过查看变异前后的状态一致性来确定合约是否存在漏洞。

评测:IcyChecker 在前 100 个热门 DApp 中共识别出 277 个 SI bug,准确率为 87%。其中九个缺陷具有新的攻击模式,之前的研究从未披露过这些模式,并向相应当局报告了这些模式。

ItyFuzz: Snapshot-Based Fuzzer for Smart Contract

智能合约是重要的金融工具,其安全性至关重要。然而,由于所有交易背后都有持久的区块链状态,智能合约程序很难进行模糊测试。事务的变异序列很复杂,并且通常会导致输入和程序空间的探索不理想。在本文中,我们介绍了一种新颖的基于快照的模糊器 ItyFuzz,用于测试智能合约。在 ItyFuzz 中,我们不是存储交易序列并对其进行变异,而是对状态和单例交易进行快照。为了探索有趣的状态,ItyFuzz 引入了数据流路径点机制来识别具有更多潜在动量的状态。 ItyFuzz 还结合了比较路径点来修剪状态空间。通过维护状态快照,ItyFuzz 可以快速综合重入攻击等具体漏洞。由于ItyFuzz测试智能合约具有秒级的响应时间,因此可以用于链上测试,与本地开发测试相比有很多好处。最后,我们在现实世界的智能合约和一些被黑客攻击的链上 DeFi 项目上评估了 ItyFuzz。 ItyFuzz 在教学覆盖范围方面优于现有的模糊器,并且可以快速找到并生成链上项目的实际漏洞。

Toward Automated Detecting Unanticipated Price Feed in Smart Contract.

动机:本文主要讨论区块链预言机的安全问题,特别是如何实时防御预言机带来的价格操纵问题。

核心思想:作者使用预言机的形式化建模,然后使用实际交易来测试预言机的安全性。

设计:首先开发者需要自己预先定义价格预言机的规范和相应的验证规则,然后使用k框架将内存池中的交易实时进行符号执行,并基于检测是否存在价格操纵关于资金池中的代币数量。

实施:作者将他们的方法实施到了 VeriOracle 工具中。

评价:VeriOracle 的验证时间(约 4 秒)比以太坊的出块时间(约 14 秒)要短,因此非常高效。

DeFiTainter: Detecting Price Manipulation Vulnerabilities in DeFi Protocols

DeFi 协议是在区块链上管理高价值数字资产的程序。价格操纵漏洞是 DeFi 协议中常见的漏洞之一,该漏洞使得攻击者可以通过操纵代币价格来获取超额利润。在本文中,我们提出了 DeFiTainter,一种用于检测价格操纵漏洞的合约间污点分析框架。 DeFiTainter 有两个创新机制来确保其有效性。第一种机制是通过不仅从代码常量而且从合约存储和函数参数恢复调用信息来构建用于合约间污点分析的调用图。第二种机制是专为检测价格操纵漏洞而设计的高级语义归纳,它可以准确识别污点源和污点,并跟踪合约之间的污点数据。对现实世界事件和高价值 DeFi 协议的广泛评估表明,DeFiTainter 优于现有方法,在检测价格操纵漏洞方面实现了最先进的性能,准确率为 96%,召回率为 91.3%。此外,DeFiTainter 还发现了三个先前未公开的价格操纵漏洞。

Definition and Detection of Defects in NFT Smart Contracts

近来,不可替代代币(NFT)的诞生引起了高度关注。 NFT 能够代表用户在区块链上的所有权,并因其受欢迎而经历了巨大的市场销售。不幸的是,NFT 的高价值也使其成为攻击者的目标。 NFT智能合约的缺陷可能被攻击者利用,损害NFT生态系统的安全性和可靠性。尽管这个问题很重要,但目前缺乏专注于分析 NFT 智能合约的系统性工作,这可能会引起人们对用户 NFT 安全性的担忧。为了解决这一差距,在本文中,我们介绍了 NFT 智能合约的 5 个缺陷。每个缺陷都通过代码示例进行定义和说明,突出显示其功能和后果,并配有可能的解决方案来修复它。此外,我们提出了一个名为 NFTGuard 的工具来基于符号执行框架检测我们定义的缺陷。具体来说,NFTGuard 从合约抽象语法树(AST)中提取状态变量的信息,这对于识别符号执行期间的变量加载和存储操作至关重要。此外,NFTGuard 从字节码中恢复源代码级特征,以有效定位缺陷并根据预定义的检测模式报告它们。我们在 16,527 个现实世界的智能合约上运行 NFTGuard,并根据手动标记的结果进行评估。我们发现 1,331 份合约至少包含 5 个缺陷之一,我们的工具实现的总体精度为 92.6%。

WASAI: uncovering vulnerabilities in Wasm smart contracts.

动机:作者关注EOS区块链平台上的WASM(WebAssembly)智能合约的安全问题。

设计:作者使用符号执行来生成 WASM 合约轨迹上的输入,然后使用该输入作为 WASM 合约模糊测试的种子。

挑战:WASM 智能合约底层架构的特殊性,例如内存模型、数据类型等。

解决方案:作者使用hooker,在WASM合约执行时收集相关结构的具体值(trace),以避免符号化。

评估:作者开发了工具 WASAI 来实现他们的方法,WASMI 的速度是现有工具的两倍,并发现了 CVE (CVE-2022-27134)。

Finding permission bugs in smart contracts with role mining.

动机:本研究重点验证智能合约的访问控制策略设计是否合理。

核心思想:作者从历史交易中挖掘对应的角色权限结构,并对这些角色权限进行一致性测试,看看是否存在缺陷。

技术挑战:历史交易提供的角色和权限信息不完整。

解决方案:作者将部分角色权限模型恢复为完整模型的过程抽象为优化问题,采用遗传算法求得最优解。

实现和评估:作者实现了 SPCon 并在角色挖掘基准中采样的 50 个智能合约上对其进行了评估。结果表明,SPCon可以大幅度减少挖矿数量,且精度较高。

eTainter: detecting gas-related vulnerabilities in smart contracts

以太坊区块链上智能合约的执行会消耗用户提交合约调用请求所支付的gas。只要用户在以太坊设定的限制内贡献足够的 Gas,合约就会继续执行。如果提供的 Gas 不足,合约执行将停止,执行期间所做的更改将被恢复。不幸的是,合约可能包含增加执行成本的代码模式,导致合约耗尽燃料。恶意攻击者可以操纵这些模式,在目标受害者合约中引发不良行为,例如拒绝服务 (DoS) 攻击。我们将这些称为与天然气相关的漏洞。我们提出了 eTainter,这是一种静态分析器,用于基于智能合约字节码中的污点跟踪来检测与 Gas 相关的漏洞。我们通过将 eTainter 与之前的工作 MadMax 在带注释的合约数据集上进行比较来对其进行评估。结果表明,eTainter 在准确率和召回率方面均优于 MadMax,并且基于手动检查,eTainter 的准确率为 90%。我们还使用 eTainter 对以太坊区块链上的 60,612 个现实世界合约进行大规模分析。我们发现其中 2,763 个合约中存在与 Gas 相关的漏洞,eTainter 平均在 8 秒内分析一个合约。

Park: accelerating smart contract vulnerability detection via parallel-fork symbolic execution

符号检测已广泛用于检测智能合约中的漏洞。不幸的是,据报道,现有的符号工具花费了太多时间,因为它们需要执行所有路径来检测漏洞。因此,它们的准确性受到时间的限制。为了解决这个问题,在本文中,我们提出了 Park,第一个智能合约并行分叉符号执行的通用框架。主要思想是在符号执行过程中使用多个进程,利用多个CPU核心来提高效率。首先,我们提出了一种基于分叉操作的动态分叉算法来实现并行符号合约执行。其次,针对并行化中SMT性能损失问题,我们提出了一种自适应进程限制和调整算法。第三,我们设计了一种基于共享内存的全局变量重建方法来收集和重建来自不同进程的全局变量。我们将 Park 作为插件实现,并将其应用于两种流行的智能合约符号执行工具:Oyente 和 Mythril。第三方数据集的实验结果表明,与原始工具相比,Park-Oyente 和 Park-Mythril 分别可以提供高达 6.84 倍和 7.06 倍的加速。

SmartDagger: a bytecode-based static analysis approach for detecting cross-contract vulnerability

随着区块链的日益普及,自动检测智能合约中的漏洞正成为一个重要问题。先前的研究主要是识别智能合约漏洞,而没有考虑多个合约之间的交互。由于缺乏对跨合约调用过程中细粒度上下文信息的分析,现有方法经常产生大量的误报和漏报。本文提出了SmartDagger,这是一种通过字节码级别的静态分析来检测跨合约漏洞的新框架。 SmartDagger集成了一套新颖的机制,以确保其跨合约漏洞检测的有效性和效率。特别是,SmartDagger有效地从智能合约字节码中恢复合约属性信息,这对于准确识别跨合约漏洞至关重要。此外,SmartDagger 不再执行典型的繁重且耗时的全程序分析,而是选择性地分析函数的子集并重用数据流结果,这有助于提高其效率。我们对手动标记数据集的进一步评估表明,SmartDagger 在检测跨合约漏洞方面明显优于其他最先进的工具(即 Oyente、Slither、Osiris 和 Mythril)。此外,在现实世界中随机选择的 250 个智能合约数据集上运行 SmartDagger 时,SmartDagger 检测到了 11 个跨合约漏洞,所有这些漏洞都是以前的工具所遗漏的。

Protecting DeFi Apps from Token Leaking Vulnerabilities.

动机:作者研究Token Leaking漏洞问题,具体来说,就是用户可以从DApp异常提取更多代币的问题。

核心思想:作者基于链上交易分析代币交易流程,计算用户充值金额与提现金额的比例,以检测Token Leaking漏洞。

实现:作者首先提取交易中的合约调用树。边是合约的调用关系,节点是代币合约的日志。然后,对树进行启发式修剪以排除不相关的数据。最后,作者将树上的代币交易流程进行合并,根据比例(即提现金额/充值金额)判断是否存在代币泄漏漏洞。

实验:作者提出的系统成功揭示了 30 个 Defi 应用程序的 25 个 Token Leaking 漏洞。

SmartCoCo: Checking Comment-code Inconsistency in Smart Contracts via Constraint Propagation and Binding

智能合约是在区块链上运行的程序。源代码中的注释为开发人员提供了有意义的信息,以方便代码编写和理解。考虑到智能合约中的各种代币标准(例如 ERC-20、ERC-721),开发人员经常从其他项目中复制粘贴代码作为模板,然后将自己的逻辑作为此类模板的附加组件来实现。在许多情况下,代码和注释之间的一致性并不一致,导致注释与代码不一致(我们称之为 CCI)。这种不一致可能会误导开发人员和用户,甚至会给合约带来漏洞。在本文中,我们提出了 SmartCoCo,一种用于检测智能合约中注释代码不一致的新颖框架。特别是,我们的研究重点是与可能导致安全隐患的角色、参数和事件相关的评论。为了实现这一目标,SmartCoCo 将原始智能合约源代码作为输入,并自动分析注释和代码以发现潜在的不一致之处。 SmartCoCo 通过一组传播和绑定策略将注释约束和代码事实关联起来,使其能够有效地发现与更多上下文信息的不一致之处。我们对以太坊上 101,780 个独特的智能合约进行了 SmartCoCo 评估。评估结果表明SmartCoCo取得了良好的效果和效率。特别是,SmartCoCo 报告了 1,745 个智能合约中的 4,732 个不一致之处,其中 439 个手动标记的注释代码不一致的准确率超过 79%。同时,检查一个智能合约平均只需要2.64秒。

Learning Contract Invariants Using Reinforcement Learning

由于智能合约在现代金融生态系统中的普及,人们对正式验证其正确性和安全性的兴趣越来越大。该领域的大多数现有技术都集中于算术溢出等常见漏洞,并通过利用合约不变量(即逻辑公式在交易边界保持)来执行验证。在本文中,我们提出了一种基于深度强化学习的新技术,用于自动学习对于证明算术安全性有用的合约不变量。我们的方法包含一个离线训练阶段,其中验证者使用自己的验证尝试来学习合约不变生成的策略。然后在验证时使用这种学习的(神经)策略来预测可能的不变量,这对于证明算术安全性也很有用。我们在一个名为 Cider 的工具中实现了这个想法,并将其合并到现有的验证器(基于细化类型检查)中,以证明算术安全性。我们的评估表明,Cider 提高了推断不变量的质量以及推断时间,从而以更少的运行时断言实现更快的验证和强化合约。

Effectively Generating Vulnerable Transaction Sequences in Smart Contracts with Reinforcement Learning-guided Fuzzing

随着计算机程序运行在区块链之上,智能合约催生了无数的去中心化应用,同时也带来了安全漏洞,可能会造成巨大的经济损失。因此,检测智能合约的漏洞至关重要且紧迫。然而,现有的智能合约模糊器仍然无法有效地检测需要特定易受攻击的交易序列来触发的复杂漏洞。为了应对这一挑战,我们提出了一种基于强化学习的新型漏洞引导模糊器,即 RLF,用于生成易受攻击的交易序列以检测智能合约中此类复杂的漏洞。特别是,我们首先将模糊智能合约的过程建模为马尔可夫决策过程,以构建我们的强化学习框架。然后,我们创造性地考虑漏洞和代码覆盖率来设计适当的奖励,以便它可以有效地指导我们的模糊器生成特定的交易序列来揭示漏洞,特别是对于与多个功能相关的漏洞。我们进行了大量的实验来评估 RLF 的性能。实验结果表明,我们的 RLF 优于最先进的漏洞检测工具(例如,在 30 分钟内检测到的漏洞数量增加了 8%-69%)。

Reentrancy Vulnerability Detection and Localization: A Deep Learning Based Two-phase Approach

智能合约已被广泛而迅速地与区块链一起用于自动化金融和商业交易,帮助人们达成协议,同时最大限度地减少信任。随着数以百万计的智能合约部署在区块链上,智能合约中的各种错误和漏洞也随之出现。随着深度学习的快速发展,近期许多研究都利用深度学习进行漏洞检测,在部署智能合约之前进行安全检查。这些方法在检测智能合约是否易受攻击方面显示出有效的结果,但在定位导致检测到的漏洞的可疑语句方面的结果仍然不令人满意。 为了解决这个问题,我们提出了一种基于深度学习的两阶段智能合约调试器,用于重入漏洞(最严重的漏洞之一),称为ReVulDL:重入漏洞检测和定位。 ReVulDL 将漏洞检测和定位集成到统一的调试管道中。在检测阶段,给定一个智能合约,ReVulDL使用基于图的预训练模型来学习传播链中的复杂关系,以检测智能合约是否包含重入漏洞。在定位阶段,如果检测到重入漏洞,ReVulDL 利用可解释的机器学习来定位智能合约中的可疑语句,以提供对检测到的漏洞的解释。我们对 47,398 份智能合约的大规模实证研究表明,ReVulDL 在检测可重入漏洞(例如,优于 16 个最先进的漏洞检测方法)和定位易受攻击语句(例如,70.38% 的易受攻击语句是排名前十)。

Identifying Solidity Smart Contract API Documentation Errors

智能合约作为支持透明、可追踪和自动执行的去中心化应用程序的一种手段而越来越受欢迎,这些应用程序能够在去信任的环境中进行价值交换。智能合约的开发人员依靠各种库(例如 OpenZeppelin for Solidity 合约)来提高应用程序质量并降低开发成本。对于不熟悉 API 的开发人员来说,这些库的 API 文档是重要的信息来源。然而,维护高质量的文档并非易事,文档中的错误可能会给开发人员学习 API 的正确用法带来障碍。在本文中,我们提出了一种技术 DocCon,用于检测 Solidity 智能合约库的文档和相应代码之间的不一致。我们基于事实的方法允许从包含有关 API 代码和文档的预先计算事实的数据库中查询不同严重级别的不一致情况。 DocCon 成功检测到流行智能合约库中的高优先级 API 文档错误,包括参数不匹配、需求缺失、描述过时等。我们的实验结果表明,DocCon 实现了良好的精度并且适用于不同的库:我们报告的 29 和 22 个库到目前为止,库开发人员已确认并修复了 40 个错误。

Xscope: Hunting for Cross-Chain Bridge Attacks

跨链桥已经成为支持异构区块链之间资产互操作的最流行的解决方案。然而,在提供高效灵活的跨链资产转移的同时,涉及链上智能合约和链下程序的复杂工作流程导致了新的安全问题。一年来,针对跨链桥的严重攻击事件已超过十起,造成数十亿损失。由于很少有研究关注跨链桥的安全性,社区仍然缺乏减轻这一重大威胁的知识和工具。为了弥补这一差距,我们首次对跨链桥的安全性进行了研究。我们记录了三类新的安全错误,并提出了一组安全属性和模式来表征它们。基于这些模式,我们设计了 Xscope,一个自动工具,用于查找跨链桥中的安全违规行为并检测现实世界的攻击。我们在四个流行的跨链桥上评估 Xscope。它成功检测到所有已知的攻击并发现以前未报告的可疑攻击。 Xscope 视频可在 https://youtu.be/vMRO_qOqtXY 上获取。

Property-Based Automated Repair of DeFi Protocols

编程错误会导致对用于管理大量金融资产的智能合约的安全攻击。自动程序修复(APR)技术旨在通过针对给定问题自动生成补丁来减轻开发人员手动修复错误的负担。现有的智能合约 APR 工具侧重于缓解典型的智能合约漏洞,而不是违反功能规范。然而,在去中心化金融(DeFi)智能合约中,预期行为与实施之间的不一致会转化为与底层金融模型的偏差,从而导致应用程序及其用户的金钱损失。在这项工作中,我们提出了 Definery——一种自动修复不满足用户定义的正确性属性的智能合约的技术。探索更多不同的补丁,同时提供正式的正确性保证。为了达到预期的行为,我们将基于搜索的补丁生成与原始程序的语义分析相结合,以推断其规范。我们修复 9 个真实世界和基准智能合约的实验证明,DeFinery 可以有效地生成其他现有工具无法找到的高质量补丁。

Towards Effective Static Analysis Approaches for Security Vulnerabilities in Smart Contracts

智能合约的普及伴随着针对智能合约的安全攻击的增加,这导致了数百万美元的财务损失和信任的侵蚀。为了使开发人员能够发现智能合约中的漏洞,人们提出了几种静态分析工具。然而,尽管有众多的错误查找工具,但智能合约中的安全漏洞比比皆是,开发人员依赖手动查找漏洞。我们本论文研究的目标是通过提出有效的智能合约静态分析方法来扩大安全漏洞检测的空间。我们研究现有静态分析工具的有效性,并通过分析合约代码对导致安全漏洞的用户输入的依赖性,提出安全漏洞检测解决方案。我们对静态分析工具的评估结果表明,现有的智能合约静态工具存在明显的误报和误报。此外,结果表明,与之前的工作相比,我们的第一个漏洞检测方法在检测漏洞的有效性方面取得了显着提高。

SCVHunter: Smart Contract Vulnerability Detection Based on Heterogeneous Graph Attention Network

智能合约是区块链发展不可或缺的一部分,但它们的漏洞构成了重大威胁。传统的漏洞检测方法严重依赖专家定义的复杂规则,这些规则耗费大量人力,难以适应智能合约的爆炸式扩张。最近一些基于神经网络的漏洞检测研究也有改进的空间。因此,我们提出了SCVHunter,一个用于智能合约漏洞检测的可扩展框架。具体来说,SCVHunter为智能合约设计了基于中间表示的异构语义图构建阶段和基于异构图注意力网络的漏洞检测阶段。特别是,SCVHunter允许用户自由指出图中更重要的节点,以更简单的方式利用专家知识来帮助自动捕获更多与漏洞相关的信息。我们测试了 SCVHunter 的重入、块信息依赖、嵌套调用和事务状态依赖漏洞。结果显示,该方法性能显着,对这些漏洞的准确率分别为 93.72%、91.07%、85.41% 和 87.37%,超越了之前的方法。

When Contracts Meets Crypto: Exploring Developers’ Struggles with Ethereum Cryptographic APIs

为了使智能合约具有密码学的强大功能,以太坊官方引入了一组密码学 API,以促进智能合约中的基本密码操作,例如椭圆曲线操作。然而,由于开发人员不一定是密码学专家,要求他们直接与这些基本 API 交互已经导致了现实世界的安全问题和潜在的可用性挑战。为了指导未来的研究和应对这些挑战的解决方案,我们对以太坊加密实践进行了首次实证研究。通过对 91,484,856 笔以太坊交易、500 个加密相关合约和 483 个 StackExchange 帖子的分析,我们首次深入了解开发人员需要完成的加密任务,并确定他们遇到的五类障碍。此外,我们还对 78 名智能合约从业者进行了在线调查,探讨他们对这些障碍的看法并找出根本原因。我们发现,与智能合约中的一般业务逻辑相比,超过一半的从业者在密码任务中面临更多挑战。他们的反馈凸显了低级加密 API 与他们需要完成的高级任务之间的差距,强调需要改进的加密 API、基于任务的模板和有效的辅助工具。基于这些发现,我们为进一步改进提供了实际意义,并概述了未来的研究方向。

PonziGuard: Detecting Ponzi Schemes on Ethereum with Contract Runtime Behavior Graph (CRBG)

庞氏骗局是一种骗局,近年来在以太坊智能合约中被发现,造成了巨大的经济损失。基于规则的检测方法依赖于具有有限功能和领域知识依赖性的预定义规则。此外,使用机器学习模型的操作码和交易等静态信息无法有效地表征庞氏合约,导致可靠性和可解释性较差。在本文中,我们提出了 PonziGuard,一种基于合约运行时行为的高效庞氏骗局检测方法。受观察到合约的运行时行为能够更有效地从无辜合约中伪装庞氏合约的启发,PonziGuard 建立了一种称为合约运行时行为图(CRBG)的综合图表示,以准确描述庞氏合约的行为。此外,它将检测过程制定为图分类任务,从而提高了其整体有效性。我们在真实数据集上进行了对比实验,并将 PonziGuard 应用于以太坊主网。结果表明,PonziGuard 的性能优于当前最先进的方法,并且在开放环境中也有效。使用 PonziGuard,我们在以太坊主网上识别出了 805 个庞氏合约,预计造成 281,700 以太币或约 5 亿美元的经济损失。

Revealing Hidden Threats: An Empirical Study of Library Misuse in Smart Contracts.

动机:作者关注与智能合约中库滥用相关的安全问题。

方法:作者首先收集了合约审计公司的报告,总结了八类合约开发中常见的库滥用模式,最后在以太坊上寻找合约中库滥用模式的案例。

Insght1:图书馆滥用模式在现实世界中广泛存在,作者分析了 1018 个现实世界合约,在 456 个合约中发现了 905 个滥用案例。

Insght2:99% 的已识别病例集中在三种微妙的模式中。最常见的模式在 204 份合同中出现了 543 次,其中 83 份合同在不同代码位置包含相同类型的滥用行为。

建议:一些缺乏维护或不信任来源的库仍然被许多合约使用。

A Survey on Ethereum Systems Security: Vulnerabilities, Attacks, and Defenses

许多人认为区块链技术将改变许多应用领域的游戏规则。第一代区块链技术(即区块链1.0)几乎专门用于加密货币,而以以太坊为代表的第二代区块链技术(即区块链2.0)是一个开放、去中心化的平台,实现了新的计算范式——去中心化应用(DApp)运行在区块链之上。 DApp 丰富的应用和语义不可避免地引入了许多安全漏洞,这是比特币等纯加密货币系统所没有的。由于以太坊是一个新的、复杂的系统,因此有必要从整体的角度对其安全性有一个系统、全面的理解,这是以前的文献中所没有的。据我们所知,本调查(也可以用作教程)填补了这一空白。我们系统化了以太坊系统安全的三个方面:漏洞、攻击和防御。我们深入了解漏洞根本原因、攻击后果和防御能力,这为未来的研究方向指明了方向。

Smart Contract and DeFi Security Tools: Do They Meet the Needs of Practitioners?

去中心化金融(DeFi)生态系统的发展建立在区块链技术和智能合约导致了对安全可靠的智能合约开发的需求。然而,针对智能合约的攻击正在增加,导致估计财务损失达 64.5 亿美元。研究人员提出了各种自动化安全工具来检测漏洞,但它们对现实世界的影响仍然不确定。在本文中,我们的目的是阐明自动化安全工具在识别可能导致安全问题的漏洞方面的有效性。备受瞩目的攻击及其在行业内的总体使用情况。我们的综合研究包括对五个方面的评估SoTA 自动化安全工具,对导致 23 亿美元损失的 127 起高影响力的现实世界攻击进行了分析,并对 49从事领先 DeFi 协议的开发人员和审计人员。我们的研究结果揭示了一个严峻的现实:这些工具本可以阻止仅占我们数据集中攻击的 8%,金额达 1.49 亿美元23 亿美元的损失中。值得注意的是,所有可预防的攻击与可重入漏洞有关。此外,从业者区分逻辑相关的错误和协议层漏洞现有的措施未能充分解决的重大威胁安全工具。我们的结果强调需要开发专门的工具来满足不同的需求和期望开发人员和审计人员。此外,我们的研究强调了必要性不断改进安全工具以有效解决DeFi 生态系统面临的不断变化的挑战。

SmartMark: Software Watermarking Scheme for Smart Contracts

智能合约是区块链上的自动执行程序,可确保协议不可变且透明,无需中介参与。尽管它在以太坊等许多区块链平台中越来越受欢迎,但即使智能合约需要防止被复制,也没有可用的技术手段。主张软件所有权的一个有希望的方向是软件水印。然而,由于智能合约的独特属性,例如代码大小限制、非自由执行成本以及不支持虚拟机环境下的动态分配等,应用现有的软件水印技术具有挑战性。本文介绍了一种新颖的软件水印方案,称为 SmartMark,旨在保护智能合约的所有权免受盗版活动的影响。 SmartMark 构建目标合约运行时字节码的控制流图,并定位随机选择用于表示水印的字节集合。我们为以太坊实现了一个成熟的原型,将 SmartMark 应用于 27,824 个独特的智能合约字节码。我们的实证结果表明,SmartMark 可以有效地将水印嵌入到智能合约中并验证其存在,满足可信性和不可感知性的要求,同时产生可接受的性能下降。此外,我们的安全分析表明,SmartMark 能够抵御可行的水印损坏攻击;例如,需要大量的虚拟操作码才能有效地禁用水印,从而导致产生不经济的非法智能合约克隆。

AChecker: Statically Detecting Smart Contract Access Control Vulnerabilities

动机:作者主要关注智能合约的访问控制问题,即访问关键变量和代码,以及合约是否实施合理的访问控制。

核心思想:作者将合约的用户角色与相关的状态变量关联起来,恢复状态访问的实现。

设计:作者首先使用反向数据流分析和启发式规则来获取状态变量和访问控制的具体实现,然后使用符号执行和污点分析来看看是否可以绕过状态变量来访问敏感代码或变量。

实现:作者基于 eTainter 实现了他们的方法,并将其命名为 AChecker。

评估:作者在CVE、Smartbug、Popular合约三个数据集上验证了AChecker的有效性。 AChecker 可以以 90% 的精度标记以太坊区块链上 21 个常用合约中的漏洞。

BSHUNTER: Detecting and Tracing Defects of Bitcoin Scripts

比特币平台支持最流行的加密货币,允许通过脚本对其交易进行编程。比特币脚本的缺陷将导致用户丢失比特币。然而,关于比特币脚本缺陷的研究却很少。在本文中,我们通过缺陷定义、缺陷检测和利用追踪三个步骤对比特币脚本的缺陷进行了首次系统调查。首先,我们定义了比特币历史上脚本的六种典型缺陷,即unbind-txid、simple-key、unused-sig、uncertainty-sig、impossible-key和never-true。其中三个是受到社区启发的,三个是我们新推出的。其次,我们开发了一种工具,可以基于符号执行来发现具有任何典型缺陷的比特币脚本,并通过历史精确脚本进行增强。通过分析2009年10月至2022年8月的所有比特币交易,我们发现有383,544笔交易输出支付给存在缺陷的比特币脚本。总金额为3,115.43 BTC,目前约合6000万美元。第三,为了追踪缺陷的利用,我们对比特币虚拟机进行了检测,以记录有缺陷的脚本在现实世界中的支出交易的痕迹。我们发现 84,130 个输出脚本被利用。发布实施数据集和无害数据集。

Demystifying Exploitable Bugs in Smart Contracts

智能合约中的可利用错误已造成重大金钱损失。尽管在智能合约错误查找方面取得了巨大进步,但可利用的错误和现实世界的攻击仍然是趋势。在本文中,我们系统地调查了 2021–2022 年的 516 个独特的现实世界智能合约漏洞,并研究了有多少可以被恶意用户利用且现有分析工具无法检测到。我们进一步将现有工具无法检测到的错误分为七类,并研究其根本原因、分布、审计难度、后果和修复策略。对于每种类型,我们将它们抽象为错误模型(如果可能),以便于在其他合约和未来的自动化中查找类似的错误。我们利用审计现实世界智能合约的发现,到目前为止,我们已因识别 15 个关键的零日可利用错误而获得了 102,660 美元的错误赏金,这些错误如果被利用,可能会造成高达 2252 万美元的经济损失。

Turn the Rudder: A Beacon of Reentrancy Detection for Smart Contracts on Ethereum

智能合约是部署在区块链上的程序,一旦部署就不可更改。可重入性是智能合约中最重要的漏洞之一,已造成数百万美元的财务损失。已经提出了许多重入检测方法。有必要研究这些方法的性能,为其应用提供有用的指导。在这项工作中,我们对 Mythril 和 Sailfish 等五种著名或最近的重入检测工具的能力进行了大规模的实证研究。我们从 Etherscan 收集了 230,548 个经过验证的智能合约,并使用检测工具对去重后的 139,424 个合约进行了分析,最终发现 21,212 个合约存在重入问题。然后,我们手动检查合约中工具定位的缺陷功能。从检查结果来看,我们获得了 34 个可重入的真阳性合约和 21,178 个无可重入的假阳性合约。我们还分析了真阳性和假阳性的原因。最后,我们根据两种合约对工具进行评估。结果显示,该工具检测到的可重入合约中,99.8%以上都是误报,原因有8类,且该工具只能检测到由call.value()引起的可重入问题,其中58.8%可以通过以下方式揭示:以太坊的官方 IDE Remix。此外,我们收集了过去两年报告的现实世界重入攻击,发现这些工具无法发现相应合约中的任何问题。根据这些发现,现有的重入检测工作似乎能力非常有限,研究人员应该转舵去发现和检测除与 call.value() 相关的重入模式之外的新重入模式。

Utilizing parallelism in smart contracts on decentralized blockchains by taming application-inherent conflicts

由于共识协议本身的瓶颈,传统的公共区块链系统的交易吞吐量通常非常有限。随着共识技术的最新进展,性能限制已大大提高,通常达到每秒数千笔交易。由此,事务执行成为新的性能瓶颈。在事务执行中利用并行性是解决此问题并进一步提高事务吞吐量的清晰而直接的方法。尽管最近的一些文献引入了并发控制机制来并行执行智能合约交易,但据报道它们可以实现的加速远非理想。主要原因是所提出的并行执行机制无法有效处理许多区块链应用程序固有的冲突。

在这项工作中,我们深入研究了以太坊中的历史交易执行轨迹。我们观察到应用程序固有的冲突是限制执行期间可利用的并行性的主要因素。我们建议使用分区计数器和特殊交换指令来打破应用程序冲突链,以最大限度地提高潜在的加速速度。当我们评估可实现的最大并行加速时,与串行执行相比,这些技术将此限制加倍至 18 倍,从而接近最佳值。我们还提出了 OCC-DA,一种具有确定性中止的乐观并发控制调度程序,这使得在公共区块链设置中使用 OCC 调度成为可能。

LVMT: An Efficient Authenticated Storage for Blockchain

经过身份验证的存储访问是区块链的性能瓶颈,因为在标准 Merkle Patricia Trie (MPT) 存储结构中,每次访问都可能被放大为潜在的 O(logn) 磁盘 I/O 操作。在本文中,我们提出了一种多层版本化多点 Trie (LVMT),这是一种新型的高性能区块链存储,可显着减少 I/O 放大。 LVMT使用认证多点评估树(AMT)向量承诺协议来在恒定时间内更新承诺证明。 LVMT采用多层设计,支持无限的键值对,并存储版本号而不是值哈希,以避免昂贵的椭圆曲线乘法操作。在我们的实验中,LVMT 在真实以太坊跟踪中的表现优于 MPT,读写操作速度提高了六倍。它还将区块链系统的执行吞吐量提高了高达 2.7 倍。

Latency-First Smart Contract: Overclock the Blockchain for a while

区块链系统可能会因大量交易,导致延迟增加。作为结果,对延迟敏感的用户必须针对每个其他并支付更高的费用以确保他们的交易优先处理。然而,区块链的大部分时间系统(以太坊中为 78%),仍然有大量未使用的计算能力,很少有用户发送交易。讲话为了解决这个问题并减少用户的延迟,我们在本文中提出了延迟优先的智能合约模型,该模型乐观地接受已提交的交易。这允许用户提交在高需求时期做出承诺,然后完成其余工作的优先级较低。从以下角度来看区块链,这暂时“超频”系统。我们为我们的模型开发了一个编程工具,我们的实验表明,所提出的延迟优先智能合约模型可以大大减少高电平期间的延迟要求。

A Decentralized Truth Discovery Approach to the Blockchain Oracle Problem

当区块链应用程序在来自现实世界的数据上运行时,它依赖于将数据从外部源传输到区块链的预言机机制。区块链预言机问题是围绕从外部来源获取可信数据的需要而出现的。之前的工作通过在区块链和外部源之间建立安全通道来解决数据真实性/完整性问题,同时采用去中心化的预言机网络来避免单点故障。然而,当合法的外部来源提交欺诈或欺骗性数据时出现的真实数据挑战仍未得到解决。在本文中,我们介绍了一种名为 DecenTruth 的新型去中心化真相发现预言机架构,以使用以数据为中心的方法解决真实数据挑战。 DecenTruth旨在通过使去中心化的预言机节点能够以链下方式从多源输入中发现公共数据对象的真实值并达成共识,从而提高外部数据输入的“真实性”。它协调了数据平面和共识平面中的技术——真理发现(TD)和异步 BFT 共识——并使节点能够在恶劣的异步网络条件和拜占庭源和存在的情况下,以高精度最终确定数据对象上相同的估计真理。节点。我们实现了 DecenTruth 并在模拟的预言机服务场景中评估了其性能。结果表明,与现有的基于中值的聚合方法相比,DecenTruth 具有显着更高的拜占庭弹性和长期数据馈送准确性。

S-Store: A Scalable Data Store towards Permissioned Blockchain Sharding

分片技术将整个网络划分为多个不相交的组或委员会,被认为是增强区块链可扩展性的革命性解决方案。对于基于帐户的模型,状态数据被划分到所有委员会并组织为 Merkle 树,以确保数据的一致性和不变性。然而,现有的基于 Merkle 树的状态存储技术由于数据迁移和 Merkle 树重建分别产生大量的网络和计算开销而无法横向扩展。在本文中,我们提出了 S-Store,这是一种基于聚合 Merkle B+ 树(AMB-tree)的许可区块链分片的可扩展数据存储技术。 S-Store利用一致性哈希来减少委员会之间的数据迁移,并利用AMB树上的拆分和合并来减少Merkle树重建开销。 S-Store还采用了新颖的委员会附加协议,保证了数据迁移过程中系统服务的可用性。大量实验表明,S-Sotre 在交易执行、数据传输和委员会添加方面优于现有技术一个数量级。

On How Zero-Knowledge Proof Blockchain Mixers Improve, and Worsen User Privacy

零知识证明(ZKP)混合器是最广泛使用的区块链隐私解决方案之一,在支持智能合约的区块链之上运行。我们发现,ZKP 混合器与越来越多的去中心化金融 (DeFi) 攻击和区块链可提取价值 (BEV) 提取紧密交织在一起。通过币流追踪,我们发现205名区块链攻击者和2, 595名BEV提取者利用混合器作为资金来源,同时存入的总攻击收入为41287万美元。而且,美国 OFAC 对最大的 ZKP 混合器 Tornado.Cash 的制裁,已使该混合器的每日存款减少了超过 .

此外,ZKP 混合器通过所谓的匿名集大小来宣传其隐私级别,这与 k-匿名类似,允许用户隐藏在 k 个其他用户的集合中。然而,通过实证测量,我们发现这些匿名设定的说法大多不准确。对于以太坊(ETH)和币安智能链(BSC)上最受欢迎的混合器,我们分别展示了如何将匿名集大小平均减少 和 。我们的经验证据也首次表明用户对 ETH 和 BSC 的隐私偏好不同。

最先进的 ZKP 混合器还通过提供匿名挖矿(AM)激励措施与 DeFi 生态系统交织在一起,即用户通过混合代币获得金钱奖励。然而,与相关工作的主张相反,我们发现 AM 并不一定能提高混音器匿名集的质量。我们的研究结果表明,AM 吸引了对隐私无知的用户,而这些用户不会为改善其他混音器用户的隐私做出贡献。

Know Your Transactions: Real-time and Generic Transaction Semantic Representation on Blockchain & Web3 Ecosystem.

动机:作者重点研究如何识别区块链交易的高级语义,例如代币交换和流动性添加。

核心思想:作者使用图分析方法(网络主题)首先定义一些基本模式,然后利用这些基本模式来挖掘代币交易流。

设计与实现:作者首先将区块链客户端的RPC API重构为并行设计,以提高效率;然后从区块链中提取交易流信息,包括合约创建、代币转账、ETH转账等信息,形成语义图。最后定义了16种基本模式,然后对语义图进行高级语义挖掘和推理。

评价:作者提出的方法可以提取九类高级语义,然后可以应用于交易分类和账户分类。

BERT4ETH: A Pre-trained Transformer for Ethereum Fraud Detection

动机:作者关注如何普遍检测以太坊中的金融欺诈。

核心思想:作者利用机器学习技术提取以太坊的时序特征来检测金融欺诈,而不是传统的图特征。

设计:作者使用Transfermer提取交易序列的特征,然后使用BERT进行预训练,最终检测出相应的欺诈问题。

挑战:区块链数据集的重复和偏差缓解。

解决方案:作者在预训练阶段使用较高的mask率和drop率来解决重复数据的问题,同时作者设计了比较损失函数来解决倾斜缓解问题。

实现:作者根据他们提出的方法提出了 BERT4ETH。

评估:BERT4ETH 在钓鱼账户检测和去匿名任务上取得了较高的命中率。

Cyclic Arbitrage in Decentralized Exchanges

去中心化交易所(DEX)使用户能够创建用于交换任何加密货币对的市场。两种代币的直接汇率可能与市场上的交叉汇率不匹配,这种价格差异为通过不同加密货币进行周期性交易提供了套利的可能性。在本文中,我们对 DEX 中的循环套利进行了系统研究。我们提出了研究循环套利的理论框架。通过我们的框架,我们分析了周期性交易的盈利条件和最佳交易策略。我们利用 Uniswap V2 的交易级数据进一步考察可利用的套利机会和循环套利的市场规模。我们发现交易者在 11 个月内执行了 292,606 次循环套利,获利超过 1.38 亿美元。然而,最有利可图的未开发机会的收入持续高于 1 ETH(4,000 美元),这表明 DEX 市场可能不够高效。通过分析交易者如何实现循环套利,我们发现交易者可以利用智能合约发出原子交易,原子性的实现可以减轻用户在循环套利中因价格影响而造成的经济损失。

TTAGN: Temporal Transaction Aggregation Graph Network for Ethereum Phishing Scams Detection

近年来,网络钓鱼诈骗已成为第二大区块链平台以太坊涉及的最严重的犯罪类型。以太坊上现有的钓鱼诈骗检测技术大多采用传统的机器学习或网络表示学习从交易网络中挖掘关键信息来识别钓鱼地址。然而,这些方法采用最后的交易记录,甚至完全忽略这些记录,仅采用人工设计的特征来表示节点。在本文中,我们提出了一种临时交易聚合图网络(TTAGN)来增强以太坊上的网络钓鱼诈骗检测性能。具体来说,在时间边表示模块中,我们对节点之间历史交易记录的时间关系进行建模,以构建以太坊交易网络的边表示。此外,在edge2node模块中,节点周围的边表示被聚合,以将拓扑交互关系融合到其表示中,也称为交易特征。我们进一步将交易特征与图神经网络获得的常见统计和结构特征相结合来识别网络钓鱼地址。在现实世界的以太坊网络钓鱼诈骗数据集上进行评估,我们的 TTAGN(92.8% AUC 和 81.6% F1 分数)优于最先进的方法,并且还证明了时间边缘表示和 edge2node 模块的有效性。

Automated Detection of Under-Constrained Circuits in Zero-Knowledge Proofs

动机:作者专注于检测零知识电路实现中约束不足的漏洞。欠约束漏洞是指零知识电路中存在多种解,导致恶意用户能够构造恶意证明,导致证明验证失败的情况。

关键思想:作者发现大多数零知识电路的输入只对应于输出,而这些电路的函数可以分解为由输入和一系列中间变量组成的函数。

设计:作者提出了一种检测欠约束漏洞的方法。该方法首先将电路方程中的相关变量表示为函数和输入。当存在无法用函数表示的相关变量时,利用求解器构造等价函数;不断迭代地重复上述过程,直到发现漏洞。

实现:作者根据他们提出的方法实现了QED^2工具。

评估:评估表明QED^2可以成功解决Circomlib中163个算术电路中的70%,并检测到8个可能欠约束的易受攻击的模板。

When is Slower Block Propagation More Profitable for Large Miners?

多年来,比特币矿工很少努力采用几种广受好评的区块加速技术,正如一些人认为的那样,这将确保他们的收入。他们的冷漠激发了一种理论,即较慢的区块传播对某些矿工有利。在本研究中,我们分析并证实了这一违反直觉的理论。具体来说,通过对无意中较慢的区块进行建模,我们表明,控制超过三分之一的总算力的采矿联盟可以通过向外界传播较慢的区块来赚取不公平的收入。随后,我们探讨了攻击者有意识地利用这种现象的策略。结果表明,拥有总算力 45% 的攻击者可以获得总收益的 58%。这种攻击令人震惊,因为它与众所周知的自私挖矿攻击同样重要,但更加隐蔽。最后,我们讨论其检测和防御机制。

Automatic Identification of Crash-inducing Smart Contracts

智能合约是一种运行并驻留在区块链上的特殊软件代码,扩大了区块链的普遍应用,在不依赖外部各方的情况下交换资产。由于区块链具有不可篡改的特性,一旦部署就无法修改。因此,合约和记录将永远保留在区块链上,包括由于运行时错误而导致的失败交易,并导致计算、存储和费用的浪费。在本文中,我们将导致运行时错误的智能合约称为导致崩溃的智能合约。然而,文献中对导致崩溃的智能合约的自动识别的研究有限。识别导致崩溃的智能合约的现有方法要么在发现漏洞方面受到限制(例如基于模式的静态分析),要么非常昂贵(例如程序分析),这对于以太坊来说是不够的。为了减少以太坊上的运行时错误,我们建议一种高效、可泛化且基于机器学习的导致崩溃的智能合约检测器 CASHHSCDET,用于自动识别导致崩溃的智能合约。为了研究 CRASHSCDET 的有效性,我们首先从四个维度(即复杂性指标、计数指标、面向对象指标和 Solidity 特定指标)提出 34 个静态源代码指标来表征智能合约。然后,我们收集经过验证的智能合约的大规模数据集(即 54,739 个),并根据这些智能合约在 Etherscan 上的执行轨迹对它们进行标记。我们与三种最先进的方法进行了全面比较,结果表明 CASHHSCDET 可以获得良好的性能(即 F1 测量平均为 0.937,AUC 平均为 0.980),并且统计上显着提高了基线 0.5% -就 F1 测量而言,提高了 60.4%,就 AUC 而言,提高了 41.2%-44.3%,这表明静态源代码指标在识别导致崩溃的智能合约方面的有效性。我们进一步研究了不同类型指标的重要性,发现不同维度的指标对智能合约特征的描述能力不同。特别是,属于“计数”维度的指标是最具辨别力的指标,但组合所有指标可以实现更好的预测性能。

Security Code Recommendations for Smart Contract

智能合约是存储在区块链上的自动执行程序,并在满足预定条件时运行。许多涉及资产转移的频繁交易都依赖于部署在区块链上的智能合约,因此极易受到攻击,因此确保智能合约的安全至关重要。由于智能合约一旦部署就不可篡改,因此开发者必须提前尽力修复现有漏洞以确保安全。目前智能合约自动程序修复的方法主要采用启发式搜索算法或定义的模式来修复几种明确类型的漏洞。他们只能为特定场景下的开发者提供安全代码建议。我们探索软件历史中更通用的智能合约自动化程序修复。为了为研究软件历史中与智能合约错误修复相关的代码更改铺平道路,我们提出了一个用于方法级程序修复任务的标记公共数据集,包含超过 12 个典型的不安全代码模式。与传统软件中的错误不同,智能合约的漏洞更多地与访问控制和条件语句相关,因为智能合约属于金融资产。针对这个问题,我们设计了一种新颖的双编码器网络,并使用基于语法信息为智能合约设计的代码表示来修复程序。通过在由 10,000 多个程序对组成的新数据集上实施和评估我们的方法,我们证明了我们的方法在定性和定量方面的优越性。

Combine Sliced Joint Graph with Graph Neural Networks for Smart Contract Vulnerability Detection

近年来,智能合约安全由于漏洞造成的巨大经济损失而受到广泛关注。更糟糕的是,修复已部署的智能合约中的错误很困难,因此开发人员必须在部署之前检测智能合约中的安全漏洞。现有的智能合约漏洞检测工作严重依赖专家定义的固定规则,效率低且不灵活。为了克服现有漏洞检测方法的局限性,我们提出了一种基于 GNN 的智能合约漏洞检测方法。首先,我们通过结合抽象语法树(AST)、控制流图(CFG)和程序依赖图(PDG)构建具有句法和语义特征的智能合约函数的图表示。为了进一步增强我们方法的表示能力,我们执行程序切片来规范化图并消除与漏洞无关的冗余信息。然后,我们使用具有混合注意力池的双向门控图神经网络模型来识别智能合约功能中的潜在漏洞。

A Bytecode-based Approach for Smart Contract Classification

随着区块链技术的发展,区块链平台上部署的智能合约数量呈指数级增长,这使得用户很难通过人工筛选找到想要的服务。智能合约的自动分类可以为区块链用户提供基于关键字的合约搜索,有助于有效管理智能合约。目前智能合约分类的研究主要集中在基于合约源代码的自然语言处理(NLP)解决方案。然而,94%以上的智能合约都不是开源的,因此NLP方法的应用场景非常有限。与此同时,NLP 模型很容易受到对抗性攻击。本文提出了一种基于合约字节码特征而不是源代码的分类模型来解决这些问题。我们还使用特征选择和集成学习来优化模型。我们对超过 11K 个现实世界的以太坊智能合约的实验研究表明,我们的模型可以在没有源代码的情况下对智能合约进行分类,并且具有比基准模型更好的性能。与基于 NLP 的模型相比,我们的模型还具有良好的抵抗对抗性攻击的能力。此外,我们的分析表明,许多智能合约分类模型中使用的账户特征对分类影响很小,可以排除。

A Tool to check the Ownership of Solana’s Smart Contracts

Solana 是一个拥有自己的代币的区块链平台,称为 SOL 或 Solana。作为一个区块链网络,Solana 是一个去中心化的公共分类账,用于验证和记录交易。 Solana 区块链具有智能合约功能。与其他区块链(例如以太坊)不同,没有存储库或工具来检查存储在区块链中的智能合约的源代码。这些工具对于增加用户对此类技术的信任至关重要。事实上,区块链最重要的特征之一是透明度,即可以查看要使用的程序的源代码,或者用户希望投资的程序的源代码。然而,在支持智能合约的区块链中,存储的并不是用人类可以理解的高级程序编写的智能合约的源代码,而是字节码,即为要执行的硬件而编写的低级代码。对于某些区块链,例如以太坊,有不同的工具,例如集成开发环境(IDE),可以验证智能合约的源代码是否与区块链节点上安装的字节码相对应。此外,还有不同的存储库收集用高级编程语言编写的智能合约及其相应的字节码。然而,对于 Solana 区块链来说,所有这些工具尚不存在。该研究提出了一种网络工具,可以验证智能合约的所有权,即。 e.用高级编程语言编写的智能合约源代码对应于 Solana 区块链中部署的字节码。此外,我们还通过公共服务发布了用高级编程编写的智能合约源代码,可供研究人员、智能合约开发人员和区块链非专家用户使用。

Analysis Of The Relationship Between Smart Contracts’ Categories and Vulnerabilities

智能合约是通用程序,由于它们在区块链基础设施中执行,因此比传统合约提供更高级别的安全性,并减少与讨价还价实践相关的其他交易成本。开发人员使用智能合约来构建他们的代币并设置赌博游戏、众筹、ICO 和许多其他应用领域。智能合约的安全性也至关重要,因为 SC 在最核心的层面上转移资金。近年来,研究人员提供了一系列影响 SC 的已知漏洞。本研究分析了SC应用领域、领域类别和已知漏洞之间的关系。我们使用主题建模对带有已知漏洞的 SC 精选数据集进行分类。事实上,我们发现某一类 SC 与特定的漏洞密切相关。

On the use of Petri Nets in Smart Contracts modeling, generation and verification

我们讨论 Petri 网形式主义对 BOSE 智能合约设计和开发的贡献。我们基于通过查询 Scopus 和 Google Scholar 获得的最近发表的文献作品的分析来进行这一讨论。我们的分析中出现了不同类型的 Petri 网,包括彩色 Petri 网和工作流网,以及不同类型的工具。我们的讨论包括将Petri网形式主义在智能合约设计和开发中的应用分为三类,即建模、生成和验证。

Goal and Policy Based Code Generation and Deployment of Smart Contracts

区块链环境中智能合约的出现允许开发各种面向交易的可信应用程序。大多数智能合约都是以专门的机器可解释语言(例如 Solidity)编写的脚本来实现的。然而,最近的努力允许使用更通用的语言,例如 GoLang 和 JavaScript。因此,很明显,智能合约应用程序将很快变得更加复杂,并且出现的一个有趣的问题是我们如何确保智能合约代码实现并符合系统利益相关者设定的所需目标和策略。在这篇简短的论文中,我们概述了一种基于模型的方法,用于自动生成和部署智能合约代码,方法是使用扩展目标模型来捕获各个利益相关者设置的任务和策略,并应用代码生成器来生成与以下内容相对应的 Solidity 代码:该模型。

Asparagus: Automated Synthesis of Parametric Gas Upper-bounds for Smart Contracts

动机:作者重点研究如何准确预估合约调用的gas上限,以避免由于gas耗尽而导致的一系列问题。

做法:作者首先在契约函数的CFG上建立状态转移方程以获得gas约束,然后利用数学定理对gas约束进行简化,得到二次gas估计参数方程。

实现:Asparagus首先以RBR(Rule-based Representations)的形式构建CFG,然后将CFG转换为PTS(Polynomial Transition System),然后根据PTS生成相应的气体约束并利用数学定理

实现:Asparagus首先以RBR(Rule-based Representations)的形式构建一个CFG,然后将CFG转换为PTS(Polynomial Transition System),然后根据PTS生成相应的气体约束,并利用数学定理(Farkas) ’ 引理、汉德尔曼定理和普京纳尔的 Positivstellensatz)获得最终的二次参数气体估计多项式。

评估:Asparagus 方法可以处理 80.56% 的功能(156,735 中的 126,269),而 GASTAP 的处理能力为 58.62%。

Elipmoc: advanced decompilation of Ethereum smart contracts

以太坊区块链上的智能合约极大地受益于尖端分析技术,但也带来了重大挑战。主要挑战是已部署合约的极低级别表示。我们推出 Elipmoc,一个用于下一代智能合约分析的反编译器。 Elipmoc 是顶级研究反编译器 Gigahorse 的演变,通过采用多种高精度技术并使其可扩展,对其和其他最先进的工具进行了显着改进。这些技术中包括一种新型的上下文敏感性(称为“事务敏感性”),它提供了对不同动态执行的更有效的静态抽象;用于推断函数参数和返回的路径敏感(但可扩展,通过路径合并)算法;以及完全上下文敏感的私有功能重建过程。因此,基于 Elipmoc 构建的智能合约安全分析和逆向工程工具实现了高可扩展性、精确性和完整性。

Elipmoc 改进了过去所有著名的反编译器,包括其前身 Gigahorse 以及集成到主要以太坊区块链浏览器 Etherscan 中的最先进的工业工具 Panoramix。 Elipmoc 以 99.5% 的速度生成具有完全解析操作数的反编译合约(Gigahorse 为 62.8%),并且在代码反编译方面实现了比 Panoramix 更高的完整性,例如,外部调用语句的覆盖率高出 67%,同时超过速度提高 5 倍。 Elipmoc 是最近(独立)发现流行协议上多个可利用漏洞的推动者,耗资数百万美元。

Ethereum’s Proposer-Builder Separation: Promises and Realities

动机:作者分析了Proposer-Builder Separation(PBS)机制是否起到了去中心化和抗审查的作用。

背景:PBS 机制将矿工(验证者)将区块中的交易排序的能力解耦给两个新角色并重播,即构建者。 PBS 的设计目标有两个:(1) 防止审查,(2) 通过不让大型实体在区块构建方面获得优势来分散交易验证。

方法:作者收集交易池数据、MEV数据、中继数据进行分析。

观察1:PBS允许专业业余构建者与大型实体竞争,但构建者和中继本身仍然是中心化的。

观察2:PBS没有起到抗审查的作用,因为非PBS区块中涉及的制裁地址的交易金额超过了PBS区块的交易金额

洞察:笔者认为,业内大部分中继并不值得信赖,提案者无法获得100%的利润,且中继不具备审计能力。

Challenges in decentralized name management: the case of ENS

DNS 经常因固有的设计缺陷而受到批评,这些缺陷使系统容易受到攻击。此外,域名并不完全由用户控制,这意味着它们很容易被当局和注册商删除。因此,人们一直在努力构建去中心化的名称服务,为域名所有者提供更大的控制权。以太坊名称服务(ENS)就是一个主要例子。然而,现有的工作还没有系统地研究这个新兴系统,特别是在安全和不当行为方面。为了解决这一差距,我们提出了第一个 ENS 大规模测量研究。我们的研究结果表明,ENS 在其四年的发展过程中呈现出增长趋势。我们发现了几个安全问题,包括传统的名称系统问题,以及 ENS 独特属性引入的新问题。我们发现攻击者通过抢注数千个 ENS 名称、大量诈骗区块链地址和恶意网站索引来滥用系统。我们进一步开发了一种新的记录持久性攻击,发现 22,716 个 .eth 名称(占所有名称的 3.7%)容易受到名称劫持。我们的探索表明,我们的社区应该投入更多精力来检测和缓解去中心化名称服务中的问题。

Abusing the Ethereum Smart Contract Verification Services for Fun and Profit

智能合约在以太坊生态系统中发挥着至关重要的作用。由于智能合约中各种安全问题的普遍存在,迫切需要进行智能合约验证,即将智能合约的源代码与其链上字节码进行匹配,以获得智能合约开发者和用户之间的相互信任的过程。尽管智能合约验证服务已嵌入流行的以太坊浏览器(例如 Etherscan 和 Blockscout)和官方平台(例如 Sourcify)中,并在生态系统中广受欢迎,但其安全性和可信度仍不清楚。为了填补这一空白,我们首次对智能合约验证服务进行了全面的安全分析。通过深入研究现有验证器的详细工作流程,我们总结了应满足的关键安全属性,并观察到了八种可能破坏验证的漏洞。此外,我们提出了一系列检测和利用方法来揭示最流行的服务中是否存在漏洞,总共发现了 19 个可利用的漏洞。所有研究过的智能合约验证服务都可以被滥用来帮助传播恶意智能合约,并且我们已经观察到攻击者使用此类技巧进行诈骗的情况。因此,我们的社区迫切需要采取行动来检测和减轻与智能合约验证相关的安全问题,智能合约验证是以太坊智能合约生态系统的关键组成部分。

Strategic Latency Reduction in Blockchain Peer-to-Peer Networks

动机:作者关注以太坊P2P网络的延迟问题以及延迟问题带来的经济安全。

核心思想:作者定义了两种基本类型的延迟,并提出了缓解延迟的解决方案。

Model:作者定义了两种延迟类型:直接延迟和三角延迟。直接延迟是指节点之间的延迟,三角延迟是指一个节点作为另外两个节点的中继时的延迟。

缓解措施:作者在Peri方案的基础上优化了节点间的延迟。具体来说,要求每个节点主动中继区块,否则节点将被强制下线。

评估:作者发现Peri技术可以优化P2P网络一半的延迟。同时,作者证明了设计一个策略证明的对等协议是困难的。

Characterizing Cryptocurrency-themed Malicious Browser Extensions

由于近年来各种加密货币的激增,人们开发了大量的浏览器扩展作为访问相关服务的门户,例如加密货币交易所和钱包。这刺激了以加密货币为主题的恶意扩展的疯狂增长,给用户和合法服务提供商造成了沉重的经济损失。他们已经表现出了逃避扩展商店严格审查流程的能力,这凸显了我们社区对这种新兴恶意软件类型缺乏了解。在这项工作中,我们进行了首次系统研究来识别和表征以加密货币为主题的恶意扩展。我们对七个官方和第三方扩展分发场所进行了 18 个月(2020 年 12 月至 2022 年 6 月)的监控,并收集了约 3600 个独特的加密货币主题扩展。利用混合分析,我们已识别出属于 5 个类别的 186 个恶意扩展程序。然后,我们从各个角度描述这些扩展,包括它们的分发渠道、生命周期、开发人员、非法行为和非法收益。我们的工作揭示了以加密货币为主题的恶意扩展的现状,并揭示了检测技术可以基于的伪装和编程特征。我们的工作旨在向推广用户发出警告,并呼吁推广商店经营者制定专门的应对措施。为了促进该领域的未来研究,我们发布了已识别的恶意扩展的数据集,并开源了我们的分析器。

Trade or Trick?: Detecting and Characterizing Scam Tokens on Uniswap Decentralized Exchange

加密货币生态系统的繁荣带动了对数字资产交易平台的需求。除了中心化交易所(CEX)之外,还引入了去中心化交易所(DEX),让用户无需将数字资产的托管权转移给中间商即可交易加密货币,从而消除了传统CEX的安全和隐私问题。 Uniswap 作为最著名的加密货币 DEX,持续吸引诈骗者,欺诈性加密货币在生态系统中泛滥。在本文中,我们迈出了第一步来检测和描述 Uniswap 上的诈骗代币。我们首先收集与 Uniswap V2 交易所相关的所有交易,并从不同角度调查 Uniswap 上的加密货币交易格局。然后,我们提出了一种基于关联犯罪启发式和机器学习驱动技术的准确方法,用于在 Uniswap 上标记诈骗代币。我们已经识别出 Uniswap 上列出的超过 10K 诈骗代币,这表明 Uniswap 上列出的大约 50% 的代币是诈骗代币。所有诈骗代币和流动性池都是专门为“拉地毯”诈骗而创建的,并且一些诈骗代币在智能合约中嵌入了技巧和后门。我们进一步观察到,数以千计的共谋地址有助于与诈骗代币/矿池创建者联合实施诈骗。诈骗者从 39,762 名潜在受害者那里获取了至少 1600 万美元的利润。我们在本文中的观察表明,在去中心化金融生态系统中识别和阻止诈骗的紧迫性,我们的方法可以充当举报人,在早期阶段识别诈骗代币。

Penny Wise and Pound Foolish: Quantifying the Risk of Unlimited Approval of ERC20 Tokens on Ethereum

动机:作者研究了ERC20代币无限审批的现状、风险和安全问题,并提出了用户发起审批的最佳实践。

背景:审批机制用于将用户代币消费的权限委托给DApp。然而,当前的Dapp通常允许用户在用户不知情的情况下授予无限的审批配额,这使用户的资产面临风险。

做法:作者首先分析了以太坊的交易历史,定义了一些指标(比如金额)来量化当前无限审批的严重程度。然后,对于一些知名的钱包和交易所,查看他们的审批流程,评估当前行业对无限审批的强调。最后,作者为用户提出了一套最佳实践审批流程。

洞察一:研究显示,收集到的审批交易中,60%属于无限制审批交易,且大部分独立用户(290万/490万)参与了无限制审批交易。

Insight2:只有10%的DApp和钱包提供审批机制的解释信息,只有16%的UI允许用户调整审批金额。

Insight3:评估结果表明,只有 0.2% (2,475/1,496,886) 的受访用户通过遵循最佳实践来降低风险。

Elysium: Context-Aware Bytecode-Level Patching to Automatically Heal Vulnerable Smart Contracts

通过修补源代码来修复错误是最简单的。然而,源代码并不总是可用:当前部署在以太坊上的约 4900 万份智能合约中,只有 0.3% 的源代码是公开的。此外,由于合约可能会调用其他合约的函数,因此闭源合约中的安全缺陷也可能会影响开源合约。然而,当前在闭源合约(即 EVM 字节码)上运行的最先进方法(例如 EVMPatch 和 SmartShield)利用纯粹的硬编码模板,利用修复修补模式。因此,它们无法动态适应正在修补的字节码,这严重限制了它们的灵活性和可扩展性。例如,当使用硬编码模板修补整数溢出时,需要采用特定的修补模板,因为要检查的边界对于每个整数大小都不同(即,一个模板用于 uint256,另一个模板用于 uint64,等等)。

在本文中,我们提出了 Elysium,一种在字节码级别自动修复智能合约的可扩展方法。 Elysium 通过从字节码推断上下文信息来结合基于模板和基于语义的修补。 Elysium 目前能够自动修补智能合约中的 7 种不同类型的漏洞,并且可以通过新模板和新的错误查找工具轻松扩展。我们通过在修补合约上重放超过 50 万笔交易,使用 3 个不同的数据集来评估其有效性和正确性。我们发现 Elysium 的性能优于现有工具,正确修补的合约至少多了 30%。最后,我们还比较了 Elysium 在部署和交易成本方面的开销。与其他工具相比,我们发现 Elysium 通常将运行时成本(即交易成本)降至 1.7 倍,但部署成本仅略高,其中与运行时相比,部署成本是一次性成本成本。

SolType: refinement types for arithmetic overflow in solidity

随着智能合约在金融交易中得到采用,确保它们没有错误和安全漏洞变得越来越重要。在这种情况下特别重要的是算术溢出错误,因为整数通常用于表示账户余额等金融资产。受这一观察的启发,本文提出了 SolType,这是一种 Solidity 的细化类型系统,可用于防止智能合约中的算术溢出和下溢。 SolType 允许开发人员添加细化类型注释,并使用它们来证明算术运算不会导致溢出和下溢。 SolType 包含丰富的细化术语词汇表,允许表达整数值和复杂数据结构的聚合属性之间的关系。此外,我们的实现(称为 Solid)包含类型推断引擎,可以自动推断有用的类型注释,包括重要的契约不变量。

为了评估我们的类型系统的实用性,我们使用 Solid 来证明总共 120 个智能合约的算术安全性。当在全自动模式下使用时(即使用 Solid 的类型推断功能),Solid 能够消除 86.3% 用于防止溢出的冗余运行时检查。我们还将 Solid 与最先进的算术安全验证器(称为 VeriSmart)进行比较,结果表明 Solid 的误报率明显较低,同时验证时间明显更快。

Is My Transaction Done Yet? An Empirical Study of Transaction Processing Times in the Ethereum Blockchain Platform

以太坊是开发区块链应用程序的最受欢迎的平台之一。这些应用程序称为 ÐApps。在设计 DApp 时,开发人员需要将其应用程序前端捕获的请求转换为一项或多项智能合约交易。开发者需要为这些交易付费,并且支付的费用越多(即 Gas 价格越高),交易处理的速度可能就越快。开发具有成本效益的应用程序绝非易事,因为开发人员需要优化成本(交易费用)和用户体验(交易处理时间)之间的平衡。在线服务的开发是为了向交易发行者(例如,App 开发商)提供在给定一定 Gas 价格的情况下处理交易需要多长时间的估计。这些估算服务在以太坊领域至关重要,Metamask 等一些流行的钱包都依赖它们。然而,尽管它们发挥着关键作用,但迄今为止尚未对它们的准确性进行实证研究。在本文中,我们量化了以太坊中的交易处理时间,研究了处理时间和 Gas 价格之间的关系,并确定了实践估计服务的准确性。我们的结果表明,交易处理时间中位数为 57 秒,90% 的交易在 8 分钟内处理。我们还表明,较高的天然气价格会导致交易处理时间加快,但收益递减。特别是,我们观察到昂贵交易和非常昂贵交易之间的处理时间没有实际差异。关于处理时间估计服务的准确性,我们观察到它们是等效的。然而,当按 Gas 价格对交易进行分层时,我们发现 Etherscan 的 Gas Tracker 是针对非常便宜和廉价交易的最准确的估算服务。反过来,EthGasStation 的 Gas Price API 是针对常规、昂贵和非常昂贵的交易的最准确的估算服务。在一项事后研究中,我们设计了一个简单的线性回归模型,只有一个特征,该模型在非常便宜和便宜的交易上优于 Gas Tracker,并且在其余类别上的表现与 EthGasStation 模型一样准确。根据我们的发现,ÐApp 开发人员可以就其应用程序发出的交易的 Gas 价格选择做出更明智的决策。

Pied-Piper: Revealing the Backdoor Threats in Ethereum ERC Token Contracts.

随着去中心化网络的发展,智能合约,尤其是ERC代币的智能合约,正在吸引越来越多的Dapp用户来实现他们的应用。 ERC 代币合约中的某些函数只有特定的账户组才能调用。其中,有些功能甚至可以在未经事先通知或许可的情况下影响其他帐户或整个系统。这些功能被称为合约后门。一旦被攻击者利用,可能会造成财产损失并损害用户隐私。

在这项工作中,我们提出了 Pied-Piper,这是一种混合分析方法,集成了数据日志分析和定向模糊测试来检测以太坊 ERC 代币合约中的后门威胁。首先,通过数据日志分析,抽象出与威胁相关的数据结构和识别规则,进行初步的静态检测。然后,应用定向模糊测试来消除静态分析引起的误报。我们首先在 200 个智能合约上评估了 Pied-Piper,这些合约注入了不同类型的后门。它报告了所有问题,没有误报,并且没有遗漏任何注入的问题。然后,我们在以太坊上部署的 13,484 个真实代币合约上应用了 Pied-Piper。 Pied-Piper 报告了 189 个已确认的问题,其中四个已分配了唯一的 CVE ID,而其他问题仍在审核过程中。每个合约的数据分析平均需要 8.03 秒,模糊测试引擎可以在一分钟内消除误报。

Time-travel Investigation: Toward Building a Scalable Attack Detection Framework on Ethereum

以太坊已经吸引了大量的攻击,因此迫切需要及时进行调查并检测更多的攻击实例。然而,由于以下原因,现有系统面临可扩展性问题。首先,恶意合约检测和区块链数据导入之间的紧密耦合使得它们无法重复检测不同的攻击。其次,粗粒度的归档数据使得它们重放事务的效率低下。第三,恶意合约检测和运行时状态恢复之间的分离会消耗大量存储空间。

在本文中,我们提出了一个名为 EthScope 的可扩展攻击检测框架,它通过巧妙地重新组织以太坊状态并有效定位可疑交易来克服可扩展性问题。它利用细粒度状态来支持任意事务的重放,并提出一个精心设计的模式来优化存储消耗。性能评估表明,EthScope可以解决可扩展性问题,即可以高效地对数十亿笔交易进行大规模分析,加速率约为2,300倍

重播交易时。与现有系统相比,它的存储消耗也更低。进一步分析表明,EthScope可以帮助分析人员了解攻击行为并检测更多的攻击实例。

FISCO-BCOS: An Enterprise-grade Permissioned Blockchain System with High-performance

企业级许可的区块链系统为不同公司之间的数据共享和合作提供了有前途的基础设施。然而,性能瓶颈严重阻碍了这些系统在许多处理复杂业务逻辑和巨大交易量的工业应用中的采用。我们的研究确定了限制系统性能的两个关键因素:1)在块级别,块间处理的串行依赖性严重限制了系统吞吐量。新的块必须等待所有先前块的完成。 2)交易层面,缺乏高效的块内交易并发性,难以实现高性能,尤其是在处理工业场景中常用的多个CPU密集型合约时。

在本文中,我们提出了 FISCO-BCOS,一种高性能的企业级许可区块链系统。为了克服串行限制并充分利用机器资源,FISCO-BCOS引入了块级流水线(BLP)工作流程以流水线方式处理块。此外,还设计了确定性多合约(DMC)调度算法来高效地并行执行交易。在BLP和DMC下,FISCO-BCOS实现块间和块内并行,满足工业应用场景的高性能要求。我们对两种流行的测试工作负载进行了实验,并将 FISCO-BCOS 与学术界和工业界最先进的平台(例如 BIDL 和 Hyperledger Fabric (HLF))进行了比较。结果表明,FISCO-BCOS 的吞吐量分别是 BIDL 和 HLF 的 7.4 倍和 28.4 倍,而延迟仅为 BIDL 和 HLF 的一半。 BCOS已经应用于300多个不同的大型工业场景,成为最受欢迎的许可区块链之一。