以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

以太坊是如何解決日蝕攻擊(eclipse attack)的?_PEER

Author:

Time:1900/1/1 0:00:00

什么是日蝕攻擊

首先簡單介紹一下日蝕攻擊

以太坊的節點發現機制基于Kademlia,但其目的卻不同,Kademlia旨在成為在分布式對等網絡中存儲和查找內容的手段,而以太坊僅用于發現新的節點。由于以太坊的節點是由其公鑰表示的,并且不受IP限制,因此在一個機器上可以同時存在很多節點。攻擊者在很少的服務器上制作出很多的節點,并積極的ping受害者的服務器。通過Kademlia協議,攻擊者的節點信息將存儲并填充在受害者節點列表中。下一步就是讓受害者重啟機器,手段包括斷電、ddos攻擊等等。重啟后,攻擊者再不停的ping被害者的節點以建立tcp連接,一旦被害者所有的tcp連接都是攻擊者制造的,那么就達到了把被害者與正常的網絡隔離的目的,當然最大的目的應該還是為了雙花。有一篇論文是專門介紹日蝕攻擊的,大家可以找來看看。

網上有很多關于日蝕攻擊的詳細介紹,在這里不做贅述。

以太坊非零地址數創歷史新高:金色財經報道,Glassnode數據顯示,以太坊非零地址數達103,252,724,創歷史新高。[2023/7/24 15:54:03]

以太坊是如何防止日蝕攻擊的

在剛才提到的論文中,提到了以太坊的geth1.8.0解決了日蝕攻擊,于是作者拿1.8.0和1.7.3做對比,理清了以太坊解決這個問題的做法。

直接看代碼。

以太坊啟動時加載p2p網絡的流程如下,

cmd/geth/main.goinit方法->geth->startNode()->utils.StartNode()->stack.Start()->running.Start()

這個running.Start()調用的即是p2p/server.go中的Start()方法,看看這個方法做了什么:

以太坊未確認交易為127,295筆:金色財經消息,據OKLink數據顯示,以太坊未確認交易127,295筆,當前全網算力為336.96TH/s,全網難度為4.49P,當前持幣地址為53,951,504個,同比增加189,954個,24h鏈上交易量為3,130,280.39ETH,當前平均出塊時間為13s。[2021/2/1 18:38:45]

//Startstartsrunningtheserver.//Serverscannotbere-usedafterstopping.func(srv*Server)Start()(errerror){......srv.loopWG.Add(1)gosrv.run(dialer)srv.running=truereturnnil}

這篇文章主要關注解決日蝕攻擊相關代碼,其他的不做介紹。

上面的gosrv.run(dialer)連接池管理協程,負責維護TCP連接的列表,監聽各種信號,處理peer的增刪改

Mythos Capital創始人:以太坊將超越比特幣成為最安全的網絡:Mythos Capital創始人、以太坊支持者Ryan Sean Adams發推表示:“以太坊的每日費用收入是比特幣的3倍,但比特幣是計劃僅通過交易收入來保護自身的網絡。顯然,帶有DeFi的區塊更有價值,我預計以太坊將在未來幾年內超越比特幣成為最安全的網絡。”[2021/1/13 16:01:13]

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(){}}}...}

以太坊未確認交易15884筆:金色財經報道,據btc.com數據顯示,以太坊未確認交易15884筆。當前全網難度2272.42T,平均出塊時間為13.4S,每秒交易數約為8.75。截至目前以太坊全球均價為170.60美元,最近24小時漲幅為11.12%。[2020/4/17]

注意加粗的代碼,有一個針對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}}

2000萬枚USDC在以太坊鏈上轉移,價值2000萬美元:Whale Alert監測數據顯示,北京時間3月14日10:00,以太坊鏈上2000萬枚USDC從USDC Treasury(0x55fe002開頭地址)轉入0x28c5b0開頭地址,按當前價格計算,價值約2000萬美元,交易哈希為:0x4969f81659811e4c3b7fce7960340c1d3ad3afcd6208214fc08ae1b23d75154e。[2020/3/14]

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個

Tags:PEEREERSRV以太坊PEER幣BNBEERSRV價格比特幣以太坊最新價格行情

火必下載
比特幣價格高了 交易的人卻少了 交易所怎么辦?_比特幣

本周四彭博社發文稱,在過去的幾個月中,將比特幣發送到主要加密貨幣交易所的人數明顯減少。文中援引加密數據追蹤機構TokenAnalyst的數據稱,將比特幣發送到幣安和Bitfinex等主要交易所的.

1900/1/1 0:00:00
ZG.COM 2019年8月ZG積分回購銷毀公告_COM

親愛的用戶: 您好! 感謝您一直以來對ZG的關注,ZG.COM將根據此前“ZG持幣權益公開投票”的結果,對平臺積分ZG進行回購并銷毀.

1900/1/1 0:00:00
MFS/USDT 9月8日全球首發上線大幣網(Dcoin)公告_COIN

親愛的大幣網(Dcoin)用戶,MFS將于9月8日上線大幣網(Dcoin),具體時間安排如下,邀請您體驗!9月8日11:00MFS開放充幣9月8日16:00MFS/USDT開放交易.

1900/1/1 0:00:00
深入淺出話“共識” 百度超級鏈學院萬字干貨_區塊鏈

“區塊鏈技術是一種多方維護,通過密碼學保證傳輸和安全,實現一致、難以篡改、防止抵賴的記賬技術,稱為分布式賬本技術.

1900/1/1 0:00:00
因不滿白皮書內容,Zombie Coin項目聲稱將起訴John McAfee并索賠一億美元_CAF

據CCN報道,加密貨幣項目ZombieCoin背后的公司SouthChinaZombieResearchCentre聲稱,將起訴JohnMcAfee并要求其賠償1億美元.

1900/1/1 0:00:00
Conflux研究總監楊光博士于北京大學開設《密碼學基礎》課程_CON

談及區塊鏈,密碼學是一個繞不開的話題。在Conflux,也有一位負責理論研究的密碼學大神——楊光博士.

1900/1/1 0:00:00
ads