针对网站漏洞怎么修复区块链漏洞之以太坊

前段时间以太坊升级架构,君士坦丁堡的硬分叉一个升级代号,被爆出含有高危的网站漏洞,该漏洞产生的原因是由于开启了新的协议模式eip1283导致的,也是区块链漏洞当中危害较为严重的,可以让一些交易进行重入,一个转账可以导致写入2次,但该漏洞并不是确实的可以进行重入漏洞。以太坊区块链在发现该漏洞之后,紧急的停止了以太坊的硬分叉升级,并与上个星期五召开了内部会议对其漏洞进行修复,延期对以太坊的硬分叉升级。

区块链当中,以太坊属于比较大的虚拟币,位列于比特币,第二。关于该漏洞的详情我们来分析一下,关于这次以太坊的升级大家都可以提议,必须经过内部审核,才会通过提议,在这次的提议当中有个eip1283的升级建议, 以太坊的漏洞就是由他而生。

这个建议主要是对以太坊的操作码进行长久的保存数据以及更好的整理以太坊的交易手续费,便捷,快速,处理过程的逻辑更为人性化,大大节省了成本以及时间,使得该提议被提上了日程,以太坊也进行了采纳,公开与众,攻击者根据公开的一些细节,对其进行漏洞挖掘,才导致了今天发生以太坊漏洞。

区块链重入漏洞在同一个交易当中,1个买家1个卖家进行的合约交易,两种合约互相调用并产生了重复转账的一个漏洞,漏洞产生的根源并没有将转账当成一个事务处理来看待。我们来看一下下图:

我们模拟了一个合约,交易的虚拟币由deposits来存储,然后再推送到splits变量当中去分配这个存储比例。比如一个交易需要买家跟卖家一起去分配,首先会调用一个init函数去存储双方的一个交易钱包地址,然后使用deposit的变量通道来进行充值虚拟币到钱包地址,再使用updatasplit的一个函数进行分配虚拟币,整个过程就是这也,在这个过程当中卖家买家就可以转账虚拟币一次,哪么多次重入会导致攻击者进行套现。

关于区块链漏洞的修复建议

区块链漏洞的修复补丁,以太坊已经开始着手准备应对升级,对该漏洞的产生进行了详细的分析,据我们SINE安全观察,以太坊的社区正在跟大家讨论处理这个漏洞的问题,关于合约产生的漏洞还是该由合约的提议者去解决,不能一直让以太坊区块链去解决,关于合约的安全写法以及规则,正式化,会避免以后区块链漏洞的产生。

原文地址:https://www.cnblogs.com/wangzhananquan/p/10302036.html

时间: 2024-09-26 19:13:12

针对网站漏洞怎么修复区块链漏洞之以太坊的相关文章

区块链开发:以太坊网络

区块链开发:以太坊网络 一.geth Geth 又名Go Ethereum. 是以太坊协议的三种实现之一,由Go语言开发,完全开源的项目.Geth 可以被安装在很多操作系统上,包括Windows.Linux.Mac的OSX.Android或者IOS系统 Geth官网:https://geth.ethereum.org/ Geth的Github地址:https://github.com/ethereum/go-ethereum Ubuntu安装geth客户端: 官方教程:https://githu

区块链入门教程以太坊源码分析fast sync算法一

区块链入门教程以太坊源码分析fast sync算法一,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁.回归理性,表面上看相关人才需求与身价似乎正在回落.但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上.this PR aggregates a lot of small modifications to core, trie, eth and other packages to collectively implement the eth/63 fast synch

币圈Telegram ICO筹8.5亿美元, 拟建第三代区块链网络, 目标以太坊

据国外媒体报道,币圈核心即时通讯工具Telegram本周(至2月17日当周)稍早递交给美国证券交易委员会(SEC)的一份文件显示,该公司已经通过ICO筹集到8.5亿美元资金,用于开发TON开源网络.研发和维护Telegram Messenger以及其他目的. 一.关于Telegram Telegram是一款开源且跨平台的IM工具(类似 Whatsapp.Messenger.微信),Telegram也叫电报,于2013年推出,目前拥有1.8亿用户,每天发送700亿条信息.被称为"俄罗斯版'微信'&

区块链学习(2)--以太坊中基本概念

1.以太币单位换算.以太坊的单位,沿袭了科学界的传统,用做过杰出贡献的数学.密码学专家的名字命名.以太坊的最小单位是 Wei. Kwei(Babbage)= 10 的 3 次方 Wei Mwei(Lovelace)= 10 的 6 次方 Wei Gwei(Shannon)= 10 的 9 次方 Wei MicroEther(Szabo)= 10 的 12 次方 Wei MilliEther(Finney)= 10 的 15 次方 Wei Ether = 10 的 18 次方 Wei 2.以太坊账

区块链学习(3)--以太坊Dapp开发

DApp是Decentralized Application的缩写,译为:分散式的应用程序.App我们都知道,我们在智能手机上安装的应用程序也就是App.而DApp比App多了一个'D','D'的意思是分散式的.意思是 分散式的应用程序/去中心化的应用程序.与传统的App最大的区别是:DApp运行在去中心化的网络上,也就是区块链网络中.这里的DApp开发用以太坊智能合约为例,智能合约是记录在链上的一段能够控制链行为事件的一段协议,如:合约下关联账户转币.查账.投票.购买等等,合约里涉及的变量.常

区块链开发_以太坊多重签名

假想这么一个场景: 有一天,你的朋友A来找你开公司,但是钱不够,希望你能在找一个人入伙. 然后,你就找了你另一个朋友C. 你们三个人分别出了500W开公司.但是由于公司资金流动性大,每次拿钱都要三个人分别拿钱,很不方便. 经过你们协商,就让你的朋友A管理公司财政. 结果,不久你的朋友A就带着公司的钱跑路了. 估计,你的朋友C会把你点天灯. 所以,以太坊上有一个很重要的功能,就是多重签名. 就是,建立一个合约钱包,这个钱包可以有多个账户(假定为三位).每次通过这个钱包转出超过额定限度(这里假定为2

区块链-如何在以太坊上制作自己的数字货币

copy from https://www.ethereum.org/token Create your own CRYPTO-CURRENCY with Ethereum The Coin We are going to create a digital token. Tokens in the Ethereum ecosystem can represent any fungible tradable good: coins, loyalty points, gold certificate

创建自己的区块链游戏SLOT——以太坊代币(三)

一个以太坊合约版本的轮盘游戏,向合约转账ETH,有几率获得3,5,10,100倍奖励 合约地址:0x53DA598E70a1505Ad95cBF17fc5DCA0d2c51174b 捐赠ETH地址:0xdc834D429b3098f0568Af873c2d73b08790BF677 github地址:https://github.com/lxr1907/slot-on-ethereum pragma solidity ^0.4.18; contract LxrContract{ //18 dec

区块链入门教程以太坊源码分析p2p-rlpx节点之间的加密链路二

// Sign known message: static-shared-secret ^ nonce // 这个地方应该是直接使用了静态的共享秘密. 使用自己的私钥和对方的公钥生成的一个共享秘密. token, err = h.staticSharedSecret(prv) if err != nil { return nil, err } //这里我理解用共享秘密来加密这个initNonce. signed := xor(token, h.initNonce) // 使用随机的私钥来加密这个