鏈上不說再見,只設 self-destruct。每一篇鏈墨文學,都是一則寫在不可逆記憶裡的詩。
00:04:鏈上的靜默
那晚,整個 DAO 的 Discord 群組只剩下機器人在說話。
「請各位在 UTC 時間 00:00 至 02:00 內完成提案投票,投票鏈接請點此。」Bot 冷冷貼出連結,沒有表情,連反白都不會眨一下。
阿墨看著螢幕,眼神像落在一場已經離題的辯論會上。他點開鏈接,一串熟悉的 interface 蹦出來,還有那句他再熟悉不過的話:「是否同意本 DAO 解散,並將剩餘資金依比例退還至各錢包地址?」
選項只有兩個:「YES」或「NO」。
他猶豫了一秒,像是怕按下去就真的要道別,像怕手機裡的群組只剩個名字,卻沒有聲音。
但說實在的,他也不是第一次參加 DAO,第一次離開 DAO。只是這次……不同。
這是他第一次在鏈上,與人「過日子」。
他想起那些討論提案、吵著要上鏈還是下鏈、為了 gas fee 大吼大叫、深夜在 Telegram 接龍投票的時光。
那時候還有人會講「我們」,會說「我們的共識」、「我們的節點」,好像這些代幣不只是 token,而是彼此之間尚未遺忘的約定。
他沒立刻投票,而是點開 DAO 的合約頁,翻找 proposal 的過往紀錄。
每個提案、每個投票記錄,冷冷躺在鏈上,地址對應著錢包,錢包對應著一段無法還原的對話。
沒有誰是對的,誰是錯的。
只有沒有人再來。
01:01:巨鯨簽章
阿墨原本以為會是一場拉鋸戰。畢竟 DAO 裡還有不少死忠成員,甚至前幾天還有人貼出 roadmap v3 的草圖,說要等下一輪公鏈補助再起死回生。
但他低估了巨鯨的耐心。
01:01,那筆交易像預謀好的一樣,準時落入區塊。
- TxID:0x91ac…33e2
- From:0xb1G…99ff
- To:DAO_Governance_Contract
- Action:castVote("YES")
- Voting Power:41.3%
阿墨愣住,看著瀏覽器上的資訊,一時間甚至懷疑是不是假資料。
這位巨鯨成員,平常從不發言,提案也不參與,每次 governance meeting 只被提到一次:「他在 multisig 裡,其他人都沒他多。」
這樣的結構,其實大家都知道。
當初 DAO 剛創的時候,憑的是一股熱血與共識精神,但當時發幣機制設計不夠細緻,私募輪投資者拿走一大半,幣還沒上架就已經注定了未來的走向。
「這 DAO,從來不民主,」阿墨苦笑,「只是我們以為那叫共識。」
群組裡開始出現一些「?」與「什麼情況?」的訊息,但很快被一波「TX Confirmed」的 bot 通知洗掉。
阿墨重新整理治理頁面,投票頁下方出現紅字提示:
「此提案已達解散門檻,預計於 03:00 執行智能合約,將資金自動分配至各錢包地址。」
不需多數通過,不需二次確認,只要那筆 vote 被打包,就像一把冷冰冰的刀,乾脆俐落地切斷整個系統的供電線。
阿墨盯著那行文字,仿佛聽到合約冷冷說了一句:
「多數人投票是儀式,權力簽章才是條件。」
這一夜,DAO 不是被解散的,是被「簽章掉」的。
02:12:合約執行前的夜語
夜越深,訊息越安靜。
阿墨本以為會有人抗議、吵架、開罵,至少會貼幾張迷因圖或尷尬貼圖來緩和氣氛。但沒有。
群組訊息停留在一則貼文:「有人要開最後一場VC語音嗎?」
底下只有兩個反應,一個火,一個🪦。
他打開語音頻道,那個熟悉的機器人「Voice Assistant」照常上線,「歡迎進入 DAO Governance Voice Room,本頻道將於三小時後關閉。」
空氣有一種硬梆梆的數位回聲,像有聲無體的墓誌銘。
然後,一個聲音響起,是她的聲音。
「……有人在嗎?我只是想確認,這真的是最後一次進來這裡了嗎?」
阿墨認出來,是 DAO 初創時的設計師之一——幣圈常見的匿名帳號,只叫 P_numbra,他們從未在線下見過。
「嗯。」他喉嚨乾得發癢,只擠出一個音節。
「我還記得我們第一次討論共識機制,是在 Polygon 的測試鏈上,結果因為一次錯誤 commit,整個 snapshot 爆掉,我還被氣哭。」
她笑了,聽起來卻比哭還空。
「你記得有一次提案說,要寫一首 DAO 的詩,結果投票輸了,只因為大家覺得沒有實際效益?」
「記得啊,還是你發的提案,我還 vote YES。」
「結果只有七票。」
他沒回話,只聽見她喝水的聲音,一點點數位微雜訊。
語音頻道裡只剩下他們兩個,像兩個還沒被分配資金的錢包,在最後一輪 block 裡靜靜等待挖出。
「我沒有什麼要說的了啦。」她說完這句,就退出了頻道,沒有道別。
阿墨盯著螢幕,那句「P_numbra 已離開頻道」跳了三次,他知道那是網路問題,但還是讓他覺得像一種遲來的後悔。
外頭天微微亮起,DAO 的智能合約即將在 03:00 自動執行。
而語音頻道裡的靜默,也像合約倒數前最後一次「鏈上人聲」。
03:00:自動解散與資金回流
系統訊息跳出時,阿墨的螢幕沒閃,但他的心閃了一下。
- Block #19328420
- DAO_Destruct_Contract.execute()
- Status: SUCCESS
- Gas Used: 135,421
- Token Disbursed: 98.72%
就是這樣,乾乾淨淨,一聲不吭。
沒有誰按下按鈕,沒有一張董事會合照,也沒有任何人說「再見」。
DAO 的主合約在這一塊區塊被成功執行,trigger 為自動時序觸發,on-chain 設定寫得明白,沒什麼可爭。
資金開始轉移,一筆一筆劃回成員的錢包。
阿墨的帳號收到 1.8724 顆 ETH,來自一筆標記為 DAO Exit Distribution 的交易。他點開 Etherscan 看內文,input data 被自動標註為 hex: goodbye.
不是誰輸入的,只是鏈上自動生成的編碼,卻讓他愣了一秒。
- 0x676f6f64627965
- — decoded as: goodbye
這段 hex 編碼像是區塊鏈為他說的唯一一句話,也可能是合約開發者在結尾偷偷寫進去的註解。
阿墨將這筆交易標記為「勿刪」,儲存進他的本地節點備份資料夾,標題改為:
DAO最後的話.
幾分鐘後,DAO 的 Twitter 帳號發了一則自動貼文:「感謝曾經參與的所有地址,我們已完成使命。鏈上,再會。」
阿墨關上視窗,心中泛起一種說不上來的感覺。
不是悲傷,也不是虛無,而是一種非常 web3 的情緒——像寫信給某人,然後自己按了發送,卻又永遠無法確認對方是否讀取。
DAO 並未死亡,只是變回一個沒人再執行的智能合約;成員並未離去,只是散落成數百個不再呼應的錢包地址。而這場解散,只是一場高度自動化的離席,不帶人聲,沒有哭,也沒有錯。
03:18:一筆遲到的投票
03:18,DAO 的合約早已解散,資金分配完畢,群組封存,語音頻道關閉,推特帳號停止貼文。
鏈上只剩下過去的區塊,一層一層地堆疊,成為歷史的節點。
這時,一筆交易突然被礦工打包成功。
TxID:0xa7ce…ef01
- From:0x4dd…8c09
- To:DAO_Governance_Contract
- Action:castVote("NO")
- Status:FAILED
- Error Message:Contract does not exist
他叫小城,是 DAO 的早期提案人之一。因為時差、工作忙碌,直到凌晨三點過後才注意到 Discord 上的通知。
他慌張打開投票鏈接,沒發現那條細細的註記:「合約已終止。」
他還是按下了 NO,並在確認頁輸入了一句本來想說給大家聽的話:
「我還願意再試一次。」
按下送出,畫面閃了閃,然後跳出錯誤:
Revert Reason: CALL_TO_NONEXISTENT_CONTRACT
他愣住,沒有立刻關掉頁面。只是不停地點開交易記錄,又點開,然後按下「開新分頁」。
錯誤的交易,還是會留在鏈上。就像寫錯的信件,郵差還是會收走,只是永遠不會有人簽收。
他沒再多說什麼,只是靜靜地將這筆交易的鏈接,貼回 DAO 已經關閉的 Telegram 群組。
沒有人會看到,沒有人會回應,沒有人會通知。
而這筆遲來的 NO,就像一顆放錯時間的提案,卡在已經熄燈的投票台前,無聲點頭,無效表示。
- 【區塊備註】
Block #19328453
- 狀態:Rejected by Absence
- 本筆交易無法呼叫任何治理函數,因目標合約已銷毀。
- 系統提示:「此地址尚未接受 DAO 終結。」
這晚結束得很快,像一個沒有會後酒的頒獎典禮。
人們各自登出、關掉錢包、重新登入下一場提案的世界。
而鏈上,只留下一筆無效但真誠的投票,靜靜地掛在區塊邊緣,等待下一個礦工,在無人關注的時刻,把它讀一眼。