最強大的工具,是那種能用來創造其他工具的工具。它向所有人開放,你完全不知道誰會拿它做出什麼意想不到的事情。今天推薦的這篇文章就是一個例子。如果我們能更方便的爲任意組織或者行動籌集資金,下一步是什麼?

原文標題:《爲 996 設計一個虛擬貨幣捐款模型》
文章來源:公衆號 禪與宇宙維修藝術
作者:Jade
鏈聞經公衆號 禪與宇宙維修藝術授權轉載

爲什麼要做這樣一個模型

996.ICU 代表着一類新型社會組織 —— 自發,開源,匿名,去中心,臨時爲某一共同目標迅速組成的協作組織。

這樣勢不可擋的線上組織雖然利用 GitHub,Slack 等平臺工具迅速取得了很多進展,獲得了巨大的影響力,但依然有它的軟肋。

這個軟肋就是資金。一旦涉及到資金,問題就變得複雜。錢讓這個簡單的組織變得不純粹,但沒有錢,很多事情都只能是媒體宣傳或紙上談兵,難以解決真實的問題。說句實話,現在哪個普通員工按照勞動法跟 996 的公司打個官司,都不一定出得起訴訟費,更不要說還搭上之後找不到工作的隱性成本。所以,一定的經濟激勵是合理的,尤其對於鼓勵先行者。

就在前幾天,996 原本的項目發起人做了一件備受爭議的事情 —— 他刪除了 read.me 中所有貢獻者的名字,然後放上了私人賬號的捐款鏈接。後來,撤下了鏈接,但仍希望以郵箱等方式私下接受捐款。

腦洞:用 Bancor 爲 996 項目打造一個公平安全的捐款模型

爲什麼有這麼多反對的聲音呢? 因爲這個 GitHub 上發起的項目是完全透明,扁平,開源的,但捐款涉及到真金白銀,就註定要與實體賬號相關聯。現實世界留給我們的選擇十分有限:

  • 1、成立海外 NGO 組織,並且嚴格遵守 NGO 的收款,審計規定,定期公開財務數據;
  • 2、創始人的私人賬號,比如 paypal, patron, 海外銀行賬號;
  • 3、虛擬貨幣地址,私鑰掌握在籌款者的手中。

針對 996 這樣匿名,時效性又很重要的「臨時組織」,NGO 的成本是極高的,而且需要的時間太長,根本跟不上媒體關注和主動捐款意願的速度。更不要提在美國,加拿大等 NGO 體系成熟的地區以外的地方,成立 NGO 這件事本身需要強大的 ZF 關係,民間發起的可能性幾乎爲 0。

對於方法 2,風險有兩個,一個是創始人本身的信用風險。如果財務數據不夠透明,很容易引起社區內部的不信任甚至互撕,因爲開源項目的貢獻是大家的,而錢只打給了一個人。第二是接受者必須一定程度地暴露自己的身份 。如果官方想查到你是誰,那是輕而易舉的,人肉搜索也不在話下。

方法 3 的好處是可以保證捐款人和被捐款人的完全匿名,而且財務數據完全透明,大家可以看到從開始募集到的金額以及已經花費的數目和去處。但是,因爲私鑰必須掌握在一個特定的人手中,所以資產託管還是中心化的。收到捐款,決定捐款去向,都是中心化決定的,就算引入投票機制也無法避免買票,作假等行爲,做不到完全公平透明。

那麼問題來了,有沒有可能在相對更好的方法 3 的基礎上,通過改進經濟機制,設計出更合理的捐款模型呢?

我們的目標是:

  • 1、財務公開透明;
  • 2、資金安全;
  • 3、捐款用途儘量可追蹤,民主化;
  • 4、支持小額,分散的捐款;
  • 5、支持匿名收款和捐款。

在無法提出完美解決方案的階段下,我們可以無限接近上述目標,並儘量減小,而不是消除中心化的風險。

受到許多虛擬貨幣和區塊鏈領域的思想啓發,我們設計了一個簡單的經濟模型,並儘量做到技術上的可實現。
https://github.com/yujadehou/996funding

最簡單的設計

利用 bancor 協議,我們可以輕鬆實現一個可自由兌換的捐款系統。對於 bancor 模型和實現方式,我們接下來具體解釋。

先來抽象化一下模型

(1)發行代幣 :在以太坊上發行一個新的 ERC20 代幣,例如叫 996.token;
(2)生成賬戶 :利用 Bancor 協議生成一個連接器( connector );
(3)確定數量 :確定 bancor 算法的重要參數,存入一定量的 ETH 進入儲備金池( connector balance ),存入一定量的
996.token 供給( supply )。

腦洞:用 Bancor 爲 996 項目打造一個公平安全的捐款模型

Bancor 協議可以實現更多複雜的數學設計及應用場景。在這裏,我們設定 CW=100%=1,以保證捐款是一個沒有投機的行爲。那麼存入儲備金池的 ETH,實際上就是在給 996.token 定價。

但請注意,這個定價是沒有實際意義的,因爲 CW=1,在連接器沒有變動的情況下,價格永遠維持不變,只是一個純粹的數字。連接器變化的情況,見下文討論,但只會讓定價變低,不會變高。

例如,我們存入連接器中的 ETH 是 100 個,而 996.token 有 100 萬,CW 爲 1,那麼代幣價格就爲 price = 100/1000000 = 0.0001 ETH。

爲什麼設定 CW=1 呢?因爲只有在 CW=1 的情況下,隨着捐款數量( supply )的變化,token 的價格纔會保持不變。

腦洞:用 Bancor 爲 996 項目打造一個公平安全的捐款模型

(4)接受捐款 :捐款者直接把 ETH 存入連接器中,並以上面參數設定的比例兌換處 996 的 token。現在,與傳統的捐款模型最大的區別來了:

你隨時可以通過兌換 token 取回部分捐款。由於連接器是一個隨時自由兌換的交易對手,你可以在任何時候用自己手中的 token 以原價格或更低的價格兌換回 ETH。這是一個比傳統捐款多出的選擇。

(5)取走捐款 :如果管理者取走捐款是不定期,分批的,那麼每一次取走都會影響 token 的定價使其被稀釋。但由於我們的場景是捐款而不是投資,價格對捐款者的影響很小。取走捐款的方式有兩種:

1、直接部分取出連接器(也就是賬戶)中的 ETH;
2、增發 token 放入連接器,再用 token 自由兌換 ETH 並取出。

所以,要麼儲備金 ETH 變少,要麼 token 增多並被兌換。他們的影響是相同的:

1、管理者取出了部分資金;
2、996.token 的價格被稀釋

例如,取走 20% 的 ETH 資金,那麼 token 的價格也會被稀釋到 80%。

也就是說,token 的定價與最開始相比,只可能越來越低。這個速度會被用款速度決定,而不受捐款速度影響。只要資金池沒有被全部取出,捐款者就還是可以取回部分捐款,但可能是以被稀釋的價格。

至此,這個連接器,也是一個以太坊上的公鑰地址,也就成了「捐款賬戶」。所有的捐款時間和來源,支出時間和去向都會透明地記錄在這個賬簿上。只要資金還沒有被管理者取走,捐款者也可以在任何時候追加或部分取回捐款。例如,在看到短時間內捐款迅速積累,覺得社區資金已經充足的時候,可以拿回早期捐款。

這個模型的好處是什麼呢?

(1) 適合小額,分散的捐款

(2) 可以始終保持匿名

(3)捐款者對管理者的監督更強

如果管理者在短時間內拿走所有的錢甚至跑路,那後來的捐款者會看到,對管理者的信任降低,停止捐款。而如果管理者以某種程度合理,公開地運用捐款,捐款者也可以在任何時候追加或部分取回捐款。例如,在看到短時間內捐款迅速積累,覺得社區資金已經充足的時候,可以拿回早期捐款。

(4) 參與治理

現在的模型中,996.token 本身是沒有實際作用的,更像一個「收據」。但是,如果引入 token 的社區治理,996.token 就可以用來投票。例如核心社區成員手中的 token 有 80%,捐款者 20%,可以聯合起來對重大決議,或用款項目進行投票,超過 51% 才能撥款。

(5)便於分叉

由於開源項目是開放式貢獻的,發起人並不代表一定會一直是社區核心成員,也不一定是募資的發起人和管理人。利用虛擬貨幣模型的優點是可以分叉。一旦社區成員或捐款者對於資金使用等問題有質疑,不能解決的,可以直接分叉,開啓一個新的捐款地址。只要你有能力讓別人相信你,社區甚至可以有多個「中心」,規避了單一的黑天鵝風險。

更具體的探討

上述是最簡單的模型,幾乎沒有任何數學和技術上的挑戰。其他更復雜的功能或更具體的討論呢?

1 是否能引入獎勵機制?

在這裏,爲了保證項目的「純潔性」,我們從技術設計上規避了投機的可能。但實際上由於 bancor 協議本身是一個爲項目募資的通用模型,所以是可能實現價格發現機制的。

當 CW<100% 的時候,連接器的定價變成了槓桿機制,隨着捐款( supply )的增多,價格會越來越高。而如果更多人賣出,supply 下降,價格會再次回落。

舉個例子,假設 996 目前有一個特殊的項目需要捐款。項目發起人 A,社區參與者 B,捐款者 C。A 自己在最早期投入 1 個 ETH,獲得 100 個 996.token。C1 投入 1 ETH 獲得 80 個 996.token。A 組織了 10 位 B 開始了這項活動,每位志願者分得 5 個 token,B 總共分得 50 個 token。C2 繼續爲活動贊助了 3 ETH 獲得 120 個 token。此時,A 可以兌現手中剩餘的 token 換回最開始投入的 1 ETH,B 也可以選擇兌換。

腦洞:用 Bancor 爲 996 項目打造一個公平安全的捐款模型

曲線也可以是這樣的:

腦洞:用 Bancor 爲 996 項目打造一個公平安全的捐款模型

右圖的二級函數既能激勵早期參與者和捐款者,又能避免後來者的投機心理。

這種更復雜的設計的好處是可以讓整個社區不單純依賴外部捐款,而變成了自組織,早期貢獻者和捐款者都得到了激勵。壞處是複雜,而且可能引入動機不純的投機行爲,污染整個社區。

鑑於 996 是一個本身就不成熟的實驗性組織, 目前不建議引入這種在行爲動機,經濟學設計,規則設計都過於複雜的機制 ,但開開腦洞總是好的。詳見《BES 內部深度 —— 什麼是聯合曲線模型》。

2 如何避免大公司通過錢來控制組織?

剛纔說到,token 可以用來投票,作爲線上社區治理的工具。那如果大公司,比如在這次事件中備受爭議的 BAT,通過匿名方式購買大量 token,影響投票結果呢?

我認爲這個是可以通過設計或分叉來解決的。從設計上,token 不僅可以通過兌換獲得,也可以中心化分配到核心貢獻者手上。前提是透明,有預期地數量分配,並不隨意修改規則。

從分叉上,如果大公司出於邪惡目的壟斷了捐款和票池,那麼社區完全可以分叉出新的投票地址和 bancor 曲線。因爲所有信息都是對稱的,公平靠整個社區的監督和投票來維持。

3 能否採用比特幣或其他貨幣?

由於比特幣沒有智能合約,目前上述 bancor 協議只能在 ETH 或 EOS 上實現,並且已經有相對成熟的基礎設施。如果對協議本身不滿意,也可以自己分叉一個新的 bancor,反正代碼很簡單。

但如果社區想接受比特幣捐款,或者希望把接收到的 ETH 先兌換成價值更穩定的代幣,可以採用一些更迂迴的方法,或直接使用 USDT 等穩定幣。雖然最常見的匿名捐款目前還是比特幣,但社區成員也可以通過二次兌換等折中的方法最後連接到我們目前的智能合約捐款模型。

4 如何解決 private key 的私有問題?

目前解決不了。剛纔提到連接器中取走捐款,必須由掌握私鑰的人進行,而私鑰( private key )只能掌握在一個人手裏。這就註定是中心化的。

但是,我們的目的是爲了和現有的前文提到的 1,2,3 種選擇相比,而不是一個完美的模型。雖然私鑰是中心化的,但整個過程已經比傳統的捐款更透明,更受監督,也更容易分叉。

不過,在機制上確實可以更有趣地幫助解決這個問題。例如,如果 996 社區本來就不希望成爲一個長期運營的 NGO 組織,而只是在有明確目的的時候需要捐款,那我們可以把上述整個模型作爲單個預算項目發起。

假如 A 是一個在某地起訴公司的員工,希望募集他的律師費;B 是工程師,希望把 996 的證據付費存儲在各個雲上,或自建服務器;C 是碼農,希望組織團隊把我們文章的經濟模型做成可以使用的產品。

那麼他們可以分別發起捐款申請,而每個申請是一個單獨的 bancor 曲線和公鑰地址,私鑰在發起人手中。他們不僅可以設定適合自己的曲線參數,還能設定捐款上限,保證小型,分散,安全。社區管理者只是幫助審覈預算的真實性,和信用背書,號召捐款。捐款者可以選擇支持他們認爲有意義的用途,更多地參與社區治理。

這樣,整個社區就更像一個自治組織( DAO ),而不是依賴外部捐款的 NGO。

還能更有想象力嗎

好了,現在我們的意圖已經十分明顯: 建立一個適合於所有非營利組織的虛擬貨幣捐款模型 ,而非只適用於 996。

資金並不是他們唯一的困境,但這個問題足夠通用,足夠普遍。另外一方面,虛擬貨幣發展到今天,最大的問題依然是沒有應用場景。已經有無數的實驗和產品發生在投資,投機,交易領域,但就算包括比特幣在內,虛擬貨幣也沒有證明自己給世界帶來什麼實在的價值。或者說,啓發大於實現。

有朋友提醒我,996,NGO,區塊鏈是幾個毫不相干的圈子,之間並不互相理解,難以產生什麼交集。但我覺得這不也正是開源世界的魅力,萬一哪天有人覺得有趣,就實現了呢。