独家 | 审计报告怎么记录审计文件的存证? 又该如何去审读

本文由“Fairyproof Tech”原创,授权“金色财经”独家首发,转载请注明出处。

 一份审计报告是对一套智能合约的“质量检测报告”,那报告就要告诉用户所审计的对象是谁。

 和普通的有形商品不同,智能合约这种特殊的商品是摸不着的,那怎么才能让用户知道它呢?

 区块链领域的绝大多数项目包括鼎鼎大名的比特币和以太坊都有一个共同的特点:它们的源代码都是”开源”的。所谓的“开源”就是它们的代码都是公开的,放在某个公开、所有人都可以访问的网站上,任何人都可以看到它的内容。

 我们所审计的智能合约绝大多数也是这样,它们都是开源的,放在一些知名的、供所有人存放文件的网站比如github等。

 如果我们所审计的智能合约是开源并且放在了github上,我们要让用户知道它、看到它的源代码,就会在审计报告中列出合约所存放的github的网址。这就好比一件商品存进了一个大仓库,存在仓库中的某个库房,我们要让用户能找到这件商品就要告诉用户仓库的地址和库房的门牌号码。存放合约的github网址就等于仓库地址+门牌号码。

基于云的加密矿工正利用GitHub Actions和Azure虚拟机非法挖矿:7月16日消息,GitHub Actions和Azure虚拟机(VM)正被用于基于云的加密货币挖矿,表明恶意行为者持续试图以非法目的攻击云资源。

Trend Micro研究人员Magno Logan在上周的一份报告中表示:“攻击者可以通过恶意下载和安装自己的加密货币矿机来滥用GitHub提供的runners或服务器,以运行组织的pipeline和自动化,从而轻松获利。”

Trend Micro表示,他们发现了不少于1000个资料库和550多个代码样本使用GitHub提供的runners并利用该平台来进行加密货币挖矿。该代码托管服务已经被通知了这个问题。(OODALoop)[2022/7/16 2:17:01]

可是如果合约的编写者(通常我们称为项目方)在给审计机构审计时用的是放在github上的一套合约,但审计后尤其是项目上线后,用户又修改了它的智能合约,我们怎么知道放在github上的合约就是审计时看到的合约而不是后来修改过或者其它“鱼目混珠”的合约呢?

这就涉及到github这个仓库的一个特性了。

韩国液压公司Sewon E&C与Delio达成合作:12月15日消息,在韩国证券交易所上市的韩国液压公司Sewon E&C上个月已与加密货币公司Delio原则上达成协议,正在准备对Delio进行“股权投资”,并正在讨论与数字金融相关的业务合作。

Sewon 宣布将扩展到加密货币相关业务,包括基于区块链的 NFT、DeFi 和元宇宙。该公司前身为Miwon Heavy Machinery,在液压行业建立了自己的名字,并且还专门从事泵、阀门、气缸和生物工程解决方案。(cryptonews)[2021/12/15 7:39:51]

当项目方往github中存放代码时,github会给这次存放动作产生一个版本号。这就好比我们在比特币、以太坊中申请一个新钱包时,这个钱包会有一个独一无二的地址一样,这个版本号也是唯一的。

当项目方之后对任何文件有了任何改动:小到一个字的修改,大到文件的删除、添加等,当把这些改动提交到github中,github又会给这次动作产生一个新的版本号。

所以github中的版本号就是对所存放的文件的一份唯一存证,它保证了这个版本号所对应的文件就是某时某刻放进仓库中的文件,而不是之前或之后放进去的文件。

欧股涨幅扩大,德国DAX指数涨1.1%:行情显示,欧股涨幅扩大,英国富时100指数涨1.3%,德国DAX指数涨1.1%,法国CAC40指数涨1%。[2021/3/3 18:11:27]

所以我们在审计报告中除了罗列被审计合约的github网址,还要罗列被审计合约在github中的版本号。

这两个要素就保证了读者看我们报告时能准确知道我们所审计的内容。

除了放在github上,还有的项目方在审计时已经把合约部署在区块链网络上了。由于智能合约一旦部署到区块链网络上,它就是无法篡改和撤销的,因此智能合约所部署的区块链地址也可以作为合约的存证地址。

对这样的合约,我们通常也会记录下它在区块链上的地址作为唯一存证。

我们前面说绝大多数项目的智能合约是开源的,这也就意味着还有一些项目的合约在审计时是未开源的,在这种情况下,我们怎么记录这份合约的存证呢?

我们会用SHA-256的值来标记合约文件的存证。

有些读者尤其是数字货币的玩家看到“SHA-256”这个词会觉得很眼熟:这不是数字货币加密算法中常用的一个技术吗?

确实是这样,更准确的说,它是一种经过“哈希函数”运算得出的值,这个值也被称为“哈希值”,它有256位(bit)。

所谓的哈希函数又称散列函数(英语:Hash Function),是一种从任何一种数据中创建小的数字“指纹”的方法。哈希函数把消息或数据压缩成摘要,使数据量变小,将数据的格式固定下来。该函数将原有的数据打乱混合,重新创建一个结果叫做哈希值(hash value、hash code、hash sum或hash)。

我们为什么要用这个值来记录合约文件的存证呢?因为一个SHA-256的值所对应的文件内容是唯一的。这就和上面我们用github中的版本号来保证github中的文件是唯一的一样。

那我们怎么用这个值来记录合约文件的存证呢?

我们自己编写了一套这样的工具,对所审计的每个合约文件的内容都用这个工具进行一次运算,所得到的值就是一个SHA-256的值。这个值就代表了我们所审计的文件内容的唯一。

我们会罗列每个文件及其所对应的SHA-256值,这就记录了文件的存证。

当用户或读者要检测他看到的合约文件是否是我们所审计的合约时,将他看到的文件用我们的工具计算一下,将所得出的SHA-256值与我们所得到的值进行比较,如果一样就证明是,如果不一样就证明不是。

所以总结起来说,我们会用github网址+版本号、区块链地址或SHA-256值这三种方式中的一种或几种来记录文件的存证。

作者:

Fairyproof TechCEO 谭粤飞

美国弗吉尼亚理工大学(Virginia Tech, Blacksburg, VA, USA) 工业工程(Industrial Engineering) 硕士(Master)。曾任美国硅谷半导体公司 AIBT Inc(San Jose, CA, USA) 软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学 创业学院《区块链概论》 课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事 。个人拥有4项区块链相关专利、3本出版著作。

关于Fairyproof Tech:

Fairyproof Tech科技有限公司是一家专注区块链生态安全的公司。Fairyproof Tech科技主要通过“代码风险检测+逻辑风险检测“的一体化综合方案服务了诸多新兴知名项目。公司成立于2021年01月,团队由一支拥有丰富智能合约编程经验及网络安全经验的团队创建。

团队成员参与发起并提交了以太坊领域的多项标准草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569 被以太坊团队正式收入。

团队参与了多项以太坊项目的发起及构建,包括区块链平台、DAO组织、链上数据存储、去中心化交易所等项目, 并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

欧易交易所了解加密网络的原罪:如何才能让加密货币世界变得更加公平

Placeholder是一家投资开放区块链网络和Web3服务的风险投资公司。 这篇文章主要探讨的是:支撑一个加密货币网络资本的初始分布是什么样子的? 在最近Placeholder和USV团队进行的一次对话中,Fred Wilson表示,随着时间的推移,他所经历的组织在逐渐走向错误的方向,这通常可以追溯到初始的原罪(团队、方法、经济或任何其他关键决策)。

XLM波卡:回答关于验证人和平行链的 11 个问题

本文整理自波卡官方文档 Polkadot Wiki,主要是对于波卡验证人和平行链相关问题的一些回答。本文由波卡第一中文社区 PolkaWorld 翻译。 网络安全性与连接到 Polkadot 中继链的平行链的数量无关,但是与验证人的数量相关。因为验证人的数量越多,网络的去中心化特性就越强,也就越难被攻击。

Uniswap金色观察丨NFT真如外界宣传得那么“香”吗?

金色财经 区块链4月7日讯? 相信2021年区块链领域里最火爆的一个应用要数NFT了。仅在二月份,NFT交易总额就达到了3.4亿美元,超过了2020年的全年交易额。 NFT,即非同质化代币,是一种加密工具类型,旨在代币化那些要在区块链上交易的数字商品(比如,艺术品)。

比特币交易所透过通证经济学理解“币”与监管

什么是经济学? 你去问10个经济学教授、经济学大师,给出的定义都不尽相同。 然而,这又是每一位从事经济学研究的人应该首先回答的问题。 奥地利经济学派第三代掌门人米塞斯(Mises)给出的答案是:经济学是关于人类行为的科学。 米塞斯把以经济学为典型的知识分支命名为“人类行为学”(Praxeology),也就是人类行为的逻辑。

[0:0ms0-9:646ms