宇宙链 宇宙链
Ctrl+D收藏宇宙链

区块参数依赖:合约之熵,安全之殇

作者:

时间:1900/1/1 0:00:00

编者按:本文来自成都链安科技,作者:链安科技,星球日报经授权发布。引子:橘生淮南则为橘,生于淮北则为枳,叶徒相似,其实味不同。所以然者何?水土异也。——《晏子春秋·杂下之十》针对区块链安全问题,成都链安科技团队每一周都将出智能合约安全漏洞解析连载,希望能帮助程序员写出更加安全牢固的合约,防患于未然。前景提要上回说到,合约安全隐私未必,外部读取暴露无遗。只要是储存在storage里面,存在于区块链上的变量,尤其是状态变量,由于区块链公开的特性,都是可以通过不执行合约直接从外部读取的。因此,将隐私信息,不可公开的数据储存在智能合约中是非常不安全的做法。即使进行有意或者无意的此类操作,都要及时附加相应的加密处理,避免因为对于可见性说明符的片面理解而留下安全隐患。全面理解代码技术细节,融会贯通互联网安全知识,才能安全应用区块链技术。本期话题第十回,机制依赖参数主导,矿工操纵投机取巧山竹过境,气候入秋,想必大家都感受到了久违的一丝凉意,这倒也与区块链产业的“寒冬”有些应景。不过更令人心寒的还是近期以太坊游戏的事故频发。例如,FOMO3D最近的第二次开奖,获奖者仍然是黑客,使用的手段依然是我们在第六期游戏合约漏洞总结当中提到的“类似竞态条件利用的阻塞交易手法”。还有我们之前在快讯中提到的Mycryptochamp这个游戏,其随机数生成机制依赖的是可预测的参数,导致投机者轻易获取空投,影响游戏公平性。这些游戏的机制都依据以太坊的特性来设计随机数的产生,但是设计理念却是在没有理解这些特性的基本原理来定制的。因此如火如荼短时间炒作后,在无法实现公平游戏的情况下“迅速降温”。本期,我们将重点分析游戏过于依赖区块参数设计而产生的两种漏洞——时间戳依赖和区块哈希依赖。

山东将推动济南市社会信用大数据中心和政务数据区块链平台建设:3月31日,山东省政府新闻办召开新闻发布会,解读《山东省济南市建设科创金融改革试验区实施意见》,并回答记者提问。山东省地方金融监管局副局长、新闻发言人李坤道介绍,《实施意见》提出要优化金融生态环境。良好的金融生态环境不仅影响着政策传导和资源配置效率,而且也在一定程度上决定了对金融资本的吸引力。主要包括3方面内容:

一是在稳步推进社会信用体系建设方面,要重点强化平台支持,推动济南市社会信用大数据中心和政务数据区块链平台建设。

二是在优化金融营商环境方面,要着力构建知识产权大保护体系,扎实推进金融纠纷调解机制建设等,为推动科创金融发展提供良好环境。

三是在夯实金融安全基础方面,要强化金融风险防范意识,稳妥有效做好风险化解处置工作,切实维护区域金融稳定。[2022/3/31 14:28:37]

基础小知识什么是区块参数?以太坊的实现机制与比特币有很大的差别,以太坊的每个区块头多了一些以太坊自身特殊的字段,用来表示区块的属性值,以太坊智能合约可以通过以太坊提供的接口读取这些属性值:block.blockhash(uintblockNumber)returns(bytes32):指定区块的区块哈希——仅可用于最新的256个区块且不包括当前区块;而blocks从0.4.22版本开始已经不推荐使用,由blockhash(uintblockNumber)代替block.coinbase(address):挖出当前区块的矿工地址block.difficulty(uint):当前区块难度block.gaslimit(uint):当前区块gas限额block.number(uint):当前区块号block.timestamp(uint):自unixepoch起始当前区块以秒计的时间戳now(uint):目前区块时间戳需要注意的是:在同一个块中,每笔交易读取的区块参数都是一样的什么是熵?熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。在信息论里面,熵是对不确定性的测量。所以在以太坊中,熵也就是我们所说的随机性。对于一个以随机性为核心的游戏合约,熵的变量的计算尤为重要。事故频发问题凸显上面讲到的MyCryptoChamp体现,其合约中RandMod函数使用私有变量randNonce和父块哈希作为参数生成随机数。任何人都可以用web3.eth.getStorageAt()函数外部读取私有变量randNonce,而父块哈希在合约内外都可以读取到。这样产生随机数的计算方法就已经被看破,投机者只需在计算出较理想的随机数时加入游戏即可获得空投。除此之外,国外已有专业人士ArsenyReutov分析了3649份智能合约,发现有43份存在类似的可被利用的漏洞,并将此类情况称为假随机数生成漏洞。如此看来,将区块参数与熵联系起来运用到游戏设计并不是个例。需要思考的是,以太坊的区块参数能不能可靠的运用于熵。以太坊没有提供类似于传统编程语言的rand()函数。于是实现去中心化的熵已经成为一个颇具规模的问题,许多人参与了这个问题的考究,甚至连V神自己也发表了一片文档提出了一些完善计划,例如使用RanDAO或者私有随机。具体请见这篇文档https://vitalik.ca/files/randomness.html。所以,区块参数能够可靠的用于设计锁仓功能,但是放在随机数生成设计当中,它的地位相当不可靠,形象的来说,同样的橘树,生长在淮南长出甜的橘,生长在淮北长出苦的枳。

行业专家:目前区块链对于工业场景也仅是一项补充技术:12月31日消息,工业互联网产业联盟统计数据显示,截至目前,工业互联网领域已涌现出海尔、阿里、航天云网、华为、树根互联、徐工、用友等十大跨行业跨领域工业互联网平台,平均工业设备连接数量达80万台、工业APP数量达到3500个、服务工业企业超过10万家。相比而言,工业区块链应用还没有爆品或者核心、有流量的产品出现。

行业专家在接受记者采访时表示,如果将现阶段“工业区块链普及度”比作移动通信的2G时代,那么目前区块链对于工业场景也仅是一项补充技术。制约工业区块链发展的或许并不是技术本身,而是技术的可用性、企业技术更新的承担能力、企业用户的接受意识。(中国电子报)[2021/12/31 8:16:14]

区块参数依赖漏洞返例一、时间戳依赖数据块时间戳历来被用于各种应用,例如随机数的函数,锁定一段时间的资金以及时间相关的各种状态变化的条件语句。矿工有能力稍微调整时间戳,如果在智能合约中使用错误的块时间戳,这可能会证明是相当危险的。block.timestamp或者别名now可以由矿工操纵,如果他们有这样做的动机。例如下面这个简单的游戏合约:

世界经济论坛区块链主管:区块链可能不会成为所有系统的基础技术:金色财经报道,世界经济论坛(WEF)区块链项目负责人Ashley Lannquist表示,区块链有其用例,但并非没有局限性。Lannquist认为区块链技术将来不会成为所有系统的基础技术。由于与区块链相关的取舍,包括功能以及局限性和缺点,识别许多高价值的用例并不容易。这可能是区块链获得采用的重要障碍。[2020/6/24]

这份合约表现得像一个简单的彩票。每块一笔交易可以打10ether赢得合约余额的机会。这里的假设是,block.timestamp关于最后两位数字是均匀分布的。如果是这样,那么将有1/15的机会赢得这个彩票。但是,正如我们所知,矿工可以根据需要调整时间戳。在这种特殊情况下,如果合约中有足够的ether,解决某个区块的矿工将被激励选择一个block.timestamp%15==0或now%15==0的时间戳。在这样做的时候,他们可能会赢得这个合约以及块奖励。由于每个区块只允许一个人下注,所以这也容易受到前置交易攻击。在实践中,块时间戳是单调递增的,所以矿工不能选择任意块时间戳。但是它们也限制在将来设置不太远的块时间,因为这些块可能会被网络拒绝。二、区块哈希依赖在一些游戏合约中,使用区块头相关的参数来产生随机数:区块号(block.number)、区块时间戳(block.timestamp)、区块难度(block.difficulty)、区块gas限制(block.gaslimit)等。当以太坊上矿工挖出一个区块时,此时区块头的相关参数就可以被矿工获知,一些恶意挖矿的矿工可以利用这些区块参数进行攻击。例如下面这个游戏合约

声音 | 石勇:5G、区块链或人工智能 都离不开大数据:近日,“北京工商大学数字经济研究院成立仪式暨首期北工商数字经济大讲堂”在京举行,与会嘉宾围绕数字经济发展展开讨论。

国务院参事、中科院虚拟经济与数据科学研究中心主任、中科院大数据重点实验室主任石勇认为,无论是5G、区块链还是人工智能,都离不开大数据,大数据是数字化时代的战略资源,是驱动创新的重要因素,正在改变人类的生产和生活方式。大数据既要全体又要抽样,既要粗糙又要寻求精确,要把握因果关系与必然关系。[2019/12/16]

一个实现轮盘的智能合约中,其逻辑是如果下一个块哈希值以偶数结尾,则返回一个黑色数字。一个矿工可以在黑色上下注100万美元。如果他们挖出下一个区块并发现区块哈希值以奇数结尾,他们会丢弃该块、继续挖矿、直到他们挖出一个块哈希值为偶数的块,从而从漏洞合约中获利。漏洞修复随机数生成的方法有很多,并不一定要依赖区块参数,下面介绍两种理念防范矿工或者投机者。随机数的来源尽量来自于区块链之外,这可以在具有诸如commit-reveal之类的系统的对等体之间完成。通过将信任模型改变为一组参与者来完成。这也可以通过中心化的实体来完成,该实体充当随机预言。根据Solidity官方建议,合约开发者可以使用链外的第三方服务,比如Oraclize来获取随机数。总的来说,块变量不应该用于随机种子,因为它们可以被矿工操纵。问渠哪得清如许?为有源头活水来这些漏洞,类似事件,惨烈教训,对区块链产业进入寒冬负有不可推卸的责任,从技术角度不断加强对于新知识的正确理解与使用,提高智能合约的安全性是让这个产业冰消雪融,让项目方、参与方合力破冰前行的唯一希望。望各位学而思之、思而践之、践而悟之。

动态 | 秘鲁政府与区块链公司合作建立合同采购体系 以减少腐败:据Bitcoin Exchange Guide消息,秘鲁政府宣布已经与区块链初创企业Stamping.io和美洲开发银行合作,以建立一个完全透明的合同采购体系,该系统将将少腐败、提高行政程序成本、提高行政效率。[2019/5/6]

引用::EntropyIllusion:https://hackernoon.com/hackpedia-16-solidity-hacks-vulnerabilities-their-fixes-and-real-world-examples-f3210eba5148:PredictingRandomNumbersinEthereumSmartContracts:https://blog.positive.com/predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620:ValidatorOrderingandRandomnessinPoS:https://vitalik.ca/files/randomness.html:RANDAO:ADAOworkingasRNGofEthereum:https://github.com/randao/randao:智能合约随机数算法漏洞影响游戏公平性:https://mp.weixin.qq.com/s/fnp980bzQjRqNEVuj518lA:深入理解Solidity:https://solidity-cn.readthedocs.io/zh/develop/units-and-global-variables.html#index-2:什么是熵?https://blog.csdn.net/qq_39521554/article/details/80559531

标签:区块链BLOLOCKLOC区块链存证说法错误的是blockchain是什么软件Unilock.Networkblockchain翻译中文

狗狗币价格热门资讯
唱唱反调 | 为什么大多数要建生态的区块链创业者,家里都有跑步机?

编者按:之前,我们几名作者的日常工作就是大量看BP、接触创业者和投资人,去学习并试图判断背后的商业逻辑.

1900/1/1 0:00:00
星球行情 | 市场小幅反弹,短期风险依旧

一、市场行情回顾全球数字资产市场从昨日晚间开始低位震荡,比特币也跌下了6400美元大关,今日早间开始迎来一波攀升,随后大幅度震荡走势。昨日下午14:30分开始,全球数字市场市值开始小幅下跌,最低跌至2063.24亿美元.

1900/1/1 0:00:00
区块链到底能干什么?

本文来自:区块律动BlockBeats,作者:Jade,星球日报经授权转发。区块律动0x0的话:区块链媒体被大量封号,BAT联手全网封杀,再到昨天(8月28日)的国家互金举报平台将「代币发行融资」纳入举报范围,还有网上谣传的所谓「利箭.

1900/1/1 0:00:00
TokenMania:第35周区块链二级市场报告

我们在学生时代接受的教育都是结构化教育,著名的格拉德韦尔一万小时定律告诉我们系统化地构建对一个学科的全面知识是学会一门科学的最佳方法.

1900/1/1 0:00:00
什么情况下智能合约应用案例难以实现?| 区块链课堂第55问

编者按:本文来自哈希派,作者:不碎,星球日报经授权转载。在承诺条款相关代码设定完成的基础上,当一定条件满足情况时系统将会自动执行合约内容——从字面上看,只要设定好数字化承诺,智能合约便可让不同类型的程序及操作自动化进行;然而实际应用并.

1900/1/1 0:00:00
政策周报 | 欧盟将数字货币交易纳入数字支付欺诈监管范畴;中国央行开发区块链平台;日本发布首例 ICO 非法集资处罚令

本周,各国政府加大对数字货币、ICO的监管力度,但在区块链技术方面的应用以及政策上,均给予了一定支持。国外方面,监管趋严.

1900/1/1 0:00:00