本文由“Fairyproof Tech”原创,授权“金色财经”独家首发,转载请注明出处。
一份审计报告是对一套智能合约的“质量检测报告”,那报告就要告诉用户所审计的对象是谁。
和普通的有形商品不同,智能合约这种特殊的商品是摸不着的,那怎么才能让用户知道它呢?
区块链领域的绝大多数项目包括鼎鼎大名的比特币和以太坊都有一个共同的特点:它们的源代码都是”开源”的。所谓的“开源”就是它们的代码都是公开的,放在某个公开、所有人都可以访问的网站上,任何人都可以看到它的内容。
我们所审计的智能合约绝大多数也是这样,它们都是开源的,放在一些知名的、供所有人存放文件的网站比如github等。
如果我们所审计的智能合约是开源并且放在了github上,我们要让用户知道它、看到它的源代码,就会在审计报告中列出合约所存放的github的网址。这就好比一件商品存进了一个大仓库,存在仓库中的某个库房,我们要让用户能找到这件商品就要告诉用户仓库的地址和库房的门牌号码。存放合约的github网址就等于仓库地址+门牌号码。
独家 | Bakkt期货合约数据一览:金色财经报道,Bakkt Volume Bot数据显示,3月6日,Bakkt比特币月度期货合约单日交易额为388万美元,环比下降61%,日交易额创近一个月新低;未平仓合约量为851万美元,环比下降8%。[2020/3/7]
可是如果合约的编写者(通常我们称为项目方)在给审计机构审计时用的是放在github上的一套合约,但审计后尤其是项目上线后,用户又修改了它的智能合约,我们怎么知道放在github上的合约就是审计时看到的合约而不是后来修改过或者其它“鱼目混珠”的合约呢?
这就涉及到github这个仓库的一个特性了。
当项目方往github中存放代码时,github会给这次存放动作产生一个版本号。这就好比我们在比特币、以太坊中申请一个新钱包时,这个钱包会有一个独一无二的地址一样,这个版本号也是唯一的。
独家 | 金色财经2月15日矿币数据播报:金色财经报道,据币印矿池数据显示:
主流币挖矿日收益分别为:BTC(¥1.18/T)、ZEC(¥0.53/T)、LTC(¥24.61/G)、BSV(¥1.19/T)、BCH(¥1.18/T)、DASH(¥0.13/G)。
当前热门矿机数据及净收益分别为:神马M20S(BTC,¥50.56)、蚂蚁Z11(ZEC,¥57.16)、芯动A4+(LTC,¥8.42)。[2020/2/15]
当项目方之后对任何文件有了任何改动:小到一个字的修改,大到文件的删除、添加等,当把这些改动提交到github中,github又会给这次动作产生一个新的版本号。
所以github中的版本号就是对所存放的文件的一份唯一存证,它保证了这个版本号所对应的文件就是某时某刻放进仓库中的文件,而不是之前或之后放进去的文件。
独家 | 天风证券李炼炫:稳定币都存在一个“三角不可能”:针对“USDT信任危机是否会在其他稳定币上会重演”一事,金色财经独家采访到天风证券李炼炫,他表示,会的,无论稳定币的稳定机制如何设计,也需遵循客观经济规律。稳定币面临的最大风险是信用风险,即当人们对一款稳定币丧失信心时,就会发生挤兑现象。只不过根据信用风险程度大小划分,信用程度最高的是数字资产抵押发行的稳定币,其次是以法币抵押发行的稳定币,最差的是无抵押算法发行的稳定币。
对于所有的稳定币而言,都存在一个“三角不可能”,即在货币政策的独立性,货币的自由流动以及价格的稳定性三者之间只能选择其中的两者,第三者必须放弃。具体而言,稳定币选择了数字货币的自由流动和币值的稳定,就必须放弃货币超发的权利,这里会产生一个矛盾:如果稳定币的项目方不超发货币,就很难盈利;如果超发了货币,那么就会产生信用危机,投资者会怀疑稳定币是否能及时兑付而出现挤兑,最终被市场抛售;正如现实中我们所观察到的,USDT正是因为人们对其丧失信心发生了挤兑,进而出现暴跌。[2018/10/25]
所以我们在审计报告中除了罗列被审计合约的github网址,还要罗列被审计合约在github中的版本号。
独家 | 创世资本孵化合伙人李荣彬:更看好非中心化稳定币方案:就今日的USDT事件,金色财经独家采访到创世资本孵化合伙人、Genesis Lab负责人李荣彬,他表示,USDT这种方式发行的稳定币所带来的问题与传统金融机构一样,就是中心化程度过高。从长期来看,区块链稳定币不应该建立在以美元作为储备货币等中心化程度过高的解决方案,创世资本更加看好超额质押、算法央行等更强大的区块链技术实现的非中心化稳定币方案。[2018/10/15]
这两个要素就保证了读者看我们报告时能准确知道我们所审计的内容。
除了放在github上,还有的项目方在审计时已经把合约部署在区块链网络上了。由于智能合约一旦部署到区块链网络上,它就是无法篡改和撤销的,因此智能合约所部署的区块链地址也可以作为合约的存证地址。
对这样的合约,我们通常也会记录下它在区块链上的地址作为唯一存证。
金色独家 区块链联合发展组织秘书长张海晖:各国政府对区块链和ICO的监管还处于早期探索阶段:金色财经独家专访,近日,针对区块链行业的监管问题,区块链联合发展组织秘书长张海晖表示,区块链和加密货币是密不可分的,通过Token机制,区块链很好的实现了信息流和价值流的统一,各个国家都鼓励区块链的创新发展,但具体的监管措施存在很大的不确定性,像早期英国在汽车领域的《红旗法案》一样,如今在区块链领域很多国家也依然存在类似这样的法案。所以各国政府对区块链和ICO的监管,其实还是处于探索阶段,有时松有时紧,随着相关的发展,最终会变得越来越合理。[2018/6/17]
我们前面说绝大多数项目的智能合约是开源的,这也就意味着还有一些项目的合约在审计时是未开源的,在这种情况下,我们怎么记录这份合约的存证呢?
我们会用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组织、链上数据存储、去中心化交易所等项目, 并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。
就在不久前,大型银行还避开了整个加密货币行业,只是发表了简短而罕见的抨击比特币的言论。然而,这一趋势在过去几年发生了重大变化。美国历史最悠久的银行——纽约梅隆银行就是这样的例子.
1900/1/1 0:00:00前两天与?个 MakerDAO 早期?持者喝酒,?佬解答了我?个?直没想明?的问题,?融机构的能?应该是创造信?,优化资?配置,但像 MakerDAO 这种超额质押,更接近于典当铺的形式.
1900/1/1 0:00:00XCOPY创作的加密艺术?NFT《Death Dip》在?SuperRare?以?1000ETH?售出!如今,许多加密艺术家在创作NFT作品,他们的作品有重大文化意义,而且影响会留存数十年之久.
1900/1/1 0:00:00NFT20 协议将 NFT 转化为 ERC20 代币,在 Uniswap 等去中心化交易平台上获得更好的流动性。NFT 囿于自身特性,流动性成为数字艺术品市场金融化,获得普及的一道屏障.
1900/1/1 0:00:00最近收到很多同学关于拍卖和质押的私信,所以在昨天举办了一次线上直播,统一回答了一些大家的疑问。针对提问比较多的问题,也整理成文字版供大家参考.
1900/1/1 0:00:00当前,我国债券市场金融基础设施尚未完全统一。2020年7月,人民银行、证监会联合发布公告,同意银行间债券市场与交易所债券市场相关基础设施机构开展互联互通合作.
1900/1/1 0:00:00