事件經過
北京時間2020年11月11日下午,以太坊社區知名的節點服務Infura被曝出API服務出錯,并因此導致了多個依賴于Infura來構建的服務的崩潰,或者前端顯示不正確。
就Infura自身而言,可以把它理解為一個公開的以太坊節點,這個節點會接收請求并返回一定的服務,比如幫忙轉發交易、比如檢查某筆交易上鏈了沒有,又或者某個賬戶的狀態如何。實際上,只要自己部署一個以太坊節點,就能提供跟Infura同樣的服務。但它的特殊性在于,Infura的大部分服務都是免費的,因此很多服務都選擇了依賴Infura來向自身播報以太坊區塊鏈的狀態,免去了自己部署節點的麻煩。
也正因此,Infura出錯,理論上波及面會很廣,在事件發散的過程中,甚至還有人揚言“以太坊會分叉”。理由是兩個不同的區塊瀏覽器上,對同一個塊高顯示了兩個不同的區塊。
但很顯然,以太坊根本沒有分叉。從事實上來說,兩個區塊瀏覽器所顯示的后續區塊都是相同的,這表示出塊的礦工沒有以兩個不同的區塊為父塊來繼續挖礦,也沒有彼此拒絕對方的區塊。從理論上來說,只有出塊的節點彼此之間使用了不同的共識規則,且都占據了一定的算力,才有可能形成分叉。
觀點:比特幣在連跌12天后反彈,但市場氛圍仍然“非常負面”:6月20日消息,比特幣結束了連續12天的下跌態勢,與其他加密貨幣一起反彈。不過分析師警告稱,這種喘息可能只是短暫的。這一最大的加密貨幣周日早些時候一度上漲12%,收復了周六的大部分失地。昨天比特幣一度跌至17599美元/枚。加密貨幣市場以劇烈波動而聞名,周末更是如此,因為波動可以被放大。整體基調仍然負面,貨幣緊縮帶來了宏觀阻力,且加密貨幣內部的危機也引發了人們對不斷加劇的困境的擔憂。(金十)[2022/6/20 4:39:28]
事實上,人們很快就發現了,這是因為Infura沒有運行最新版本的Geth客戶端,而某些特殊的交易觸發了這個版本的客戶端的bug,使之宕機了。Blockchair也是同理。所以很快就有人出來呼吁大家盡快升級Geth客戶端。
至北京時間11日18時,Blockchair團隊的NikitaZhavoronkov@nikzh發表推特,解釋事件的因果關系:
以太坊開發者某一次對代碼的更改導致了當日以太坊區塊鏈的分裂,分裂自區塊高度11234873開始;
觀點:穩定幣行業正進行一場透明度競賽:8月17日消息,在Moneyness 博客中加拿大金融作家JP Koning認為穩定幣行業正進行一場透明度競賽,任何額外的披露對穩定幣消費者都有好處。但對于穩定幣發行人而言,透明度之戰讓本已困難重重的商業模式變得更加難以執行。在透明度方面,行業標準已經發展,發行人定期發布鑒證報告。在這些證明報告中,穩定幣發行人向其審計師證明其擁有多少儲備,審計師會檢查此聲明的有效性。(Coindesk)[2021/8/17 22:18:07]
沒有更新客戶端的服務商,包括Blockchair和Infura,就因此受害,被留在了一個少數人組成的鏈上
從技術上來說,這意味著發生了一次“未公開的硬分叉”
修復措施是升級geth客戶端并運行debug.setHead(11234872)
他還表示,這件事絕不該被低估,應該被認為是TheDAO事件之后,以太坊區塊鏈上最嚴重的一次事故。
確實很奇怪,為什么會有某個錯誤僅僅導致軟件在某個時間以前的歷史版本崩潰而現有版本不崩潰?這豈非意味著,不同版本的geth客戶端的共識規則實際上不一樣,也就是某時某刻發生了一次不能向后兼容的共識規則改變?此外,一個Infura的崩潰就導致了大面積的服務出錯,這是否意味著Infura已經成了一個“單點故障”來源?
觀點:MicroStrategy等機構入場或影響市場公平性:AMBcrypto今日刊文稱,目前有一種觀點認為,像MicroStrategy這樣的機構進入比特幣現貨市場或衍生品交易所會導致激烈的競爭和爭取利潤最大化的競爭。MicroStrategy選擇持有比特幣作為儲備,其他機構可能選擇提供比特幣作為替代投資,并在交易所進行交易。如果機構開始在BitMEX和其他衍生品交易所做空比特幣,它們將在現貨交易所有足夠的資金,以在結算短期合約之前大幅改變訂單簿中的價格。當鯨魚或機構將資金從交易所轉進或轉出時,會對價格產生直接影響,散戶幾乎不可能與機構競爭。鯨魚和機構有相似的動機,因為目標是利潤最大化,而不僅僅是支持或推動比特幣的采用。因此就出現了一個問題,如果機構有足夠的資金來影響價格趨勢,游戲從一開始是否公平。[2020/9/28]
緣由
針對上面的兩個問題,Geth客戶端團隊的領導者PéterSzilágyi@peter_szilagyi都有回應。
從技術上來說,的確可以說是發生了“未公開的硬分叉”,但這只是因為開發人員修復了一個沉睡了兩年多的bug,而因為擔心公開披露這個bug會導致以太坊遭到攻擊,所以選擇了靜默修復。
觀點:富國銀行應該允許客戶交易比特幣等加密貨幣:富國銀行周五宣布,為了應對新冠肺炎的爆發,將暫停拆遷、住宅止贖房地產銷售和汽車收回。Bitcoinist文章稱,這些舉措可能看起來是利他主義,但采取措施讓客戶購買比特幣將是一項同樣有益的服務。雖然這些舉措值得稱贊,如果富國銀行希望對其客戶的幸福產生真正影響,現在是時候結束其阻止一切加密交易的嚴厲政策。自去年以來,該行禁止其用戶訪問為比特幣提供法幣通道的交易所和其他機構。自2018年以來,它禁止通過其信用卡購買加密貨幣。打開購買比特幣的大門,將使其客戶在應對經濟衰退時獲得所有選擇。許多人無疑持有比特幣,他們可能希望出售比特幣以支付賬單。通過阻止其訪問銀行賬戶,富國銀行使這一過程變得非常困難。其他人可能希望使用比特幣向遠親匯款,這是全球許多人的迫切需要,但如果買不到比特幣,他們就無法匯款。不過,比特幣和加密倡導者不應該指望富國銀行會很快終止其加密禁令。它一再證明,它對利潤的追求勝過客戶的幸福,甚至勝過遵守法律的簡單要求。目前,比特幣和加密倡導者對富國銀行的最大希望是其對即將到來的加密革命這一現實給予更多尊重。毫無疑問,它的領導人正日益意識到這一點。(Bitcoinist)[2020/3/22]
人們也不該鄙視Infura沒有使用最新的Geth客戶端。從運營者的角度,不緊跟軟件的最新版本是理性的。而依賴于Infura的服務,是自己把這個權利交出去了,而不是別人禁止了你運行節點,所以也沒什么可抱怨的。
聲音 | 觀點:區塊鏈技術去中心化、透明可追溯特性適合于公益慈善領域:當前區塊鏈技術被廣泛應用于各行各業,其可溯源、不可篡改、去中心化的特點似乎為公益慈善領域的透明化提供了一種可能。深圳市信息服務業區塊鏈協會會長鄭定向表示,從純技術角度上看,區塊鏈去中心化、透明可追溯的特性特別適合于公益慈善領域,公益慈善領域目前存在的一些突出問題可以通過應用區塊鏈技術得到比較好的解決。在業內人士看來,捐贈人和受贈方無法有效達成共識、捐贈物品無法及時送達至受贈方手中,這些問題都可以通過區塊鏈技術得到解決。不僅如此,由于在鏈上的每個捐贈者都是節點,一旦更改數據必須要有一半以上的節點同意才可,這可以有效地預防有心人士惡意篡改信息。(華夏時報)[2020/2/12]
Peter的回應也引起了不同的反應。一位門羅社區的人表示,在2017年,他們也曾因為同樣的顧慮而選擇了靜默修復bug。當然,也有人認為,選擇靜默修復是對的,但至少應該通知大型基礎設施的提供者,只要聯系了,就能大幅減少這一漏洞所造成的破壞。
北京時間12日凌晨5:34,Peter發布了《Gethv1.9.17客戶端所造成破壞的事后報告》,定位了問題的來源:發布于2019年11月7日的Gethv1.9.7錯誤實現了EIP-211;JohnYoungseokYang在2020年7月15日報告了該問題,于是Geth團隊在7月20日更新的v1.9.17版本中修復了這個問題。該次修復使得Geth客戶端在執行涉及相關規則的交易時能跟其他以太坊客戶端相一致,但卻使v1.9.17版本與歷史版本的Geth發生了不一致。
如Peter所述,這個過程完全不是為了引入某個以太坊社區不知道或者不同意的共識規則,僅僅是因為寫了bug所以必須修復bug。除非你管寫了bug也叫“硬分叉”,否則就沒有理由管修復bug叫“硬分叉”。
其次,到底怎么發布修復,實際上并不簡單。以太坊的硬分叉協調也需要很長時間。如果公開一個帶有嚴重危險性的bug,在各節點升級的過程中難保不會有人嘗試攻擊。作為客戶端開發者,他考慮的更多是以太坊網絡的安全性,而不是某個服務的安全性。而且,他們也并不是對所有的bug都采取同樣的靜默修復措施,很多都是公開修復的。
12日上午7:11,Optimism團隊的JingishiringforOptimism@jinglanW出來披露了更多信息:他們在6個月前復制了Geth客戶端的代碼庫來研究和開發OptimisticVirtualMachine,在該過程中,他們發現了一個神秘的bug,也修復了該bug,但一直無法定位其來源;他們一直以為,這個bug可能跟團隊引入的定制化改進有關,但11號他們開始懷疑錯誤就存在于舊版的geth客戶端中,而不是因為他們引入了一些改進。于是他們看了ethernodes.org顯示的節點分布之后,就決定在主網上測試該bug。因此有了后面的事情。
所以,實際上,是Optimism團隊發現了一個bug,草率地決定在主網上測試該bug還存不存在,再加上Geth團隊此前選擇了靜默修復該bug,才使得某些沒有及時升級的節點出錯了。
該如何理解和看待這件事情呢?
就事情的本因來看,這是因為客戶端團隊選擇了靜默修復一個沉睡了許久的bug。雖然很多人認為geth團隊可以通過聯系基礎設施提供者來降低破壞,但我在這里還是認為,我們應該給客戶端開發人員更多的信任和尊重。我相信Geth客戶端團隊這么做是有理由的,他們知道絕大部分節點都在使用自己的軟件,也考慮了bug的沉睡時間,因此選擇了靜默修復。從事后諸葛亮的角度,當然提前通知了大的基礎設施提供者會更好,破壞會更少。但是,這樣吹毛求疵合理嗎?為什么依賴于Infura的服務不假設Infura可能崩潰?
我承認我在這里不太公正,但更公正的話,也有很多人已經說過了。我在此只想表達我對geth客戶端團隊的敬意。我愿意把印象分給他們,因為他們在過去提供了許許多多的工作量證明。他們值得大家的尊敬。
在靜默修復措施的執行上,當然存在提高的空間,也應該跟包括門羅和比特幣社區學習經驗。但如果只想著譴責geth團隊,乃至以陰謀論來揣度他們,那才是更大的不公正。
關于“Infura是否成為了單點故障的來源”,也分簡單的回答和復雜的回答。簡單的回答是,不是,因為就像Peter所說,從來沒有人禁止你部署節點,只是很多提供商自己選擇了外包。Infura不是設計層面上必須經過的一個單點。只是因為各種各樣的原因,它成了可能是最大的節點服務提供商。
但復雜的回答是,以太坊節點的資源消耗比較大,確實是一個被低估的問題。以太坊協議的運行需要各節點完全執行區塊中包含的交易,而執行交易必須從狀態數據中取出數據、并且完成后也要將結果寫入,這個過程會涉及大量的硬盤隨機讀寫。而且,隨著狀態數據體量的擴大,讀寫的效率要求也會提高。前些年熱議的“狀態膨脹”問題,在當前的以太坊上還沒有解決。運行節點的門檻高,節點的數量自然就少。從善意的角度看,如果以太坊節點的運行門檻降低,我相信會有更多人自建節點,而不是選擇依賴于Infura。
但這個問題的解決,同樣依賴于以太坊客戶端開發者和研究人員的智慧。無狀態性,可以說是解決狀態膨脹問題的終極方案。而在終極方案變得可行之前,我們仍然需要客戶端開發者,為我們貢獻更高效率的客戶端。
所以,確實發生了一件事,也確實暴露出了一些問題、指出了我們學習和進步的方向。但解決這些問題,離不開我們對社區中不同團體的理解和尊重。遠離陰謀論,遠離惡意和自作聰明的嘲諷,弄清楚問題的根源,思考其實質和改進方案。我們做的事情,才決定了我們是誰。
Tags:ETH比特幣以太坊INFtogetherbnb手游下載比特幣市值跌破5000億美元什么原因知乎以太坊官網錢包INFTEE幣
就在昨天,比特幣突破了15000美元,比特幣達到這個價位在圈內引起了巨大的關注。據歷史數據顯示,歷史上只有17天比特幣的價位比這個高,這17天全部都在2017年12月7日至2018年1月10日這.
1900/1/1 0:00:00原文標題:《Non-FungibleTokens(NFT):Beginner''sGuide》原文作者:MelanieKramer編譯:0x13,律動BlockBeats非同質化代幣,即NFT.
1900/1/1 0:00:0010月25日發布一項Kusama拆分100倍議案,得到了海內外波卡社區的熱烈討論。如今,雖然這項議案已經被否決,但是,Kusama作為波卡的測試網絡,是波卡生態最為重要的開發手段之一,投票過程中.
1900/1/1 0:00:00據Coindesk11月4日報道,ETH2.0的存款合同現已生效。與此同時,VitalikButerin于2020年11月6日在Twitter發布了一篇名為:"WhyProofofStake?(.
1900/1/1 0:00:00來源:21世紀經濟報道 作者:朱麗娜 香港特區財政司司長陳茂波11月23日表示,對于虛擬資產特區政府的基本態度是“審慎開放,前提是必須不影響整體金融系統的穩定,以及投資者的權益得到適當保障”.
1900/1/1 0:00:00美聯儲研究員表示,央行數字貨幣在隱私保護方面將擊敗大科技公司。 紐約聯儲研究員MichaelLee和加州大學圣巴巴拉分享經濟學教授RodGarratt近日在一篇文章中對央行數字貨幣進行了分析.
1900/1/1 0:00:00