Web3中的安全、隐私和去中心化

煤油灯科技2023-04-04 13:13

摘要

最近围绕去中心化金融 (DeFi) 的兴奋很大程度上来自于希望 DeFi 可以成为传统金融系统的安全、私密、中心化程度较低的替代方案。 然而,正如最近的攻击所证明的那样,人们转向 DeFi 网站以希望提高他们的安全性和隐私性可能最终会减少这两者。

在这项工作中,我们通过对流行的 DeFi 前端的安全性、隐私和去中心化属性进行首次 Web 测量来加深对 DeFi 的理解。 我们发现,DeFi 应用程序(或 dapps)面临着与网络其他部分相同的安全和隐私风险,但考虑到 DeFi 涉及的资金,这些风险会大大加剧。 我们的结果表明,一个普通的跟踪器可以在我们分析的超过 56% 的网站上观察用户行为,并且 DeFi 网站上的许多跟踪器可以简单地将用户的以太坊地址与 pii(例如,用户名或人口统计信息)联系起来,或者通过启动虚假信息来钓鱼用户 以太坊交易。 最后,我们确定,尽管有相反的说法,但由于亚马逊和 Cloudflare 等公司运营着重要的网络基础设施,DeFi 整体上的去中心化程度远低于之前认为的。

CCS 概念

  • 信息系统 → Web 应用程序;
  • 安全和隐私→ 隐私保护。

关键词

Web 3.0、DeFi、PII、以太坊、安全、隐私、去中心化

1 引言

我们正在见证一场金融运动,其目标是用代码取代长期存在的机构。目前,超过250亿美元被锁定在去中心化金融(DeFi)[9]。在去中心化和自我监管原则的指导下,DeFi应用程序实现了许多传统金融工具,如保险、贷款或交易所,这些工具现在由算法而非人工干预来引导。DeFi应用程序在架构上与传统网站有很大不同:DeFi的应用程序没有复杂的Web前端与数据库后端通信,而是暴露了一个轻量级的前端,该前端使用在用户浏览器中运行的钱包软件与基于区块链的后端交互。这种非正统的设计,加上大量且不断增加的资金涌入DeFi,引发了几个与安全和隐私有关的问题:攻击者可以利用什么攻击面来窃取资金?DeFi网站在多大程度上保护用户的财务信息?第三方跟踪器的作用是什么?这项工作旨在回答这些问题。尽管智能合约安全性已经得到了广泛的研究[34,§5.1],但上述问题很少受到关注。

我们首先汇编了78个受欢迎的DeFi网站的列表,并通过完善的网络安全和隐私方法来研究这个问题。特别是,我们确定了DeFi网站使用的第三方提供商,这些提供商可以获得哪些用户数据,以及这些提供商可能会如何行为不端。

我们的结果显示,66%的DeFi网站依赖第三方提供商的脚本,超过一半的DeFis网站依赖谷歌的分析脚本,这让广告公司对用户如何与DeFi站点互动有了深入的了解。我们还发现,17%的DeFi网站将用户的以太坊地址泄露给第三方,这构成了一个重大的隐私问题。我们还研究了由DeFi应用程序的架构设计引起的问题:DeFi网站嵌入的脚本能够与用户的钱包api交互,这有助于网络钓鱼攻击。最后,我们发现DeFi网站经常无法真正去中心化,从而危及安全、治理和可靠性。例如,Cloudflare托管了几乎一半的网站,因此拥有关于用户如何与DeFi应用程序交互的全面数据。受臭名昭著的事件流漏洞[10]的启发,我们研究了DeFi前端的软件依赖关系,试图了解哪些软件包很受欢迎,并了解在这些依赖关系中注入恶意代码的可能性。

贡献:本文做出以下贡献:

(1)我们编制了一份包含 78 个流行的 DeFi 站点的列表,并构建了一个 JavaScript 爬虫来访问这些站点并提取他们在用户将她的钱包连接到 DeFi 站点之前和之后发出的 Web 请求 . 我们公开我们的代码和此数据集。

(2) 我们分析了上述数据集的隐私和安全问题。 我们的分析揭示了跨站点以太坊地址泄漏,并表明谷歌可以跨营销渠道跟踪 Web3 用户并进行转换分析。 我们还研究了 DeFi 前端的依赖项(发现平均前端依赖 53 个依赖项的中位数)和 DeFi 前端的底层托管基础设施。

(3) 我们在数据集中对去中心化的不同维度进行了测量,并得出结论,缺乏去中心化是一个声称显着去中心化的领域令人惊讶的致命弱点。 例如,我们发现 Cloudflare 和 aws 负责 80% 以上的 DeFi 站点前端。

2 背景

2.1 Web 跟踪

用户通常由第三方在 Web 上进行跟踪,第三方使用显式或隐式信息跨站点跟踪用户。

从历史上看,第三方 cookie 一直是跟踪用户的一种流行方式,但 Firefox 和 Safari 等浏览器最近开始默认阻止第三方 cookie [37、35],这使得它们成为不太有效的跟踪载体。 但是,存在许多替代跟踪向量,例如浏览器指纹识别,其想法是根据浏览器配置的细微差别(例如屏幕分辨率、可用字体或已安装的扩展)来唯一地识别用户。

2.2 以太坊

以太坊的原生货币称为以太币,用户通常在作为浏览器扩展实现的软件钱包中管理(部分)以太币。 这些扩展存储用户的私钥 1 并提供用于管理用户资金的 UI。

与比特币不同,以太坊实施基于账户的模型,类似于银行账户。 所有进出给定以太坊账户的交易都在区块链上永久化,并且可以很容易地链接到用户的账户(但不一定是他们的真实身份),这意味着用户最多可以享受假名。 然而,创建多个以太坊账户来划分一个人的金融活动是很简单的。 虽然在以太坊之上提出了隐私层,但它们的使用仍然很少 [3、26、30]。

鼓励用户对他们的以太坊地址保密,因为知道地址会揭示所有者的资金(这可能会在背后画一个目标)和交易历史(这可能会揭示敏感关系)。 无论如何,许多用户在网上自由分享他们的以太坊地址,当然,用户需要向某些方(例如,以太坊节点)透露他们的地址才能有意义地使用网络。 鉴于以太坊新兴的金融生态系统,网络广告商有动机获取用户的以太坊地址进行定向广告; 如果钱包交易用于在线市场,则此广告可以包括传统的电子商务,或者更可能的是,针对 nfts 或服务(例如对加密货币友好的借记卡)的以加密货币为重点的广告。

鼓励用户对他们的以太坊地址保密,因为知道地址会揭示所有者的资金(这可能会在背后画一个目标)和交易历史(这可能会揭示敏感关系)。 无论如何,许多用户在网上自由分享他们的以太坊地址,当然,用户需要向某些方(例如,以太坊节点)透露他们的地址才能有意义地使用网络。 鉴于以太坊新兴的金融生态系统,网络广告商有动机获取用户的以太坊地址进行定向广告; 如果钱包交易用于在线市场,则此广告可以包括传统的电子商务,或者更可能的是,针对 nfts 或服务(例如对加密货币友好的借记卡)的以加密货币为重点的广告。

2.3 去中心化金融软件堆栈

像Coinbase这样的集中式交易所与加密货币的核心去中心化哲学背道而驰,这就是为什么出现了去中心化的替代品。这些应用程序通常被称为DeFi,允许用户投资流动性池、交换代币、发送付款或贷款。一个特别受欢迎的例子是Uniswap,该网站允许用户交换erc-20代币,并投资于流动性池任务,这些任务历史上只由Coinbase等集中式交易所提供。

如图1所示,DeFi应用程序本质上由一个Web界面组成,该界面弥合了用户的以太坊钱包(例如,MetaMask[23])和DeFi程序的智能合约之间的差距。

因此,DeFi网站需要与以太坊区块链和用户的钱包进行交互。这两种类型的交互都可以(但不需要)通过以太坊提供商api[13]进行,这是一种JavaScript api,MetaMask扩展将其注入DeFi网站的dom。DeFi站点可以通过window.ethereum JavaScript对象与api进行交互。以太坊提供商api的一个子集由MetaMask直接处理,例如交易的签名。剩下的api调用不由MetaMask处理,而是转发到以太坊节点,例如转发到像Infura[16]这样的以太坊即服务提供商。请注意,DeFi站点不必依赖MetaMask与以太坊节点进行交互;它可以简单地直接与以太坊节点对话,许多DeFi网站都会这样做,并将与以太坊提供商api的交互限制为交易的签署。与MetaMask不同,以太坊节点公开了一个基于json的rpc接口。该接口由几十个函数组成,用于调用智能合约、获取天然气价格或获取最新以太坊区块的编号。

请注意,MetaMask 仅在用户授予权限后才能使用其某些 api 功能——通常是通过手动单击“连接钱包”按钮2(以防止未经授权的站点访问用户的以太坊帐户信息 [6]),这会提示 DeFi 站点 向 MetaMask 请求许可,然后是一个 UI 对话框,要求用户确认 DeFi 站点的请求。一旦用户授予许可,DeFi 网站就可以访问用户的以太坊地址和余额,并创建交易(仍需要用户签字)。 如需更全面地了解 DeFi,请参阅 Werner 等人的 2021 arXiv 报告 [34]。

3 WEB3 站点中的问题和攻击

在本节中,我们以 1inch.exchange(简称:1inch)为例,简要概述了我们在 DeFi 站点中发现的隐私和安全问题。 这些问题都不是新问题——我们可以将它们概括为“过去又回来咬我们一口”。 与这些问题相关的是 DeFi 网站的性质,它与传统网站的不同之处在于:(i) 涉及大量资金,恶意 DeFi 网站和用户资金之间的一切通常只是一层 JavaScript; (ii) 用户的以太坊地址实际上是一个唯一的、长期的标识符,与用户公开可见的财务历史相关联——这是在线跟踪的理想条件。 表 1 显示了下面涵盖的问题和攻击的摘要。

隐私:1inch 的登陆页面嵌入了来自多个第三方的脚本,其中之一是 Google Analytics。 这向 Google 揭示了可以说是敏感的金融浏览活动,因为 1inch 在其 url 中编码了用户有兴趣交换的令牌,例如 url https://app.1inch.io/#/1/swap/COMP/USDC(进入 Google Analytics)显示用户选择了 comp 和 usdc 代币进行交换。 此外,使用 Google Analytics 也会泄露用户的以太坊地址,因为 1inch 恰好将用户的以太坊地址放在 Google Analytics 上的“事件标签”中。 这允许谷歌将用户的以太坊地址与公司可能已经拥有的关于用户的 pii 联系起来。 更糟糕的是,谷歌和其他分析提供商也在其他 DeFi 站点中发挥作用,从而可以跨站点跟踪用户。

分析提供商因其提供的便利性和洞察力而得到广泛使用,但他们泄露给第三方的数据的性质在 DeFi 的背景下是高度敏感的。安全性:1inch 嵌入了一个聊天小部件,允许用户联系 1inch 支持人员。 该小部件由第三方提供,由嵌入 1inch 的第一方上下文中的 JavaScript 组成,因此可以完全控制 1inch 的 dom。 这本身并不奇怪——几乎所有主要网站都嵌入了脚本,但一旦用户将她的 MetaMask 钱包连接到 1inch,1inch 和嵌入式聊天小部件都能够与由 MetaMask 注入的以太坊提供者 api 进行交互。 至关重要的是,聊天小部件(或任何破坏其分发基础设施的人)可以修改 1inch 的 dom 来钓鱼用户以试图窃取资金,或直接通过用户的钱包进行交易。 虽然此交易必须得到用户的批准,但我们认为在正确的时间精心设计的交易会欺骗许多用户。包含第一方脚本总是会带来一定的风险,但我们认为,考虑到所涉及的资金数额,这种风险在 DeFi 的背景下会非常高。

表1:本文提出的潜在攻击和问题摘要。

过度中心化:1inch 的前端通过 Cloudflare 的 cdn 提供,大多数其他 DeFi 站点也是如此。 这里的问题是双重的:(i)如果发生中断,将前端集中在少数托管服务提供商之间可能会导致大量资金实际上无法使用; (ii) 中心化托管服务提供商获得(并可能从中获利)大量关于用户如何与 DeFi 交互的洞察力。 此外,政府可以强制集中式托管提供商停止运营,考虑到美国政府如何制裁流行的混合器 Tornado Cash [32],这不难想象。

4 测量

在介绍了潜在的隐私和安全问题之后,我们现在开始了解这些问题的普遍性。 有多少 DeFi 站点表现出其中一个或多个问题? Google Analytics 的存在有多普遍?

我们首先讨论我们的测量方法,然后分析用户的以太坊地址泄露给第三方的频率。 然后我们退后一步,确定 DeFi 站点依赖哪些第三方以及这意味着什么。接下来,我们研究 DeFi 站点依赖哪些软件包以及 DeFi 托管提供商之间的去中心化程度。

4.1 数据集和方法

我们首先从 DeFi Pulse [9] 编制一份 DeFi 站点列表以进行检查,其中列出了按“锁定总价值”排名的顶级 DeFi 站点,即当前“锁定”在网络中的金额 各自的智能合约——DeFi 网站受欢迎程度的恰当代表。 我们添加了截至 2021 年 8 月 26 日的前 50 个站点,并用我们发现感兴趣的 26 个站点扩充了列表,从而产生了一个包含 78 个 DeFi 站点的列表,完整显示在附录 A 的表 10 中。

然后我们手动将域列表转换为 url,以便在单击时浏览器直接登陆要求用户连接其钱包的页面,例如我们将 compound.finance 变成了 https://app.compound.finance。

表 2:将我们的以太坊地址泄露给第三方的 DeFi 网站。

在下一步中,我们着手访问每个站点并记录它发出的请求。 为了促进这一点,我们构建了一个基于 Puppeteer 的爬虫,它在 Linux 上生成一个 Google Chrome 92.0.4515.159 实例,依次访问我们 DeFi 列表中的所有 url 30 秒,并记录相应站点发出的每个请求。 我们为我们的实验使用了一个新的 Chrome 配置文件,安装了 MetaMask 10.0.3 扩展,并完成了 MetaMask 的入职流程,从而产生了一个新的以太坊地址。 我们对用户连接钱包后站点发出的请求特别感兴趣,这就是为什么我们的爬虫访问新站点后我们手动单击“连接钱包”按钮的原因。 完成这些半自动测量只用了不到一小时。

对于每个站点,我们的爬虫创建了一个 json 文件,其中包含有关相应站点的元数据和 Web 请求列表,每个请求都包含 (i) 请求上下文(例如,站点本身或 iframe),(ii) 请求的 url,以及 (iii) 请求的类型(例如,获取、图像或脚本请求)。 以下是来自 Uniswap 的示例:向 app.tryroll.com 请求代币列表的 Web 请求

{ 
 "requestContext": [ 
   "https://app.uniswap.org/#/" 
  ], 
  "url": "https://app.tryroll.com/tokens.json", 
  "type": "fetch" 
},

4.2 以太坊地址泄露

在记录了最流行的 DeFi 站点的所有请求之后,我们要问:这些请求中是否有任何一个将我们的以太坊地址泄露给第三方?例如,foo.finance 是否向 bar.finance 发送了包含我们以太坊地址的 xhr 请求? 为了回答这个问题,我们过滤请求的数据(i)其目的地与 origin3 具有不同的 etld+1 和(ii)其 url 包含我们的以太坊地址。

表 3:脚本嵌入最多的前 10 个第三方站点。

表 2 包含泄露我们以太坊地址的 DeFi 站点,以及我们发现的泄露数量。 我们的脚本检测到 78 个站点中有 13 个 (17%) 将我们的以太坊地址泄露给了第三方域。Yearn 向 api.zapper.fi 发出了四个获取请求——以检索“Yearn Vaults”和代币余额;DeFi Saver 向 defiexplore.com 和 api.compound.finance 发出获取请求;BiFi 从 heapanalytics.com 请求了四张图片,其 url 包含我们的以太坊地址; Zerion 向 ipfs.3box.io 和 maker.ifttt.com 发出了三个获取请求。

在大多数情况下,这种行为代表了标准的 Web 开发:许多站点使用第三方 API 来提交和检索用户信息。 然而,我们必须将 DeFi 前端保持在更高的标准,类似于传统金融机构,因为用户的以太坊地址构成了敏感的金融信息。

4.3 跨源依赖性

回顾第 3 节,DeFi 站点(如传统银行站点)必须特别注意它们嵌入的外部脚本,因为这些脚本可以查看钱包余额并可能通过修改页面的 dom 来钓鱼用户,这引发了问题 :有多少 DeFi 站点嵌入了第三方脚本? 我们通过从我们的 DeFi 列表中提取脚本请求来回答这个问题,这些请求的目的地 etld+1 与站点的来源不同。

我们的数据显示,48 个 DeFi 站点(66%)嵌入了至少一个来自总共 34 个第三方的脚本。 表 3 显示了嵌入最多的前十名第三方。 可以在 28 个 DeFi 站点上找到 Google 的 Tag Manager,其次是在 21 个站点上的 Google Analytics。 Intercom 提供了一个聊天支持小部件,可以在 8 个 DeFi 站点上找到。 谷歌在 DeFi 网站中的存在无处不在:我们的数据显示,41 个 DeFi 网站(56%)嵌入了至少一个由谷歌提供的脚本。

转化分析:谷歌能否通过 Alice 浏览 DeFi 网站时的行为数据获利? 例如,一些 DeFi 站点将用户的以太坊地址直接泄露给 Google Analytics,从而使公司有机会将用户的真实身份(即 pii)链接到她的以太坊地址。 谷歌和其他第三方追踪器还能了解到关于Alice的哪些信息?

广告公司有动机通过转化漏斗来跟踪用户——这是一个电子商务术语,指的是用户从第一次听说产品,到考虑购买,再到最终购买产品的过程。 应用于加密货币领域,这可能意味着跟踪 Alice 的每一步,因为她 (i) 在新闻网站上看到货币或代币的“广告”,(ii) 在价格发现网站上检查资产的价格图表, (iii) 在 DeFi 网站上购买资产。 具体的funnel可能如下所示:Alice浏览热门新闻网站 CoinDesk,在那里她了解到一种最近升值的新代币。 要了解有关代币价格表现的更多信息,她访问了价格列表网站 CoinGecko。 对代币的表现充满信心后,Alice决定对其进行投资并访问 Uniswap 进行购买。通过funnel跟踪Alice的广告公司可以丰富其关于Alice的资料,从而允许更有效的有针对性的广告。

4.4 软件依赖的复杂性

在过去几年中,Node 的生态系统已经成为几次高影响力供应链攻击的牺牲品。 2018 年发生了事件流事件,攻击者使用社会工程学获得了对事件流模块的写访问权限,攻击者随后使用该事件流模块添加了对恶意模块的依赖 [10]。 最近,在 2021 年,一名攻击者设法攻陷了一个包维护者的 npm 帐户,并用它来发布恶意更新 [4]。 扎汉等人。 系统地研究了 Node 生态系统中的供应链攻击问题 [40]。

在检查 DeFi 前端的源代码时,我们注意到它们严重依赖于 Node 的生态系统。 如果前端依赖项影响交易的制作方式,则前端依赖项中的安全问题可能会危及 DeFi 用户的资金。 为了了解问题的范围,我们首先研究 DeFi 前端依赖的依赖项数量。 我们搜索了列表中每个 DeFi 站点的前端代码,并从我们的 78 个 DeFi 站点中克隆了 22 个(28%)的相应存储库。 所有前端均使用 Node.js 构建。

在下一步中,我们确定了直接依赖和传递依赖的数量,其中包括直接依赖的(递归)依赖。 我们通过计算 package.json 文件中“dependencies”对象中包名称的数量来确定直接依赖,我们通过计算 yarn.lock 或 package-lock.json 文件中的依赖数量来确定传递依赖——无论哪个 使用的一个项目。

我们的代码通过删除版本号来规范所有传递依赖,以确保没有依赖被多次计算。 表 6 说明了结果。 除 tinlake.centrifuge.io 外,所有 DeFi 站点至少有 37 个直接依赖项和 1000 多个传递依赖项。 大量依赖项确实增加了 DeFi 站点的攻击面,但依赖项中的漏洞不会自动危及以太坊交易的安全性。 例如,我们通过在前端代码上运行 npm 的审计功能来检查特定于 app.aave.com 的漏洞。 审计功能在 immer [7] 中发现了一个严重漏洞,这是 Aave 的传递依赖项之一。

接下来,我们试图识别跨 DeFi 站点共享的依赖项。 考虑到它们在 DeFi 站点中的普遍性,这种依赖性构成了特别富有成效的目标。 表 7 显示了我们分析其前端代码的 17 个 DeFi 站点中至少有 8 个共享的 npm 包。 不出所料,几乎所有 DeFi 站点都依赖于流行的用户界面库 React。 最流行的是 ethers [28]——一种以太坊钱包实现,允许 DeFi 站点通过 MetaMask 等钱包连接到以太坊节点。

4.5 前端去中心化

DeFi 应用程序建立在去中心化后端(区块链)之上,但相应的前端通常是中心化的,并且完全由从事 DeFi 应用程序的组织控制。 乍一看,这看起来不是问题,因为前端是可以互换的:任何人都可以为现有的智能合约创建前端,因此如果 DeFi 应用程序的“主要”前端出现故障,替代方案将会启动 .

然而,这并不反映技术用户与网站交互的程度。 用户习惯于记住规范域,并且在评估替代方案的可信度方面表现不佳。此外,第三方前端嵌入可能劫持交易的恶意代码是有经济动机的。非技术用户很难避免此类骗局。将前端去中心化有几个令人信服的理由:

安全性 单个控制组织可以随意注入恶意代码。

治理 一个单一的控制组织可能会违背社区的意愿 [29]。

可靠性 中断可能导致许多用户无法使用资金,因为他们的知识不足以使用替代前端。

我们现在通过确定底层托管提供商来量化 DeFi 前端的中心化,这让我们对上述可靠性属性有了一个了解。 特别是,我们为列表中的每个站点确定了托管服务提供商。 我们将 DeFi 站点列表中的每个域解析为其对应的 IP 地址,并查询 Team Cymru 的 IP-to-ASN 映射工具以将 IP 地址映射到其自治系统编号 [17]。 然后我们提取同样由 Team Cymru 的服务提供的自治系统名称。 表 8 总结了结果。 Cloudflare 和 aws (Ama zon) 托管了我们列表中的大量网站,表明前端集中在大型企业托管提供商后面的趋势。

在接受调查的 78 个站点中,一半以上由 Cloud flare 托管; AWS 托管了大约三分之一的站点; Digital Ocean 只托管了四个,而其他托管服务提供商所覆盖的站点数量可以忽略不计。 正如 Cloudflare 2019 年的中断导致 Cloudflare 的流量下降 80% [15] 所见,如果大多数 DeFi 站点都支持一个提供商,那么在发生大规模中断时,大部分服务可能会不可用。

表 4:我们在分析中使用的加密货币新闻网站和价格发现网站列表。

表 5:其脚本嵌入到我们三个渠道部分中至少 1% 的网站中的公司——包括新闻网站、价格发现网站和 DeFi 网站。

我们现在通过确定底层托管提供商来量化 DeFi 前端的中心化,这让我们对上述可靠性属性有了一个了解。 特别是,我们为列表中的每个站点确定了托管服务提供商。 我们将 DeFi 站点列表中的每个域解析为其对应的 IP 地址,并查询 Team Cymru 的 IP-to-ASN 映射工具以将 IP 地址映射到其自治系统编号 [17]。 然后我们提取同样由 Team Cymru 的服务提供的自治系统名称。 表 8 总结了结果。 Cloudflare 和 aws (Ama zon) 托管了我们列表中的大量网站,表明前端集中在大型企业托管提供商后面的趋势。

在接受调查的 78 个站点中,一半以上由 Cloud flare 托管; AWS 托管了大约三分之一的站点; Digital Ocean 只托管了四个,而其他托管服务提供商所覆盖的站点数量可以忽略不计。 正如 Cloudflare 2019 年的中断导致 Cloudflare 的流量下降 80% [15] 所见,如果大多数 DeFi 站点都支持一个提供商,那么在发生大规模中断时,大部分服务可能会不可用。

Cloudflare 和 aws 显然发挥着重要作用,但如果上述托管服务提供商之一出现全球中断,将有多少资金无法使用? 我们参考 DeFi Pulse 的估计来估算答案,如表 9 所列。Cloudflare 和 aws 一起托管前端,允许管理价值约 900 亿美元的资金。 这些资金不会完全丢失——手动交易或通过不同方式托管的替代 Web 界面仍将有助于资金管理。

表 6:前端公开可用的 DeFi 站点的直接和传递节点依赖项的数量。 最后一列代表我们检查的 git 提交 ID。

虽然不常见,但大规模的托管服务提供商中断并非闻所未闻:Cloudflare [15]、aws [24] 和 DigitalOcean [27] 在过去都遭受过严重的中断。

违反上述安全和治理属性可能造成的损害更难量化。

5 讨论

在本节中,我们将讨论我们工作的局限性并向 DeFi 开发人员和用户提出建议。

我们在第 4.1 节中的测量方法揭示了一些以太坊地址泄露给第三方,但无法故意伪装地址泄漏。 例如,简单的地址编码方案(如 Base64)可能会逃避我们的检测方法。

在本文中,我们重点关注了 78 个 DeFi 站点——根据“总价值锁定”,其中大多数站点都是最受欢迎的站点。 尽管 DeFi 站点的总数要大得多,但我们的结果并未深入了解 DeFi 站点长尾的隐私和安全问题。 考虑到许多 DeFi 网站的关注和努力很少,我们预计长尾会比 Uniswap 或 Compound 等热门网站出现更多问题。 因此,我们认为我们的工作代表了安全和隐私问题的下限。

表 7:直接的 npm 依赖项(左列)和共享相应依赖项的 DeFi 站点数量(右列)。

最后,我们的 DeFi 站点列表可能存在选择偏差,即它可能在关键方面与 DeFi 站点的一般人群不同。 例如,我们的热门 DeFi 站点列表可能比鲜为人知的 DeFi 长尾站点显示出更少的安全和隐私问题。

表 8:在我们的网站上托管 78 个 DeFi 站点的供应商(以及数量和年龄百分比)

5.2 建议

DeFi 开发者可以做些什么来提高用户的安全性和隐私性,并保证 DeFi 中的“De”? 用户如何保护自己? 下面,我们为 DeFi 开发者和用户发布了一组建议。 对于 DeFi 用户,我们建议如下:

块分析脚本:为防止分析提供商将以太坊地址链接到真实世界的身份,我们建议使用 Privacy Badger 等浏览器扩展程序或 Brave 或 Tor 浏览器等浏览器。

除非必须,否则不要连接钱包:我们建议像对待信用卡或银行账户信息一样对待一个人的以太坊地址,即只在必要时有选择地透露它。

对于 DeFi 网站的开发者,我们建议如下:

使用自托管分析:我们建议使用自托管的分析脚本,而不是第三方服务,以最大限度地减少对第三方的暴露。如果DeFi网站确实使用了第三方提供商,它应该确保没有像以太坊地址这样的敏感信息泄露给分析提供商。

地址隐私作为设计目标:我们的工作表明,许多DeFi网站并不认为以太坊地址是私有的。5我们建议DeFi开发者将以太坊地址视为信用卡信息。

去中心化前端:第4.5节强调了DeFi前端之间的中心化。为了提高在面临停机和DoS攻击时的可靠性,DeFi站点运营商应考虑通过替代基础设施(如ipf或Tor-洋葱服务)提供其前端,这些基础设施还具有理想的安全财产,如端到端加密。

修改威胁模型:我们的研究结果表明,成熟的Web开发方法,如使用无害的支持小工具,可以为网络钓鱼攻击打开大门。我们建议DeFi开发人员仔细考虑应该允许哪些第三方修改其网站的dom。人们不仅必须相信这些第三方是善意的;人们还必须相信,他们有能力确保自己的基础设施不受妥协的影响——如果涉及大量资金,这一高标准可能很难达到。

6 相关工作

我们通过将本文与相关工作进行对比来总结本文,我们将相关工作分为与第三方跟踪和加密货币相关的在线隐私,最后是用户对加密货币的看法。

在线隐私和第三方跟踪:广告商利用多种方式在线跟踪用户 [1、12、11]。 最普遍的方法之一是通过第三方跟踪器,例如 Google Analytics,除了有关用户浏览器和系统的信息外,它还使用 http 请求和第一方 cookie 来编译用户在线活动的配置文件 [31]。

Online Privacy and Security of Cryptocurrencies:过去关于比特币隐私的工作主要集中在地址的可链接性 [22](以及对网络层的一些探索 [2]),PoPETs'18 论文 [14] 通过 Goldfeder 等人。 首先看看比特币和在线隐私之间的交集。 越来越多的在线供应商现在支持比特币支付,但作者表明,在线跟踪器通常会收集足够的敏感信息,以将购买与其后续的区块链交易联系起来。 更糟糕的是,通过考虑辅助信息,攻击者可以将通过 CoinJoin(当时流行的混合器)匿名的比特币交易链接在一起。 我们建立在 Goldfeder 等人首次涉足加密货币和在线隐私交叉领域的基础上,表明第三方和第一方脚本都可以促进 DeFi 站点中的安全和隐私问题。

Béres 等人的 2020 年技术报告。 [5] 研究了以太坊中的隐私,展示了攻击者如何分析和去匿名化用户。 作者表明,可以将多个以太坊地址链接到同一所有者,方法是考虑这些地址通常在一天中的使用时间、汽油价格和与之交易的不相关地址。 即使像流行的 Tornado Cash 这样的混音器也不是灵丹妙药,因为它们经常被滥用。

例如,由于不了解混合器的细微差别,一些用户使用相同的以太坊地址进行存款和取款,从而有效地消除了自己的匿名性。 我们通过指出常见的 Web 开发方法如何导致 DeFi 应用程序中的隐私和安全问题来扩展 Béres 等人的工作。

Li等人在他们的 ndss'21 论文 [20] 中揭示了一种 DoS 攻击,可以禁用 DApp 所依赖的 rpc 服务——例如 通过阻止竞标者出价来在拍卖中占据上风。 该攻击利用了这样一个事实,即许多 rpc 服务不会对 eth_call 方法施加 gas 限制,这使得 rpc 服务有可能进行大量计算,从而阻止它为其他客户端提供服务。 请参阅 Werner 等人的 arXiv 报告 [34],全面了解 DeFi 以及围绕 DeFi 的开放研究问题的状态。

最近,一篇由 Mai 等人撰写的 soups'20 论文。 [21] 定性研究了加密货币用户 (N=29) 的心智模型以及这些模型如何与安全和隐私目标相冲突。 为证实 Voskobojnikov 等人的发现,作者发现加密密钥的概念经常引起误解,促使一些参与者相信矿工或“区块链”创建了私钥。 其他参与者表现出对区块链的误解,认为旧交易最终会被删除,或者交易是保密的,第三方无法看到。 这突出表明,一些用户可能对隐私有错误的期望。

7 结论

这项工作是第一个研究流行的 DeFi 站点的隐私、安全和去中心化属性的工作。 我们得出的结论是,尽管 DeFi 前端具有轻量级的特性,但众所周知的安全和隐私风险在 DeFi 应用程序中与在 Web 的其他部分一样普遍——但考虑到所涉及的资金,DeFi 中的风险更大。 DeFi 网站在处理用户以太坊地址时的粗心大意表明,问题不仅出在技术上,也出在文化上:流行的“快速行动,打破陈规”的技术风气与处理敏感财务信息时必要的谨慎相冲突。 我们还确定,尽管有相反的说法,但由于亚马逊和 Cloudflare 等几家公司运行着大部分 Web 基础设施,DeFi 作为一个整体的去中心化程度远低于以前认为的。

完整附件下载:2109.06836.pdf

 

---煤油灯科技victorlamp.com编译整理---

你可能也喜欢这些文章

科技互联网,科技,资讯,动态,洞察,量子,计算,AI,人工智能,机器人,区块链,Web3,分布式,操作系统,OS,芯片,视频,深度,论文