標籤:

如何讓一種幣更有生命力——一種BCH開發資金募集方案大討論

如何讓一種幣更有生命力——一種BCH開發資金募集方案大討論

來自專欄 區塊鏈資訊

第0章 引言

作者:閃電HSL

最近幾天BCH社區異常激勵地討論著在5月19日的一次在香港開的關於募集BCH開發資金主題會議的事,本文主要想寫明白這個主題會議上到底發生了什麼,尤其是後面幾天社區的各種誤讀,各位都激動的很,以及我本人對這個會議提案的看法。

第1章 香港BCH開發資金募資方案主題會議

5月19日在香港BCH的愛好者,會議有礦池、節點開發者、錢包開發、愛好者等,規模並不大,我沒數人數,估計20人左右吧。

會議最重要的事是BCH節點開發者姜家志(哥白尼項目的負責人)在會議上做了一個主題演講,演講的內容是闡述一個針對BCH開發的專項專款募資的方案。

演講內容包括下面幾大塊:

1BCH社區的開發現狀,競爭者(ETH、Dash、波場等)的開發現狀。

2為什麼BCH社區應該加大開發的資金投入。

3一個針對BCH開發的專項專款募資方案。

我重點表述第3點。

募資的起點是:有開發者提出資金需求和募資理由,具體方式是使用鏈上一筆多重簽名的交易方式向BCH全網發布,將需求和理由以文字的方式寫進OP_Return欄位,所有人都可以查閱這些內容,是全網公開的;多重簽名的私鑰持有者是所有礦池,有多少礦池就有多少把私鑰,具體如何構造我們不用管。

募資的審核過程是:礦池所有者看到這筆交易後會對OP_Return里的內容,並評估是否願意捐贈。如果願意捐贈,就使用簽名的方式投票同意捐贈,捐贈的比例是按礦池所有者的算力佔全網比例。多重簽名交易廣播成功後進入算力投票。

礦池使用區塊對募資進行投票,一個塊一票,如果全網超過75%的算力都投票同意捐贈,那這個募資需求通過了審核,進入打款階段。塊獎勵轉入募資的管理地址。

比如有一個開發申請100BCH,有75%算力審核通過後,開始打款。一個區塊有12.5BCH的區塊獎勵,募資方案里提方按每個區塊里捐贈0.1BCH,持續1000個區塊。在開始打款的區塊往後延續1000個區塊,挖到區塊的礦池就會打款,沒挖到當然不打款。

打款也可以輔助階段性,比如開發者做到什麼里程碑才轉下一個階段的款,以便建立監督缺席。

以上就是大概的過程,細節可能有不一樣。下面要分析具體的打款實施過程,這是爭議最大的地方。

如果75%的算力投票同意捐贈,但其餘25%算力不同意,怎麼辦?

家志的提議是使用一定的方式來「逼迫」不同意的少數服從捐贈,請注意,家志在表達的過程,多次強調這只是一個潛在的可選擇的方案,是一個拋磚引玉的提議,這是他目前能想到的最可行性策略,希望引出大家更多的更好的方案。

具體的辦法是,因為75%算力同意捐贈,這是多數優勢算力,按照少數服從多數的原則,如果少數算力不執行捐贈,首先捐贈會持續,多數算力依然會執行捐贈,會持續在挖到的區塊里轉出認捐的份額,直到捐贈滿為止。但爭議的地方在這裡,多數算力將會對這些沒有捐贈的區塊進行孤立。因為是多數算力採取統一行動,所以孤立大概率會成功,這時候少數算力就會損失掉挖出的塊。在這種博弈下,少數算力是不會坐視被孤立,會出三種情況,第一是服從捐贈;第二是將算力離開BCH前往BTC挖礦;第三是拉更多的算力過來,反過來壓倒捐助者,這時捐助可能就無法執行了。

所以在實際執行過程中,實際發生的情況大概率來說是不會出現真正有區塊被孤立,博弈會出現穩定的情況。這是一個介於強制和純自願之間的中間地帶的機制。

為了實現這個多數算力對少數不認捐的算力進行孤立的行為,礦池會使用特定的機制來達成統一意見,具體的是一個代理機制,代理這個詞不好理解,我們可以將這個詞理解為一個軟體,軟體能識別礦池之間發現哪一個區塊沒有認捐,並且軟體可以指揮挖礦軟體自動執行孤立不認捐的區塊。

第2章 社區最大的兩個誤解

這幾天社區在大討論這個募資方案,有兩個誤解最好澄清下。

第一個必須要澄清的是:這次募資方案提議並不是要成立一個長期的收款基金會,不是長期的針對BCH每一個區塊要抽固定比例的分成到特定的地址。

這次募資方案是一個專項專款,有人提出資金需求,礦工審核投票,通過則捐贈,通不過則不會出現捐贈。

這個澄清可以避免關於資金腐敗的問題,沒有特定的基金會用來長期管理資金的問題。可以避免討論募資的具體使用方式,因為在捐款之前已經確定了使用方式。也可以避免討論募資額度的問題和誤會BCH挖礦被固定抽稅的問題,額度都是專項討論出來的。

第二要澄清的是「孤立不認捐」的區塊的機制不是一個共識協議級更改。

社區很多人一聽這個方案誤認為要對BCH進行一次共識協議升級,使用一個軟分叉或硬分叉來部署。沒有這回事。上一章講的「代理」軟體不是要針對bitcoin abc這樣的節點軟體進行部署,而是在礦池挖礦軟體上部署。

這個澄清可以避免展開是不是礦工獨裁挾持整個社區的討論。事實上這個募資提案並不是讓礦工擁有改協議的能力,只是讓礦工達成了某種合謀共事。這種「孤立不認捐」的機制只是礦工之間的事,和非礦工沒有什麼關係。

第3章 我認可這次募資方案會議的地方

我認可BCH的發展確實如這次會議所說的,是需要更大規模的募資推動發展的。區塊鏈的發展已經過了極客愛好者主導的階段了,已經步入專業化了。開發難度已經是很難了,不再是業餘和少數人能搞定的事。這個背景下,要做出一個偉大的產品,是需要投入更多的資金。但具體金額需要多大,則需要更專業的評估了,我不知道。

不但是開發需要更大的投入,社區的推廣,和應用層的開發也需要更多的投入。

我也認同礦工作為協議層最大的受益者主動站出來捐贈資金推動開發是合理的。BCH整個經濟生態,礦工肯定不是最掙錢的,但區塊獎勵確實是只有礦工挖到的,礦工是底層協議最大的受益者。針對推動開發的資金,礦工有必要牽頭捐贈。

但這裡先補充一點,我認為除了協議開發層面,其他如推廣和應用項目開發等,並不能把這個捐款的冤大頭也按到礦工頭上。咱們有一說一,不能看誰掙錢就咬誰一口,我主張資本主義,不主張劫富濟貧。

第三我認同這個募資方案在專項專款透明度上的創舉。慈善最大的敵人是腐敗,腐敗的最大敵人可能是透明。這次會議將募資的需求方、原由、金額、使用策略;捐贈者、捐贈金額、捐贈時間,等信息完全公開寫入BCH區塊鏈的試,完全透明、並且不可篡改,而且任何第三方都可以針對這個款項和募資項目發起公開透明化的評論,這對慈善來說是一個非常大的進步。

第4章 我認為這個募資方案存在的最大問題

我不認同這種在礦池之間部署一個「代理」來孤立掉不認捐的小算力區塊的設定。這會導致下面的問題。

BCH網路是一個P2P網路,節點可分為挖礦節點和非挖礦節點。現在挖礦節點和非挖礦節點都追隨簡單的最長鏈為有效鏈規則,只有區塊處於最長鏈就是有效區塊,不處在最長鏈的區塊就是無效區塊。

目前網路挖礦節點和非挖礦節點對最長鏈最大的分歧在於孤塊,如果全網在極短的時間內同時由兩個獨立的礦池分別在同一高度上挖出區塊,就一定會出現其中一個是孤塊,另一個才是有效塊。這種情況下,哪個區塊優先廣播到更多的算力節點,獲得超過51%的算力的投票,就成為了有效塊,鏈的最新高度就會上升到這個塊,而另一個塊則成為孤立塊。

這種孤塊制度在非挖礦節點上也是可以在「秒級」時間偵查到的,所有的非挖礦節點都是和礦池節點一樣,會先後收到這兩個相競爭的區塊,也都可以預見全網將會出現一個孤塊。所以非挖礦節點可以和挖礦節點同步知道在接下來的最新高度會是哪一個區塊。這種設定下,全網所有節點並不會怕孤塊的出現會傷害安全性。這兩句話有點難理解,我舉例說明。

假設現在全網在同一高度上挖出了兩個區塊,我們稱為A和B兩個區塊,其中必有一個是孤塊。如果有一筆交易tx1被打包進A區塊,而沒有被打包進B區塊。這種情況下,如果非挖礦節點1優先收到了A區塊,並且將區塊鏈高度更新到A區塊,則在這個節點1來看tx1已經獲得了1個確認。但非挖礦節點2優先收到了B區塊,並且將區塊鏈高度更新到B區塊,則在這個節點2來看tx1還是零確認。這時候區塊鏈處於臨時分裂狀態,但這種衝突可以在秒級時間內就可以消解,因為幾秒時間後,節點1和節點2都會收到另一個相衝突的區塊,就可以重新評估最新高度和tx1的安全性了。而這種競爭性一定會在下一個區塊決出勝負。而對挖礦節點來說,也是一樣的,礦池公司應該會在全球部署更多的節點來偵探這種相競爭的區塊A和B,但本質上還是和非挖礦節點處於類似的地位,只是有微弱的優勢。

但如果由本次募資方案中的「孤立不認捐的區塊」的策略,允許礦池間存在一個聯盟,可以聯盟可以採取主動孤立掉聯盟外的區塊政策。在這樣的背景設定下,非挖礦節點是無法知道這個挖礦聯盟的政策的,非挖礦節點是無法識別是否存在收到的區塊是否會被這個聯盟孤立掉,這樣的設定會讓非挖礦節點收到最新區塊後無法做出和礦池相同的安全性評估,非挖礦節點只有等到下一個區塊時才能發現上一個區塊是否被孤立。這一段句話也不好理解,我舉例如下。

現在有一個礦池聯盟,我們取名為捐贈者聯盟,持有75%的算力;其他25%算力構成拒絕捐贈者聯盟。前者挖的區塊我們稱為A;後者挖的礦稱為B。現在全網出了一個B1塊,全網所有的節點,包括非挖礦節點都會收到B塊,非挖礦節點和拒絕捐贈者聯盟的礦池節點都將這個B1塊列為最新高度,但捐贈者聯盟礦池則會拒絕B塊。這時候全網處於臨時分裂狀態,如果下一個區塊為A1塊,全網都會收到這個A1塊。非挖礦節點和拒絕捐贈者聯盟節點才發現,我操,我可能收到一個孤塊,現在的A塊和10分鐘前那個B塊,形成了競爭關係,有一個必然是孤塊。而誰勝出,還需要在下一個區塊出現,如果在A1塊之後,捐贈者聯盟又挖了一個塊A2塊,則非挖礦節點和拒絕捐贈者聯盟節點會將B1塊拋棄,認定A2塊為最新高度。但如何A1塊之後,是拒絕捐贈者聯盟挖出一個塊B2塊,非挖礦節點和拒絕捐贈聯盟會將最新高度認定為B2塊,這種情況下,競爭還將繼續。直到A塊爆出的數量多於B塊。因為A塊的算力更大,有75%的算力優勢,會在第二個A2塊大概率決出勝負。

這種聯盟有許可權孤立掉別人的區塊的設定會讓非挖礦節點和礦池節點處在不同的對最新區塊高度的共識上,非挖礦節點就需要更多的確認數才能保證自己的高度是和礦池節點處在相同的共識上。

我認為這是不合理的,這會讓非挖礦節點面臨潛在的少確認數風險。現在1確認是極端安全的,甚至零確認都是安全的。但如果有這種孤立政策後,1確認的安全性就大大降低了,零確認基本沒戲,需要3確認才能達到之前1確認的安全等級。

至於這個募資方案關於自由、權力、義務,這些的爭議,我認為永遠都不會有答案的,這是阿貓阿狗都有自己自圓其說的說法,討論這些太虛無縹緲了。

第5章 我認為這個方案值得修改完善的地方

第一應該補充的是限定礦工捐贈資金的使用範圍,應該限定在協議層的開發。

我的理由是礦是協議層最大的受益者,加上協議層開發也必須和礦工配合運行,也就是礦工的理念是可以影響協議開發的,那礦工在協議層的進化上就應該承擔更多的義務。

但著如BCH推廣,搞meetup,應用層的開發,這些就不是礦工受益最大了,這應該是交易所或其他生態節點才是最大的受益方。像這些活動資金需求,就另找出路吧。礦工也不是冤大頭。讓礦工的捐贈集中在協議層開發,總體出資不會變成無底洞,也就不需要想各種催捐招了。礦工也別剝奪別的經濟節點生態做慈善的機會哈。

第二是去掉「孤立不認捐區塊」的環節,換成純粹的自動捐款的設定,加上透明、榮耀和社區輿論壓力輔助推動更大的捐款意願,再配合上述第一條,就夠了。還要啥自行車啊。

就目前的現狀來說,排名前幾的大礦池都願意捐贈,有產者多出點,換來更多的榮耀和更多的話語權。那些小礦池不捐款,不想要這種榮耀,就算了。維持一個生態的多樣性也挺重要的,同時有大方的和自私的,才叫多樣性嘛、就維持現狀挺好的。

開發者也努力點,努力向社區解釋下你要幹嗎,努力做出真正牛逼的事,做一個真正牛逼的人,為什麼要捐贈,不要那麼高冷,又不是美女。

第6章 結束語

大家不要激動,我們的目標是星辰大海,土大木。


推薦閱讀:

大天使之劍那麼爛為什麼一直有資金投放廣告?
終於有人把複雜的資金池講明白了!
如何在內地開通香港銀行卡購買港股美股
什麼流水才是銀行認可的有效資金流水?有9個細節千萬注意

TAG:資金 |