什么是日蚀攻击
首先简单介绍一下日蚀攻击
以太坊的节点发现机制基于Kademlia,但其目的却不同,Kademlia旨在成为在分布式对等网络中存储和查找内容的手段,而以太坊仅用于发现新的节点。由于以太坊的节点是由其公钥表示的,并且不受IP限制,因此在一个机器上可以同时存在很多节点。攻击者在很少的服务器上制作出很多的节点,并积极的ping受害者的服务器。通过Kademlia协议,攻击者的节点信息将存储并填充在受害者节点列表中。下一步就是让受害者重启机器,手段包括断电、ddos攻击等等。重启后,攻击者再不停的ping被害者的节点以建立tcp连接,一旦被害者所有的tcp连接都是攻击者制造的,那么就达到了把被害者与正常的网络隔离的目的,当然最大的目的应该还是为了双花。有一篇论文是专门介绍日蚀攻击的,大家可以找来看看。
网上有很多关于日蚀攻击的详细介绍,在这里不做赘述。
以太坊L2网络总锁仓量为38.8亿美元:金色财经报道,L2BEAT数据显示,截至目前,以太坊Layer2上总锁仓量为38.8亿美元。近7日涨幅2.71%,其中锁仓量最高的为扩容方案Arbitrum,约20.3亿美元,占比52.52%。其次是Optimism,锁仓量7.35亿美元,占比19.12%。dYdX占据第三,锁仓量5.78亿美元,占比14.15%。[2022/7/11 2:04:09]
以太坊是如何防止日蚀攻击的
在刚才提到的论文中,提到了以太坊的geth1.8.0解决了日蚀攻击,于是作者拿1.8.0和1.7.3做对比,理清了以太坊解决这个问题的做法。
直接看代码。
以太坊启动时加载p2p网络的流程如下,
cmd/geth/main.goinit方法->geth->startNode()->utils.StartNode()->stack.Start()->running.Start()
CNBC主持人Jim Cramer出售半数以太坊以购买悍马:金色财经报道,CNBC主持人Jim Cramer在以太坊创新高后抛售了其持有的半数以太坊。Cramer称:“昨天我卖出了一半的以太坊,然后我花了一些钱去买悍马。”此前在4月中旬,这位股票大师还出售了他一半的比特币,以支付抵押贷款。[2021/5/6 21:27:04]
这个running.Start()调用的即是p2p/server.go中的Start()方法,看看这个方法做了什么:
//Startstartsrunningtheserver.//Serverscannotbere-usedafterstopping.func(srv*Server)Start()(errerror){......srv.loopWG.Add(1)gosrv.run(dialer)srv.running=truereturnnil}
21Shares AG将于3月9日在德意志交易所上市以太坊和比特币现金ETP:3月5日消息,瑞士加密交易所交易产品(ETP)发行商21Shares AG董事会宣布,经法兰克福证券交易所批准后,将于3月9日在德意志交易所XETRA市场上市以太坊和比特币现金ETP。
这两个ETP采用Coinbase作为独立监管机构级托管方进行完全抵押,2019年年中首次在瑞士股市上市,表现分别为116.3%和53.0%,年管理费分别为1.49%和2.50%。
继2020年7月和9月21日在XETRA上推出21Shares Bitcoin ETP(21XB)和Short Bitcoin ETP(21XS)后,21Shares AG又增加了两个ETP。
截至2月22日,21Shares AG资产管理规模已超过10亿美元,目前有12种加密资产ETP。(Globe Bewswire)。[2021/3/5 18:18:23]
这篇文章主要关注解决日蚀攻击相关代码,其他的不做介绍。
以太坊链上逾1541万枚USDC从火币转入FTX:Whale Alert数据显示,北京时间10月21日20:19:28,以太坊链上15418260枚USDC(价值超过1541.8万美元)从火币(0x83a12795开头地址)转入FTX(0x2faf487a44开头地址)。[2020/10/21]
上面的gosrv.run(dialer)连接池管理协程,负责维护TCP连接的列表,监听各种信号,处理peer的增删改
func(srv*Server)run(dialstatedialer){...running:for{scheduleTasks()select{...casec:=<-srv.posthandshake://Aconnectionhaspassedtheencryptionhandshakeso//theremoteidentityisknown(buthasn'tbeenverifiedyet).iftrusted{//EnsurethatthetrustedflagissetbeforecheckingagainstMaxPeers.c.flags|=trustedConn}//TODO:trackin-progressinboundnodeIDs(pre-Peer)toavoiddialingthem.select{casec.cont<-case<-srv.quit:breakrunning}casec:=<-srv.addpeer://Atthispointtheconnectionispasttheprotocolhandshake.//Itscapabilitiesareknownandtheremoteidentityisverified.iferr==nil{//Thehandshakesaredoneanditpassedallchecks.p:=newPeer(c,srv.Protocols)//Ifmessageeventsareenabled,passthepeerFeed//tothepeerifsrv.EnableMsgEvents{p.events=&srv.peerFeed}name:=truncateName(c.name)srv.log.Debug("Addingp2ppeer","name",name,"addr",c.fd.RemoteAddr(),"peers",len(peers)1)gosrv.runPeer(p)peers=pifp.Inbound(){}}...casepd:=<-srv.delpeer://Apeerdisconnected.d:=common.PrettyDuration(mclock.Now()-pd.created)pd.log.Debug("Removingp2ppeer","duration",d,"peers",len(peers)-1,"req",pd.requested,"err",pd.err)delete(peers,pd.ID())ifpd.Inbound(){}}}...}
分析 | 以太坊对“山寨币季节”的影响可能会因其已实现波动率而减弱:数据显示,山寨币过去3周表现优于比特币。2月比特币仅上涨2.2%,而以太坊继续上涨超过10%。根据CMC数据,按市值计算,小型和中型数字资产的月度表现优于比特币,比特币的主导地位指数降至62.6。尽管小型资产在2月失去一半以上的涨幅,但2月月度回报率保持在20%以上。关于“山寨币季节”的骚动继续在业内加速,以太坊可能在证实该论点中扮演重要角色。根据Skew的ETH-BTC已实现相关性图表,自年初以来,以太坊价格已与比特币脱钩,相关性百分比从1月第一周的逾90%降至目前74%左右。2月19日,这一相关性跌至70%的年度低点。相关性下降直接表现为以太坊相对于比特币的价差百分比变化。自年初以来,ETH/BTC指数飙升至2.7%,上次是在2019年7月1日。价差上升巩固了以太坊自己在价格方面的提升。然而过去一周的已实现波动率可能会使以太坊最近的成功失效。过去一周,隐含波动率和已实现波动率分别飙升至5.0%和4.1%,这可能为价格波动打开大门。尽管波动性较高的情况可能会导致估值飙升,但截至发稿时的短期看跌情绪可能会对疲弱的投资者造成冲击,导致价格下跌。(AMBCrypto)[2020/2/23]
注意加粗的代码,有一个针对inboundCount的操作,当有posthandshake、addpeer消息的时候,会先去check,如果add或del了一个peer,则有对应的inboundCount或者inboundCount--。看看到底check了什么:
protoHandshakeChecks最终也是调用encHandshakeChecks:
func(srv*Server)encHandshakeChecks(peersmap*Peer,inboundCountint,c*conn)error{switch{case!c.is(trustedConn|staticDialedConn)&&len(peers)>=srv.MaxPeers:returnDiscTooManyPeerscasepeers!=nil:returnDiscAlreadyConnectedcasec.id==srv.Self().ID:returnDiscSelfdefault:returnnil}}
inboundConn表示连接类型为主动连接过来。
看加粗的这段逻辑:如果该连接是信任的,且是主动连接过来的,且主动连接过来的节点数量大于srv.maxInboundConns()时,则拒绝此连接。
可以看出来,以太坊是通过限制主动连接过来的数量来阻止日蚀攻击的。我们顺便看下这个数量是多少:
func(srv*Server)maxInboundConns()int{returnsrv.MaxPeers-srv.maxDialedConns(。func(srv*Server)maxDialedConns()int{ifsrv.NoDiscovery||srv.NoDial{return0}r:=srv.DialRatioifr==0{r=defaultDialRatio}returnsrv.MaxPeers/r}
MaxPeers默认是25,defaultDialRatio表示能够接受主动连接的比例,默认是3,所以最多允许传入的tcp连接数量就是25/3=8个
Gate.io自成立以来,一直致力于为全球范围内的交易者提供更好的产品和交易体验。截止目前,已有来自全球超过130个国家,数百万用户选择Gate.io进行交易和投资服务,并与Gate.io共同成.
1900/1/1 0:00:00美国前民主党众议员、曾任职于众议院金融服务委员会的HaroldFord在CNBC撰文称,加密行业及数十种数字资产相关的应用是美国经济创新的下一个源泉.
1900/1/1 0:00:00金色财经比特币9月7日讯为了能够赶上发布进度,Telegram真的拼了。现在,区块链项目TelegramOpenNetwork准备阶段终于又前进了一步,其运行区块链节点的代码也已经于本周五在测试.
1900/1/1 0:00:00加密交易所BitMEX指责主要另一家主要加密货币交易所币安在推出的测试交易平台中抄袭了其说明文档。本周一,币安周一宣布推出名为FutureA和FutureB的两个加密期货产品交易测试平台.
1900/1/1 0:00:00旧金山支付技术提供商Stripe宣布推出贷款服务,旨在让互联网公司快速获得资金。该服务初期只向美国地区开放,重点专注电子商务和软件提供商等在线业务.
1900/1/1 0:00:00上周消息,中国人民银行支付结算司副司长穆长春在得到App课程中表示,央行数字货币不会影响微信、支付宝,原因如下:1.首先从法权上,央行数字货币的效力和安全性是最好的.
1900/1/1 0:00:00