【數學】利用高中數學分析平方募資法(Quadratic Funding)

2023/01/17閱讀時間約 11 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。
這幾天剛好看到 V 神介紹有關平方支付的文章,他基於平方投票法的概念,提出了平方募資(Quadratic Funding)的概念,冬冬發現有平方募資法有些部分可以用高中數學就可以解釋了,因此想針對這個內容進行一些探討。
前面會簡單的介紹各種概念,比較沒有數學的內容,相關的數學證明會放在最後,有興趣的朋友可以看看。
在介紹平方募資法之前,先介紹平方投票法。

平方投票法(Quadratic Voting)

我們常見的投票法是一人一票,這樣的投票法會有一些問題,以下先介紹一人一票的問題。

一人一票(1p1v)

一人一票為就像是學校選幹部的情況,誰的票數多誰就當選,雖然這樣的投票方式簡單直觀,但是這樣的投票方式會有一些缺點,我們舉例說明如下:
  1. 例如班上有一半的人投了廢票,最後票選出來的結果,可能不見得可以做為班上大多數人的意見,也就是說,這樣情況選出來的結果,不一定可以做為這群人的代表性的意見。
  2. 雖然民主國家是以一人一票為主,但是在分配官方資源或補助時,一人一票的機制對於一些社會弱勢或少數人的權益,就容易被淡化掉。
  3. 在比較專業的議題上,每個人的深入程度不同,我們的一票與專家學者的一票卻是等值的,這樣的情況是否合理?
基於以上的幾個問題,那麼有沒有另一種機制可以放大專業相關人士、或是關心相關議題人士的影響力(票數)呢?

一元一票(1d1v)

一元一票的概念在於:如果你想要有更多的影響力(票數),你就要為此付出更多的成本(這裡的成本可能是金錢、時數、貢獻、點數等,為了方便起見,以下用金錢做解釋)。
一元一票顧名思義就是每一塊錢可以投一票,反過來說,如果你想投 100 票,就要付出 100 元。
在這樣的情況下,雖然可以放大一些貢獻較多的人之影響力,但是,如果在真實社會的金錢運作下,就會有錢人或是資本直接影響整個社會的決定。
因此,有沒有什麼方法可以讓每一塊錢的影響力(所代表票數)減少一些呢?反過來說,當我們要投越多票時,付出的成本也要隨之提升。

平方投票法(Quadratic Voting)

「一元一票」總成本與票數的關係為線性關係,而「平方投票法」將總成本與票數變為平方的關係。簡單來說,就是你想要投 n 票數與所付出總成本就是 n²,如下圖所示。
一元一票與平方投票的總花費
這樣的投票法當票數很多時,花費的成本會快速地變多,我們以 1 票、2 票、99 票與 100 票為例:
  • 「一元一票」的情況下:
    1 票要付 1 元,2 票要付 2 元,增加了 1 元;
    99 票要付 99 元,100 票要付 100 元,還是增加 1 元。
  • 「平方投票」的情況下:
    1 票要付 1² 元,2 票要付 2² 元,增加了 3 元;
    99 票要付 99² 元,100 票要付 100² 元,增加了 100²−99²=199 元。
也就是說,在平方投票的情況下,當我們想要發揮更大的影響力時,所需要的總成本就會以平方的速度快速地增加,以避免有錢人進行龐大的資金運作。
反過來說,如果總共付出了 n 元,那麼我們的影響力(或票數)就會只有根號 n (即√n)而已,例如如果總共付出了 40000 元,我們的票數就是 √40000=200 票。

平方募資法(Quadratic Funding

在 2018 年,以太坊創辦人 Vitalik Buterin 與 Zoë Hitzig 和 Glen Weyl 基於平方投票的方式,提出「平方募資法」這樣資金分配概念。
這裡的資金分配可能是政府提供給公共建設的預算、或是慈善機構的捐款等。而需要被捐助的專案可能有很多種,每一種對於大家的受益都不一樣,像這樣情況下,資金要怎麼進行分配呢?以下分成三個步驟:

步驟一:資金的分類

首先,將資金分成「官方補助」與「個人捐款」。
  • 官方補助:官方(例如政府、基金會等)有一筆錢要捐助給許多的專案。
  • 個人捐款:以每個人的名義作為捐款,對於某一個專案來說,有人捐款 n 元,代表他對於這個專案投了 √n 張票,也代表他願意支付這麼多的成本去發揮其影響力。

步驟二:從個人捐款計算其影響力票數

接著,把所有個人資金捐款對應的影響力轉換成「票數」進行相加,例如下圖專案甲中,A, B, C, D 四人分別捐助了 1, 1, 4, 9 元,總共 15 元,其票數為 1, 1, 2, 3 票,總計有 7 票。
兩個專案個人捐助的總成本相同、但因為人數不同而造成影響力票數的不同
而上圖的專案乙中,A, B, C, D, E, F 六人分別捐助了 1, 1, 1, 4, 4, 4 元,總共也是 15 元,但是其票數為 1, 1, 1, 2, 2, 2 票,總計有 9 票。
也就是說,在兩個專案個人資金捐助加總皆相同的情況下(都是15元),專案乙吸引了比較多人的關注,或是說專案乙可能會造就比較多人的福利。
如此一來,將官方或政府的資金分配比較多給專案乙也是個合理的設計。

步驟三:依據影響力票數分配官方補助

在 V 神的文章中所設計的資金分配公式為
每個專案獲得的總金額=步驟二計算出來的影響力票數的平方。
我們以上述兩個專案為例說明如下:
  1. 專案甲獲得的總金額就是 7²=49 元,其中 15 元來自「個人捐款」,也就是說,「官方補助」的部分為 49-15=34 元。
  2. 專案乙獲得的總金額就是 9²=81 元,其中 15 元來自「個人捐款」,也就是說,「官方補助」的部分為 81-15=66 元。
從以上的例子發現,在平方募資法的設計下,同樣兩個專案都是獲取個人捐款 15 元,但是專案乙可以獲得較多的官方補助。
上述的甲乙兩專案的平方募資法也可以用以下的兩個圖來說明。
其中專案甲圖中的 1, 1, 4, 9 就是 4 個人的個人捐款共 15 元,其對應的票數就是各自開根號,在幾何表示上就是正方形的邊長 1, 1, 2, 3,將這四個邊長相加後得到邊長為 7 的正方形,最後 7²=49 就是專案甲獲得的總金額,其中 15 元(白色部分)來自「個人捐款」,而「官方補助」的部分就是黃色的面積 49-15=34 元。
而專案乙圖中的 1, 1, 1, 4, 4, 4 就是 6 個人的個人捐款共 15 元,其對應的票數就是各自開根號,在幾何表示上就是正方形的邊長 1, 1, 1, 2, 2, 2,將這四個邊長相加後得到邊長為 9 的正方形,最後 9²=81 就是專案乙獲得的總金額,其中 15 元來自「個人捐款」,而「官方補助」的部分就是黃色的面積 81-15=66 元。

平方募資法可能產生的問題

這麼一來,就會去思考一件事:在同樣 15 元的個人捐款下,怎麼樣的情況會是最少的官方補助、而又要怎麼樣的情況才能拿到最多的官方補助呢?
觀察以上的兩張圖發現:白色正方形(個人捐款的人數)越多的情況下,整個大正方形的面積會越大,而黃色面積(官方補助)也會越大。
因此,在總金額相同都是 15 元的設定下,我們就可以討論兩種最極致的情況:
  1. 最少人數的個人捐款:也就是只有1個人捐款,這個人捐了 15 元,其影響力票數為 √15;所以專案獲得的總金額就是 (√15)²=15 元,其中 15 元來自「個人捐款」,也就是說,「官方補助」的部分為 15-15=0 元,如下圖左所示。
  2. 最多人數的個人捐款:如果限定每個人至少要捐 1 元的情況下,最多就是 15 人,其影響力票數為 1+1+⋯+1=15;所以專案獲得的總金額就是 15²=225 元,其中 15 元來自「個人捐款」,也就是說,「官方補助」的部分為 225-15=210 元,如下圖右所示。
平方募資法獲得最少金額與最多金額的情況
事實上,在個人捐款總金額 T 固定的情況下,如果每個人至少捐 1 元,整個專案可獲得的補助會介在 T 到 T² 之間(證明請見附錄)。
除此之外,還有其他更深入的數學探討,有興趣的人可以看 V 神的論文
其實,從上圖可以發現,如果有心人想操作並放大專案的補助,方法就是找很多的人頭來進行捐款(區塊鏈上稱做女巫攻擊),此時,如果官方想要避免這樣的問題,可以從以下兩點著手:
  1. 進行每個人的身分驗證
  2. 拉高每個人捐款金額的門檻
【延伸閱讀】女巫攻擊可以參見
👉【名詞解釋】我不是故意要做女巫攻擊的⋯🥲
在應用方面,目前在區塊鏈上,已經有利用平方募資法進行捐款的平台主要有 GITCOINClr.fund
  • GITCOIN 其中一項服務就是以太坊上的眾籌與捐助的平台,以太坊上的項目方或開法者可以跟以太坊基金會進行申請,並利用平方募資法進行個人捐款的眾籌與項目資金的分配,更多詳情請見Gitcoin:以太坊生態的「軍火庫」
  • Clr.fund(讀作Clear Fund)也是將資金分配給對以太坊有貢獻的公共協議,略有差異的部分是它會利用 BrightID 作為個人捐款的身分認證,以避免上述提到的女巫攻擊,此外,捐款的金額直接藉由智能合約來操作,並利用 MACI 的投票系統來防止共謀與買票,更多詳情請見CLRFund 簡介
👉如果想要隨時查看新文章,歡迎直接追蹤粉絲專頁
🚀LinkTree有盤點幣圈的工具,歡迎
收藏
延伸閱讀
👉
【數學】用高中數學算出比特幣BTC總量

【附錄】利用高中數學分析平方募資法

在個人捐款總金額 T 固定的情況下,如果每個人至少捐 1 元,整個專案可獲得的補助會介在 T 到 T² 之間。
【證明】

(1) 專案可獲得的補助最大值為T²

設每個人的捐款金額為 xᵢ,共有 n 人捐款(n為正整數),也就是說,
由募資平方法可得其影響力票數為
且專案獲得的總金額為
利用柯西不等式可得
又因為每個人最少捐 1 元,即 1≤n≤T,所以得到專案可獲得的補助最大值為

(2) 專案可獲得的補助最小值為T

利用乘法公式中的 n 項完全平方和公式,將專案補助展開可得
又因為個人捐款總金額為T,且 xᵢ≥0,所以由上式可得
有興趣的人可以自行推導等式在甚麼情況下成立哦。
想一想
如果每個人的捐款下限改成 p,以上的範圍會怎麼改變呢?
如果沒有限制每個人的捐款下限,會造成什麼情況呢?
加密貨幣屬於高風險的投資,大家一定要做好自己的研究與風險管控,而且加密貨幣的資訊更新速度快、波動幅度大,如果想進幣圈的話,就要有保持高速學習的心理準備,所以如果你真的不懂的話,就千萬不要碰!

參考資料

冬冬 - 陪你整理區塊鏈
冬冬 - 陪你整理區塊鏈
2005年起為高中數學老師,龍騰出版社高中數學課本作者,曾任 None Capital 研究員,這裡分享我打包整理好的資訊與筆記。加密貨幣是高風險投資,一定要做好研究與風控,區塊鏈資訊更新快,要有大量學習的準備,如果沒搞懂就千萬不要碰!別因為好奇急著拿錢進來,就像下水前先要有裝備,才不會下水就溺水了
留言0
查看全部
發表第一個留言支持創作者!