# 加密项目应如何提高项目安全性？

By [jingge notes](https://paragraph.com/@jingge) · 2022-08-25

---

在安全方面，开发团队和安全团队之间一直存在紧张关系。开发团队喜欢快速行动，不赞成任何限制开发速度或创造力的事情。与此相反的力量是安全性，其本质上会与速度和收入背道而驰。文本解析了加密行业面临的安全问题。

安全和自我监管 我认为，包括加密货币和 DeFi 在内的区块链行业面临的最大挑战之一是缺乏对项目安全性的认识和认识。有些项目非常重视安全性，但根据我的经验，大多数项目都没有。

在安全方面，开发团队和安全团队之间一直存在紧张关系。开发团队喜欢快速行动，不赞成任何限制开发速度或创造力的事情。速度受到更广泛的企业的赞赏，因为速度意味着更新的产品可以更快地销售，这意味着竞争优势和增加的收入。过去，传统金融企业向我清楚地表达了这一点.

与此相反的力量是安全性，其本质上会与速度和收入背道而驰。安全要求团队放慢脚步，思考他们正在构建什么，思考风险和潜在漏洞，采取不直接增加收入但防止可能永远不会出现的未来情况的行动。这往往会导致安全性成为事后的想法，即后来可能出现的不那么令人兴奋的部分。

这种紧张局势并非区块链行业独有，但大多数行业已经达到成熟程度，安全性已经发展到自己的地位，特别是在不得不面对消费者信心丧失、监管愤怒并因此不得不让安全成为他们构建的一切的核心。我在网上银行时代之前长大，我记得当银行开始提供在线金融服务时，消费者的怀疑程度。当新闻报道开始报道人们和企业受到不可靠服务的影响以及攻击者从内部孤狼到有组织的犯罪团伙实施的数字银行抢劫案的影响时，这种怀疑并没有得到帮助。监管机构追赶的速度很慢，但他们做到了，该行业被迫自我清理，

今天，我看到区块链行业处于与银行业曾经处于同样不成熟的水平。智能、快速移动的开发人员群体渴望抢占市场份额，而没有时间为安全而放慢脚步。结果是来自同一群体的抢劫，从内部独狼到有组织的犯罪团伙。结果是消费者对该行业失去信心，监管机构不可避免地出现红眼。当妈妈和爸爸被邀请将他们辛苦赚来的钱和节省下来的钱投资到零追索权、匿名开发人员、最低安全性的项目中，从而导致受感染项目的名单不断增加，那么监管审查就变得不可避免。监管机构不会消失，他们不会停止要求行业提供更好的服务，被要求信任它的消费者和企业也不会。安全必须不仅仅是项目的标语。

我看到的区块链和加密行业面临的问题如下。

1.  进步速度。市场瞬息万变，这促使团队迅速行动。在开发过程中，安全性几乎没有得到真正的重视。相反，项目依赖于开发过程结束时的代码审计，任何作为软件工程师工作很长时间的人都可以告诉你，安全不能是事后才想到的。安全必须从第一行代码开始，它必须是项目 DNA 的一部分。
    
2.  缺乏测试。由于对速度的需求，测试通常由编写它的开发人员进行。开发人员永远不应该标记自己的作业，这是软件工程的核心原则。询问测试人员他们的代码是否有效，答案总是肯定的。优秀的测试人员价值连城，他们的思维方式与开发人员的思维方式截然不同。测试人员应该从项目一开始就参与进来，制定测试计划和验收标准。TDD 非常适合开发人员，但这并不能取代独立的测试专业知识。
    
3.  dApp 项目的攻击面明显高于其他类型的软件。
    

一个。dApp 具有公开可用的开源链上软件，任何人都可以检查和观察其运行情况。现代 dApp 由许多交互的智能合约组成，其中许多与第三方智能合约交互。这意味着在智能合约级别存在整个攻击面。小到两行代码的错误顺序可能会导致资金全部损失。控制资金的智能合约必须是安全的，并且必须涵盖边缘情况，必须接受多双眼睛的严格审查。

湾。有用户持有的私钥。对于钱包和其他管理密钥的应用程序，这是额外的直接责任层，但即使对于 dApp，也应该问一个问题：“如果单个用户的私钥甚至整个用户组的私钥被泄露怎么办？我们可以在我们的 dApp 中做些什么来尽可能降低风险？”。这是安全代码的旧边界分析问题，假设所有输入都是错误的，假设每个调用都是恶意的，我们可以做些什么来降低我们编写的代码中的风险？

C。伴随着整个传统攻击向量家族通常会出现链下服务。对于将链上服务与链下通信渠道和端点混合在一起的网桥来说尤其如此，每一个都可能受到损害。如何保护节点？纵深防御的原则是否适用？WAF 分层？服务器打补丁？最低特权？沟通渠道如何保障？即使是非桥梁项目也托管在某个地方。DNS 是否使用安全多重签名？托管基础设施如何受到保护？他们的故障转移？这些端口真的需要打开吗？盒子上安装了什么？打补丁了吗？该列表还在继续，但对蓝队和系统管理员很重要。

d。项目如何保护自己免受内部威胁？许多团队与匿名开发人员一起分发。通常，团队甚至彼此都不认识。项目是如何开发的，以允许开发团队本身内有一个或多个不良行为者？团队应该匿名吗？如果是，那么我们如何消除团队中独狼坏演员的威胁？

e. 供应链风险。当今更广泛的信息安全行业面临的最大挑战之一是供应链风险。第三方供应商（例如节点提供商和服务提供商）的风险在哪里？一个项目通常会包含数十到数百个第三方组件，您如何监控这些组件中的漏洞？通常有一些工具可以放在部署管道中来测试和报告这些组件，它们是否被使用并且您是否对这些报告做出响应？

F。团队对防御性编程有多少认识？当我第一次开始为 Microsoft 编写代码时，我需要阅读两本书。“编写安全代码”和“代码完成”。这些迫使我思考防御性编程，这是开发人员的一种特殊思维方式。我仍然向开发人员推荐这些书以及更现代的在线课程。

我花了一段时间才可以自信地告诉亲人他们可以安全地使用网上银行服务。就银行业而言，带来变革的不是自我监管，而是外部监管机构在推动变革。如果监管机构没有消除银行的腐败和利润焦点，我怀疑我们是否会拥有当今存在的安全可靠的银行系统，而消费者会因此变得更糟。

区块链行业现在有机会审视传统银行业，吸取教训，把事情做得更好。存在同样的对速度和利润的渴望，同样的腐败。问题变成了该行业是否需要外部监管机构来指示变革，还是可以自我监管并自行带来变革？

为此，业界必须承认存在问题，持续的攻击和转移被盗资金的路线不容忽视。该行业需要开发用于构建安全系统的标准和教育材料。诸如为 Solidity 编写安全代码之类的书籍。联合漏洞赏金和计划，大型资金充足的 DAO 为较小的无资金项目支付费用，并负责任地报告他们自己项目以外的项目中的漏洞。谷歌会定期向这些项目团队报告其他项目中的漏洞，这对谷歌来说是有代价的，但对更广泛的行业有利。行业需要首先推动安全意识，必须挑战项目如何解决安全问题。这对 DeFi 尤为重要。

一座桥被黑，导致消费者赔钱。这些资金混杂在一起，行业不以为然，认为这是保护行业原则的成本。监管机构介入，业界称其为家禽。我认为这是一个家庭目标，有一个明确的犯罪事件和一系列明确的行动，如果行业不采取行动，那么监管机构就必须采取行动。当监管机构说“这是行业原则的事情”时，你不能让执法部门追捕数亿美元。那永远不会发生，也不应该发生。

但我不希望看到不良法规侵蚀区块链的核心原则，因此行业必须带头解决这些问题。

监管机构最终将坚持标准，更好的安全实践，证明安全正在融入项目。我们不需要监管机构告诉我们，我们应该自己做。

监管机构将及时坚持阻止被盗资金转移的方法。我们不需要监管机构告诉我们，我们可以设计项目协议来设置限制，自动化许多检查，将更多的金额转移到有时间限制的合同中，拥有批准大额转账的投票机制等等。EVM 为我们提供了许多功能，例如带有 WASM 的 Rust 语言可以更严格地控​​制我们开发的内容。我们可以建立监管机构要求的流程。

监管机构将及时坚持阻止或惩罚不保护其用户的项目，更糟糕的是，助长非法活动而不努力改变。我们不需要监管机构告诉我们，DAO 和社区可以为此负责。

在我看来，应对不良监管威胁的最好方法是首先以更好的方式进行自我监管。

---

*Originally published on [jingge notes](https://paragraph.com/@jingge/aVhI2T79xDwKPKrWq47f)*
