買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > AAVE > Info

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

Author:

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

什么是日蝕攻擊

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

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

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

以太坊收益型產品icETH AUM超過700萬美元:4月12日消息,據 Dune Analytics 數據顯示,Index Coop 推出的首個以太坊收益型產品 icETH 資產管理規模(AUM)已達 710 萬美元,該產品于 4 月 6 日上線。

此前報道,該產品基于 Set Protocol 的杠桿流動性質押策略,可提供更高的 ETH 收益。[2022/4/12 14:19:24]

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

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

直接看代碼。

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

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

近一周以太坊2.0新增質押6.48萬ETH:據歐科云鏈鏈上大師數據顯示,當前以太坊2.0存款地址已收到879.85萬ETH,占以太坊供應量的7.48%,近一周新增質押64896ETH,環比下降43.24%;當前已有59351個地址進行質押,近一周新增654個。[2021/12/27 8:07:11]

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

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

以太坊鏈上BTC錨定幣鎖倉量突破180億美元創歷史新高:金色財經報道,以太坊鏈上BTC錨定幣鎖倉量在10月15日晚間突破180億美元創歷史新高,最高點達到18,095,745,724美元。此外BTC錨定幣昨日出現小幅增發,目前總發行量為29.326萬枚。[2021/10/16 20:33:36]

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

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

Tether在以太坊網絡增發1.2億枚USDT(已授權未發行):金色財經報道,Whale Alert數據顯示,北京時間08月15日01:43,Tether在以太坊網絡增發1.2億枚USDT,交易哈希為:86a141ff8b5ce1532e0b50f5e4dcefceea0acfde330fd5ec464cf9c2ff26e0fe。對此,Bitfinex首席技術官Paolo Ardoino表示,以太坊網絡補充了1.2億枚USDT的庫存。請注意,這是一筆已授權但未發行的交易,這意味著該金額將用作下一次發行請求的庫存。[2020/8/15]

注意加粗的代碼,有一個針對inboundCount的操作,當有posthandshake、addpeer消息的時候,會先去check,如果add或del了一個peer,則有對應的inboundCount或者inboundCount--。看看到底check了什么:

動態 | 以太坊區塊鏈仍是現有最強大的智能合約平臺:達令智庫發布《以太坊2.0:從君士坦丁堡通往寧靜的道路》研報。報告稱,在君士坦丁堡硬分叉之后,新的ETH供應總量將從20300 ETH/天減少到13400/天,從每年740萬ETH減少到490萬。按照更改的獎勵機制持續運行一段時間后,以太坊的通貨膨脹率將從7.7%下降到4.8%。報告還稱,以太坊仍然有著較高的網絡使用率與活躍開發者,以太坊區塊鏈仍是現有最強大的智能合約平臺,市值前100的區塊鏈項目中,絕大多數都基于以太坊網絡搭建。[2019/1/14]

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個

Tags:EERPEERSRV以太坊PMEER幣Peerex NetworkSRV價格以太坊幣現在的價格是多少

AAVE
BIO:LAICA即將上線BIONE交易所_onekeytools插件哪個版本好用

尊敬的BIONE用戶: 很高興的通知您,LAICAWALLET已通過BIONE交易所項目審核,將于近期上線交易,敬請期待.

1900/1/1 0:00:00
CBD:引介 | 詳解雷電服務包_oolongfinance

雷電服務的引入旨在通過以下方式提升雷電網絡的整體用戶體驗:a)在網絡中尋找較短或成本較低的資金傳輸路徑b)通過監視開放的支付通道,讓用戶能夠安全地進入離線狀態目前.

1900/1/1 0:00:00
LIBRA:全球負利率 我們的錢該怎么辦?_ATMI幣

狂人說 今天仔細思考了一下,四季度的大餅到底有沒有期待,想到了兩個事,一個是Bakkt的合約開市,一個是明年的減半行情,這兩個利好預期或許能讓比特幣沖一沖,除此之外.

1900/1/1 0:00:00
BZX:BZEX關于不明身份人士惡意冒充官方客服的警示公告_ZRX

近段時間,BZEX頻繁接到舉報:有不明身份人士惡意冒充幣鉆官方客服名義,并通過電話、短信、社交軟件等各種方式欺騙用戶。對此,我們表示強烈譴責.

1900/1/1 0:00:00
ASH:數據顯示:行情寬幅震蕩,趨勢方向不明_CASH

北京時間9月7日8點,反映加密貨幣市場整體走勢的ChaiNext100指數報877.76點,過去24小時下跌2.56%,成交額365.49億美元,成交較前24小時增加20.24%.

1900/1/1 0:00:00
LED:埃森哲與美國證券存管信托與結算公司(DTCC)發布DLT治理運營模式白皮書_BBC

9月9日消息,管理咨詢和技術服務供應商埃森哲與美國證券存管信托與結算公司近期發布一份白皮書“管理分布式分類帳技術網絡”,引入了DLT治理運營模式,以管理不斷發展的DLT格局的風險和后果.

1900/1/1 0:00:00
ads