以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > ETH > Info

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

Author:

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

什么是日蝕攻擊

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

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

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

外媒:韓國五大加密交易所在以太坊合并后均將支持ETHW分叉幣:9月5日消息,據外媒報道,消息人士表示,韓國五大加密交易所(Upbit、Bithumb、Coinone、Korbit和Gopax)組成的數字資產交易所聯合委員會DAXA將發布關于以太坊合并的聯合響應計劃。這五大加密交易所將支持ETHW分叉幣,現有的ETH持有者以及基于以太坊的ERC20代幣持有者將通過空投獲得ETHW。考慮到大多數山寨幣是ERC20代幣,預計大部分投資者將參與空投。不過目前五大加密交易所還沒有發布任何公告。(D-Center)[2022/9/5 13:09:13]

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

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

直接看代碼。

Findora跨鏈橋Rialto已在以太坊Ropsten測試網上線:金色財經報道,Findora跨鏈橋Rialto已在以太坊Ropsten測試網上線,Rialto Bridge是ChainSafe ChainBridge的一個分支,為支持Findora網絡而定制。用戶能夠將通證從兼容EVM的區塊鏈雙向轉帳到Findora區塊鏈上,反之亦然。Rialto橋通過源鏈(如BNB鏈或以太坊)上的智能合約鎖定通證(如USDT、USDC等),并在Findora智能鏈上開采等量的通證。目前,該橋只部署在主網BNB鏈和以太坊區塊鏈測試網上。[2022/5/6 2:54:12]

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

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

V神:以太坊可以作為價值存儲資產超過比特幣:金色財經報道,以太坊聯合創始人V神(Vitalik Buterin)最近在接受采訪時被問及是否能看到以太坊不僅在價格價值上,而且可以作為一種價值存儲資產超過比特幣,他簡單地回答了“它可以”,并稱:“我認為以太坊和比特幣的最大區別在于,比特幣是一個平臺,生態系統的價值來自于貨幣的價值,而在以太坊中,貨幣的價值來自于生態系統的價值。尤其是在EIP1559之后,當費用被燒毀時,這在更直接的經濟意義上就會變成現實。”當被問及DAO是否會成加密貨幣生態系統中下一個隨著DeFi和NFT的成功而興起的部門,V神表示:“我認為隨著時間的推移,DAO肯定會變得更加重要。就DAO領域仍然缺少的東西而言,我認為沒有任何一件是大事,而是更多的小事。”此外,V神認為,從文化角度來看,NFT很有趣,因為它們將人們帶入以太坊,他們的思維方式與DeFi和普通加密貨幣人士完全不同。[2021/10/13 20:24:24]

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

Ether Capital持有的以太坊總價值為1.661億加元:加拿大上市公司Ether Capital Corporation(NEO:ETHC)發布截至2021年6月30日的三個月和六個月財務業績報告。截至2021年6月30日,該公司持有的以太坊總價值為1.211億加元;該公司的總資產為1.329億加元;公司股東權益總額為1.326億加元;該公司第二季度收入為304312加元,凈虧損為149508加元。該季度公司記錄的其他綜合收益(OCI)收益為1930萬加元,這是該公司數字無形資產公允價值重估未實現收益凈變化的結果。截至2021年8月12日,該公司持有的以太坊總價值為1.661億加元。(Businesswire)[2021/8/13 1:53:53]

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

以太坊2.0存款合約地址余額突破90萬枚ETH:據歐科云鏈OKLink數據顯示,當前以太坊2.0存款合約地址余額突破90萬枚ETH,達909,313枚。此前報道,以太坊2.0信標鏈主網(BeaconChain)已于12月1日20點正式啟動。以太坊2.0信標鏈在達到最低啟動門檻(524,288)后,仍可以繼續進行抵押,但年化收益會隨著抵押金額的上升而逐漸下降。[2020/12/2 22:49:09]

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

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

注意加粗的代碼,有一個針對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:PEEREER以太坊SRVPEER幣PMEER價格以太坊幣怎么挖礦賺錢SRV幣

ETH
BiKi.com關于首發上線EYES的預告(09-05)_COM:tps幣圈

尊敬的用戶: BiKi.com即將上線EYES,具體信息請關注官方公告。幣種介紹:代幣名稱:EYESProtocol英文縮寫:EYES發行總量:10,000,000,000流通量:119,208.

1900/1/1 0:00:00
BTC可能在9月末重回主趨勢拉升走勢_BTC:btc交易平臺app

BTC周線收陽,并成看漲吞沒形態,陽線實體將上周的陰實體吞沒,表明大趨勢方向依舊向好。而且,前期BTC自19年上半年強勢站上7000美元開始,整體走勢仍處于2015年上一輪牛市初始階段形成的長期.

1900/1/1 0:00:00
BQB上線ITC公告_ITC:BQB

尊敬的幣權BQB用戶: BQB上線ITC,并開放ITC/USDT,ITC/BTC具體時間如下:ITC交易開啟時間:9月09日18:00ITC是一種基于區塊鏈的安全物聯網輕操作系統.

1900/1/1 0:00:00
FF銷毀情況公示_ITH:VERIFY幣

尊敬的用戶: 法拉第交易所將“每年9月4日”定為“思考日”、“平臺幣年度銷毀日”,以此提醒發起團隊和社區全體應時刻以“賦能實體、傳播價值”為初心,踏實發展砥礪前行.

1900/1/1 0:00:00
關于支持 ETC 硬分叉的公告_COI:FlyPaper

尊敬的EZB用戶:?EZB平臺已于2019年9月10日對ETC硬分叉進行了節點升級并兼容硬分叉,目前已完成,充提和交易將不受影響.

1900/1/1 0:00:00
這一年 是我變了還是EOS變了?_比特幣:LEOS幣

近期EOS的市值終于重新超過了BNB,人們開始再次審視EOS。EOS論性能和生態,無疑還是處于公鏈中領先的位置.

1900/1/1 0:00:00
ads