本文由“灵踪安全”原创,授权“金色财经”独家首发,转载请注明出处。
?一份审计报告是对一套智能合约的“质量检测报告”,那报告就要告诉用户所审计的对象是谁。
?和普通的有形商品不同,智能合约这种特殊的商品是摸不着的,那怎么才能让用户知道它呢?
?区块链领域的绝大多数项目包括鼎鼎大名的比特币和以太坊都有一个共同的特点:它们的源代码都是”开源”的。所谓的“开源”就是它们的代码都是公开的,放在某个公开、所有人都可以访问的网站上,任何人都可以看到它的内容。
?我们所审计的智能合约绝大多数也是这样,它们都是开源的,放在一些知名的、供所有人存放文件的网站比如github等。
?如果我们所审计的智能合约是开源并且放在了github上,我们要让用户知道它、看到它的源代码,就会在审计报告中列出合约所存放的github的网址。这就好比一件商品存进了一个大仓库,存在仓库中的某个库房,我们要让用户能找到这件商品就要告诉用户仓库的地址和库房的门牌号码。存放合约的github网址就等于仓库地址+门牌号码。
独家 | Bakkt期货合约数据一览:金色财经报道,Bakkt Volume Bot数据显示,8月6日,Bakkt比特币月度期货合约日交易额为6036万美元,同比持平,未平仓合约量为2625万美元,同比下上升13%。[2020/8/7]
可是如果合约的编写者在给审计机构审计时用的是放在github上的一套合约,但审计后尤其是项目上线后,用户又修改了它的智能合约,我们怎么知道放在github上的合约就是审计时看到的合约而不是后来修改过或者其它“鱼目混珠”的合约呢?
这就涉及到github这个仓库的一个特性了。
当项目方往github中存放代码时,github会给这次存放动作产生一个版本号。这就好比我们在比特币、以太坊中申请一个新钱包时,这个钱包会有一个独一无二的地址一样,这个版本号也是唯一的。
独家 | 近30天比特币搜索指数整体同比上升76%:金色财经报道,百度指数数据显示,近30天区块链搜索指数整体日均值为3918,整体同比上升25%,移动同比上升24%;近30天比特币搜索指数整体日均值为24094,整体同比上升77%,移动同比上升93%,近30天以太坊搜索指数整体日均值为4026,整体同比上升17%,移动同比上升24%。[2020/2/26]
当项目方之后对任何文件有了任何改动:小到一个字的修改,大到文件的删除、添加等,当把这些改动提交到github中,github又会给这次动作产生一个新的版本号。
所以github中的版本号就是对所存放的文件的一份唯一存证,它保证了这个版本号所对应的文件就是某时某刻放进仓库中的文件,而不是之前或之后放进去的文件。
独家 | 欧科集团捐赠的十万套医用物资?将陆续抵达七家医院:金色财经报道,据欧科集团物资捐赠情况通报,欧科集团捐赠的十万套医用物资已经在运输途中,将陆续抵达武汉、咸宁、黄冈、鄂州、汉中、红安六个县市的七家医院。后续物资仍在采购中。金色财经此前报道,1月27日,欧科集团设立1000万元疫情防治专项基金,联合中华慈善总会共同支援一线防护工作。[2020/1/29]
所以我们在审计报告中除了罗列被审计合约的github网址,还要罗列被审计合约在github中的版本号。
这两个要素就保证了读者看我们报告时能准确知道我们所审计的内容。
除了放在github上,还有的项目方在审计时已经把合约部署在区块链网络上了。由于智能合约一旦部署到区块链网络上,它就是无法篡改和撤销的,因此智能合约所部署的区块链地址也可以作为合约的存证地址。
独家 | 陶鸥:任何共识机制均是在中心化和多中心化之间寻求平衡点:POW共识机制近日遭V神质疑能耗大、易形成算力集中。对此,MATRIX CEO陶鸥在接受金色财经独家采访时指出:“PoW通过能源来买信任是否值得主要取决于PoW的工作量证明中的工作量是在用于计算什么结果,计算Hash,当然不值得,因为Hash对人类和社会没有任何贡献,每个比特币6000美金的成本纯属浪费。任何一种共识机制都是在中心化和多中心化之间寻求平衡点的,不可否认的是PoW比PoS有更好的安全性,区别在于怎么优化PoW的共识机制。
以太坊“先过度到PoW+PoS,再彻底抛弃pow”的路径实施目前看来进度很慢。陶鸥对此表示:“这是一个共识改变的问题,这个问题其实很简单,我们可以把共识看做一个游戏的游戏规则,最初加入游戏的人都是因为认可了游戏规则才会加入的,但当我们提出要改变游戏规则时,我们也必须依据游戏规则来改变游戏规则,就是说共识的改变的达成是必须基于原有共识规则达成一致后才能修改。游戏规则的修改如果会伤害很多老玩家的利益,而老玩家在原有的游戏规则(共识)中还有自己的影响力,这就必然导致游戏规则修改进程的停滞。”[2018/7/12]
对这样的合约,我们通常也会记录下它在区块链上的地址作为唯一存证。
金色独家 陈云峰:东南亚各国加密货币监管态度是独立的:针对近期柬埔寨明确加密货币监管态度,以及泰国正式颁布加密货币有关法律,金色财经采访了中伦文德律师事务所高级合伙人、互联网金融专业委员会主任陈云峰。陈云峰表示由于目前加密货币行业仍处于发展的早期阶段,具有很大的不稳定性,同时市场上鱼龙混杂,柬埔寨政府的这种监管态度同我国的监管态度一样,都是面对当前早期市场的正常的应对方式,也是整顿目前不规范市场的必然措施。但同加密货币的发展是动态的一样,柬埔寨政府的监管政策也会是动态的,应当注意到在该声明中柬埔寨政府说明了非法的加密货币是未经相关部门许可的加密货币,因此若未来柬埔寨政府明确了加密货币监管的权属,那么发行加密货币的合法性或许也能够得到认可,当然,这需要依靠整个加密货币行业的发展来推动。
在谈到对对其他东南亚国家的影响时,陈云峰认为目前加密货币市场正在逐渐走向规范化,各个国家对加密货币的态度也会越来越严格,柬埔寨政府的这个态度也印证了这个趋势。但各个国家之间的监管态度是独立的,柬埔寨政府的监管态度并不代表东南亚整体的态度,具体的监管走向仍需要依据具体国家的加密货币发展而定,不能一概而论。但是可以肯定的是,随着监管部门对加密货币市场的认知的成熟,相应的监管政策会逐步出台,这对于加密货币市场的发展和加密货币市场的参与主体是重大利好。[2018/6/22]
我们前面说绝大多数项目的智能合约是开源的,这也就意味着还有一些项目的合约在审计时是未开源的,在这种情况下,我们怎么记录这份合约的存证呢?
我们会用SHA-256的值来标记合约文件的存证。
有些读者尤其是数字货币的玩家看到“SHA-256”这个词会觉得很眼熟:这不是数字货币加密算法中常用的一个技术吗?
确实是这样,更准确的说,它是一种经过“哈希函数”运算得出的值,这个值也被称为“哈希值”,它有256位。
所谓的哈希函数又称散列函数,是一种从任何一种数据中创建小的数字“指纹”的方法。哈希函数把消息或数据压缩成摘要,使数据量变小,将数据的格式固定下来。该函数将原有的数据打乱混合,重新创建一个结果叫做哈希值。
我们为什么要用这个值来记录合约文件的存证呢?因为一个SHA-256的值所对应的文件内容是唯一的。这就和上面我们用github中的版本号来保证github中的文件是唯一的一样。
那我们怎么用这个值来记录合约文件的存证呢?
我们自己编写了一套这样的工具,对所审计的每个合约文件的内容都用这个工具进行一次运算,所得到的值就是一个SHA-256的值。这个值就代表了我们所审计的文件内容的唯一。
我们会罗列每个文件及其所对应的SHA-256值,这就记录了文件的存证。
当用户或读者要检测他看到的合约文件是否是我们所审计的合约时,将他看到的文件用我们的工具计算一下,将所得出的SHA-256值与我们所得到的值进行比较,如果一样就证明是,如果不一样就证明不是。
所以总结起来说,我们会用github网址+版本号、区块链地址或SHA-256值这三种方式中的一种或几种来记录文件的存证。
作者:
灵踪安全CEO谭粤飞
美国弗吉尼亚理工大学(VirginiaTech,Blacksburg,VA,USA)工业工程硕士(Master)。曾任美国硅谷半导体公司AIBTInc软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学创业学院《区块链概论》课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事。个人拥有4项区块链相关专利、3本出版著作。
关于灵踪安全:
灵踪安全科技有限公司是一家专注区块链生态安全的公司。灵踪安全科技主要通过“代码风险检测+逻辑风险检测“的一体化综合方案服务了诸多新兴知名项目。公司成立于2021年01月,团队由一支拥有丰富智能合约编程经验及网络安全经验的团队创建。
团队成员参与发起并提交了以太坊领域的多项标准草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569被以太坊团队正式收入。
团队参与了多项以太坊项目的发起及构建,包括区块链平台、DAO组织、链上数据存储、去中心化交易所等项目,并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。