温馨提示:本站仅提供公开网络链接索引服务,不存储、不篡改任何第三方内容,所有内容版权归原作者所有
AI智能索引来源:http://www.bee.com/zh_cn/5287.html
点击访问原文链接

Blockchain dark forest selfguard handbook | Bee Network

Blockchain dark forest selfguard handbook | Bee Network Login 热门新闻 备忘录启动板 人工智能代理 德西 TopChainExplorer 给 Newbee 100 倍金币 蜜蜂游戏 重要网站 必备应用程序 加密货币名人 德平 新手必备 陷阱探测器 基本工具 高级网站 交流 NFT 工具 你好、, 签出 Web3 宇宙 游戏 DApp 蜂巢 成长平台 生态 搜索 英语 充值金币 登录 下载 Web3 大学 游戏 DApp 蜂巢 生态 给 Newbee•正文 Blockchain dark forest selfguard handbook给 Newbee3yrs ago (2023)更新wyatt 81,152 130

(来源:https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook)

序幕

首先,恭喜您找到这本手册!无论你是谁——如果你是加密货币持有者或者你想将来进入加密世界,这本手册都会对你有很大帮助。您应该仔细阅读本手册并将其教导应用到现实生活中。

此外,要完全理解本手册需要一些背景知识。不过,请不要担心。对于初学者来说,不要害怕可以克服的知识障碍。如果你遇到不懂的东西,需要进一步探索,强烈推荐Google。此外,记住一条安全规则也很重要:保持怀疑!无论您在网络上看到什么信息,您都应该始终寻找至少两个来源以进行交叉引用。

再次强调,始终保持怀疑态度 🙂 包括本手册中提到的知识。

区块链是一项伟大的发明,带来了生产关系的改变,一定程度上解决了信任问题。具体来说,区块链创造了许多不需要中心化和第三方的“信任”场景,例如不变性、按约定执行、防止否认等。然而,现实是残酷的。人们对区块链存在很多误解,不法之徒就会利用这些误解来钻漏洞,窃取人们的钱财,造成大量的经济损失。如今,加密世界已经变成了一片黑暗森林。

请记住以下两条安全规则,才能在区块链黑暗森林中生存。

Zero Trust:简单来说,保持怀疑,并始终保持如此。 持续安全验证:为了相信某件事,你必须验证你怀疑的东西,并让验证成为一种习惯。

注:以上两条安全规则是本手册的核心原则,本手册中提到的所有其他安全原则均源自它们。

好了,我们的介绍就到这里了。让我们从一张图开始,探索这片黑暗森林,看看我们会遇到哪些风险以及我们应该如何应对。

图表

您可以先浏览一下此图,然后再仔细查看手册的其余部分。它是关于这个世界上的关键活动(无论你想怎么称呼它:区块链、加密货币或 Web3),它由三个主要过程组成:创建钱包、备份钱包和使用钱包。

让我们跟随这三个过程并逐一分析。

Create A Wallet

钱包的核心是私钥(或助记词)。

私钥如下所示:

0xa164d4767469de4faf09793ceea07d5a2f5d3cef7f6a9658916c581829ff5584

此外,种子短语如下所示:

残酷的周末尖峰点无辜头晕外星人使用唤起棚调整错误

注意:我们在这里使用以太坊作为示例。请自行查看私钥/助记词的更多详细信息。

私钥是您的身份。如果私钥丢失/被盗,那么您就丢失了您的身份。有许多著名的钱包应用程序,本手册不会涵盖所有这些应用程序。

不过,我会提到一些特定的钱包。请注意,这里提到的钱包在某种程度上是可信的。但我不能保证它们在使用过程中不会出现预期或预期之外的安全问题或风险(我不再重复,请始终牢记序言中提到的两个主要安全规则)

按应用分类,有PC钱包、浏览器扩展钱包、手机钱包、硬件钱包和网页钱包。从网络连接方面来说,主要可以分为冷钱包和热钱包。在我们进入加密世界之前,我们必须首先考虑钱包的用途。用途不仅决定了我们应该使用哪个钱包,还决定了我们如何使用钱包。

无论你选择哪种钱包,有一点是肯定的:当你在这个世界上有了足够的经验之后,一个钱包是不够的。

这里我们要牢记另一个安全原则:隔离,即不要把所有鸡蛋放在一个篮子里。钱包使用得越频繁,风险就越大。永远记住:尝试任何新事物时,首先准备一个单独的钱包,然后用少量的钱尝试一段时间。即使对于我这样的加密老手来说,如果你玩火,你也更容易被烧伤。

下载

这听起来很简单,但实际上并不容易。原因如下:

很多人找不到真正的官方网站,或者合适的应用市场,最终安装了假钱包。 很多人不知道如何识别下载的应用程序是否被篡改。

因此,对于很多人来说,在进入区块链世界之前,钱包就已经空了。

解决上面的第一个问题,有一些技巧可以找到正确的官网,比如

使用谷歌 使用知名官方网站,例如CoinMarketCap 询问值得信赖的人和朋友

您可以对照从这些不同来源获得的信息,最终只有一个真相:)恭喜您,您找到了正确的官方网站。

接下来,您必须下载并安装该应用程序。 如果是PC钱包,从官网下载后,需要自行安装。强烈建议在安装前验证链接是否被篡改。虽然这种验证可能无法防止源代码被完全篡改的情况(由于内部诈骗、内部黑客、或者官网可能被黑客攻击等),但是可以防止源代码部分篡改等情况,中间人攻击等

验证文件是否被篡改的方法就是文件一致性检查。通常有两种方式:

哈希检查:比如MD5、SHA256等。MD5适用于大多数情况,但仍然存在微小的哈希冲突风险,所以我们一般选择SHA256,足够安全。 GPG签名验证: 这个方法也很流行。强烈建议掌握GPG工具、命令和方法。虽然这个方法对于新手来说有点困难,但是一旦熟悉了就会发现非常有用。

然而,加密世界中提供验证的项目并不多。所以,能找到一个人是一件很幸运的事。例如,这是一个名为 Sparrow Wallet 的比特币钱包。它的下载页面上写着“Verifying the Release”,真是令人印象深刻,而且上面提到的两种方法都有明确的指导方针,大家可以参考一下:

https://sparrowwallet.com/download/

下载页面提到了两个GPG工具:

GPG 套件,适用于 MacOS。 Gpg4win,适用于 Windows。

如果您留意的话,您会发现这两种 GPG 工具的下载页面都提供了一些有关如何检查两种方法的一致性的说明。不过,没有一步一步的指导,也就是说,需要你自己学习和练习:)

如果是浏览器扩展钱包,比如MetaMask,你唯一要注意的是Chrome网上商店中的下载数量和评级。例如,MetaMask 的下载量超过 1000 万次,评分超过 2000 条(尽管总体评分不高)。有些人可能认为下载量和收视率可能被夸大了。说实话,造假这么大的数字是非常困难的。

手机钱包 类似于浏览器扩展钱包。不过需要注意的是,App Store针对每个地区都有不同的版本。加密货币在中国大陆是被禁止的,所以如果你是用中国的App Store账号下载的钱包,只有一个建议:不要使用,换成美国等其他地区的账号再重新下载它。另外,正确的官网也会引导你正确的下载方式(如imToken、Trust Wallet等)。官网保持较高的网站安全性非常重要,如果官网被黑了,就会出大问题。 )。

如果是硬件钱包,强烈建议从官方网站购买。不要从网上商店购买它们。收到钱包后,还应注意钱包是否完好。当然,包装上也有一些难以察觉的恶作剧。无论如何,在使用硬件钱包时,您应该从头开始至少创建三次助记词和钱包地址。并确保它们不重复。

如果是网页钱包,我们强烈建议不要使用它。除非你别无选择,否则请确保它是正品,然后谨慎使用,切勿依赖它。

助记词

创建钱包后,我们直接处理的关键是助记词/助记词,而不是私钥,这样更容易记住。助记词有标准约定(例如BIP39);英语单词一般有12个;可以是其他数字(3的倍数),但不能超过24个字。否则太复杂,不容易记住。如果字数少于12,则安全性不可靠。常见的是 12/15/18/21/24 个字。在区块链世界里,12个字已经很流行,也足够安全。但是,仍然有硬核硬件钱包,比如Ledger,是24个字开头的。除了英文单词外,还可以使用一些其他语言,例如中文、日文、韩文等。以下是 2048 个单词列表供参考:

https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md

创建钱包时,您的助记词很容易受到攻击。请注意,您周围没有人、网络摄像头或任何其他可能窃取您助记词的东西。

另外,请注意助记词是否是随机生成的。通常知名钱包可以生成足够数量的随机种子短语。但是,您应该始终小心。很难知道钱包是否有问题。请保持耐心,因为养成这些习惯对于您的安全非常有益。最后,有时您甚至可以考虑断开与互联网的连接来创建钱包,特别是如果您要将钱包用作冷钱包。断开与互联网的连接总是有效的。

无钥匙

无钥匙意味着没有私钥。这里我们将Keyless分为两大场景(为了便于解释。这样的划分不是行业标准)

保管。例如中心化交易所和钱包,用户只需要注册账户,不拥有私钥。他们的安全性完全依赖于这些中心化平台。 Non-Custodial。用户拥有类似私钥的控制权,但它不是实际的私钥(或助记词)。它依赖于知名的云平台进行托管和身份验证/授权。因此云平台的安全性成为最脆弱的部分。其他公司利用安全多方计算 (MPC) 来消除单点风险,并与流行的云平台合作以最大限度地提高用户体验。

就我个人而言,我使用过各种 Keyless 工具。财力雄厚、信誉良好的中心化交易所提供了最好的体验。只要您个人不对丢失代币负责(例如您的账户信息被黑客入侵),中心化交易所通常会补偿您的损失。基于MPC的Keyless方案看起来很有前景,值得推广。我对 ZenGo、Fireblocks 和 Safeheron 有很好的经验。优点很明显:

MPC算法工程在知名的区块链上越来越成熟,只需要针对私钥进行操作。 一套思路就可以解决不同区块链多重签名方案差异巨大的问题,创造一致的用户体验,也就是我们常说的:通用多重签名。 通过多重签名计算,可以保证真正的私钥永远不会出现,解决单点风险。 与云(或Web2.0技术)相结合,使得MPC不仅安全,而且创造了良好的体验。

然而,仍然存在一些缺点:

并非所有开源项目都能满足业界公认的标准。还需要做更多的工作。 很多人基本上只使用以太坊(或基于EVM的区块链)。因此,像 Gnosis Safe 这样基于智能合约方法的多重签名解决方案就足够了。

总的来说,无论你使用哪种工具,只要你感到安全可控、体验良好,就是一个好工具。

到目前为止,我们已经介绍了有关创建钱包需要注意的事项。其他一般安全问题将在后面的部分中介绍。

备份你的钱包

这就是很多好手会落入陷阱的地方,包括我自己。我没有正确备份,我知道这种情况迟早会发生。幸运的是,这不是一个有大量资产的钱包,慢雾的朋友帮我找回了它。尽管如此,这仍然是一次可怕的经历,我认为没有人愿意经历。因此,系好安全带,让我们学习如何安全备份您的钱包。

助记词/私钥

当我们谈论备份钱包时,本质上是在谈论备份助记词(或私钥,为了方便起见,下面我们将使用助记词)。大多数助记词可以分为以下几类:

纯文本 有密码 Multi-signature 沙米尔的秘密共享,简称 SSS

我将简要解释每种类型。

纯文本,纯文本很容易理解。一旦你掌握了这 12 个英文单词,你就拥有了钱包中的资产。您可以考虑进行一些特殊的改组,甚至用其他单词替换其中一个单词。两者都会增加黑客侵入你钱包的难度,但如果你忘记了这些规则,你会很头疼。你的记忆力并不是刀枪不入的。相信我,几年后你的记忆就会变得混乱。几年前,当我使用Ledger硬件钱包时,我改变了24个单词助记词的顺序。几年后,我忘记了顺序,也不确定是否替换了任何单词。如前所述,我的问题是通过一个特殊的代码解密程序解决的,该程序使用暴力来猜测正确的序列和单词。

有密码,根据标准,助记词可以有密码。它仍然是相同的短语,但使用密码时,将获得不同的种子短语。种子短语用于派生出一系列私钥、公钥和相应的地址。所以不仅要备份助记词,还要备份密码。顺便说一句,私钥也可以有密码,它有自己的标准,例如比特币的 BIP 38 和以太坊的 Keystore。

多重签名,顾名思义,需要多人签名才能访问钱包。它非常灵活,因为您可以设置自己的规则。例如,如果有 3 个人拥有密钥(助记词或私钥),则可以要求至少两个人签名才能访问钱包。每个区块链都有自己的多重签名解决方案。大多数知名的比特币钱包都支持多重签名。然而,在以太坊中,多重签名主要通过智能合约来支持,例如 Gnosis Safe。此外,MPC(安全多方计算)变得越来越流行。它提供了类似于传统多重签名的体验,但采用了不同的技术。与多重签名不同,MPC 与区块链无关,并且可以适用于所有协议。

SSS,Shamir 的秘密共享,SSS 将种子分解为多个共享(通常每个共享包含 20 个单词)。要恢复钱包,必须收集并使用指定数量的份额。有关详细信息,请参阅以下行业最佳实践:

https://support.keyst.one/advanced-features/recovery-phrase/import-or-create-shamir-backup
https://wiki.trezor.io/Shamir_backup

使用多重签名、SSS等解决方案可以让您安心,避免单点风险,但管理相对复杂,有时会涉及多方。便利性和安全性之间总是需要妥协。由个人决定,但原则上决不能偷懒。

Encryption

加密是一个非常非常广泛的概念。加密是对称的、非对称的还是使用其他先进技术都没关系;只要加密的消息可以被您或您的应急处理团队轻松解密,但几十年后其他人都无法解密,那么它就是好的加密。

基于“零信任”的安全原则,我们在备份钱包时,必须假设任何一步都可能被黑客入侵,包括保险箱等物理环境。请记住,除了你自己之外,没有人可以完全信任。事实上,有时你甚至不能相信自己,因为你的记忆可能会消失或放错地方。不过,我不会一直做出悲观的假设,否则会导致一些不想要的结果。

备份时,必须特别考虑灾难恢复。灾难恢复的主要目的是避免单点风险。如果您离开或存储备份的环境出现故障,会发生什么情况?所以重要的东西一定要有容灾人员,一定要有多重备份。

我不会过多阐述如何选择灾难恢复人员,因为这取决于您信任的人。我将重点介绍如何进行多重备份。让我们看一下备份位置的一些基本形式:

云 Paper 设备 脑

云许多人不信任云备份,他们认为云备份很容易受到黑客攻击。归根结底,关键在于哪一方(进攻方或防守方)在人力和预算方面投入更多努力。就我个人而言,我对谷歌、苹果、微软等公司提供的云服务很有信心,因为我知道他们的安全团队有多强大,以及他们在安全方面花了多少钱。除了对抗外部黑客,我也非常关心内部安全风控和隐私数据保护。我信任的少数服务提供商在这些领域做得相对更好。但没有什么是绝对的。如果我选择这些云服务中的任何一个来备份重要数据(例如钱包),我肯定会至少再加密一次钱包。

我强烈建议掌握 GPG。可用于“签名验证”,同时提供强大的加密和解密安全性。您可以在以下位置了解有关 GPG 的更多信息:

https://www.ruanyifeng.com/blog/2013/07/gpg.html

Okay, you have mastered GPG 🙂 Now that you have encrypted related data in your wallet (mnemonic phrase or private key) with GPG in an offline secured environment, you can now throw the encrypted files directly into these cloud services and save it there. All will be good. But I need to remind you here: never lose the private key to your GPG or forget the password of the private key…

此时,您可能会发现这种额外的安全级别相当麻烦:您必须了解 GPG 并备份您的 GPG 私钥和密码。事实上,如果您已经完成了上述所有步骤,那么您已经熟悉了该过程,并且不会感到困难或麻烦。我不再多说了,因为熟能生巧。

如果你想省点力气,还有另一种可能,但它的安全性可能会打折扣。我无法衡量确切的折扣,但有时当我使用一些众所周知的工具来寻求帮助时,我会偷懒。该工具是 1Password。最新版本的1Password已经支持直接存储钱包相关数据,如助记词、密码、钱包地址等,方便用户使用。其他工具(例如 Bitwarden)也可以实现类似的功能,但没有那么方便。

Paper许多硬件钱包都附带几张高质量的纸卡,您可以在上面写下助记词(明文、SSS 等)。除了纸之外,有些人还用钢板(耐火、耐水、耐腐蚀的,当然这些我没试过)。复制助记词后进行测试,如果一切正常,请将其放在您感到安全的地方,例如保险箱。我个人非常喜欢使用纸张,因为如果存放得当,纸张的使用寿命比电子产品长得多。

设备,指各类设备;电子产品是常见的备份类型,例如电脑、iPad、iPhone、硬盘等,依个人喜好而定。我们还必须考虑设备之间的安全传输。我觉得使用 AirDrop 和 USB 等点对点方法很舒服,中间人很难劫持该过程。我只是自然地担心电子设备可能会在几年后出现故障,所以我保持了每年至少检查一次设备的习惯。有一些重复的步骤(例如加密),您可以参考云部分。

脑,依靠你的记忆是令人兴奋的。其实,每个人都有自己的“记忆宫殿”。记忆并不神秘,可以通过训练来更好地发挥作用。有些事情用记忆确实更安全。是否仅仅依靠大脑是个人的选择。但要注意两个风险:一是记忆会随着时间的推移而消失,容易造成混乱;另一个风险是您可能会发生事故。我就停在这里,让你探索更多。

现在你们都得到了支持。不要加密太多,否则几年后你会吃亏的。根据“持续验证”的安全原则,你的加密和备份方式,无论是否过度,都必须持续验证,既可以定期验证,也可以随机验证。验证频率取决于您的记忆,您不必完成整个过程。只要过程正确,部分验证也是有效的。最后,还需要注意认证过程的保密性和安全性。

Okay, let’s take a deep breath here. Getting started is the hardest part. Now that you are ready, let’s enter this dark forest 🙂

如何使用您的钱包

创建并备份钱包后,真正的挑战就来了。如果你的资产不经常移动,或者很少与 DeFi、NFT、GameFi、Web3 这些时下经常提及的智能合约进行交互,那么你的资产应该是相对安全的。

反洗钱

然而,“相对安全”并不意味着“完全没有风险”。因为“你永远不知道哪个先发生,明天还是事故”,对吗?为什么?想一想,你从哪里得到加密货币?它不是凭空而来的,对吧?您随时可能会遇到针对您获得的所有加密货币的 AML(反洗钱)。这意味着你此刻持有的加密货币可能是脏的,如果你不幸运的话,它甚至可能会被直接冻结在链上。据公开报道,Tether曾根据执法机构的要求冻结了部分USDT资产。冻结资金列表可在此处找到。

https://dune.xyz/phabc/usdt—banned-addresses

您可以通过 USDT 合约验证某个地址是否被 Tether 冻结。

https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#readContract

使用目标钱包地址作为输入 int isBlackListed 进行检查。其他接受USDT的链也有类似的验证方式。

但是,您的 BTC 和 ETH 永远不应该被冻结。如果有一天这种情况真的发生,去中心化的信念也会崩溃。我们今天听到的大多数加密货币资产冻结案例实际上都发生在中心化平台(例如Binance、Coinbase等),而不是区块链上。当您的加密货币留在中心化交易平台时,您实际上并不拥有它们中的任何一个。当中心化平台冻结你的账户时,他们实际上是在撤销你的交易或提现权限。冻结的概念可能会误导该领域的新手。于是,一些鲁莽的自媒体就会散布各种关于比特币的阴谋论。

虽然您的 BTC 和 ETH 资产不会被冻结在区块链上,但一旦您的资产转移到这些平台,并且涉及执法部门正在处理的任何未决案件,中心化交易所可能会根据 AML 的要求冻结您的资产。

为了更好地避免反洗钱问题,请务必选择信誉良好的平台和个人作为交易对手。对于此类问题实际上有几种解决方案。例如,在以太坊上,几乎所有坏人和非常关心隐私的人都使用 Tornado Cash 进行混币。我不会再深入探讨这个话题,因为这里的大多数方法都被用来作恶。

冷钱包

使用冷钱包的方式有多种。从钱包的角度来看,只要不连接任何网络,就可以被视为冷钱包。但是离线时如何使用呢?首先,如果你只是想接收加密货币,那没什么大不了的。冷钱包可以与手表钱包配合使用,例如imToken、Trust Wallet等,提供良好的体验。只需添加目标钱包地址,这些钱包就可以变成手表钱包。

如果我们想使用冷钱包发送加密货币,以下是最常用的方式:

二维码 USB 蓝牙

所有这些都需要一个专门的应用程序(这里称为Light App)来与冷钱包配合使用。 Light 应用程序将与上述的 Watch-only 钱包一起上线。一旦我们理解了底层的基本原理,我们就应该能够理解这些方法。基本原则是:最终,这只是弄清楚如何将签名内容广播到区块链上的问题。详细流程如下:

待签名的内容由 Light App 通过以下方式之一传输到冷钱包。 签名由拥有私钥的冷钱包处理,然后使用相同的方式传输回Light App Light App 在区块链上广播签名内容。

所以无论使用二维码、USB还是蓝牙哪种方式,都应该遵循上述流程。当然,不同的方法,细节可能会有所不同。例如,二维码的信息容量有限,当签名数据太大时,我们就必须将其拆分。

看起来有点麻烦,但是习惯了就好多了。你甚至会感受到满满的安全感。不过,不要认为100%是安全的,因为这里仍然存在风险,而且已经有很多因为这些风险而造成重大损失的案例。以下是风险点:

没有仔细检查转币的目标地址,导致币被转给了别人。人有时是懒惰和粗心的。例如,大多数时候他们只检查钱包地址的开头和结尾几位,而不是完全检查整个地址。这给坏人留下了后门。他们将运行程序来获取与您所需的目标地址相同的前几位和后几位的钱包地址,然后使用一些技巧将您的硬币转移目标地址替换为他们控制下的目标地址。 硬币被授权到未知的地址。通常授权是以太坊智能合约代币的机制,即“批准”功能,一个参数是目标授权地址,另一个是数量。很多人不理解这个机制,所以他们可能会向目标地址授权无限数量的代币,此时目标地址就有权限将所有这些代币转走。这称为授权硬币盗窃,并且该技术还有其他变体,但我不会在这里进行扩展。 有些看似不重要的签名,其实背后隐藏着巨大的陷阱,我现在不深究,稍后会详细解释。 冷钱包可能没有提供足够的必要信息,导致您粗心、误判。

这一切都归结为两点:

缺少“所见即所签”的用户交互安全机制。 用户缺乏相关背景知识。 热钱包

与冷钱包相比,热钱包基本上具有冷钱包所具有的所有风险。另外,还有一个:秘密短语(或私钥)被盗的风险。此时热钱包还有更多的安全问题需要考虑,比如运行环境的安全性。如果存在与运行环境相关的病毒,则存在被盗的风险。还有一些热钱包存在一定的漏洞,可以通过这些漏洞直接窃取密语。

除了常规的转币功能外,如果您想与其他 DApp(DeFi、NFT、GameFi 等)进行交互,您要么需要使用自己的浏览器直接访问它们,要么通过 PC 浏览器中打开的 DApp 进行交互WalletConnect 协议。

注意:本手册中提及的 DApp 默认指的是在以太坊区块链上运行的智能合约项目。

默认情况下,此类交互不会导致秘密短语被盗,除非钱包安全设计本身存在问题。从我们的安全审计和安全研究历史来看,存在钱包秘密短语被目标页面上的恶意 JavaScript 直接窃取的风险。然而,这种情况很少见,因为这实际上是一个极低级的错误,任何知名钱包都不会犯。

这些实际上都不是我真正关心的问题,它们对我来说是可以管理的(对你来说也是如此)。我最大的担忧/担忧是:知名钱包的每次迭代如何确保不被植入恶意代码或后门?这个问题的含义很明确:我验证了当前版本的钱包没有安全问题,并且我很舒服地使用它,但我不知道下一版本的安全性如何。毕竟,我或我的安全团队不可能有那么多时间和精力来完成所有验证。

这里已经发生了多起恶意代码或者后门导致的盗币事件,比如CoPay、AToken等,具体事件大家可以自行搜索。

在这种情况下,作恶的方式有以下几种:

当钱包运行时,恶意代码会将相关密语直接打包上传到黑客控制的服务器中。 当钱包运行时,用户发起转账时,目标地址、金额等信息会在钱包后台秘密替换,用户很难察觉。 破坏与秘密短语生成相关的随机数熵值,这使得它们相对容易被破译。

安全是一个无知和知识的事情,有很多事情很容易被忽视或错过。因此,对于持有重要资产的钱包,我的安全规则也很简单:足够使用时,不要轻易更新。

什么是 DeFi 安全

当我们谈论DApp时,它可以是DeFi、NFT或GameFi等。这些的安全基础基本相同,但它们也会有各自的特点。我们先以 DeFi 为例来解释一下。当我们谈论 DeFi 安全时,我们到底在说什么?业内人士几乎总是只看智能合约。看来智能合约好了,一切都会好起来的。事实上,这远非事实。

DeFi 安全至少包括以下几个部分:

智能合约安全 区块链基础安全 前端安全 通讯安全 人类安全 财务安全 合规安全

智能合约安全

智能合约安全确实是安全审计最重要的切入点,慢雾智能合约的安全审计标准可以参见:

https://www.slowmist.com/service-smart-contract-security-audit.html

对于高级玩家来说,如果智能合约部分本身的安全性是可控的(是否能够自我审计或者看懂专业机构出具的安全审计报告),那么其他部分是否安全并不重要。可控是一个棘手的概念,其中一些取决于玩家自身的实力。例如,玩家对智能合约权限过高的风险有一定的要求。如果项目本身很强大,并且背后的人有很好的声誉,那么完全中心化就没有关系。然而,对于那些不太知名、有争议或新兴的项目,如果你意识到该项目的智能合约存在过多的权限风险,尤其是这种权限也会影响你的本金或收益,你肯定会不愿意。

过度许可的风险非常微妙。在许多情况下,项目的管理员可以进行相关的治理和风险应急。但对于用户来说,这是对人性的考验。如果团队决定作恶怎么办?所以业界有一种权衡做法:添加Timelock来降低此类权限过多的风险,例如:

Compound,老牌知名 DeFi 项目,其核心智能合约模块 Comptroller 和 Governance 均在管理权限中添加了 Timelock 机制:
控制器(0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b)
治理(0xc0da02939e1441f497fd74f78ce7decb17b66529)
管理员这两个模块是
时间锁(0x6d903f6003cca6255d85cca4d3b5e5146dc33925)

可以直接在链上查到Timelock(延迟变量)为48小时(172,800秒):

也就是说,如果Compound的管理员需要更改目标智能合约的某些关键变量,则该交易在区块链上发起后就会被记录,但必须等待48小时才能最终确定并执行。这意味着,如果您愿意,您可以审核管理员的每一项操作,并且您将有至少 48 小时的时间采取行动。例如,如果您不确定,您可以在 48 小时内提取资金。

另一种降低管理员权限过多风险的方法是添加多重签名,例如使用 Gnosis Safe 进行多重签名管理,这样至少不会出现独裁者。这里需要注意的是,多重签名可以是“皇帝的新衣”。例如,一个人可能持有多把钥匙。因此,需要明确目标项目的多重签名策略。谁持有钥匙,每个钥匙持有者的身份必须是有信誉的。

这里值得一提的是,任何安全策略都可能导致“皇帝的新衣”问题,看似策略做得很好,但实际上却做得不好,造成安全假象。再举个例子,Timelock 在纸面上看起来不错。事实上,曾经有过一些项目部署的Timelock存在后门的情况。一般来说,用户不会查看Timelock的源代码,即使查看也不一定能理解,因此管理员在那里放置了一个后门,并且在足够长的时间内没有人会真正注意到。

除了过度许可的风险之外,智能合约安全的其他要素也至关重要。不过,考虑到理解的前提,我这里就不展开了。我的建议是:你至少应该学会阅读安全审计报告,熟能生巧。

区块链基础安全

区块链基础安全是指区块链本身的安全,比如共识账本安全、虚拟机安全等。如果区块链本身的安全性令人担忧,那么链上运行的智能合约项目将直接受到影响。选择一个具有足够安全机制和声誉的区块链非常重要,并且更好地具有更高的长寿概率。

前端安全

前端安全确实是魔鬼。离用户太近,特别容易让用户上当受骗。也许大家主要关注的是钱包和智能合约的安全,导致前端安全很容易被忽视。我想再次强调,前端安全是魔鬼!请允许我更深入地挖掘。

我对前端安全性最关心的是:我如何知道我从这个特定前端页面与之交互的合约是我期望的智能合约?

这种不安全感主要源于两个因素:

内部工作 第三者

了解内部工作很简单。例如,开发者偷偷将前端页面中的目标智能合约地址替换为有后门的合约地址,或者植入授权钓鱼脚本等。当您访问这个被操纵的前端页面时,一系列涉及您钱包中的加密货币的后续操作可能会在陷阱中完成。在你意识到之前,硬币已经不见了。

第三方主要指两类:

一是依赖链被渗透。例如,前端页面使用的第三方依赖存在后门,该后门会随着打包和发布而潜入目标前端页面。以下是SushiSwap的包依赖结构(仅供参考,并不一定意味着截图中的项目存在此类问题):

另一个例子是前端页面导入的第三方远程 JavaScript 文件。如果这个 JavaScript 文件被黑客攻击,目标前端页面也可能受到影响,例如 OpenSea(仅用于说明,并不一定意味着屏幕截图中的项目存在此类问题):

我们之所以说这是可能但不确定的原因是,如果开发人员通过以下方式引用前端页面上的第三方远程 JavaScript 文件,则可以减轻风险:

搜索 搜索InSite链上社会新闻 热门推荐: 空投猎人 数据分析 加密货币名人 陷阱探测器 简体中文 English 繁體中文 日本語 Tiếng Việt العربية 한국어 Bahasa Indonesia हिन्दी اردو Русский 简体中文

智能索引记录