比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

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

Author:

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

什么是日蝕攻擊

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

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

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

0xde80 開頭地址從幣安轉出 6952 枚以太坊:6月26日消息,據推特用戶余燼監測,0xde80 開頭地址于 1 小時前從幣安轉出 6952 枚以太坊,并通過 Figment 質押了 25504 枚以太坊。該地址從 4 月 28 日開始至今累計從幣安轉出了 32416 枚以太坊,價值約 6094 萬美元。[2023/6/26 22:01:24]

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

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

直接看代碼。

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

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

印度創企開發去中心化通知協議EPNS,可向以太坊錢包用戶發送推送通知:印度一家初創公司建立了一種去中心化的通知協議,稱為Ethereum Push Notification Service(EPNS) ,允許DApp向以太坊錢包用戶發送推送通知。在接受采訪時,EPNS創始人Richa Joshi表示,他們在發現互聯網早期應用程序的運行方式與在Web 3.0上的運行方式驚人地相似后,開發了這個協議。Joshi解釋說,Gmail或Orkut在早期并不像現在這樣發送通知。用戶必須每次都要查看是否收到了新的電子郵件或信息。這種情況在2010年蘋果推出互聯網應用通知后發生了改變,其認為,DApp、智能合約和其他去中心化的Web 3.0服務與早期的GMail和Orkut的工作原理類似。Joshi強調,這正是促使他們將推送通知引入去中心化世界的原因。(Cointelegraph)[2020/9/15]

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

V神:比特幣的很多原則也適用于以太坊:2月28日,UCL區塊鏈技術研究中心研究員Angela Walch發推文詢問比特幣核心開發者所追求的比特幣原則,其發布的比特幣原則的維基頁面顯示,比特幣原則有:2100萬比特幣上限、無審查、開源、交易不可逆轉等。對此,V神評論回應稱,對他而言這也是一個合理描述,(比特幣這些原則)中的很多也適用于以太坊。[2020/2/29]

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

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

動態 | 昨日以太坊新增合約14988 上升78.30%:根據amberdata.io數據顯示,昨日以太幣交易總額約126.1萬ETH,日活躍用戶量約20.7萬,新增合約14988,代幣交易數量42.4萬,最活躍合約:USDT。[2019/8/25]

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

以太坊應用KittyRace讓CryptoKitties互相爭奪獎品:一款新的以太坊游戲正在利用流行的加密貨幣應用程序CryptoKitties的成功。這款名為“KittyRace”的新游戲讓CryptoKitties的擁有者互相比拼各自的寵物數字貓。[2018/4/6]

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

Tags:EERPEERSRV以太坊seer幣價格PeerguessSRV幣以太坊官網公告

幣安下載
LIB:捍衛數字主權 決戰數字邊疆 ——Libra開啟的新時代

通證通研究院 文:宋雙杰,CFA;婁嘉銘 導讀 Facebook發行Libra,受到了各種政府機關的“關照”.

1900/1/1 0:00:00
比特幣:分析:Ripple前CTO此前收到的1億枚XRP一旦出售,將對持有者產生不利影響

Ripple前CTOJedMcCaleb在過去兩年一直在大規模傾銷他的XRP代幣。最近,McCaleb的錢包再次收到了1億枚的XRP.

1900/1/1 0:00:00
區塊鏈:關于RCS暫停充提幣的公告

公告編號2019090801各位關心ZBG.COM的項目方和投資者們:RCS因錢包維護現已暫停充提幣功能,將于HTK2019年10月9日恢復充值和提幣,給您帶來不便深感抱歉,敬請諒解.

1900/1/1 0:00:00
ETH:數據顯示:昨日比特幣弱勢反彈后再次下跌,其余主流幣大幅拉升

北京時間9月9日8點,反映加密貨幣市場整體走勢的ChaiNext100指數報895.50點,過去24小時下跌0.39%,成交額309.76億美元,成交較前24小時減少6.07%.

1900/1/1 0:00:00
FAT:Decentraland(MANA)上市

親愛的用戶: 胖比特國際站已上線項目Decentraland(MANA)并支持MANA/ETH交易對,現已開放交易.

1900/1/1 0:00:00
COI:余額生息活動上線通知

尊敬的HCoin用戶: HCoin將于2019年9月10日00:00開通余額生息功能,同時開啟周年慶活動之余額生高息.

1900/1/1 0:00:00
ads