[是日發財大計]加個液精體顯示,成件事就high tech晒,賣貴幾十倍!
TLDR:「數碼」驗孕棒,賣貴幾十倍,其實就係用返low tech驗孕紙,不過加個display話你知有冇中獎。真係冇誠意,至少都識發聲先係嘛。或者會識去通知經手人。
BBC 原文:The surprising secret hidden in a pregnancy test(https://bityl.co/3Tkx)。係喎,BBC我都睇的。除咗要睇得多,仲要睇得快。但睇得多自然睇得快。
1. 人生除咗金融,仲有好多嘢好有意義好過癮嘅。例如繁殖下一代(特別係個過程)。唔過癮就唔會有你同我啦,對不?
2. 周末輕鬆啲,睇呢啲。不過驗孕呢啲嘢,搞錯咗就可大可小,都係小心啲好。
3. 埃汾就肯定唔係專家,照計女讀者一定清楚過我。男讀者嘛?我估十居其九都唔識,除非係醫生,或者播落好多種。
4. 驗孕棒,或紙,我就真係唔熟。唯一見過就係睇戲,或者睇漫畫(有集金田一用呢個做主題!)。咩一條線定兩條線之類,唔識。有錯請諒
5. 但,話說家陣外國(唔知香港興唔興?)有「數碼驗孕棒」?咩東西?幸好唔係「智能驗孕棒」或者「大數據驗孕棒」(開個Excel儲起佢),「雲端驗孕棒」(放上Dropbox通知經手人)甚至「區塊鏈驗孕棒」(屙咗落去冇得改掛)。
6. 「數碼驗孕棒」是甚麼東西?就係圖中呢支嘢。價值7蚊美金,兩支。一支25蚊港紙左右,當然係不能循環使用啦(唔得架?)。有啲貴啲嘅牌子,賣到成舊水港紙一支。而聽聞傳統嘅非數碼low tech驗孕紙,應該兩蚊港紙搞掂。
7. 咁但,當然有人玩開箱文,仲係男人(!)(其實冇講明係男人,但我估係)。但佢冇屙落去(佢話),只係淋水,同埋拆開嚟睇下!(成個開箱文詳情可睇https://bityl.co/3Tlg)
8. 拆開,發現係乜?哈哈,基本上就係low tech驗孕紙!再加堆LED(發光二極管,簡單嘢,你見啲指示燈嘅紅色就係,用嚟照明都得)同Photodetector(光敏電阻之類?)。用嚟做乜?就用嚟讀下張low tech驗孕紙係一條線定兩條線。應該係如果有條線就會阻咗光,之類。
9. 然後?再加個LCD(液晶體顯示器,可惜唔係精液體顯示器),顯示畀你睇,有咗,定冇(英文啦,不過照計中文都唔難)。
10. 係咪十分低能呢!
11. 聽聞入面仲有粒IC(集成電路,亦即係晶片,芯片),Holtek HT48C06(唔知係乜),8-bit microcontroller. 64 bytes of RAM(唔識,照抄),唔係流嘢嚟架!勁過元祖IBM PC,不過你就在上面屙篤尿然後掉走,so sad.但反正,求其一部早期嘅智能電話(埃瘋科或快乎之類),運算功能都係當年NASA阿波羅11號登月部電腦幾千倍了。而你拎嚟玩Candy Crush或者當鬧鐘
12. 但,完全唔知塊晶片係用嚟做乜的。咁當然,仲要有電池啦,唔係水力發電。
13. 結論?咪就係why bother,扮high tech,根本個核心技術(!)就係同個幾兩蚊low tech驗孕紙一樣。買一支high tech嘢,夠你用low tech驗孕紙驗幾十次,仲唔使生產咁多電子垃圾。
14. 埃汾感想?呢個年代,咁呃人唔得嘅,硬件實畀人拆開。即係你話銀行搵條友縮在櫃員機入面都仲得啫,因為人地冇得拎你部機返屋企拆。但賣畀零售客嘅,實畀人拆開睇。其實以前都會,但以前資訊唔流通咁解。即係你咩智能咖啡機都係,如果係縮條女在入面(鄭融?)沖嘅,你Demo都仲呃到人,但賣出街實死啦
15. 所以,雖則我唔識,但呃人都係整software好啲。啲乜鬼大數據機器學習AI,你唔公開個梳屎code,應該可以呃一段時間掛?冇咁快reverse engineer 到?
16. 不過,都係有啲人仲係覺得「數碼嘢」令佢安心啲。話傳統驗孕紙條線,唔同人可能睇到唔同結果喎(埃汾按:舍利子咩)。有啲人可能見到條線,有人話唔係,咁喎。有個LCD Display安心啲,pregnant or not pregnant,如是我聞。畀多一百幾十買個安心都好喎。再一次見到,tech人嘅諗法,同真正用家又未必一樣
16.5 但開箱男反駁,我都同意。其實只係個精液體顯示,畀啲假嘅安全感你。你肉眼會睇錯,唔通入面堆cheap雞 photo senor 就唔會錯咩!好平架咋
17. 同場加映,其實數碼驗孕棒,入面仲有粒藥丸狀嘅東西—有人以為係事後丸!(https://bityl.co/3To7).大佬,防潮珠嚟的……唔食得的說(*).防止個電路板受潮生鏽的
(*)不過埃汾有一鑊食日本飛驒牛莎樂美腸,將包防潮鐵粉當係山椒粉咁落,仲食咗大半包先起疑問埃汾太「」,「做乜山椒粉變咗黑椒粉,啲味都唔多同,冇乜山椒味,呃錢?」。結果第日啲大便都唔同色。咩啫!點撚會將包鐵粉整到好似調味料咁架!我以為係山椒變咗黑椒!
支持埃汾食更多山椒粉,請訂Patreon :https://bit.ly/31QmYj7
———————————————————
Ivan Patreon 狼耳街華人,一星期至少三篇港美市場評點,一個月一舊水唔使,開張一個月已500人訂!仲有兩篇免費試睇:https://bit.ly/31QmYj7
——————————————————————————
[收費短片第九擊]美股科技股是否泡沫爆破?價值投資之選
課程資訊:https://homebloggerhk.com/course_detail/?code=CC009
內容:
*美股急跌點算好
*科技股係咪泡沫爆煲?
*有乜價值投資之選?
本星期內特惠售價: $80
課程編號:CC009
觀看期限:首次播放後一星期及限每影片4次
客服whatsapp: 63832145
另外想買返第八擊(美國總統大選股票部署)都仲可以:https://bityl.co/3NPn
同時也有1部Youtube影片,追蹤數超過5萬的網紅PhoenixBlack,也在其Youtube影片中提到,立即訂閱我: https://www.youtube.com/user/Ph0enixB1ack?sub_confirmation=1 地圖下載: http://www.minecraftmaps.com/puzzle-maps/passer-pals Short Bytes: https://ww...
bytes中文 在 Taipei Ethereum Meetup Facebook 的精選貼文
📜 [專欄新文章] Crosslink 2019 Taiwan|以太坊 2.0 的未來藍圖及挑戰
✍️ Frank Lee
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Danny Ryan(source: Crosslink 2019 Taiwan)
十月底於台北矽谷會議中心舉行的 Crosslink 2019 Taiwan,吸引了來自世界各地的區塊鏈愛好者們齊聚一堂。第一天的議程,邀請到了以太坊基金會 (Etherium Foundation, EF) 的核心研究員 Danny Ryan,會中分享了以太坊 2.0 (Ethereum 2.0)目前的研究方向以及遇到的挑戰,演講的內容主要包含了以太坊 2.0 的架構,新的分片提案,執行環境 (Execution Environments, EE)以及雙向橋接 (Two-Way Bridge)等議題。
一、以太坊 2.0 的架構
以太坊 2.0 架構(source: Crosslink 2019 Taiwan)
第零階段(Phase 0)
在 以太坊 1.0 (Ethereum 1.0) 中,使用 工作證明(Proof of Work, PoW) 作為 共識機制 (Consensus),並藉此產生新的區塊。為了要減少工作證明產生新區塊時,所需要的大量算力,以及所花時間過長的問題,以太坊 2.0 將改為 權益證明 (Proof of Stake, PoS) 作為產生新區塊的共識機制,以太坊 2.0 PoS 創世區塊 (Genesis Block) 預計會在 2020 年 1 月 3 日產生。
第零階段會建立信標鏈(Beacon Chain),信標鏈就是以太坊 2.0 系統層級的鏈,當從以太坊 1.0 移轉到以太坊 2.0 時,信標鏈扮演著非常重要的角色,它是整個系統的基礎。
一旦第零階段完成,將會有兩個使用中的以太坊鏈。以太坊 1.0 鏈(目前所使用的 PoW 主鏈)以及以太坊 2.0 鏈(新的信標鏈)。在這個階段,使用者在 1.0 鏈把以太幣鎖到合約裡以註冊公鑰, 2.0 鏈會承認合約內註冊的公鑰。但是,他們無法將該以太幣遷移回去以太坊 1.0 鏈上面,為了要執行信標鏈,你會需要一個信標鏈的客戶端。目前,許多團隊正在開發這些客戶端。
第一階段(Phase 1)
第一階段會加入分片鏈(Shard Chains),在這個階段主要專注於分片鏈的資料結構,以及其有效性(Validity)和共識性(Consensus),分片鏈在這階段只當作資料鏈,並不會指定分片鏈狀態執行(State Execution) 或帳戶餘額(Account Balances)。這比較像是對分片結構進行測試,而不是嘗試利用分片來對信標鏈進行擴展。在這階段,信標鏈會把分片鏈的區塊(Block), 當作沒有結構或意義的位元集合(Collections Of Bits)。以太坊 1.0 和以太坊 2.0 仍將同時存在,並且在以太坊 2.0 鏈上進行測試和遷移。
這個階段分片鏈會與信標鏈交聯(Crosslinks) ,每個分片的當前狀態 — “結合資料根(Combined Data Root)”,會定期記錄在“信標鏈”區塊中,作為交聯。信標鏈區塊完成後,相應的分片區塊(Shard Block)將被視為已完成,其他分片知道它們可以依靠這些區塊進行跨分片交易。
交聯是委員會(Committee)的一組簽名(Signatures),證明了分片鏈中的某個區塊,可以包含在信標鏈中。交聯是信標鏈”理解”分片鏈更新狀態的主要方式。交聯還用作異步跨分片通信的基礎結構。
信標鏈在每個時段(Slot)中的每個分片,隨機選擇分片驗證者(Shard Validators) ,分片驗證者只是用來在每個區塊的內容上達成一致,他們通過交聯證明分片的內容和狀態,分片中包含什麼內容都沒有關係,只要所有委員會都達成共識,並定期更新分片上的信標鏈即可。
第二階段(Phase 2)
第二階段會將所有功能開始結合在一起,在第二階段,會完成分片化,分片鏈從簡單的數據容器過渡到結構化鏈狀態,並將重新引入智能合約。每個分片將管理基於 eWASM(Ethereum flavored WebAssembly) 的虛擬機。它會支援帳戶(Accounts)、合約(Contracts)、狀態(State),以及 Solidity 中我們熟悉的其他抽象化,預計在第二階段之前或第二階段開發時,大家熟悉的工具(例如 Truffle, Solc, Ganache)需要轉換成支持 eWASM 的版本,以太坊 1.0 及以太坊 2.0 可藉由雙向橋接來互通,會有可擴展的 Layer 1 執行,藉由無狀態執行,來提高執行速度。
二、新的分片提案
新的分片提案(source: Crosslink 2019 Taiwan)
以太坊 2.0 原提案所運作的機制,是以每個時期 (Epoch) 為單位,來進行交聯的動作,每個鏈上有1024 個片 (Shards),當需要跨分鏈交易(Tx)時,由於是每個時期進行交聯,會有較大的延遲時間;新提案更新為每個時段都進行交聯的動作,並減少片(Shards)的數量為 64個,來降低跨分片(Cross-Shard)交易時的延遲時間,每個時段都進行跨分片交易。
新提案的優點
對於以太坊 2.0 新提案的優點,首先新提案的片 (Shards)數量由 1024 個降至 64 個,降低了運算的複雜度,因為跨鏈時間從一個 epoch 降到一個 slot ,時間縮短第一個好處是給 DApp 開發者及使用者更好的體驗。第二個好處是以往需要手續費市場(Complex Fee Market) 及樂觀狀態(Optimistic State)這兩種複雜的跨鏈交易解決方案,現在不需要了。
新提案的交易
新提案只需要比之前的提案更少的片 (Shards),就可以啟動交易,可能會有更長的分片時段(12s),更大的分片區塊(Shard Block),目前更新到第零階段 ,第零階段測試網(Testnets)的測試,可能會有所延遲 ,新提案減少了第零階段發布所需的時間。
目前的想法
希望能給開發者及使用者更好的體驗,使用較大的分片區塊(Shard Block),來改進資料可用性,以及要降低開發延遲和第零階段發布所需花費的時間。
三、執行環境
以太坊 1.0 簡易架構圖(source: Crosslink 2019 Taiwan)
在之前設計的以太坊 2.0 和以太坊 1.0 中,狀態在共識機制裡,扮演著非常重要的角色,共識機制會隨時去讀寫所有的狀態,不管是執行的概念、交易的概念、帳戶的概念、樹狀結構的概念、以及所有在資料結構中的概念,都深深地融入共識中。
上圖是以太坊 1.0 的簡易架構圖,在圖中我們可以看到共識機制及一條鏈,共識機制裡包含了狀態及一個執行引擎,狀態裡包含了狀態樹,在這裡的執行引擎使用硬編碼規則,裡面包含了執行交易、帳戶模型和帳戶結構,我們可以看到圖的右邊有一條鏈,鏈上面有交易資料,在以太坊 1.0 中,我們會在交易資料上執行共識機制,去修改和更新狀態。
執行環境是一個單獨的虛擬機器,在以太坊 1.0 中,會有一個特定的帳戶模型(Account Model),以及事先定義好的操作碼 (Opcodes),礦工機制 (Gas Mechanisms)和狀態根(State Root),以太坊虛擬機 (Ethereum Virtual Machine, EVM) 就是一種特定的執行環境。
如果遵循 EIP(Ethereum Improvement Proposals) 的建議,開發者總是在要求新的操作碼,或著是更改礦工成本(Gas Cost)來支援他們的應用,像是 Plasma 和 Zkrollup 這樣的例子有很多,這樣就會需要修改 EVM 1.0 的執行環境 ,才能支援到他們的應用程式(DApp)。
但是在以太坊 2.0 的第二階段中,我們可以支持多個執行環境。 也可以有多個狀態根,不同的帳戶模型等。舉個例子,你可以定義一個臉書幣執行環境 (Libra EE),以便在以太坊 2.0 上運行 Libra。 或者,您可以定義一個比特幣執行環境 (BitCoin EE),這樣就可以在以太坊 2.0 上運行比特幣。
以太坊 2.0 簡易架構圖(source: Crosslink 2019 Taiwan)
在以太坊 2.0 簡易架構圖中我們可以看到狀態根, 它可能是 32 Bytes 的 Blob,上面有 WASM 的執行碼 (Execution Code),可以在使用者層級中去做細部設定。圖片右邊有一個鏈,鏈上有一般的交易資料以及見證(Witnesses),見證實際上顯示在資料庫的區塊中,你需要針對該狀態而不是資料庫執行該筆交易,而且還需要證明資料對於當前狀態根是有效的。舉個例子,如果我們要在帳戶 A 和帳戶 B 之間傳遞數值,假設從帳戶 A 移動 5 以太幣 到帳戶 B ,我們不能直接說帳戶和餘額 (Balance) 是確實可用的,在過程中,我們需要加入見證資料(Witness Data),來證明兩個帳戶當前的狀態,當執行碼正在執行交易資料時, 狀態根可以修改和更新狀態樹。
執行環境並不是共識機制預先定義好的,他可以在使用者層級上去做新增,我們也可以把以太坊 1.0 複製一份到以太坊 2.0 的執行環境中,將現有的狀態根放入EVM 直譯器,用梅克爾見證驗證器(Merkle Witness Verifier)來當作他的執行碼。
在原先的提案中,狀態和共識息息相關,且執行帳戶和共識中包含了狀態樹結構;而在新的提案中,執行環境為無狀態模型(Stateless Model),高度抽象化的,並且它的可擴展性,相較原先的提案高出非常多。
執行環境的優點
執行環境有許多優點,相較於舊系統,它也許可以更快地將產品推向市場,因為我們不必等到核心共識推出之後,才研究並發展這個概念,在 Layer 1 會有更少的阻礙,它可以在各種應用上,使用具高擴展性及資料可用性的執行引擎,所以未來會長期使用這個核心基礎層。
執行環境的設計完成,讓以太坊 1.0 到以太坊 2.0 的遷移,有了更清楚的方向,使用執行環境比較不會有技術隨時間遷移而過時的問題產生。
執行環境交易
對於執行環境交易,開發者及使用者可能會覺得太抽象,對什麼是執行環境感到困惑,像是這一層加了什麼?應該在這一層做什麼?誰應該寫執行環境?而且相關的開發規範會趨向更嚴格的形式。
虛擬機可能會有潛在的碎片化問題,進而影響到交易速度。
目前的想法
目前所有的研究都是正向發展的,還有充裕的時間,嘗試並更好地了解設計空間,未來會多花一些時間,在建立更好的執行環境通訊機制上面。整體來說,現階段的進度,對於未來是重要的里程碑。
四、雙向橋接
最後一個主題,主要討論開發雙向橋接是否是值得的?團隊可能可以在什麼時間點,來去做雙向橋接?
單向橋接示意圖(source: Crosslink 2019 Taiwan)
講者先前提過的提案中,以太坊 2.0 最初有一個單向橋接,所以你可以從以太坊 1.0 轉換到 以太坊 2.0,但是最初的架構不允許回傳,這主要是出於幾個原因,這需要我們將以太坊 1.0 的發展 與 以太坊 1.0 和以太坊 2.0 的硬分叉緊密結合,並把兩個系統置於互相影響的風險之中,因此團隊認為以太坊 2.0 在發布且穩定之前,將兩邊緊密耦合是不明智的。
單向橋接的問題
月初在日本大阪舉行的 Devcon 5 上,橋接的問題受到了廣泛的討論,原提案的單向橋接(One-Way Bridge)模式,會有驗證者流動性的問題,而且更重要的是,它可能會引發以太坊 1.0 和以太坊 2.0 之間的可替代性問題,如果我們允許以太坊 2.0上的流動性,那麼某種形式的轉移機制,就會在將以太坊 1.0 分叉到以太坊 2.0 之前,或著是在雙向橋接之前產生,交易所中很可能會同時有兩個幣,團隊和整個驗證者社區都很擔心這個問題,目前正在找尋減輕這個問題的方法。
另外也希望鼓勵大家,在這些早期階段進行驗證,但是在早期階段進行驗證,肯定會有很高的風險,因為存在未知的鎖定期,因此也希望找到方法減輕這種風險。
雙向橋接
雙向橋接示意圖(source: Crosslink 2019 Taiwan)
雙向橋接目前可能的路線有兩條,一種是在以太坊 1.0 上面,建立以太坊 2.0 的輕節點;另一種是在以太坊 1.0 上運作以太坊 2.0 的全節點。
路線A: 在以太坊 1.0 上,建立以太坊 2.0 輕節點
路徑A示意圖(source: Crosslink 2019 Taiwan)
這個路線需要在實際的 EVM 中支援 BLS-12–381,會花費很多開發時間,而且它只提供輕量客戶端 (Light-Client) 層級的安全性。當驗證者在 2.0 鏈上產生提款交易的收據時,我們會拿到以太坊 2.0 的輕量客戶端證明,一但收收據的區塊在以太坊 2.0 上敲定了,你就可以在以太坊 1.0 的合約上提款。不過,這可能不是團隊最終選擇的路線。
路線B:在以太坊 1.0 上,運行以太坊 2.0 的全節點
路徑B示意圖(source: Crosslink 2019 Taiwan)
第二種路線,會在以太坊 1.0 的節點上,運行以太坊 2.0 的全節點,這個路線允許我們使用敲定性機制,因此,我們不僅可以使用這種機制,來促進以太坊 1.0 和以太坊 2.0 之間的轉移,我們也可以利用驗證者的安全性,來保護以太坊 1.0 鏈,我認為大家對此感到非常興奮,這通常被稱為“敲定性小工具提案(Finality Gadget Proposal)”。
但是還是需要一種機制,去輸出以太坊 2.0 狀態根在以太坊 1.0 上,所以有一些以太坊 2.0 社群的討論,在研究如何實作它,可能會包含礦工機制。
輸出以太坊 2.0 狀態根的另一個優勢,是以太坊 1.0 有穩固的機制可以實現它,以及同時擁有以太坊 2.0 的高擴展性及資料可用性,可以做一些有趣的應用,像是 ZK Rollup 和 Optimistic Rollup。
雙向橋接的優點
如果你在交易所中,列出以太坊 1.0 以太幣和以太坊 2.0 以太幣,它們的價格應該一樣。 如果不一樣,你可以用較低的價格買一個以太幣,把他發送到橋上,然後以較高的價格獲得另一種以太幣,並把它出售。 這種套利會使它們的價格保持不變,這樣會讓用戶,驗證者和開發人員感到困惑,雙向橋接可以防止兩邊的貨幣藉由套利的形式,來互相轉換。
雙向橋接的交易
但是還是有一些權衡在這裏,儘管對以太坊 2.0 的設計非常有信心,團隊還是希望在影響到以太坊 1.0 的安全性和風險狀況之前,先在生產環境中得到驗證。
雙向橋接是一種緊密耦合的共識機制,對於兩邊鏈的攻擊及產生的問題,都會影響到另一邊的鏈,協定的開發勢必會非常煩瑣,我們需要考慮到每個協定的安全性,如果我們越早開發協議,那麼我們實際上的進度就越少,當每個障礙隨著時間發展,它們就會相互阻礙,這讓以太坊 1.0 在這一點上的開發速度比以太坊 2.0 慢得多,因為實際用戶群存在很多擔憂,並且需要大量的協調,才能在我們的生產網絡上獲得硬分叉。
所以,如果我們越早將這些東西連在一起,就可能會減慢以太坊 2.0 的開發和分叉週期,並且這增加了一些額外的開銷,換句話說,驗證我們可以鏈接客戶端的開銷是相對的。
目前的想法
我們應該會在加入驗證人流動性之前啟用橋樑,但是會等到第一階段的產品穩定之後再開放;同樣的,有很多相關的研究都在同時進行,這可能會影響到,何時完成這個操作。
名詞解釋:
EIP(Ethereum Improvement Proposals):EIP 是以太坊平台的標準,其內容包含了核心協議的規範,客戶端 API 以及合約標準。
epoch :在以太坊 2.0 中,epoch 指的是時長 6.4 分鐘的時間單位,每個epoch 包含64個 slots。
Slot(時段):每個時段為 6 秒,不一定每個時段都能產生區塊,而epoch 中最後一個 slot 稱為邊界時段 (Boundary Slot) ,或稱為檢查點 (Checkpoint)。
Solidity:Solidity 是一種合約導向的語言,主要用來開發智慧合約。
Consensus (共識機制):共識機制是區塊鏈為了在各節點間達成共識,所開發的演算法。
Validator 驗證者:驗證區塊的節點,由信標鏈在每個時段(Slot)為每個 片 (Shards)隨機產生。
Gas:交易所需的費用,當 Gas 消耗完時,智慧合約會終止並進行 Rollback。
EVM(Ethereum Virtual Machine):EVM 中文為以太坊虛擬機,是一種輕量級的虛擬機環境,Eth 1.0 中智能合約的運行環境為 EVM。
Dapp(Decentralized App):在以太坊中,基於智能合約的應用都稱為去中心化的應用程序,即 Dapp(Decentralized App)。
ether(以太幣):以太坊的貨幣名稱。
Finality(敲定性):「敲定性」是 Casper 中的概念,是一種透過驗證者投票,在鏈上產生不可回朔(Rollback)的檢查點的機制。
Libra:臉書提出的加密貨幣,預計於 2020 年發行。
Merkle Tree:Merkle Tree 由計算機科學家 Ralph Merkle 所提出,中譯為雜湊樹,因為是由雜湊函式形成的樹。
Reference: [Ethereum Improvement Proposals](https://eips.ethereum.org/)
Reference: [Two-way bridges between eth1 and eth2](https://ethresear.ch/t/two-way-bridges-between-eth1-and-eth2/6286)
Reference: [Ethereum 2.0 (Serenity) Phases](https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-2.0-phases/#phase-2-state-execution)
Reference: [ethfans](http://ethfans.org/)
Reference: [eth2 quick update](https://blog.ethereum.org/2019/10/23/eth2-quick-update/)
Thanks to Danny Ryan, Chih Cheng Liang, Juin Chiu, Yahsin Huang, and Jerry Ho
Crosslink 2019 Taiwan|以太坊 2.0 的未來藍圖及挑戰 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
bytes中文 在 Taipei Ethereum Meetup Facebook 的最讚貼文
📜 [專欄新文章] ZK Rollup一開始提出來的時候,是被定義為layer 2的解決方案,年初的時候一度以Plasma…
✍️ Kimi Wu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
ZK Rollup & Optimistic Rollup
ZK Rollup不是一個新的提案,大約在一年前被Barry Whitehat所提出,同時間Vitalik在以太坊研究員的論壇有一篇比較完整的文章解釋,現在由Matter Lab在開發。研究完zk-SNARKs之後,一直沒空來看,直到最近才有機會來深入瞭解。除了ZK Rollup,也會簡單帶一下前陣子在Plasma Group所提出的 Optimistic Rollup。
ZK Rollup一開始提出來的時候,是被定義為layer 2的解決方案,年初的時候一度以Plasma Ignis這個名稱作為發表。應該是因為去年Plasma很紅,一直不斷有新的提案跟進展,加上這當時也被定義為layer 2的解決方案,這些種種原因,開發者就冠上了Plasma的名稱,不過因為這項技術跟Plasma的精神完全不一樣,被社群抗議,後來就恢復到Rollup這個名稱(開發者的聲明),所以搜尋 ‘Plasma Ignis’會找不到什麼東西。到最近,Rollup被更名為semi-layer 2的解決方案,就是有一點layer 2但又沒這麼layer 2… XD
簡單一句話解釋ZK Rollup就是,資料放在鏈上的layer 2解決方案。在瞭解ZK Rollup之前,先來解釋原本layer 2有什麼問題。以Plasma為例,Plasma鏈只把Plasma區塊的hash放上Ethereum主鏈上做公正(欲瞭解Plasma可以參考這裡),也就是在鏈下交易了數百或數千筆的交易,最後上鏈只有幾十個bytes,這是鏈下交易的精神,但也是設計上最麻煩的地方 — 資料的可取得性。
就是當有人要離開這個鏈時,需要一個額外的遊戲規則,在Plasma叫做挑戰期(因為鏈上沒有資料,需要側鏈參與者的提供證據),這衍生了有資料才能挑戰,所以大家都要存一定數量的資料,相較於跟主鏈的互動,只需要裝一個錢包,並不需要下載區塊資料,使用者體驗上差異很大。挑戰期的另一個問題是,使用者需要保持上線狀態,不然錯過挑戰期,就代表默認了交易(因為是採用詐欺證明並非是有效性證明)。簡單來說,因為資料的可取得性問題,衍生了
1.使用者需要常在線上2. 需下載部分資料
而造成使用者體驗很糟(當然現在的Plasma設計已經改進了不少)
如何資料放在鏈上,又不會造成資料過大呢?
首先,先介紹整體架構。跟Plasma一樣,有一個智能合約做擔保,有中繼者(relayer)幫忙送交易到智能合約(在Plasma叫operator),中繼者除了送交易外,還需要產生SNARK證明,一起送上鏈做驗證。
智能合約的部分,可以想像跟ERC20一樣,在合約裡記每個參與者的帳,差別在於,標準的ERC20交易是由Ethereum這系統做驗證,也因此不能合併(因為這就是Ethereum的標準交易),而Rollup中,是把好幾筆交易包成一個標準交易,對Ethereum這個系統,就是一個交易,而驗證交易的有效性則由智能合約做驗證。
實際在智能合約裡,用兩個merkle tree做紀錄,一棵樹是紀錄地址,所以只需要樹的索引值就可以代表一個位址(未註冊的索引值內容為0),因此位址的資料量就從原本的20 bytes減少到只有3 bytes,另一棵樹則記錄balance跟nonce。
Merkle Tree of Addresses
這是資料格式(這是最初的提案,後來的實作交易量更小),
因為用索引值當地址的代表,所以只需要3 bytes(2²⁴個位址),Value的部分是以10^-6當作基底,這樣只需要15 bytes就可以代表一筆交易,而儲存這樣一筆交易大約只需要 892 gas(雖然Value是6 bytes,但是文章中的假設大部分的交易只會使用到4 bytes,所以算法是13 bytes * 68 + 2 bytes * 4 = 892),而一般ether的轉移需要21K gas,因此交易速度能提升(所以Vitalik的文章標題是”On-chain scaling to potentially ~500 tx/sec through mass tx validation”)。
https://vitalik.ca/general/2019/08/28/hybrid_layer_2.html
為什麼交易速度能提升?也順便來瞭解一下交易速度
現今以太坊每個區塊的gas上限約8M,所以若單純ether交易,速度約略是
8M / 21K / 15 ~= 25 tps
所以現在的交易瓶頸其實是gas 的問題,下降交易手續費或是提升區塊gas上限,都能適時紓困(但也會造成衍伸的問題),而ZK Rollup就是藉由交易數據量(size)的減少,進而能增加交易速度。那來看一下使用ZK Rollup後交易速度能到多快
(8M — 600K (zk-SNARK驗證) — 50K(預計合約運行的gas花費)) / 892 / 15 ~= 550 tps
這個數字就是Vitalik文章的標頭”On-chain scaling to potentially ~500 tx/sec”。但實際上並沒有這麼理想,在作者Barry的實作中,大約只有268 tps,因為每次資產的更新都會留下event,所以有多餘的gas花費,然而,這樣的設計在應用上也是比較親切的。
資料都在鏈上,而且透過zk-SNARK做驗證,代表著上鏈的資料都是被驗證過的,因此就沒有一開始layer 2遇到的問題,需要挑戰、需要下載資料等等。這也隱含著不需要信任中繼者,因為他們無法作壞,最多就是不幫你送交易。
事情沒有這麼美好…
大家都覺得zk-SNARK像個萬靈丹一樣,用了好像什麼事都解決了,不過實際上並沒有這麼完美。zk-SNARK除了需要初始設定之外,最大的問題就是需要大量的運算力,在 Barry提供的數據中,中繼者的電腦若是一台8G記憶體加上20G的硬碟swap,大概只能產生 20 tx/sec,遠遠不及預期的500tps或是實作的200多tps。所以這個方案最大的問題在於要怎麼解決算力問題。
平行運算!
Matter Lab使用了多中繼者模型跟平行運算。多中繼者的模型,很像小型的區塊鏈,使用了DPOS (Delegated Proof of Stake),還有隨機挑選區塊產生者,所以被挑選到的區塊產生者,就可以收集交易、產生證明並且上鏈。這樣的方法避免了中心化,若中繼者被惡意攻擊,整個網路還是能運作得下去,另一方面,也為平行運算做了鋪路。零知識證明的產生非常花時間,因此基於多中繼者模型,Matter Lab提出了”上鏈-驗證”兩階段的方式,也就是中繼者先把資料上鏈,下一個階段再上傳證明做驗證,進而達到平行運算(如下圖)。再加上一些資料的最佳化,測試結果可達到1600 tps。
https://medium.com/matter-labs/introducing-matter-testnet-502fab5a6f17
延遲…
聽似很美好,但是因為你的交易被分兩階段上鏈,也就是從送出到到被驗證,會是好幾個區塊,時間比原本單純上鏈時間會更久。當然,延遲多久是使用者可接受的,這目前也無從得知。這是一個取捨,省了手續費,增加了交易速度,卻也增加了時間的延遲,這一切也要等上線後才會知道。
今年初,Vitalik在台北的線下聚會中分享了ZK Rollup的進階版 — ZK ZK Rollup,有興趣的人可以參考這篇文章,記錄的很詳細。
Plasma & Optimistic Rollup
Optimistic Rollup在設計上跟Plasma相關,所以只會簡單帶一下差異。
Karl(註)基於ZK Rollup的設計,在上個月提出Optimistic Rollup,概念上也是把資料都放鏈上,但不是用zk-SNARK做驗證,因為希望能達成更普遍性的應用。而不一樣的地方有,把from的部分,改為使用者的簽章(65 bytes),因為資料量變大的,可想而知,花的gas會更多,交易速度就會不及ZK Rollup。另一部份是,因為不是用zk-SNARK做驗證,就需要資料驗證的輔助方法(validity game),這邊就不詳細介紹,有機會在寫一篇Plasma/Optimistic Rollup的詳細介紹。在估算上,交易速度約是100 tps,若簽章方式改為BLS,約可提升到450 tps。而在10月的硬分岔後,gas會下降,預估的交易速度也會分別到達400/2000 tps。(許願:希望有人可以介紹一下10月的硬分岔細節 XD)
註:在中文的媒體文章中,都稱他是Casper的核心研究員之一,但是從我一開始知道這個人,都是在大力宣揚Plasma,他的部落格、twitter都是跟Plasma相關的文章,不確定他在Plasma Group的角色,但我是把他定位成Plasma Group的 leader
文章內容若有錯誤或是不同觀點,歡迎指教
references:On-chain scaling to potentially ~500 tx/sec through mass tx validationIntroducing Matter TestnetOptimistic Rollup
ZK Rollup一開始提出來的時候,是被定義為layer 2的解決方案,年初的時候一度以Plasma… was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
bytes中文 在 PhoenixBlack Youtube 的最佳貼文
立即訂閱我: https://www.youtube.com/user/Ph0enixB1ack?sub_confirmation=1
地圖下載: http://www.minecraftmaps.com/puzzle-maps/passer-pals
Short Bytes: https://www.youtube.com/channel/UCMRr3Ok7_6bY6x5NtA_ITLA/videos
---------------------------------------------------------------------------------------
如果你喜歡我的影片的話,就請留下一個"喜歡"
如果你想看到更多的內容,不妨按下"訂閱"
你們的每一個"喜歡"和"訂閱"都是支持我的動力!
---------------------------------------------------------------------------------------
【Equipment / 配置】
▶Hardware / 硬件: 留意頻道介紹
▶Software / 軟件 :
Adobe Premiere Pro
Adobe Photoshop
Adobe After Effects
更多詳情請留意頻道介紹
---------------------------------------------------------------------------------------
【Personal Information / 個人資料】
▶Facebook Page / 專頁: https://goo.gl/HV0XSy
▶Twitter / 推特: https://goo.gl/ce2mSO
▶Instagram: https://goo.gl/tCYfKP
▶Intro Music / 片頭音樂: Au5 & Fractal - Blue
▶Resource Pack / 資源包: Faithful 32x(Customized)
Production Music courtesy of Epidemic Sound: http://www.epidemicsound.com
---------------------------------------------------------------------------------------
![post-title](https://i.ytimg.com/vi/tMI1KsjMD4w/hqdefault.jpg)
bytes中文 在 Big5 編碼的文字裡, 中文佔2 bytes,... - MIS2000Lab_ASP.NET ... 的推薦與評價
Big5 編碼的文字裡, 中文佔2 bytes, 英文及數字佔用1 byte 如何根據固定的長度解析文字。 ... <看更多>