📜 [專欄新文章] 區塊鏈管線化的效能增進與瓶頸
✍️ Ping Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
使用管線化(Pipeline)技術可以提升區塊鏈的處理效能,但也可能會產生相應的代價。
Photo by tian kuan on Unsplash
區塊鏈的擴容方案
說到區塊鏈的效能問題,目前討論度最高的應該是分片(sharding)技術,藉由將驗證者分成多組的方式,可以同時分別處理鏈上的交易需求,即使單分片效能不變,總交易量可以隨著分片/驗證者集的數量線性增加。
除了分片,另一個常用來提升程式效能的方案是將計算步驟拆解,以流水線的方式將複雜的運算攤平,降低系統的閒置時間,並大幅提升工作效率。為了達到管線化預期的目的,會需要先知道系統的瓶頸在哪。
區塊鏈的效能瓶頸
熟悉工作量證明設計哲學的人應該會知道,區塊鏈之所以需要挖礦,並不是為了驗證交易的正確性,而是要決定交易的先後順序,從而避免雙花和帳本分裂的發生。可以說,區塊鏈使用低效率的單線程設計,並付給礦工高額的成本,都只為了一件事,就是對交易的全局排序產生共識。
在這樣的基礎之上,區塊鏈在一段時間內可以處理的交易數量是有限的,這之中包含許多方面的限制,包括 CPU 效能、硬碟空間、網路速度等。其中,關於 TPS(每秒交易數) 提升和對硬體的要求大致上是線性增加的,但在設計共識演算法時,通訊複雜度常是平方甚至三次方的關係。
以現在的目標 TPS 來說,處理交易和生成一個合法的區塊並不困難,只是因為區塊鏈的特性,新區塊需要透過洪水法的方式擴散到全網路,每個節點在收到更新請求的時候都要先執行/驗證過區塊內的交易,等於整個廣播的延時會是「驗證區塊時間×經過的 hop 數量」這麼多。似乎網路越分散、節點越多,我們反而會需要降低計算量,以免讓共識不穩定。
管線化的共識機制
使用權益證明取代工作量證明算是行業發展的趨勢,除了環保或安全這些比較顯然的好處之外,權益證明對產生共識的穩定性也很有幫助。首先,權益證明在同一時間參與共識的節點數是已知的,比較容易控制數量級的邊界;其次,權益證明的出塊時間相較工作量證明固定很多,可以降低計算資源不足或閒置的機率。
相較於工作量證明是單一節點出塊,其餘節點驗證,權益證明的出塊本身就需要很多節點共同參與,瓶頸很像是從驗證轉移到通訊上。
以 PBFT 為例,每次產新區塊都需要經過 pre-prepare, prepare, commit 三個階段,你要對同意驗證的區塊簽名,還要對「你有收到某人的簽名」這件事簽名,再對「你有收到 A 說他有收到 B 的簽名」這件事簽名,過程中會有很多簽名飛來飛去,最後才能把一個區塊敲定。
為了降低每兩個區塊間都需要三輪簽名造成的延遲,後來的共識演算法包括 HotStuff 和 Casper FFG 採用了管線化的區塊驗證過程。也就是對區塊 T 的 pre-prepare 同時是對 T-1 的 prepare 和對 T-2 的 commit。再加上簽名聚合技術,出塊的開銷在複雜度等級和係數等級都降低許多。
然而,要保持管線化的區塊生產順利,需要驗證者集合固定不變,且網路通訊狀況良好。如果會經常更動驗證者集合或變換出塊的領導者,前後區塊間的相依性會是個大問題,也就是 T 的驗證者集合取決於 T-1 裡有沒有會導致刪除或新增驗證者的交易,T-1 的合法性又相依於 T-2,以此類推。
當激烈的分叉出現的時候,出塊跟共識的流水線式耦合就從優雅變成災難了。為了避免這種災難,更新的共識演算法會限制驗證者變更的時機,有些叫 epoch 有些叫 checkpoint,每隔一段時間會把前面的區塊徹底敲定,才統一讓驗證者加入或退出。到這些檢查點的時候,出塊的作業流程就會退化成原本的三階段驗證,但在大部分時候還是有加速的效果。
管線化的狀態更新
另一個可以用管線化加速的是區塊鏈的狀態更新。如前所述,現在公鏈的瓶頸在於提高 TPS 會讓區塊廣播變慢,進而導致共識不穩定,這點在區塊時間短的以太坊上尤其明顯。可是如果單看執行一個區塊內的交易所花的時間的話,實際上是遠遠低於區塊間隔的。
只有在收到新區塊的時候,節點才會執行狀態轉移函數,並根據執行結果是否合法來決定要不要把區塊資訊再廣播出去。不過其實只要給定了交易集合,新的狀態 s’ = STF(s, tx) 應該是確定性的。
於是我們有了一個大膽的想法:何不乾脆將交易執行結果移出共識外呢?反正只要大家有對這個區塊要打包哪些交易有共識,計算的結果完全可以當作業留給大家自己算吧。如果真的不放心,我們也可以晚點再一起對個答案,也就是把這個區塊執行後的新狀態根包在下個區塊頭裡面。
這就是對狀態更新的管線化,在區塊 T 中敲定交易順序但暫不執行,區塊 T+1 的時候才更新狀態(以及下一批交易)。這麼做的好處十分顯而易見,就是將原本最緊繃的狀態計算時間攤平了,從原本毫秒必爭的廣播期移出來,變成只要在下個塊出來之前算完就好,有好幾秒的時間可以慢慢來。新區塊在廣播的每個 hop 之間只要驗證交易格式合法(簽名正確,有足夠的錢付手續費)就可以放行了,甚至有些更激進的方案連驗簽名都省略了,如果真的有不合法交易混進去就在下個區塊處罰礦工/提案者便是。
把負擔最重的交易執行移出共識,光用想的就覺得效能要飛天,那代價呢?代價是區塊的使用程度會變得不穩定。因為我們省略了執行,所以對於一筆交易實際用掉多少 gas 是未知的。本來礦工會完整的執行所有交易,並盡可能的塞滿區塊空間,然而在沒有執行的情況下,只能以使用者設定的 gas limit 當作它的用量,能打包的交易會比實際的上限少。
緊接著,下一個問題是退費困難。如果我們仍然將沒用完的手續費退還給使用者,惡意的攻擊者可以透過發送 gas limit 超大,實際用量很小的交易,以接近零的成本「霸佔」區塊空間。所以像已故區塊鏈 DEXON 就直接取消 gas refund,杜絕濫用的可能。但顯然這在使用者體驗和區塊空間效率上都是次優的。
而最近推出的 smartBCH 嘗試擬了一套複雜的退款規則:交易執行後剩餘的 gas 如果小於 gas limit 的一半(代表不是故意的)就退款;如果剩餘量介於 50%-75% 可以退一半;超過 75% 推斷為惡意,不退款。乍看是個合理的方案,仔細一想會發現製造的問題似乎比解決的還多。無論如何,沒用掉的空間終究是浪費了,而根據殘氣比例決定是否退款也不會是個好政策,對於有條件判斷的程式,可能要實際執行才知道走哪條路,gas limit 一定是以高的情況去設定,萬一進到 gas 用量少的分支,反而會噴更多錢,怎麼想都不太合理。
安全考量,退費大概是沒希望了。不過呢,最近以太坊剛上線的 EIP1559 似乎給了一點方向,如果區塊的使用程度能以某種回授控制的方式調節,即使偶爾挖出比較空的區塊似乎也無傷大雅,也許能研究看怎麼把兩者融合吧。
管線化方案的發展性
考慮到以太坊已經堅定地選擇了分片的路線,比較激進的單鏈高 TPS 管線化改造方案應該不太有機會出線,不過管線化畢竟是種歷史悠久的軟體最佳化技巧,還是很有機會被使用在其他地方的,也許是 VDF 之於信標鏈,也許是 rollup 的狀態轉換證明,可以坐等開發者們表演。
倒是那些比較中心化的 EVM fork/sidechain,尤其是專門只 for DeFi 的鏈,管線化加速可以在不破壞交易原子性的前提下擴容,確實是有一些比分片優秀的地方可以說嘴,值得研究研究,但這就要看那些機房鏈們有沒有上進心,願不願意在分叉之餘也投資發展自己的新技術了。
給我錢
ping.eth
區塊鏈管線化的效能增進與瓶頸 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
「關代省略題目」的推薦目錄:
- 關於關代省略題目 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於關代省略題目 在 Facebook 的最讚貼文
- 關於關代省略題目 在 Facebook 的最佳貼文
- 關於關代省略題目 在 [題目] 關係代名詞- 看板TOEIC - 批踢踢實業坊 的評價
- 關於關代省略題目 在 關係代名詞何時能省略?】... - Molly's English Studio 莫莉英文 的評價
- 關於關代省略題目 在 複合關係代名詞練習題2023-精選在臉書/Facebook/Dcard上的 ... 的評價
- 關於關代省略題目 在 複合關係代名詞練習題2023-精選在臉書/Facebook/Dcard上的 ... 的評價
- 關於關代省略題目 在 關代who 到底哪時可以省略?多益文法Sandra 教你2秒搞懂! 的評價
- 關於關代省略題目 在 關係代名詞講義的評價費用和推薦,EDU.TW、YOUTUBE 的評價
- 關於關代省略題目 在 關係代名詞練習題的問題包括PTT、Dcard、Mobile01 的評價
- 關於關代省略題目 在 關係代名詞練習題的問題包括PTT、Dcard、Mobile01 的評價
- 關於關代省略題目 在 關係代名詞練習題的問題包括PTT、Dcard、Mobile01 的評價
- 關於關代省略題目 在 題目Og裡的題目幫幫我Toeic Ptt情感投資事業版- 分詞構句題庫 的評價
關代省略題目 在 Facebook 的最讚貼文
#神父的鹽
.
蘋果日報有篇政治中心寫的報導,標題是「『中華隊』還是『台灣隊』?別吵了!『東奧正名』公投3年前已遭否決」
.
其實我搞不太懂這種拿有效標污染的公投結果,來抵制人們怎麼稱呼自己隊伍為「台灣隊」的正當性,邏輯在哪.
.
幾點,
.
1. 日本稱呼台灣隊伍為「台灣」,這幾乎是國際共識,並沒有因為東奧正名公投被否決,所以就禁止稱呼台灣為台灣-「中華隊」的擁護者反倒應該覺得羞恥,當他人正確的稱呼你的名字的時候,我們採取的行動卻是自我矮化,連與奧運隊伍無關的體育播報、台灣人自己稱呼為台灣隊都採取否定態度,不如這麼問問中華擁護者,敢不敢叫日本停止稱呼台灣隊?因為「東奧正名公投結果」?
.
2. 經過不當干擾還有情緒勒索甚至謊言,所裁定的公投結果並沒有正當性可言,更遑論當作一種普世判斷依據-如果沒有中華奧會脅持一干選手說會無法參賽,公投的結果還會是這樣子嗎?這就好像兩個選手在比賽舉重,裁判突然對一個選手說,你贏了就永遠不能參加比賽-那麼,這樣的比賽有公正性可言嗎?講白點,就是作弊得來的結果,不能代表該名選手真正的實力,和真正的民意.
.
3. 退一步而言,公投結果還有476萬,你要這476萬不能稱台灣隊伍為台灣隊?公投的題目為「你是否同意,以台灣(Taiwan)為全名申請參加所有國際運動賽事及2020年東京奧運?」,參賽申請不就照公投意思來?是有叫你禁止稱呼台灣隊為台灣隊?再問問,請問「中華隊」和「中華台北隊」有經過任何民意檢驗嗎?這叫拿著雞毛當令箭.
.
4. 中華隊的擁護者再怎麼習慣成自然,或者有什麼異樣的情愫,說白了,對岸就叫「中華人民共和國」,請問你心中喊的那個中華隊,難道不會混淆嗎?將自己選手的榮耀分給他國?這跟中國媒體稱呼得獎選手為中華台北隊,說那獎牌是中國的一樣,不是互相呼應嗎?
.
5. 不能否認許多人對於「中華隊」有異常的情感寄託,比如中華職棒之類的,會有許多回憶在,不過認真說,所有的運動賽事回憶都是這塊土地上發生的事,所有土地上的人們揮汗與淚水累積的結果,可以理解「中華隊」們的心情,不過說白點,這是建立在「台灣」直接被忽略的因素上,因為台灣被省略了,所以你們才會錯把台灣的人事物當成中華,這是統治者灌輸的結果,而某些人接受並且體制化,直到寄託情感成為一種不可分割的一部分,BUT,就是這個BUT,這其實跟小雞的銘印(impint)效應沒兩樣,你是雞生的,卻看到了蛇,認為蛇是自己的父母,終有一天,小雞越長越大,終究必須面對這個真實的難題,到底你是哪一隊的?你說你是蛇,為什麼卻有一雙翅膀?你覺得自己可以是長翅膀的蛇,但為什麼始終將母雞關在籠子裡,持續自欺欺人呢?
.
6. 贏了就叫中華隊為國爭光,輸了就是台灣選手落敗飲恨,這是不是一種好事歸中華,壞事台灣擔的扭曲思維?再來,如果是一種持平而且自然競爭的狀態,為什麼多家媒體甚至連選手都稱中華隊,「台灣隊」的名稱卻寥寥可數?這是讓想認同的自己認同,還是已經其中之一當作理所當然的選項,另一方理所當然出局,然後佔據所有人的視野,其中一方卻連出現都沒有機會呢?
.
當日本、韓國、美國、英國,都稱台灣隊的時候,而台灣自己卻各個「中華隊」、「中華健兒」,甚至連外國人都被洗認知成「中華隊加油」就可以知道,問題在哪了,這個島上進行「溫和的自我審查」、「沉默的杯葛約束」,已經大於國際現實或是敵國打壓,相反的,某群人利用這些要求人們無條件服從並且擴大否定你根本不該否定的事物,我們說白了,今天瑞莎不住台灣,他會稱「中華隊」還是「台灣隊」?不能否認,對於瑞莎的說服方式,應該可以更柔和一些,不過這種誤解,總是需要有人發出自己的聲音,向她傳達,這跟有些外國人把中正紀念堂當成一個象徵台灣的建築景點一樣,某些被鏡周刊打成酸民的人網友說得很好,「烏克蘭隊被稱『蘇聯基輔隊加油!』妳感受如何?」,人們該做的,不是因為同情而合理化錯誤,甚至對說實話的人展開抵制,然後趁機把錯誤當成正確的認知,硬塞給人們接受,講一句實在的,在台灣成長的選手,台灣人培植的選手,代表台灣出去比賽的選手,承載台灣希望的選手,甚至擁有台灣人的靈魂,怎麼會變成「台灣來的」、「中華隊」?就算付出再怎麼多,台灣只能是一個地名,而所有的成果和台灣人的期待,必須變成「中華的」,然後向台灣人民展示並且膜拜?這樣的不對等,有沒有想過,出問題的不是瑞莎,也不是糾正瑞莎的人,而是那些無條件接受「中華隊」的人們?他們使之成為一種和諧,破壞和諧的份子就會是酸民和壞蛋,而被放逐到世界的邊緣去?
.
然後繼續踩在台灣的土地上,大喊中華.
.
說白了,中國的威權或者砲彈,無法觸及你的意識,真正使你自己否定自己的,是你自己,當一個人用木棍揍你的時候,痛的是你身體,覺得自己是該打的人,應該成為對方的形狀,是你的奴性.
.
7. 我反對起源謬誤,不是針對論述,而是針對論述的來源-因為會失敗,所以連發生,都沒有必要,因為會引起人反感,所以連提都不許提,因為做了會產生各種各式各樣我所想像的負面的效應,那我令我難堪,於是連一點贊成的理由和可能的希望,我都不願他存在,我可以想像一百種失敗,用以拔除那一個成功,這只說明了什麼?只說明了你自身的預期失敗和深不見底的悲觀,而你用來否定別人和自己的存在.
.
一件事若不容易成功,那你應該做的是加倍的支持,而不是抽走支撐他的少許信任,毀壞他的起源,不讓他發生,使其雪上加霜,這比一個壓迫者或反對者都來的可恨,來自於受害者自暴自棄和鴕鳥心態.
.
因為做了成功機率微小,所以乾脆連同反對一起更加反對,於是我們擁有了雙倍的反對者.
.
你可不為自由而戰,但不用為高牆添磚.
.
羅馬不是一天造成的,如果連一秒都不被允許,羅馬永遠不會有明天.
.
如果連成為羅馬都不可以,羅馬永遠不會是羅馬.
.
任何意識,都是逐步積聚起來的,毀掉那個開始,又要自稱是尊崇他的人,只能說,是一個懶惰的人.
.
8. 如果遵照1124的公投,同志不會有平權,這是一個反同國家,你要重啟核能,在這之前,你必須停止建設任何一座用燃料發電的電廠,然後在缺電的時候持續降低火力發電.
.
台灣之所以有今天,人們之所以有現在,恰巧是反對服從這些無知,拒絕被操弄,所造成的結果.
.
在日本,我深深記得一個畫面,那就是當東奧正名在台灣被否決的時候,有一群日本人,他們還默默地,持續地進行,幫台灣隊正名的連署.
.
他們比台灣人更在乎台灣是什麼.
.
在香港,有記者訪問反送中的其中一個行動者.
.
「你覺得遊行會帶來改變嗎?」
.
那人回答,
.
「不會,絕對不會.」
.
「那你為何還要這樣做?」
.
他用堅決的態度,緩緩地說,
.
「至少你曾經爭取過.」
.
神父認為,日本人,香港人,這樣的精神,這樣的意識,這樣的信念,是值得台灣人去學習的.
.
台派的朋友,是時候選邊站了.
.
使自己成為自己,讓台灣成為台灣,brother.
.
.
本篇文章的完成 感謝 #小雨 #林才民 tomoyo的贊助
.
【贊助神父的菸 讓你成為自己】
https://g6m3kimo.blogspot.com/p/blog-page.html
關代省略題目 在 Facebook 的最佳貼文
日本茂木外相於6/3答詢時,有提到為何考慮於六月之內贈予台灣疫苗一事。這兩天以下這段日文,造成了網路上大肆討論,已經有很多前輩分享,網路上流傳所謂台灣片面拒絕日本捐贈更多疫苗,是一個惡意翻譯,這件事情已經得到一定程度的澄清。本篇並沒有提供更多獨到觀點,只是針對日文部分提供看法,如果已知悉此事的朋友,可以安心滑過!
我剛剛先到日本參議院官網看這個片段,聽打出以下內容,後來發現原來YOUTUBE上的TBS NEWS有提供此片段逐字稿(那我剛剛忙什麼?)但所幸還是有發現不同:
以下是爭議片段全文
「おそらく台湾国内のにおきましては、7月以降はですね、国内での生産体制っていうのを、またかなり整ってくると考えておりまして、当面の緊急のニーズというのが台湾にある、このような認識でおります。」
文形:
「~におきまして」
(~において的ます形)要表示場所、場面、時代、狀況、狀態、領域時常用的前提語句。比較鄭重的說法。
「(整っ)てくる」動詞て形加上くる,有漸漸來到某狀態的意思。後面用現在式,所以是陳述現在直到未來的狀態變化。
「(考え)ております」
~ている的謙讓語,既是謙讓就代表主語就算被省略,也一定是第一人稱。所以這邊的主語是茂木自己(亦可延伸為我們,那就是指外交部或政府)
保留口語順序,不潤飾的翻譯如下:
「應該是,有關台灣國內,在七月以後呢,國內的(疫苗)生產情況,也會慢慢達到一定程度,我是這個認為的。現在台灣是有迫切需求,我有這樣的認知」
事實上如果是同步口譯,大概會如上處理文字。大家如果是聽到這樣的內容,會覺得茂木外相語意中有認為台灣疫苗七月就會充足、或是覺得只需要124萬劑就夠了、這樣的含意嗎?
根據我所聽到的,跟TBS只有一點不一樣,就是「またかなり整ってくる」這句,TBS逐字稿寫的是「まだかなり整ってくる」,我從茂木外相的發音研判,他發音聽起來是平音的「また」而不是頭高調的「まだ」。雖然這樣音調上的誤差,是常常發生的,實際上我們在做翻譯時,確實會想把可能錯誤的陷阱迴避掉。
「また(再、又)」跟「まだ(尚未、還沒)」之間的差異比較,算是初級日文的題目,大家也可以複習看看自己能否正確使用哦!
#搭配西海橋往下看的海景
#國際海洋日
關代省略題目 在 關係代名詞何時能省略?】... - Molly's English Studio 莫莉英文 的美食出口停車場
高中常考文法:關係代名詞何時能省略?】 先說結論,關係代名詞當主詞不能省略,當受詞才能省略。 但是為什麼呢?旋元佑書中指出,如果省略關係代名詞會造成「一個主詞 ... ... <看更多>
關代省略題目 在 複合關係代名詞練習題2023-精選在臉書/Facebook/Dcard上的 ... 的美食出口停車場
Keyword: 統測英文,關代,關係代名詞,英文文法,關係副詞,複合關代. ... 關係代名詞who及that的用法關係詞3 可省略的關係代名詞who與that的用法關係詞4 ... ... <看更多>
關代省略題目 在 [題目] 關係代名詞- 看板TOEIC - 批踢踢實業坊 的美食出口停車場
想麻煩大家求助一下關代QQ
People usually can get a sufficient amount of the calcium their
bodies_____from the food they consume.
(A)to need (B)needing (C)need (D)that need
答案是C
可是想不出來啊(崩潰
謝謝各位!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.64.170.198
※ 文章網址: https://www.ptt.cc/bbs/TOEIC/M.1466341652.A.89C.html
... <看更多>