以太坊交易費的經濟學模型

Ping Chen
Ping Chen
Oct 11, 2018 · 9 min read

這篇文章會介紹近期以太坊社群對「交易費模型」的討論,主要參照自 Vitalik 的一場演講影片,和論壇上的文章 ‘‘First and second-price auctions and improved transaction-fee markets’’,探討區塊鏈交易的外部性,以及目前的手續費競標模式存在的問題,和可能的改善方案。

連結如下:

背景知識

以太坊使用 “gas” 做為計算手續費的單位,使用者在送出交易時,除了從帳戶中扣除轉帳金額(msg.value),還要支付 gasUsed * gasPrice 的使用費。

根據每筆交易內容不同,手續費也會不同,計算主要有兩個考量:計算量、存儲量。因為區塊鏈上的交易需要由每個節點重新執行過作為驗證,並佔用每個節點的硬碟空間,所以越複雜,使用越多容量的交易需要付越多錢。

詳細的價格可以參考這份表格


區塊鏈的交易成本和利益

利益:

對於每一筆區塊鏈上被打包(確認)的交易,它提供了發送者私人利益(private benefit),也就是發送者「希望」交易被確認的理由,因為他想轉錢給別人、因為他想買東西、因為他要玩區塊鏈養貓⋯ 等等理由。總之,交易被確認對發送者是有好處的。

成本:

交易的成本分成兩部分,一個是內部成本(private cost),一個是外部成本(social cost)。內部成本比較直觀,就是發送者付出的手續費,目前手續費是由打包交易的礦工賺走,但也有其他模型正在被考慮,下面會提。至於外部成本的部分,是本文主要想探討的重點:什麼是一筆區塊鏈的外部成本?由誰承擔?首先想到的是挖礦消耗的電費,但其實那和交易的關係並不大,而是與挖礦收益和礦工間的零和競爭有關。

實際上,一筆交易的外部成本承受者非常多元。對於每個運行全節點的電腦,這筆交易如果需要紀錄狀態,比方說產生一隻新的貓,就會佔用一些硬碟空間;對於區塊鏈網路本身,越多的交易代表節點需要更多時間驗證,網路廣播效率越慢;甚至連區塊鏈服務提供者,比方說區塊鏈瀏覽器 Etherscan,也承受了交易的外部成本。

收稅:

基於區塊鏈交易存在外部成本,且我們無法準確的把錢分配給承擔者,收稅是很順理成章的作法。庇古稅(Pigouvian Tax)就是藉由對污染(外部成本製造)者課稅,以改變市場均衡的方法。在區塊鏈的領域,我們沒有政府做為收稅的執行者,所以藉由限制區塊大小以及手續費競標的方法,達到類似收污染稅的效果。

區塊大小的意義

影片 8:05

除了有形的計算資源,打包交易的另一個成本即是增大的區塊。而更大的區塊通常代表著更高的頻寬需求、單位時間內需要驗證更多筆交易,門檻增高,有能力運行節點的設備數量變少,去中心化程度和安全性相對減少。也就是說,允許更多交易的成本會使整個區塊鏈系統更脆弱。然而,我們也不會為了提高安全性而把區塊限制在非常小,因為那會使得手續費競標變得太過激烈,讓整個系統的實用性降低。

影片 13:03

為了決定區塊大小,我們考慮每增加一單位(比方說一筆交易)的邊際成本,如圖。當區塊非常小的時候,大部分的設備,包括智慧型手機,都有能力運行一個全節點。此時,增加區塊大小所犧牲的邊際安全性(或邊際去中心化性)很高,但同時提升的邊際系統可用性也高。

當區塊大小膨漲到一個程度,已經沒有手機跑得動節點之後,邊際成本變低,因為大部分的個人電腦都可以承擔比手機大很多的計算量要求,而邊際可用性以中等速度提升。

當區塊大小增加到普通電腦(筆電&桌機)無法負荷的時候,邊際成本再度變高,因為整個網路的節點數會快速下降,只剩下專業設備能運行節點,中心化程度大增,系統付出的安全成本將大於增加的可用性。

考慮實際的案例,如果比特幣的區塊大小變成 50KB,或以太坊 gas limit 變成 100000,幾乎所有的手機,甚至 IoT 設備都能運行全節點,但是手續費會高到嚇人,只有鉅額交易願意承受。一般人根本不願意付錢使用,即使手機能跑節點也沒什麼意義。

反過來說,區塊大小 10GB 的比特幣,或 gas limit 10T 的以太坊,若要維持本來的區塊時間,勢必會導致嚴重的中心化,變成類似 POA 那種稱不上區塊鏈的偽物,或 EOS 那種由超級節點構成的容易被壟斷操縱的系統。

手續費模型

第一價格拍賣

目前的比特幣和以太坊採用第一價格拍賣(first price auction),發送者可以自行決定願意付的手續費,如果交易成功被打包,手續費將從發送者帳戶扣除。由於協議限制礦工只能打包固定量的交易,因此礦工會優先處理手續費高的交易。然而,這樣的模型對使用者並不直覺,他們心裡或許有一個價格,但是為了降低成本,他們會想要出一個剛好能被打包,但不要太高的手續費,也就造成一種不必要的煩惱:猜測最低手續費。

第二價格拍賣

一種改善的方法是採取第二價格拍賣(second price auction),對於所有被打包的交易,不收取他們最開始出的手續費,而是以被打包的交易中手續費最低者的出價為準,對所有人收一樣的錢。這樣的好處是使用者可以盡情出價,他只要出一個「手續費比這個價格高我就寧願不要交易」的價格就好。然而,這樣的模型卻存在明顯的漏洞。如圖左所示,礦工的手續費是底下那個灰色長方形的面積,也就是 交易筆數×最低成交價 的金額。礦工可以透過假造一些高價交易的方式,來提高長方形的面積,使得圖右中的面積扣掉深色長方形(手續費會回到礦工身上)之後還比圖左的大。礦工可以操縱價格,還會讓系統效率降低。

手續費價格自動化

為了解決第二價格拍賣中礦工過大的權利,一個由協議自動決定價格的方式被提出。協議決定價格的概念類似於挖礦難度,是根據先前的狀態(previous state)自動決定下一個狀態的機制,因為它是寫死在系統協議裡的,任何人都能檢驗數值是否合法,礦工不容易操縱,或者應該說,礦工比較沒有經濟上的理由操縱,因為不合法的高收益會被其他節點否認,刻意製造低收益則對自己不利。

目前提出的公式是,將一個區塊的 gas 使用量錨定在 gas limit 的 50%,當前一區塊打包的交易高於 50% 就漲價,低於 50% 就降價。透過以價制量,而不是硬上限的方式,讓區塊的長期趨勢維持在半滿的狀態。

區塊鏈的儲存空間定價

目前,以太坊的儲存空間也是透過支付 gas 購買的,由於這些購買的空間,在使用者不主動釋放的情況下,會永久性地佔用節點電腦的硬碟,甚至珍貴的記憶體空間,需要用超級高的價格來避免系統被垃圾資料壓垮。現在,做一次加法需要支付 2 gas,宣告一個變數卻要支付 20000 gas,價差高達一萬倍!不過,即使已經用超高價避免垃圾攻擊,如果考慮到系統的長遠發展,似乎再高的收費也無法緩解空間無限膨脹的恐懼。

一個潛在的替代方案是:不再提供永久性的儲存空間,改以「租賃」的方式讓使用者存放資料,這樣,收費想必可以便宜很多。這乍看是個很合理的做法,就像使用任何的雲端主機一樣,你如果要一直用就要持續付錢,使用者便會自覺清掉用不掉的垃圾檔案。但是在以太坊智慧合約的情境,非永久的儲存空間會為 DApp 開發者帶來沈重的負擔。

當合約簽訂後,合作關係進展到一半時,當初記載款項的變數居然被釋放了,這麼可怕的事情是絕對不允許的,但為了避免這個情況,又需要多更多的工程和條件控制來確保儲存空間活到它不再被需要。而如果,你的系統是供不特定人使用,比方說 ERC20 Token,還要擔心湧入的人潮會自動佔用更多空間,加速租金被耗盡。開發 DApp 已經不容易,還要規劃能一邊運作一邊維持租金的收費模式,簡直是工程師的天大噩夢。

影片 24:51

一個稍微減輕工程師恐懼的方法是:不要在租金耗盡的時候徹底刪除資料,而是讓它「睡著」。把數值從 state trie 中暫時移除,讓合約不能直接存取數值,但如果任何使用者想要/願意,他可以提供錢和該數值過去存在的證明,重新「喚醒」這個變數,讓合約繼續被使用。

不過,這樣的模式仍然比過去買斷制的空間使用權來得麻煩不少,在實裝前可能還需要很大幅度的調整,或者永遠不會有上線的一天。

如果想知道更深入的分析,可以看這篇論文:
https://github.com/ethereum/research/blob/master/papers/pricing/ethpricing.pdf


https://fb.me/artistichorn

ETH:
pingchen.eth
0xc1f9bb72216e5ecdc97e248f65e14df1fe46600a
BTC:
1HUHtZ2mTLZgJai35msRfj6jupULP2kc6N

CryptoCow

區塊牛-區塊鏈技術共筆平台

Thanks to Chih-Cheng Liang and Chang-Wu Chen

Ping Chen

Written by

Ping Chen

Good morning, my friend.

CryptoCow

CryptoCow

區塊牛-區塊鏈技術共筆平台

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade