# 洞悉开源安全：从GitHub评估项目安全性

By [Your Airdrop](https://paragraph.com/@your-airdrop) · 2023-07-29

---

eralend和kannagi事件后，很多人问怎么通过查看开源了解项目的安全性，这里简单介绍一下。

首先要指出的是，开源其实是一把双刃剑。一方面，源代码的公开性确实使得更多的眼睛可以找出并修复潜在的安全隐患，这是一种“集体保卫”的模式。另一方面，恶意的黑客也可以利用这种开放性，寻找并利用安全漏洞。同时，开源并不意味着每一行代码都会被审查，大量的开源项目并没有足够的资源去进行严密的安全审查。

虽然开源和安全没有特别的相关性，但是一般认为，在web3黑暗森林的环境中，与其相信项目方的人性，不如相信所有人都能查阅的code。

刚好有人问融资2900万美元的@ParaSpace\_NFT也来到zksync，是否能够放心使用。在这篇短文中，我们以paraspace为例，分享一些如何通过查看 GitHub 上的信息来评估开源项目安全性的方法。请记住，这只是一个初步的评估，真正的安全性需要更深入的考察和长期的关注。

首先打开官网

[https://app.para.space/?chain=zksync\_era](https://app.para.space/?chain=zksync_era)

一般开发相关的文档在网站的最底部，我们直接拉到下面

这里可以看到github和docs

github就是项目开源的地方，docs是官方提供的文档，文档越详细内容越多，可以从侧面看出项目的完成度，这里面也有很多门道，但并不是本文的重点，暂且不细说了

![](https://storage.googleapis.com/papyrus_images/b611eeab27474c8889b2711cf086fd83b8a19923e5e3fd267ac99f5896f7b85a.png)

docs是官方提供的文档，文档越详细内容越多，可以从侧面看出项目的完成度，这里面也有很多门道，但并不是本文的重点，暂且不细说了。

github就是项目开源的地方。开源意味着任何人都可以审核项目的安全性、稳定性和代码质量，它建立了用户对系统基本的信任。开源并不代表一定安全，存在的可能是，有黑客发现了漏洞，但并没有提交安全意见，反而转过来头攻击项目。但是一般来说，开源项目收到的安全建议会比攻击要多的多。

现在打开github链接，看到打开的是paraspace-core，说明这是核心代码。咱们不懂代码，也没时间一个个读，这里重点关注issues、pull request、fork、star。

issues和pull request显示了社区成员对项目的参与程度。Pull Request表示有人试图对项目代码进行更改，Issue则表示人们在报告问题或提出新的功能建议。活跃的Pull Request和Issue讨论表明项目有一个活跃的社区。

Stars Forks Watchers可以显示项目的受欢迎程度。Stars表示人们对项目的喜爱，Forks表示有多少人复制（分叉）了该项目，Watchers表示有多少人订阅了项目的更新。

在这里，我们可以看到这是一个有一定社区成员参与的项目，具备一定的活跃度。

![](https://storage.googleapis.com/papyrus_images/d9bc98ee6e42135918713bf247278d30ee03da2e17ef3951d4d6b862c7bea3ac.png)

再往下翻，可以看到说明文档。说明文档可以帮助用户理解项目的目标、用途、安装步骤等，这也可以显示项目团队是否重视透明度和易用性。

里面的codeov和ci分别是持续集成（Continuous Integration）和代码覆盖率报告，这两个工具可以提高开发的效率，一般正规的项目都会使用这两个工具。

![](https://storage.googleapis.com/papyrus_images/b58263a858756d0921d51e3ab948033131ac4e4212576875cf8fee3939fabf1f.png)

代码文件的右边有一个contributors，能看到参与的贡献者的名单，点击进去后可以看到完整的名单和参与情况。

![](https://storage.googleapis.com/papyrus_images/2c717bd81f46c9f21684491be430b8e92de1f0b07263c3a4c149597ea7430a19.png)

如红框所示，一般贡献者各种简介越详细，实名化程度就越高，可以看到项目的主要贡献者/开发者是cheng jiang，他不仅参与了paraspace的开发，本人分叉/关注的库多达643个（其中有一些还真挺有趣的），说明他使用github的频率非常高，明显不是一个临时创立的github账号。

在开发者的页面中，还能看到该用户的领英和推特，从这个角度还能深入挖掘到更多的信息，今日时间有限，就不赘述了。

![](https://storage.googleapis.com/papyrus_images/7e9e19919917a2ccefce1eb751fdc530d69cefb9db9b593e5b29214568406ec6.png)

回到顶部，我们点击红圈中的para-space回到项目的主页，然后点击repositories，这里展示了项目方开源的所有代码库。

![](https://storage.googleapis.com/papyrus_images/ccb02d1b38eee9c163da44e1615e186d3c7ddf2d9fa065815674eccacb8be3ac.png)

通过命名我们大致可以看出这些库的功能，项目方的核心代码的开发已经趋于稳定，目前正在完善defillama等周边的功能。

从代码更新的频率上，我们可以看到一个一直在做事的项目方。

![](https://storage.googleapis.com/papyrus_images/982a32497c4f811c49c5c2c3dd804258659e21e41d17fbef60458f41265bcef8.png)

到这里，基本算是把一个项目方的github库翻了个遍，总的来说，我们看到的是一个认真、在做事的项目。

**但是！到这里就结束了吗？并不是这样的。**

正如开头所说，代码开源和docs丰富程度仅仅只能代表项目的一个方面，对于安全来说仅仅是一个必要非充分的条件。

翻看paraspace的历史，我们仍然可以看到这样一个2900万美元融资的大型项目也遭遇过黑客攻击、团队内讧等不安全事件。行走在web3的黑暗森林，我们必须时刻小心谨慎，才不至于落入猎手的圈套，但也正是因为处于这样的环境中，我们才能在混沌中分到一杯羹。

![](https://storage.googleapis.com/papyrus_images/4422b01e7c71c15c787a127ff5a4e84e9b4bcf23a71b5d1c1687f55f59240349.png)

从最新的一次公告来看，paraspace的运营已经回归正轨，这里也祝愿项目早日取得成功。

给我空投！

---

*Originally published on [Your Airdrop](https://paragraph.com/@your-airdrop/github)*
