iT邦幫忙

2025 iThome 鐵人賽

DAY 30
1

參賽初衷

身邊認識的人參與鐵人賽的不少。但我一直猶豫要不要參加,一來是要連續寫 30 天蠻累的。二來是我從來沒有一天寫完一篇文章的經驗,很怕會寫不完,只能發部分。也有人說一天要發一篇可能會寫得很水。

但我想要嘗試不同的東西。過去的經驗讓我學會放棄追求完美。

我一直想寫一本專注以太坊協議的書。

市面上關於 Web3 的書大概分以下幾種:

  • 以炒幣為目的的書
  • 調查記者以社會公益為目的,追查幣圈亂象的書
  • Vitalik 部落格直接印出來的書
    • 這類書會被擺在商業區,當某種商業偶像的書崇拜。但沒有撰文背景的脈絡其實很難看懂部落格的內容。
  • 講述以太坊基金會過去歷史的書
    • 這類書的內容著重在人際間的愛恨情仇,是一般人們比較有辦法和開發者共情的
  • 講述以太坊技術的書
    • 這類書一出版幾乎就過時。且大部分內容專注在合約撰寫部分。

我想寫一本,如果一個具備某種專業的人,想要有系統的瞭解以太坊,能夠上手的書。

現在人們可能會找 精通以太坊 這本( 二版 快出版了 )。但這本一版有點舊,二版有點書目看起來有點也是專注合約寫作。

對於底層講得最厲害的書應該是 Ben Edgington 的 Upgrading Ethereum (暫譯:升級以太坊),他曾經參與押金制的升級的開發,因此有辦法寫清楚那些規格書上沒有寫明的設計原理。

「眼前有景道不得,崔顥題詩在上頭」。的確有升級以太坊這麼一本厲害的書在,還必要再寫一本嗎?主要是升級以太坊的目標讀者是協議開發者,裡面充滿了許多細節。

若說以太坊技術整體是一張巨大的蒙娜麗莎 PNG 圖檔,開發者需要有升級以太坊這本書才能知道那些皮膚皺紋怎麼畫。

我想寫的是一本蒙娜麗莎的火柴人。那種讀者有限的注意力點數可以點在五官和四肢上,但不是衣服的細節紋理上。

過去七年,我參與以太坊押金制升級開發三年,零知識證明應用開發四年。我想寫出我們平常養出來的常識,那些不一定百分之百精確或甚至正確,但一套人們口耳相傳對技術問題的理解。那些有辦法讓我們參與工作最低限的知識。不查資料,像 LLM 幻覺一樣直接從腦袋倒出來。

本來已經有計劃寫一點點了,但也就停在一點點。直到參加鐵人賽才有辦法推進。

寫作計畫與回顧

寫作時存稿三天。當天發兩天前寫的內容。

有時一開始想法不多。但發的當天可能會再想到一些新的內容補充上去。

一開始想說以有點小說的方式撰寫。所以引入了特務 K 和小雨。

特務 K 是那種情報電影類的特務,以攻擊為業。

以太坊的各種防禦性設計,總是在提防著某種不存在的攻擊者。沒設計好是一定會被攻擊的,但設計正確之後,這攻擊者也不在了。安插特務 K 這個角色的企圖是讓讀者能站在攻擊者的角度思考,理解防禦措施的設計動機。

小雨想像中的背景是一個技術社群的參與者。他並非是以專家角色提供情報,而是藉由幾乎無限多的時間和精力去追蹤那些公開資訊。

在前面十天大概是執行層的內容。這部分比較接近一般的軟體,也是幾乎以太坊十年以來運作方式不太變化的地方。我發現透過虛擬角色對話的方式,寫作時比較有辦法掌握是否跳躍太快。如果小雨講太多,代表特務的好奇心還沒跟上。

到了第十一天之後,共識層的變化真的比較大。許多 2018 記得的東西最近有比較多變更,需要常常翻閱新的文件。寫起來稍微比較卡。

但慢慢的我也發現,似乎不需要引入虛構角色來充字數或引起好奇心。圈子本身有那麼多有趣的故事可以當作引人注意的點(Hook),但寫作前不會想到哪些故事可以擺在什麼地方。

溝通

書寫也讓我思考了技術溝通這件事。以前我們的溝通或演講,都非常的開發者導向。目的是傳遞某種有助於軟體開發的訊息。有講出來就好。總會有人用到。

但面對更廣大的受眾,需要把訊息再切細與重組織。找到火柴人的五官和四肢。

翻譯

寫作的過程讓我從新思考翻譯這件事。我已經思考翻譯一陣子,並整理一個 清單 討論。但清單只能就單個英文詞去尋找對應的翻譯。

但在撰寫一整篇文章時,能夠以更大的格局去思考翻譯這件事。

這裡面最滿意的大概是使用「押金制」這個詞。以往 Proof of Stake 照字面翻,就會譯為「權益證明」。中文詞沒辦法表達那個共識設計的內涵,但實際英文詞早就問題重重。整個設計的重點是使用能夠沒收的押金,作為有懲罰機制的共識系統,增進安全性。與「證明」無關。

滿意的翻譯還有

  • 敲定(Finalization):之前聽到的譯法,忘記來源
  • 資料泡(blob):有音譯並符合 .oO 迷因
  • 出塊期(Slot)與 計票期(Epoch):有找到除破英文想像,並賦予技術意義的翻譯。

尚不滿意的翻譯有

  • 束縛(Commitment):行文時可以感受到拗口。如果沒特別定義,沒辦法看懂這詞要做什麼。
  • 捲捲(Rollup):的確迷因上都是以捲類食物作為藝術元素。可是沒辦法表達其技術核心。
  • Data availability:原本的英文詞撞太多令人誤解的 IT 詞彙。暫時用資料發布(Data Publication)取代。資料發布這詞的問題大概是不夠陌生,讀者仍然沒辦法搞清楚這和在 IPFS 發布、在 AWS 發布、登報發布的差別是什麼。
  • 提取值(Maximal extractable value, MEV):意識到「最大」的部分是贅詞。但仍然翻譯沒擺脫原文思路。

最後是「證明」這個詞。這大概是整個系統裡面最重要的動詞。

自己的手機與筆電,是由眾多小電子零件所組成,電子零件沒有自己的意志,有某種故障率很低的可靠度。一台點對點網路電腦可以形成,也是把網路上的陌生節點當成自己的零件。這些零件有自己的意志,或說遵從其主人的意志。零件要故障也可以是天然的或人為惡意的。因此其中零件之間的溝通以誘因或密碼學來約束行為,避免故障。

因此區塊鏈的技術文章出現一堆和證明相關的詞:工作量證明(Proof of Work)、權益證明(Proof of Stake)、雜湊樹成員證明(Merkle Proof, Membership Proof)、零知識證明(Zero Knowledge Proof)、正確執行證明(Validity Proof)、詐欺證明(Fraud Proof)。以及證明相關的詞如:見證(Witness)、論據(Argument)等。

在有相關密碼學脈絡交代清楚的情況下,使用「證明」這個詞的確是工作上溝通的標準。但在對大眾溝通上,證明用起來很拗口。第一是證明與數學證明是同一個詞,「使用者可以對合約提出提款證明」與「數學可以證明破壞共識的惡意投票要燒毀 1/3 以上押金」兩者的差別需要讀者倚賴句子脈絡去區分。

第二是證明同時是動詞又是名詞。英文尚有 Prove 與 Proof 之分,中文卻沒有。「可以用雜湊樹成員證明去證明」聽起來真正拗口。

第三是證明似乎只是系統運作邏輯的一半,證明能夠被檢驗才是完整的流程。「合約能檢驗使用者曾經存款,並不曾提款過」。因次我會慢慢傾向使用「驗算」、「檢驗」或「檢查」等等詞彙描述。「工作量證明」和「權益證明」直接換成「算力制」和「押金制」去思考。「雜湊樹成員證明」換成「成員檢查」。「零知識證明」在無隱私需求的應用變成「驗算壓縮」,有隱私需求的可能未來會想翻「隱私驗算」之類。「正確執行證明」和「詐欺證明」就全部變成「驗算」。

這邊還有一個感想是我對公務人員的作業不熟悉。我知道有些公文要蓋騎縫章,以確保文件完整性,以免中間頁面被抽換。效果和數位化的文件雜湊起來相同。也許我想找的翻譯詞彙都有公務機關或法律上對應的詞彙。有那樣的詞彙,人們容易從紙本的經驗與知識,遷移到數位世界。

數位簽章,就是這樣的例子。英文中 Digital Signature 只包含簽名的部分,中文加上了印章。這樣的英文命名與中文翻譯,把簽名與蓋章的紙本經驗,那些使用者知情同意的意象,一併帶到數位世界。

傳達

書寫的過程也思考了要傳達哪些資訊給讀者。

如果密碼學最終是隱形的話,那為什麼讀者需要介意呢?如果區塊鏈設計良好,應該就像飛機一樣,搭上去就能穩穩地飛到目的地,不需要懂什麼流體力學。又或是像瀏覽網站一樣,也不用知道憑證。細節讓少數專家去煩惱就好吧?

的確穩定幣或其他區塊鏈應用悄悄或已經滲透到人們生活之中。包裝良好的知識熱騰騰上桌也許是人們需要的。

但也許 魅力 也是需要傳達給讀者的東西。看到押金制,或零知識證明,或一個開放協作的生態系,能用多快的速度改善笨重的金融體系。知道這些,即使不是當下有用的知識,學習區塊鏈也是可以得到啟發的吧?

馮紐曼曾說「如果人們認為數學不簡單,那只是因為他們不了解生活有多麼複雜。」區塊鏈有許多面向,和社會非常有關係。舉凡獎勵與懲罰、數位身分、節點的投票、「合約」。那些機器間的設計,借鏡了某種社會上既有的制度。只是在機器能驗證雜湊值,或用運算執行業務邏輯,變成用另一種方式實現人類制度。也認為人造的區塊鏈簡單,也是低估了真實社會的複雜。又或是藉由學習區塊鏈,能夠啟發我們對真實社會的設計不同的想像。

致謝

這次報的鐵人賽分組是自我挑戰組,很開心終於完成 30 天挑戰了。

感謝 yahsin 米格魯小狗的審稿。感謝讀者的支持。

感謝 iThome 長期以來舉辦這個這麼有意義的活動。很榮幸今年終於可以參與,也希望未來還有機會參加。


上一篇
入門以太坊電腦
系列文
那個有好多好多節點的電腦調查報告30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言