作者:VitalikButerin
原標題:《APrehistoryoftheEthereumProtocol》
發表時間:2017年9月14日
盡管當前以太坊協議背后的想法已經基本穩定了兩年,但以太坊并沒有一下子出現,在目前的概念中并完全形成。在區塊鏈啟動之前,該協議經過了許多重大的發展和設計決策。本文的目的是瀏覽該協議從頭開始啟動的各種演變;在諸如Geth,Cppethereum,Pyethereum和Ethereumj之類的協議實施方面所做的無數工作,以及以太坊生態系統中的應用和業務歷史,是故意超出范圍的。
Casper和ShardingResearch的歷史也出現了。雖然我們當然可以發表更多的博客文章,討論弗拉德,Gavin,我本人和其他人的所有想法,包括“工作證明”,“輪輻鏈”,“超級立法”,影子鏈,鏈纖維和Casper的各種迭代,以及弗拉德(Vlad在一個帖子中,我們現在將其遺漏。
讓我們首先從最終變成以太坊的最早版本開始,當時它甚至沒有被稱為以太坊。當我在2013年10月訪問以色列時,我與萬事幣團隊一起度過了很多時間,甚至為他們提供了一些功能。花了幾次思考他們在做什么之后,我向團隊發送了一個建議,以使協議更加普遍,并支持更多類型的合約,而無需添加同樣大而復雜的功能:
https://web.archive.org/web/20150627031414/http://vbuterin.com/ultimatescripting.html
請注意,這與以太坊的后來更廣泛的愿景相去甚遠:它純粹是Mastercoin試圖專門研究的,即兩黨合約,當事人A和B都會投入資金,然后他們后來他們會根據合約中指定的某些公式獲取資金。腳本語言并不完整。
Bitfly推出開源以太坊合并瀏覽器beaconcha.in:9月15日消息,Bitfly推出開源以太坊合并瀏覽器beaconcha.in,目前已與以太坊區塊瀏覽器etherchain.org合并。Bitfly表示,該瀏覽器當前功能包括地址查詢、合并情況與區塊信息瀏覽、代幣信息瀏覽等,之后將支持ENS、圖表、未確認交易池信息等。[2022/9/15 6:56:58]
Mastercoin團隊印象深刻,但他們對放棄他們正在做的一切朝著這個方向發展并不感興趣,我越來越相信這是正確的選擇。因此,這里是12月2日的版本2:
https://web.archive.org/web/20131219030753/http://vitalik.ca/ethereum.html
在這里,你可以看到一個實質性的重新研究的結果,這主要是由于我意識到智能合約有可能完全概括的舊金山長途旅行的結果。與其僅僅是描述兩方之間關系條款的一種腳本語言,不如說合約本身是完整的帳戶,并且有能力持有,發送和接收資產,甚至保持永久存儲。該語言從基于堆棧的計算機轉變為我自己的意志的基于寄存器的計算機;除了看起來更復雜的情況外,我對此幾乎沒有爭論。
此外,請注意現在有一種內置的費用機制:
在這一點上,以太實際上是氣體。在每個計算步驟之后,交易所要求的合約的余額將有所下降,如果合約用完了貨幣執行,則會停止。請注意,此“接收者付費”機制意味著合約本身必須要求發件人向合約支付費用,并在不存在此費用的情況下立即退出;該協議分配了16個免費執行步驟的津貼,以允許合約拒絕非付費交易。
這是以太坊協議完全是我自己的創建的時候。但是,從這里開始,新參與者開始加入折疊。到目前為止,該協議方面最突出的是Gavin·伍德,他在2013年12月向我接觸。
Maker和NEAR Protocol或存在安全問題,以太坊核心開發者詢問用于報告的郵箱地址:9月8日消息,以太坊核心開發者、以太坊客戶端Geth開發者Péter Szilágyi在推特詢問,是否有人知道Maker和NEAR Protocol用于報告安全問題的郵箱地址。[2021/9/8 23:09:15]
GO客戶的首席開發人員JeffreyWilcke也伸出了大約同一時間,盡管他的貢獻更多地在客戶開發方面而不是協議研究。
“嘿,Jeffrey,很高興看到你對以太坊感興趣……”
Gavin的最初貢獻是兩倍。首先,你可能會注意到,初始設計中的合約調用模型是異步的:盡管合約A可以為合約B創建“內部交易”,直到第一個交易的執行完全完成后,內部事務的執行才會啟動。這意味著交易不能使用內部交易作為從其他合約中獲取信息的一種方式;唯一的方法是ExtroOpCode,隨后在Gavin和其他人的支持下也將其刪除。
在實施我的初始規格時,Gavin自然地同步實施了內部交易,甚至沒有意識到意圖是不同的-也就是說,在Gavin的實施中,當合約呼叫另一個合約時,內部交易立即執行,一旦執行完成,則一旦執行,VM返回到創建內部交易的合約,并繼續進行下一個OPCODE。在我們倆看來,這種方法似乎是優越的,因此我們決定將其作為規格的一部分。
其次,他和我本人之間的討論交易費用模型從“合約付款”方法轉向“發送者付費”方法,還切換到“燃氣”架構。交易發件人并沒有立即奪走每個單獨的交易步驟,而是為了分配了一些“氣體”,而計算步驟則從這種氣體的津貼中獲取。如果一筆交易用盡了汽油,則汽油仍將被沒收,但整個處決將被恢復;這似乎是最安全的事情,因為它刪除了整個課程”
英偉達推出以太坊挖礦產品NVIDIA CMP:2月18日消息,圖形芯片制造商英偉達(Nvidia)在2月18日的博客中宣布推出NVIDIA CMP,這是一款專門為以太坊設計的加密貨幣挖礦處理器。該產品不支持處理圖形,這使得礦工可以獲得更好的性能。(U.Today)[2021/2/19 17:28:09]
Gavin也可以在很大程度上歸功于從將以太坊視為建造可編程資金平臺的遠見卓識,并具有基于區塊鏈的合約,可以持有數字資產并根據預設的規則轉移它們,再到通用計算平臺。這始于重點和術語的細微變化,后來隨著對“Web3”合奏的越來越重視,這種影響變得更加強大,該合奏將以太坊視為一組分散的技術,其他兩個是耳語和蜂擁而至。
其他人建議在2014年初左右也進行了更改。在安德魯·米勒和其他人提出這個想法之后,我們最終回到了基于堆棧的建筑。
查爾斯·霍斯金森建議從比特幣的SHA256轉換為新的SHA3。盡管有一段時間的爭議,但與Gavin,安德魯和其他人的討論導致確定堆棧上的價值大小應限于32個字節。考慮的另一種替代方案是無限尺寸的整數,存在一個問題,即難以弄清楚多少天然氣,添加,乘法和其他操作。
我們想到的最初的采礦算法早在2014年1月,是一種名為Dagger的裝置:
https://github.com/ethereum/wiki/blob/master/Dagger.md
Dagger以“定向無環圖”命名,該算法中使用的數學結構。這個想法是,每個n個塊,一個新的dag都會是從種子中生成的偽隨機,而dag的底層將是一系列節點的集合,這些節點需要數個千兆字節才能存儲。但是,在DAG中生成任何個人值都需要計算幾千個條目。“Dagger計算”涉及在此底部數據集中的隨機位置中獲得一些值,然后將它們放在一起。這意味著有一種快速的方法來進行Dagger計算-已經將數據存儲在內存中,而不是記憶密集型的方法-從你需要從頭開始獲得的每個值。
Blockstack CEO:雪崩網絡不是“以太坊殺手”:金色財經報道,開源平臺Blockstack聯合創始人兼首席執行官Muneeb?Ali晚間發推稱,雪崩(Avalanche)不是“以太坊殺手”。適用于應用程序和合約的健康生態系統有利于消費者的選擇和去中心化。[2020/9/22]
該算法的目的是具有與當時流行的算法相同的“記憶力”屬性,例如Scrypt,但仍然是輕客戶友好的。礦工會使用快速的方式,因此他們的采礦將受到內存帶寬的限制,但是Light客戶可以可以使用無內存但較慢的版本進行驗證。快速的方法可能需要幾微秒,并且不含內存的方式緩慢而無需毫秒,因此對于輕型客戶來說,它仍然非常可行。
從這里開始,在以太坊開發過程中,該算法會發生多次變化。我們經歷的下一個想法是“自適應的工作證明”。在這里,工作證明將涉及執行隨機選擇的以太坊合約,并且有一個聰明的理由如何預期這將是抗ASIC的:如果開發了ASIC,那么競爭的礦工將有動機創建和發布許多合約,說明這些合約的說明ASIC不擅長執行。這個故事就沒有用于通用計算的ASIC之類的東西,因為這只是CPU,因此我們可以使用這種對抗性激勵機制來做出基本上是執行一般計算的工作證明。
之所以失敗,原因很簡單:遠程攻擊。攻擊者可以從區塊1開始一條鏈,只用他們可以為其創建專用硬件的簡單合約填充它,并迅速超越主鏈。所以......回到繪圖板。
下一個算法是稱為“隨機電路”,在此Google文檔中描述,由我自己和VladZamfir提出,并由MatthewWampler-Doty等人進行了分析。這里的想法也是為了模擬采礦算法中的通用計算,這次是通過執行隨機生成的電路。沒有什么難以證明的,基于這些原則是行不通的,但是我們在2014年與之聯系的計算機硬件專家往往對此非常悲觀。MatthewWampler-Doty本人建議基于SAT解決的工作證明,但最終也被拒絕了。
動態 | 以太坊未確認交易25838筆:據Etherscan.io數據顯示,以太坊未確認交易25838筆。以太坊全網算力為160.09 TH/s,當前挖礦難度2025.14 TH,交易處理能力8.4 TPS。[2019/6/19]
最后,我們以一種稱為“DaggerHashimoto”的算法來完善電路。“dashimoto”有時被稱為“dashimoto”,從hashimoto那里借了許多想法,Hashimoto是ThaddeusDryja的工作證明算法,它率先提出了“I/O的工作證明”的概念,其中挖掘速度的主要限制因素是不是每秒哈希,而是每秒RAM訪問的大型范圍。但是,它將其與Dagger的輕客戶端友好型DAG生成的數據集相結合。在我自己進行了許多調整之后,Matthew,Tim和其他人,這些想法終于融合到了我們現在稱為ethash的算法中。
到2014年夏天,該協議已經大大穩定了,除了工作證明算法外,該協議直到2015年初才能達到Ethash階段,并且以Gavin的黃皮書的形式存在半正式規格。
2014年8月,我開發并介紹了叔塊機制,該機制使以太坊的區塊鏈具有較短的區塊時間和更高的容量,同時減輕集中化風險。這是作為POC6的一部分引入的。
與Bitshares團隊的討論導致我們考慮將堆添加為一流的數據結構,盡管由于缺乏時間,我們最終沒有這樣做,而后來的安全審核和DOS攻擊將表明,實際上它比我們的難度要困難得多。當時想到安全執行此操作。
9月,我和Gavin計劃了協議設計的接下來的兩個重大更改。首先,在狀態樹和事務樹旁邊,每個塊還包含一個“收據樹”。收據樹將包括交易創建的日志的哈希以及中間狀態根。日志將允許交易創建保存在區塊鏈中的“輸出”,并且可以通過光線客戶端訪問,但是未來狀態計算無法訪問。這可以用來允許分散的應用程序輕松查詢事件,例如令牌轉移,購買,創建和填寫的交換訂單,開始拍賣等等。
還有其他考慮的想法,例如,從整個交易的整個執行痕跡中制造出默克爾樹,以證明任何事物。選擇日志是因為它們是簡單性和完整性之間的妥協。
第二個是“預編譯”的想法,解決了允許復雜的加密計算在EVM中可用的問題,而無需處理EVM開銷。我們還經歷了關于“本地合約”的更多雄心勃勃的想法“如果礦工可以優化某些合約的實施,他們可以為這些合約的打包費用“投票”,因此大多數礦工可以更快執行的合約自然會降低gas價格;但是,所有這些想法都被拒絕了因為我們無法提出一種加密經濟上安全的方法來實施此類事情。攻擊者總是可以創建一份合約,該合約執行某些陷阱的加密操作,將陷阱門分配給自己和朋友,以使他們更快地執行此合約,然后再執行此合約,然后對加油的投票并將其用于網絡。相反,我們選擇了雄心勃勃的方法,即簡單地在協議中指定的較小數量的預編譯,用于諸如哈希斯和簽名方案之類的常見操作。
Gavin也是開發“協議抽象”概念的關鍵初始聲音-移動協議的許多部分,例如以太余額,交易簽名算法,nonces等作為合約本身,并具有達到達到的理論最終目標可以將整個以太坊協議描述為將函數調用到具有某些原始狀態的虛擬機中的情況。這些想法沒有足夠的時間進入最初的前沿版本,但是預計原則將通過一些君士坦丁堡的變化,卡斯珀合約和分片規范開始緩慢地集成。
這一切都是在POC7中實施的;在POC7之后,該協議并沒有發生太大變化,除了未成年人以外,盡管在某些情況下很重要,但通過安全審核會得出的細節...
2015年初,JuttaSteiner等人組織了發出的預發行安全審計,其中包括軟件代碼審核和學術審核。該軟件審核主要是由GavinWood和JeffreyWilcke領導的C++和GO實施,盡管我的Pyethereum實施中也有較小的審計。在這兩項學術審核中,一項是由IttayEyal進行的,另一個由AndrewMiller和其他最低權威進行。EYAL審計導致了較小的協議更改:鏈的總難度不包括叔叔。權限最少的審計更專注于智能合約和天然氣經濟學以及帕特里夏樹。該審核導致了幾個協議更改。一個小的是將sha3和sha3用作trie鍵而不是直接地址和鍵的使用;這將使對Trie進行最糟糕的攻擊變得更加困難。
警告可能比它的時代有點太遠了...
我們討論的另一個重要的事情是氣體限制投票機制。當時,我們已經擔心比特幣大小辯論中缺乏進展,并希望在以太坊中具有更靈活的設計,并且可以根據需要隨時間進行調整。但是挑戰是:最佳限制是什么?我最初的想法是建立動態限制,針對實際使用氣體使用的長期指數移動平均值,因此從長遠來看,平均塊將是滿的。但是,Andrew,這在某些方面是可利用的-特別是,想要提高限制的礦工只會在自己的塊中包括交易,這些交易消耗大量的氣體,但要花費很少的時間來處理,因此總是創造出來整個塊無需花錢。因此,至少在向上的方向上,安全模型相當于簡單地讓礦工對gas限制進行投票。
我們沒能想出一個不太可能打破的gas限制策略,因此Andrew推薦的解決方案是簡單地讓礦工對gas限制進行明確投票,并將默認投票策略設置為EMA規則。原因是我們離設定最大gas限制的正確方法還有很長的路要走,任何特定方法失敗的風險似乎都大于礦工濫用投票權的風險。因此,我們不妨干脆讓礦工對gaslimit進行投票,并接受限額過高或過低的風險,以換取靈活性的好處,以及礦工協同工作以非常快速地調整的能力根據需要向上或向下限制。
在Gavin,Jeff和我本人之間進行了小型黑人馬拉松之后,POC9于3月推出,并打算成為概念發布的最終證明。使用打算在Livenet中使用的方案,并建立了以太坊的長期計劃,使用了四個月的測試網跑了四個月。VinayGupta撰寫了一篇博客文章“以太坊啟動過程”,其中描述了以太坊Livenet開發的四個預期階段,并給了他們當前名稱:Frontier,Homestead,Mesropolis和Serenity。
黑客馬拉松跑了四個月。在最初的兩個月中,在各種實現中發現了許多錯誤,發生了共識失敗,除其他問題外,但是在6月左右,該網絡明顯穩定。7月,決定制作代碼凍結,然后發布發布,并于7月30日發布。
鏈捕手消息,針對陳光英是幣安神秘高管并遭受大量輿論攻擊的情況,趙長鵬在幣安官方博客撰文稱,他在2010年認識了陳光英,并在2015年創建比捷科技時邀請她加入,負責管理后臺.
1900/1/1 0:00:00鏈捕手消息,福布斯對全球157家加密貨幣交易平臺進行了定量和定性分析后發現:超過一半的比特幣報告交易量可能是虛假的。福布斯估計,6月14日,該行業的全球每日比特幣交易量為1280億美元.
1900/1/1 0:00:00鏈捕手消息,Web3電子郵件平臺Mailchain完成460萬美元種子輪融資,CraneVenturePartners和KeneticCapital領投.
1900/1/1 0:00:00鏈捕手消息,NFT安全初創公司Tokenproof完成500萬美元融資,PennyJarcapital領投.
1900/1/1 0:00:00鏈捕手消息,據TheBlock報道,基于Solana的穩定幣借貸平臺HubbleProtocol完成500萬美元戰略融資,MulticoinCapital領投.
1900/1/1 0:00:00撰文:Zen,PANews上周,NBA球星凱文杜蘭特撤銷交易申請,接受布魯克林籃網隊的“招安”,球隊老板蔡崇信總算松了口氣,長達近兩個月的一系列離隊鬧劇終于結束了.
1900/1/1 0:00:00