複製比特幣程式碼,會多出另一批比特幣嗎?

複製比特幣程式碼,會多出另一批比特幣嗎?的文章封面插畫

任何人都能下載比特幣的開源程式碼,複製到另一台電腦,甚至修改名稱與參數。數位檔案幾乎能零成本複製,這看起來和「比特幣供給有限」形成明顯衝突:如果程式可以一直複製,為什麼不能順便複製出更多比特幣?

不過,原始碼只描述軟體要如何處理資料。它沒有把正在運作的同伴連線、歷年交易、參與者的選擇與下一個有效結果一起裝進資料夾。複製一份程式,可能增加一台遵守相同規則的電腦,也可能啟動另一套規則與網路;兩種結果都不會在既有紀錄裡憑空增加餘額。

因此,這個問題要拆成三層理解:程式碼能否被複製、哪些電腦願意彼此交換資料,以及哪一段歷史會被各自接受。比特幣的稀缺性發生在共同驗證的紀錄裡,沒有依賴原始碼檔案只能下載一次。

程式碼提供檢查方法,網路保存當前狀態

比特幣軟體包含交易與區塊的驗證方法、同伴通訊方式,以及如何從歷史推導目前狀態的邏輯。一台全節點啟動後,仍要找到同伴、取得資料,再依自己執行的規則逐步檢查。只有通過檢查的內容,才會進入它認可的帳本。

若複製後的軟體保留相同網路參數與相容規則,它可以成為比特幣網路裡另一個節點。這會多出一位驗證者,沒有建立第二批資產。它看到的歷史仍由相同的創世起點延伸,也會拒絕違反既有供給規則或花費條件的資料。

若修改網路參數、創世起點或有效性規則,副本則可能只和採用同樣修改的電腦溝通。這些參與者可以建立自己的區塊、紀錄與單位名稱,但結果屬於另一套網路。既有節點若判定資料不合規,就不會因兩套軟體來自相同原始碼而接納它。

複製歷史快照,也會走成兩本帳

另一種情況是先複製某一刻的歷史,再讓兩群參與者從同一位置往不同方向延伸。分裂發生時,兩邊可能暫時擁有相同的 UTXO 清單;在規則與簽章格式仍相容的範圍內,同一把私鑰也可能授權兩邊對應的輸出。

可是,從分裂點開始,兩套網路各自收錄交易、產生區塊並累積工作量。一邊花掉某個輸出,不會自動改寫另一邊的狀態。若缺少額外保護,同一份已簽署交易甚至可能被兩邊重播,這是共享起點帶來的操作風險,也再次顯示兩份紀錄已經分開處理。

這種分裂會讓帳面上出現兩套對應紀錄,但不能據此說原比特幣網路增發。原網路的全節點仍只計算自己接受的有效歷史;另一邊如何命名單位、如何調整規則,屬於另一套共識範圍。兩本帳可以保留相同舊頁,往後的餘額與交易確認卻由各自的新頁決定。

供給上限約束的是一本特定紀錄

比特幣的供給上限由區塊補貼、減半節奏與驗證條件共同形成。成功挖礦的參與者若在候選區塊裡領取超過規則允許的新幣,其他驗證者可以拒絕整個區塊。這道限制約束的是它們正在共同維護的歷史。

任何人都能另開一套網路,沿用相同上限,或把數字改成別的值。這只會改變新網路願意接受的資料,不會把新單位加入舊帳本。就像複印競賽規則與過往成績,不會替原比賽的任何隊伍加分;新的參與者仍得在自己的賽事裡產生後續結果。

同樣地,複製過去的區塊檔案,也沒有複製未來的安全資源。新網路能否持續運作,仍取決於多少礦工願意投入計算、多少節點願意驗證與轉送、軟體是否有人維護,以及使用者是否把那套紀錄當成有效結算。原始碼能提供起點,無法把這些正在進行的協調一併複製。

名稱相同,不會讓紀錄自動合併

一套副本可以在畫面上使用相同圖示、單位名稱或介面文字,但名稱不參與區塊驗證。判斷某份資料屬於哪個網路,實際要看創世起點、網路參數、規則、同伴,以及它接續的有效歷史。外觀相似只能影響人的辨識,無法迫使其他節點接受一段陌生紀錄。

所以,複製比特幣程式碼確實能產生更多軟體副本,也能成為建立另一個網路的起點。它沒有增加既有比特幣帳本中的 UTXO,也沒有讓原本的供給限制失效。真正稀缺的是特定規則下、由參與者持續驗證並延伸的有效紀錄;程式碼則是任何人都能檢查、執行與修改的工具。把工具、網路與歷史分開,就能理解開源為何可以自由複製,既有帳本卻不會因此多出另一份可合併的餘額。