[爆卦]evm定義是什麼?優點缺點精華區懶人包

雖然這篇evm定義鄉民發文沒有被收入到精華區:在evm定義這個話題中,我們另外找到其它相關的精選爆讚文章

在 evm定義產品中有8篇Facebook貼文,粉絲數超過3,460的網紅Taipei Ethereum Meetup,也在其Facebook貼文中提到, 📜 [專欄新文章] 來聊聊MEV之亂 ✍️ Anton Cheng 📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium MEVA vs Fair Ordering. Credit: MP頭條...

  • evm定義 在 Taipei Ethereum Meetup Facebook 的最佳解答

    2021-04-13 01:57:04
    有 11 人按讚

    📜 [專欄新文章] 來聊聊MEV之亂

    ✍️ Anton Cheng

    📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

    MEVA vs Fair Ordering.

    Credit: MP頭條

    前言

    最近這幾個月來,以太坊上面的MEV(Miner Extractable Value)的話題越來越紅,對於該如何解決這之中的不公平性,社群中展開了很大的爭論。由於最近剛好看到一篇很棒的Tweet統整了這半年來的一些好文章,就試這整理一下這幾篇的主要論點。(如果對MEV已經有基本概念的人,也可以直接follow這個thread就好xD)

    — @benjaminsimon97

    由於主要辯論的雙方剛好是目前做Optimistic Rollup最有名的兩大團隊:Optimism 和 Arbitrum,因此我們也可以透過這次辯論看出兩個團隊未來的開發走向。

    前情提要: 什麼是MEV (Miner Extractable Value)

    在Ethereum現有設計中,Miner有著選擇交易收入區塊(Tx Inclusion),和決定交易先後順序(Tx Ordering)的權力。MEV指的就是礦工透過掌握這兩個權力所能提取的總價值。

    雖然名詞定義上為礦工的可抽取價值,但是除了礦工之外,很多Front running 機器人在做的事情也是一樣的:透過觀察mempool裡面的交易,當發現front run機會的時候,透過付錢更高手續來讓自己的交易先被執行,這之中所抽取的價值,也是所謂的MEV,因此在後面會提到的很多文章中,大家直接用Front Run這個詞來代表了擷取MEV的行為。@danrobinson 在他經典的文章 Ethereum is a Dark Forest 中很好的闡述了如此的現況,也正式把這個問題帶進更多人的視野。

    在那之後,一個名為FlashBots的組織現身,開始進行公開的MEV 相關研究與開發,旨在改善EVM帶來的負面影響,例如:front running 造成手續費提高、 MEV太高對以太坊安全性的影響。非常推薦大家Follow他們的進展。

    接下來我們就來看看,一個重要的Proposal已經圍繞它而生的一些辯論。

    MEVA (MEV Auction)

    MEV Auction 是由 Karl Floersch 、Vitalik 、Philip Daian等人,於2020年一月共同提出的解決方法,字面上的翻譯就是透過一個拍賣(Auction)機制,讓MEV可以被更公平的分配。Karl 同時也是Optimism的CTO,也可能是因此設計出了這個能夠完美契合Layer2的架構。

    更精準一點來說,這個拍賣要拍賣的是礦工的兩個權力中的「排序權」:它礦工未來只負責「選擇交易進入區塊」,而不再控制區塊內交易順序的排列,而把此權交給另外一個叫做Sequencer的角色來進行。至於Sequencer的選擇方式,就會是一個簡單的拍賣競標。在競標中獲勝的Sequencer將可以拿到未來一段時間的區塊排序權。至於整個協議競標中得來的錢,可以作為提供公共財的資金(fund public goods)。

    為什麼說這個提案契合Layer2,是因為在L2原本的設計中,就是由一個Sequencer收取所有用戶的L2交易,在L2的鏈上執行,最後把執行結果以及所有交易資料Publish到L1上。換言之,這個排序者角色其實已經存在L2的架構中。若是L2層先實做看看這個拍賣機制,就可以在不改變以太核心協議的情況下,測試一下其可行性、參數等等。

    對MEVA的質疑

    在MEVA概念被提出之後,Ed Felton (Arbitrum 背後公司 Official Lab 的創辦人兼普林斯頓的教授),對此提出了諸多的質疑。

    1. 用戶最終體驗是否變差

    Ed Felton最先寫了一篇名為「MEV auctions considered harmful」的文章,其中質疑了這個設計會讓使用者體驗更糟:這個Ordering權力的競標,無異於將「Front Running」這個行為專業化,因為理論上最會front run的人,將能夠一直出最高價得標。這在使得「Tx Ordering」這個權力中心化的同時,更變向鼓勵了大家開發厲害的front running程式,最終的受害者仍是的以太坊一般用戶,因為所有的MEV其實都是從用戶的身上抽出來的。

    MEV auctions considered harmful

    Vitalik 對Ed的看法提出了反駁:他認為「MEV來自用戶」這件事是一個已知且不可避免的事實,這個機制主要的重點,在於分離MEV的收入與礦工的收入,藉由把這個金流轉給Sequencer這個非礦工的角色,可以去除礦工中心化等危及Layer1 安全的疑慮。一個簡單的例子就是:若是有一個MEV很高的區塊(假設礦工可以透過re-ordering拿到100個ETH),那麼礦工就有動機在這個區塊高度進行fork(希望最終自己的挖到區塊被網路接受)。這個例子讓我們看到,考慮MEV會使得礦工的行為比起「單純領block reward」更難預測,這將危及到Layer1的安全。

    Vitalik也表示,專業化帶來的「中心化tx ordering」並不見得是件壞事,儘管它對於使用者體驗是有害的,但無論如何MEV是有個上限的,Sequencer並沒有權力從使用者口袋偷錢,而且用戶可以在任何時候決定不使用這種比較容易被Front-run的合約。

    2. 沒有MEV Auction的話,L1真的會變得更中心化嗎

    Ed 接著寫了一篇名為「Front Running as a service」的文章,簡單回應了中心化tx ordering的問題,也挑戰了另一個MEV Auction的假設:「MEV將使得L1 Mining power趨於中心化」。

    這個假設背後的理由很簡單,假如有一個礦池特別會front run,它將能夠獲得比其他礦池更高的收入,這會吸引所有礦工轉到這個礦池。

    Ed 提出的反駁理論也十分有趣:假設現在有兩個礦工:A與B,其中兩者都有一定的算力,但A有較好的MEV程式,因此能夠透過排列交易獲得更高的收益。在任何時間點,只要B還存在,A礦工就有動機把這個MEV程式「賣給」B,因為本來B也有機會挖到一些區塊,在這些區塊中A的收益為0。若是能夠達成一個互惠的條件:B將使用A的程式多賺的收入分一部分給A,那麼這筆交易對於礦工A與B而言都是有益的,因此這筆交易必定會發生。

    Front-Running as a Service

    其衍伸意義為:身為MEV專家的礦工,其實有動機提供「Front Running as a service」,所以最終這個Service會自然被分離出來,並且形成一個自己的市場,本質上跟MEVA是類似的,並不會導致L1算力中心化。

    3. MEV Auction是否真的能分離Tx Inclusion 與 Tx Ordering

    Ed 還寫了另外一篇「MEVA(What is it good for?)」的文章,用經濟學解釋為什麼這個Auction最終會失效。

    MEVA (What is it good for?)

    簡而言之,不管我們如何想要分離這兩個權力,最厲害的front-runner若是能夠同時掌握Tx Inclusion的權力,它必定能夠提高自己的收入。這也表示,最厲害的Sequencer會想要自己成立一個礦池,因為當他同時掌握Tx Inclusion和Tx Ordering 兩個權力時,他能夠提供最高的報酬。因此一個理性的Sequencer會願意透過提高給礦工們更高的獎勵,來壟斷Tx Inclusion + Tx Ordering的權力(這是一個在現實商業世界中非常常見的壟斷策略)。這會使得最後這個模式會變得跟現在一模一樣:由單一角色決定Tx Inclusion和Tx Ordering的權力。

    Fair Sequencing

    不難看出,Ed所有的論點都圍繞一個重點:MEV Auction最終並沒有辦法解決任何問題,而且這個拍賣還會為社群帶來更多問題:例如一次拍賣24小時的交易排序權力,會讓這個權力過度中心化。

    那麼Ed所在的Official Lab有提出什麼解法嗎?其實有:他們認為真正解決這個問題的方法並不是在鼓勵專業化Front Run並且拍賣這個權力,而是從根本上消除Front Run的機會,也就是說,應該要設計一個機制「避免」任何人任意排列交易順序。也就是所謂的Fair Sequencing問題。

    在Arbitrum目前的計畫中,在未來他們會在Arbitrum Layer2中引入一個這樣的「公平排序」。實際的細節還沒有太明朗,他們計劃在幾個月內上線的第一個Rollup 版本也不會包含這些功能,所以其實他們的Mainnet Launch會類似Optimism,由單一Sequencer決定所有交易排序。但還是很期待他們未來能不能夠真的實作出更好的方法。

    Chainlink Labs: Fair Sequencing Service

    另一位Chainlink Labs 研究員(身兼康乃爾的教授) Ari Juels,也因為最近在CoinDesk發表了一篇類似的文章質疑MEVA,讓這個問題加溫不少。在這篇文章中,用了一個非常極端的譬喻:把Front Run這種惡意行為比喻為犯罪,若是一個城市充滿了罪犯,一個政府該做的事情並不是拍賣大家入室盜竊的權力、再將這些拍賣所得拿來回饋人民。反之,政府應該想辦法阻止犯罪。

    這篇文章透過這樣的比喻,來表達對於MEVA機制的不認同,同時譴責Flashbots這類的社群專案是在系統化的傷害使用者,並指出「如何解決MEV應該成為以太社群的研究重點」。

    Opinion: Miners, Front-Running-as-a-Service Is Theft - CoinDesk

    文末的結論跟Ed Felton 相同,都是認為Fair Sequencing 才是此問題真正的解決之道。這其實是呼應自己Chainlink Labs幾個月前發佈的一個 Fair Sequencing Service。簡而言之,就是透過Chainlink 最擅長的預言機(Oracle network)來投票、避免讓一個中心化Sequencer角色單獨掌握這個權力。

    其實這個Fair Sequencing 問題是一個非常大的研究領域、除了Chainlink labs提出的Oracle解決方法以外,還有許多包括ZKP的其他解決方法。我會盡量多Follow一些,以後有機會再來做更多介紹。

    社群中其他的聲音

    對於這個MEVA vs Fair Ordering的爭論,除了理論派以外,也有不少其他的聲音讓我們可以更全面地看看的整個局勢。其中一則Tweet表示:MEV Auction在實作上比Fair Ordering單純許多、也不需要牽扯一些複雜的密碼學:

    — @tarunchitra

    最後一定要提一下的是另一個以太坊大佬 Hudson 對於Ari這篇文章的回應。他認為MEV問題在短期內將會持續困擾使用者,Flashbots這種公開透明的開發流程能夠吸引更多社群關注,並且能夠讓MEV更公平的分配給更多角色、而非只是少部分的玩家。同時他也指出,以太坊核心開發者目前有更重要的2.0開發工作要做,面對這個議題,大家應該更踴躍參與以太坊公開的研究流程,而不是把所有的責任丟到所謂的「Core Devs」身上。

    — @hudsonjameson

    個人覺得Hudson這一段回應其實很值得大家更多思考,除了在學術上的辯論以外,真正實質上的社群參與也是很重要的。

    小結

    整個MEV議題到目前為止還是一個ongoing debate,在接下來幾天會不會愈演愈烈、會不會有人提出新的觀點,都是非常值得大家關注的問題。就像文章開頭低一篇Tweet所說的,這是非常高學術性良性辯論,我這裡只簡單的收錄了一部分,由於是順著Official Lab的脈絡撰寫、難免有些偏頗,希望大家可以到Flashbots的Github了解更多,會對於目前Optimism + Flashbot那一派目前所在做的事情有更多的了解。

    如果還沒有follow Philip Daian這個人,非常建議大家Follow他。他除了是Flashbots目前最主要的推手之一,更有趣的是,他現在還在Cornell 念PHD,並且是Ari的學生。這場師生大戰讓整個辯論更加戲劇性,但卻不失其高質量的本質。對於接下來還會有什麼發展,讓我們一起期待吧。

    — @phildaian

    來聊聊MEV之亂 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

    👏 歡迎轉載分享鼓掌

  • evm定義 在 Taipei Ethereum Meetup Facebook 的最佳解答

    2021-02-15 19:57:23
    有 8 人按讚

    📜 [專欄新文章] EIP2929, EIP2930 簡介
    ✍️ Anton Cheng
    📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

    Opcode 加油Proposal,會不會讓以太坊變更貴呢

    昨天在同事的推薦下發現了這個YouTube系列:Peep an EIP,也聽了Vitalik和Martin介紹EIP2929 + 2930的這一期。這兩個EIP都已經被列入下一次的硬分岔(Berlin Hardfork),所以我就來寫個學習筆記。先打個預防針,本人對EVM可以說是非常不熟,但也希望藉著這個機會逼自己學習,如果有錯誤的話也希望懂的更多的各路大神可以不吝賜教。

    Berlin without hardfork. (By Claudio Schwarz on Unsplash)

    EIP2929: Gas cost increases for state access opcodes

    乍看之下這是一個極為恐怖的Proposal。在Gas已經高到爆炸的2021年,理論上不應該再通過這種「加油」類的方案。不過不用緊張,其實這個EIP真正改變的是第一次access的價格,如果一筆交易內要執行一樣Opcode動作輛次,那麼gas cost 將降低為100。

    Increases gas cost for SLOAD, *CALL, BALANCE, EXT* and SELFEDESTRUCT when used for the first time in a transaction.

    大家都知道,合約最終會被Compile成一堆Opcode,這些Opcode也是用來計算最終交易手續費的依據:理論上越是花時間的的Opcode,應該要收越高的手續費。

    但是一直以來,state access opcode 太便宜都是一個已知的問題:在2016年的上海DOS攻擊中,其中幾個攻擊的手法就是透過惡意交易大量讀取帳戶資訊、大量的創造合約再銷毀,或是不斷用 EXTCODESIZE 來讀合約大小等等,讓Client必須花大量的IO資源處理交易(需要讀寫disk的動作特別慢),最終使Client程式Crash或是延長出塊時間。儘管大部分的弱點已經透過EIP150中大量提升gas cost獲得改善(還有其後的EIP1884),但在EIP2929中,也引用的這篇Paper的數據:現在replay所有以太坊上的交易,當時那些惡意交易中的worst case還會需要~80秒才能完成。這跟以太坊所定義的13秒出塊時間有著很大的差距,也代表這個潛在的攻擊是可行的。

    透過增加這些opcode所需要的gas cost,可以降低每個區塊最大可能的讀取數。以下是偷抄Vitalik PPT 的數據:(12,500,000 為gas limit上限)

    Pre-EIP 2929:

    BALANCE spam: 12,500,000 / (400 cost + 320 address size + 50 boilerplate) = 16,233 accesses per block

    CALL spam: 12,500,000 / (700 + 320 + 50) = 11,682 accesses per block

    SLOAD spam: 12,500,000 gas / (800 + 25 boilerplate) = 15,151 accesses per block (but of a smaller tree)

    Post-EIP 2929:

    BALANCE spam: 12,500,000 / (2,600 + 320 + 50) = 4,280 accesses per block

    CALL spam: 12,500,000 / (2,600 + 320 + 50) = 4,280 accesses per block

    SLOAD spam: 12,500,000 / (2,100 + 25) = 5,882 accesses per block

    說實在的這個數據的解釋也很廢話,就是把Opcode變得用貴,能Spam的數量越少。平均來說Gas cost 變高3倍,所以之前worst case的80秒執行時間可以被下降到大概 ~27秒。

    SSTORE changes

    在實作層,EVM會維繫一個本筆交易讀取過所有交易的 Set。每次有尚未讀取過的slot時,就會先收取一筆 CLOD_SLOAD_COST (2100) ,然後把這個slot加入這個set中,下次讀寫就會比較便宜。

    對於已經讀取過的Slot,再次寫入的Opcode SSTORE 之gas cost為會降低為

    5000 — COLD_SLOAD_COST (2100) = 2900

    簡單的說,單純只操作一次 SSTORE 的總gas 會維持一樣在 5000 。但如果這個slot是之前有讀過的,則寫入的gas cost就會降低。近一步來說,一個 x += 100 ,其實會變得更便宜:

    Pre-EIP-2929: 800 SLOAD + 5000 SSTORE = 5800
    Post-EIP-2929: 2100 SLOAD + 2900 warm SSTORE = 5000

    其他Side effects

    這個改動除了降低了最高能夠spam的次數以外,也降低了以太坊想要做到stateless client,理論上最大的witness 大小。其實這裡的原理跟前面很類似,下圖的表格比較的是目前使用hexary tree所需要的witness大小:若12.5M的區塊全部塞滿該Opcode的witness,理論上最大會佔多少空間。在EIP2929之後由於gas cost增加,就壓縮了最大可能的witness size.

    這裡單純只比較增加gas cost後,對於max witness size的影響。影片中有提到其他許多方法旨在減少Witness bytes,包括使用binary tree而不是hexary tree,以及用Code Merklization等等。這些其他方法也能夠降低最後的Max Witness size,但跟這個EIP沒有直接相關。不過可以注意的一點是,這些其他在witness size上面的優化跟 gas cost 所帶來的優化的效果是可以相乘的,例如 SLOAD,更改gas price已經能夠讓max size 縮小2.6倍,若是改用Binary tree可以將 Witness bytes降低到 288 bytes,就會是再3~倍的優化。

    對用戶的影響

    依照Martin Swende 給出的數據,這個EIP對於一般交易的影響僅有提高0.3~0.4%。理由很簡單,雖然第一次access storage變貴了,但是後面幾次讀寫就會變得便宜。大部分應用的程式邏輯都是類似的幾個變數進行讀寫,因此可能有不少的動作反而會變得更便宜。一個最簡單的例子就是ERC20 Transfer,兩個餘額的 +=和 -= 都會變便宜,所以總共的花費也是變便宜的。

    這其中也會對於Solidity的開發pattern有著一定程度的影響,我目前想到的影響可能有兩個:

    由於多次的storage access變便宜,永遠cache state variables不再是一個最佳策略。以前我們會盡量想辦法減少寫入state storage的次數,現在可能會基於coding style考量減少一些的memory cache。

    之前寫合約都會盡量避免external call,甚至會寫一些一次把所有 variable都回傳回來的笨函示,來避免多次的external calls。這有一部分原因是因為每次external call都會需要使用到 EXTCODESIZE 這個Opcode所以很貴。但如果 EXT 系列的Opcode也變得越call越便宜,那麼這個一次全部call 回來cache 住的pattern也可能改變。

    以上兩個想法都還沒有經過實證,如果之後看到更有證據的分析的話,也會來這裡分享。

    EIP2930: Optional access lists

    EIP2929可能會影響一些鏈上的合約,因為有些合約有hardcode external call的gas 上限。對於這方面的問題,EIP2930提出一個新的交易類型,讓交易中多帶一個access list,即所有這筆交易即將讀寫的storage slot,並且先幫忙付掉第一次讀寫的gas,而真正交易讀寫該storage時,只會被要求付100 gas。

    這不但可以避免這次EIP2929帶來的副作用,也可以被使用在其他因為gas price 改變的硬分岔升級而壞掉的合約,例如在EIP1184 增加 SLOAD gas price 時影響到的 Aragon 和Kyber 等等。儘管當時升級前各大專案都有幫助用戶提出migration 方案,但如果有人曾經卡錢在裡面,也可以Follow一下這次柏林Hardfork。

    小結

    新的一年就用一篇簡單的文章來開頭。最近發現自己以前的學習習慣有點亂無章法,所以新年整理了reading list,逼自己做筆記,順便發想一些想要寫的主題。今年的期許就是學更多Ethereum底層一點的知識,當然還有上層一點Defi的知識。也歡迎大家分享一下自己都是怎麼follow這麼多東西的><

    EIP2929, EIP2930 簡介 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

    👏 歡迎轉載分享鼓掌

  • evm定義 在 Taipei Ethereum Meetup Facebook 的精選貼文

    2019-11-22 17:14:06
    有 7 人按讚

    📜 [專欄新文章] TEM 區塊鏈基礎教育第三階段 — 跨出工程師只會寫 Code 的既有框架
    ✍️ Phini Yang
    📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

    TEM 區塊鏈基礎教育第三階段 — 跨出工程師只會寫 Code 的既有框架

    本課程著重在進入區塊鏈產業所需具備的基礎知識。

    區塊鏈技術是橫跨多領域所組成,並又接著在各領域知識的基礎上創新。從網路結構的外觀來看,系統以眾多節點以點對點架構組成,相異於主流日常生活使用網路服務的主從式架構。節點間對資料取得共識的機制也須追溯到分散式系統的研究。

    在以太坊以來,客製化虛擬機以進行運算也成顯學,這塊又屬於編譯器的領域知識。不論在共識層或應用層,系統倚賴密碼學的工具。最後利用區塊鏈簿記上的資產進行獎勵或懲罰來讓系統參與者作出行動,需要經濟學上的工具。

    即使在五年之前進入區塊鏈圈,要能夠一次把這所有的領域接觸過也非容易。這次課程取得在各自領域專精的講者,把每個領域重要的概念提過,並點出與區塊鏈關聯的重點。

    目標並非讓學習者能夠完全掌握所有的領域,而是

    降低日後自行學習的障礙,知道可以從哪裡開始看

    知道哪些領域有學習者自己領域能夠切入合作的缺口

    知道各種領域的瓶頸及前沿研究是什麼。

    課程的安排除了前述眾領域的介紹,最後有一門「客戶端原始碼分析」,全節點便是整個抽象共識機制的具體軟體實作,有了前面的基礎,看到程式碼會比較知道背後設計的原因。

    為什麼從以太坊開始學?

    以太坊鏈上的 Dapp ,不論是在數量或是應用的範圍上,皆遙遙領先其他主鏈。各大主流區塊鏈應用的衍生,也是以以太坊為基礎發展而成。 以太坊目前仍是區塊鏈中最具開源文化的生態系之一,技術支援也是所有公鏈中最完整的,有著最豐富的研究者社群與概念創新。

    課程時數與費用

    課程將分成三階段,每階段授課 12 小時,形式包含講課與實作。
    每一階段 12 小時收費 $4,800 元,早鳥票 $3,600,三人團報價 $3,000/1 人。
    課程人數最多 30 人為主,最低開班人數 10 人。

    🎁 立馬去購票 🎁

    https://www.accupass.com/event/1911150750032715966110

    ❓有任何問題,請聯繫 Phini Yang (Mail)

    以下為每堂課程詳細介紹,以供學員理解:

    1. 經濟學原理 — 賽局理論/供需 By 梁智程, 以太坊基金會

    為什麼要學習這項課程?

    區塊鏈無論是底層協議,或是去中心化應用,系統經常需要設計誘因,並假設系統的多數參與者會依據誘因,做出對自己最有利的行動,利用那樣的行動維持系統運作。

    要討論、分析、設計誘因,經濟學上已有累積已久的語言與工具。因此我們常會在區塊鏈的文章中看到從古典的供給與需求[1]、共有財的悲劇[2] 、或是較現代的賽局理論、機制設計、拍賣等術語。

    這些觀念可能對無經濟學背景的開發者較難掌握。我會試圖在有限時間之內,介紹主要常用的經濟學概念,並點出有運用到這些概念的相關區塊鏈文獻。我們也會介紹到因為區塊鏈特殊的環境,所產生新的機制設計的挑戰以及機會。

    這項技術可運用在哪?

    要設計區塊鏈相關系統,通常需要理解經濟學相關知識。

    課程大綱

    1⃣ 經濟學原理
    - 供給與需求
    - 外部性與公共財
    - 區塊鏈範例:區塊鏈運算資源

    2⃣ 賽局
    基本定義:玩家、報酬、策略、均衡
    非合作賽局 vs 合作賽局

    3⃣ 機制設計
    - VCG 最佳機制設計
    - 區塊鏈範例
    第二價拍賣的手續費 [3]
    賄賂攻擊 [4]、反機制 [5] 與全知識證明 [6]
    - 激進市場範例
    平方投票

    2. 虛擬機 EVM By 戴宏穎 (海帶), Second State

    為什麼要學習這項課程?

    虛擬機就像是肝臟,雖然是人體中沈默的器官,但沒有這個元件,整個系統就會失去作用。

    對於使用者而言,不論是在 Ethereum 上轉 Ether 、部署合約、或者呼叫合約,基本上都不會注意到有虛擬機的存在。可這個無感的存在卻是合約能夠執行的核心關鍵。如果今天沒有虛擬機,那 Ethereum 就無法撰寫 smart contract 、無法執行 DApp (迷戀貓、去中心化交易所等應用)。

    這項技術可運用在哪?

    除了是設計有執行合約能力的區塊鏈系統中必備的元件外,理解虛擬機也能幫助我們在裡頭進行效能的最佳化與增加新的特殊功能(產生隨機數、進行 hash 運算等)。

    課程大綱

    1⃣ 深入淺出 EVM
    - 虛擬機概論
    - EVM 核心元件
    - 理解 EVM 內部的運作過程

    2⃣ 實作
    - 增加一個新的 opcode magic
    - 增加產生隨機數的 opcode rand (EVM 的隨機該怎麼做)

    3⃣ Eth 2.0
    - Ewasm Virtual Machine

    3. 共識機制—PBFT/PoS/Casper FFG By 邱駿, UnityChain

    為什麼要學習這項課程?

    PBFT(Practical Byzantine Fault Tolerance)誕生至今已逾 20 年。它的發明源於分散式系統中一個著名的共識難題:拜占庭將軍問題(Byzantine Generals Problem)。PBFT 並不是一個針對全開放環境的共識協定 — 事實上在區塊鏈出現之前,並未出現任何一個針對開放環境的拜占庭容錯共識。區塊鏈的橫空出世啟發了研究人員再度審視 PBFT 這個經典。

    PBFT 具有一些與區塊鏈截然不同的特性,這提供了改進區塊鏈一些有用的思路,例如以PBFT為基礎建立的權益證明(Proof-of-stake)模型。儘管在區塊鏈蓬勃發展的今日,PBFT這個經典仍然蘊含許多值得研究人員反覆推敲的巧思,其後續也衍生出非常多新協定,例如 Tendermint / HotStuff / Harmony FBFT 等等。

    以太坊對權益證明(Proof-of-Stake, PoS)的研究最早可追朔至 2014 年。從此之後,以太坊研究員們便一直朝「實現基於 PoS 的共識協定」此一目標前進。PoS 共識的設計是一個跨領域且相當複雜的問題,其包含計算機科學 / 經濟學 / 密碼學等面向。以太坊擁有區塊鏈生態系中最跨領域的團隊,對 PoS 的研究可以說是相當透徹。

    課程大綱

    1⃣ 什麼是共識?
    - 什麼是狀態機?
    - 為什麼需要共識?
    - 為什麼共識這麼難?
    - 正確的共識:安全性(Safety)與活躍性(Liveness)
    - 共識一定可以達成嗎?

    2⃣ PBFT 共識協定
    - 協定概論
    - 安全性與活躍性分析
    - 特性分析

    3⃣ PoS 共識協定
    - 什麼是砍押金/砍押金條件?
    - PBFT 最小砍押金條件
    - 為什麼 PoS 這麼難設計?

    4⃣ Casper FFG
    - 協定
    - 特性分析
    - 改進 PBFT
    - 與 Eth 2.0 整合

    4. 密碼學原理 — 橢圓曲線/零知識證明 By 吳偉誠 (Kimi), UnityChain

    為什麼要學習這項課程?

    隱私在現今世界越來越受重視,但是區塊鏈上任何的交易都是公開透明的,要如何在使用區塊鏈的同時又享有隱私,零知識證明是目前最好的解決方案。

    這項技術可運用在哪?

    零知識證明除了使用在隱私外,也能有效率的驗證資料,進而提高交易速度。

    課程大綱

    1⃣ 橢圓曲線簡介

    2⃣ Shamir’s Secret Sharing 介紹與應用

    3⃣ 零知識證明
    - 零知識證明簡介
    - zk-SNARKs
    - 零知識技術的應用與比較

    4⃣ 手把手實作
    - circom 語法及指令

    5. 點對點 p2p 系統 By 賈脈瑄, 以太坊基金會

    為什麼要學習這項課程?

    區塊鏈本身基於點對點(Peer-to-Peer, 簡稱 P2P)網路。大家都知道共識層的重要,但常常沒意識到網路層的安全也很重要。

    P2P 網路的術語及概念本身也很分散,經常散落在網路各處難以系統化的學習。不同的使用情景造就了不同的設計,近年區塊鏈興起,也帶起了和區塊鏈有關的 P2P 系統研究。這門課會帶過 P2P 系統中常用及重要的設計與理由,並介紹區塊鏈系統們怎麼應用這項技術。

    這項技術可運用在哪?

    實作去中心化網路,譬如區塊鏈網路。不同區塊鏈可以設計特化且有效率的 P2P network。

    課程大綱

    1⃣ P2P networking 基礎
    - 歷史背景
    - Overlay
    - Requirements for p2p networks
    - Unstructured networks
    - Structured networks: DHT
    - Gossiping

    2⃣ 區塊鏈的 P2P networking
    - Difference from the classical p2p networks
    - Cases study
    ・Ethereum or Bitcoin
    ・Ethereum 2.0
    - Library: libp2p

    6. 客戶端(Geth)原始碼分析 By Miya Chen, AMIS

    為什麼要學習這項課程?

    Ethereum 擁有非常活躍的開發生態系,以 go-ethereum 為例,透過分析原始碼更加了解 Ethereum 協議運作過程。

    這項技術可運用在哪?

    根據自身需求客製化模組邏輯,例如:修改 miner 打包 transaction 的順序。

    新增 RPC API,例如:subscribe API。

    記錄額外的 blockchain 資料,例如:每一個 block 其所有 account balance 和 storage 的差值。

    課程大綱

    1⃣ Geth 架構介紹

    2⃣ 理解 tx pool 運作過程

    3⃣ Event subscription 的實作

    4⃣ 手把手實作: 客製化 tx pool

    課程時數與費用

    課程將分成三階段,每階段授課 12 小時,形式包含講課與實作。
    每一階段 12 小時收費 $4,800 元,早鳥票 $3,600,三人團報價 $3,000/1 人。
    課程人數最多 30 人為主,最低開班人數 10 人。

    🎁 立馬去購票 🎁

    https://www.accupass.com/event/1911150750032715966110

    ❓有任何問題,請聯繫 Phini Yang (Mail)

    TEM 區塊鏈基礎教育第三階段 — 跨出工程師只會寫 Code 的既有框架 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

    👏 歡迎轉載分享鼓掌

你可能也想看看

搜尋相關網站