Grin:哈利波特的神奇魔法? | 區塊鏈事件點評0110

買賣虛擬貨幣

事件

新年伊始,深冬的大地寒意漸濃,經歷了蕭條時期的區塊鏈行業和通證市場也仍然處於冰封之中。但是,18年末開始,隱私通證Grin成為了區塊鏈社羣久違的熱點話題,得到了市場的廣泛關注。在主網即將上線之際,我們將與大家一起走近Grin,探討它的本質與可能性。

正文

1Grin:理想主義的隱私通證

Grin是近期相對熱門的隱私屬性支付結算通證,致力於成為真正應用於日常交易的電子現金。該專案由社羣團隊開發,部分核心成員匿名,且通證完全透過挖礦產生,在專案方普遍套路深的區塊鏈行業中著實是一股清流,讓大家回想起當年BTC的理想主義色彩。Grin致力於實現BTC最初的目標,迴歸本原,透過隱私性、便利性和適當的通脹曲線為行業提供一種真正適合作為現金使用的資產。

1.1  返璞歸真,隱私性的電子現金

Grin基於MimbleWimble底層協議,具有隱私性的特徵。Grin網路的底層協議MimbleWimble是一種新的加密協議,基於橢圓曲線,為所有輸入和輸出進行建立多重簽名,透過分享“盲因子”進行交易,沒有地址的概念,不會將具體的資訊公開到全網,但保持了可驗證的特性。“MimbleWimble”一詞出自《哈利波特》中的禁言咒語,形象的反映了協議的本質。隱私性是現金的一個固有特點,而BTC等傳統支付結算通證直接在鏈上儲存付款方地址、收款方地址和金額,在很多場景下限制了其“電子現金”功能的發揮。

專注於支付結算,相對非中心化。智慧合約和公鏈是2017年的風口,產生了EOS這樣的頭部專案,ETH也迅速發展,很長一段時間區塊鏈行業都在尋求實現更多的應用場景,甚至分叉自BTC的BCH也在向公鏈方向發展。然而,Grin卻逆潮流而動,選擇做純粹的支付結算型通證。支付結算是區塊鏈最初的功能,也是目前少數經受過驗證的真需求,Grin的定位比較務實。但是,Grin的交易需要雙方進行密碼學上的互動,與BTC等只需付款方發起的模式有較大差異,也不符合人們的使用習慣,有一定的使用者門檻,也限制了一些場景下的使用,如大範圍收款、捐助等。開發團隊表示他們不會限制Grin轉賬的實現方式,並將提供一個工具包,以方便開發者設計新的交換解決方案。同時,Grin網路將刪除大部分交易資料,只保留總量等關鍵資訊,極大的降低了完整節點的體積和執行負擔,解決了BTC和ETH等PoW共識機制通證因完整節點執行者減少而導致的潛在中心化問題,並提供了較高的可擴充套件性。

Grin的火熱,一定程度上是公鏈路線遭遇瓶頸情況下,社羣迴歸本源的探索。ETH引入了智慧合約的概念,將區塊鏈行業從1.0階段引入2.0,應用場景也不再侷限於支付結算,從業者開始在幾乎所有可以想得到的領域進行嘗試。但是,群體性的亢奮過後,公鏈技術至今尚未突破其瓶頸,眾多領域的現實應用也遇到了挫折。經歷了2018年持續的下行週期,一輪潮水已然退去,人們開始重新思考行業的本質與發展,傳統的支付結算領域再次受到關注,ETH、EOS相對BTC的價格一定程度上就是這種轉變的反映。支付結算類通證的回潮成為了2016年開始的Grin專案崛起的契機。

社羣化開發,理想主義色彩濃厚,商業化程度低。Grin的開發由社羣而非企業驅動,未接受任何融資,僅接受捐贈。主網上線前,團隊沒有進行任何的通證分配和預挖礦,也宣告不會主動尋求上交易所,商業化程度較低。這一方面降低了專案方損害社羣和投資者的可能性,另一方面一定程度上也會對Grin的推廣應用造成一定的阻礙。

1.2  線性供應,通脹逐漸降低

Grin通證完全挖礦獲得,每分鐘出一個塊,每個塊有60Grin的區塊獎勵,產量不遞減。Grin是一種使用PoW共識機制的通證,全網平均每秒產出一個Grin,年產量為3153.6萬個,其總量為線性增長的狀態,沒有上限。這種機制與BTC等PoW通證存在的減產機制具有明顯不同,是一種非通縮的經濟模型。核心開發者Michael Cordner “Yeastplume”解釋道,他們這樣設計主要是為了避免早期礦工獲益顯著高於後期礦工,並希望Grin真的能夠成為交易媒介,而非價值儲存或投機的工具。

系統早期具有較高的通脹率,後期會逐漸降低。Grin的增長速度固定,因此係統的通脹率隨總規模的增大而降低。從第二年開始,第N年的通脹率是1/(n-1),這是一個反比例函式,當N足夠大時,通脹率將趨近於0。

這種貨幣政策有利於Grin價值的穩定,可以幫助其更多作為交易媒介被應用。BTC等傳統數字通證普遍具有減產機制,早期產量高,但到後期增量將大幅減少。BTC的產量曲線非連續,到特定區塊高度跳躍式減半,部分硬體可能被淘汰,算力會出現一定波動,BTC的價格週期更是與減產週期息息相關。此外,減產模式有內生的通縮性,會刺激人們將相應通證作為價值儲藏的工具乃至投機籌碼使用,不利於作為支付結算工具推廣。Grin在系統規模增長較快早期具有較高的通脹率,隨著系統規模的擴大和逐漸穩定,通脹率也趨於平緩,契合生態發展的規律,更有可能保持價值的穩定。此外,當產量減小到低於資料結構所允許的極限精度時,BTC的區塊獎勵將消失,礦工完全從交易手續費中獲得收益,而這個過程究竟會使系統發生的改變既無跡可尋,更難以推算,不確定性會降低穩定性,而Grin透過高度穩定的收益預期避免了這個問題。

2技術:隱私協議與共識機制

Grin是一個實現了MimbleWimble隱私加密協議,使用抗ASIC的PoW演算法——Cuckoo Cycle的開源區塊鏈專案。

2.1  MimbleWimble隱私協議

MimbleWimble出自小說《哈利波特》裡的“結舌咒”,施咒者透過此咒語使被施咒者的舌頭“打結”從而阻止他準確地念出咒語或洩露秘密。MimbleWimble最初的白皮書由一位匿名開發者釋出,在BTC的基礎上透過隱藏交易金額、不重複使用“地址”、合併區塊交易對交易匿名性進行改進。

BTC的每一筆交易都有三個關鍵的資訊:交易金額、交易傳送方與接收方的地址,而網路中的監聽節點可以監控交易播報方的IP,從而有可能將BTC地址與真實的實體地址關聯起來。此外,一旦某個地址進行過交易,那麼很容易透過區塊鏈瀏覽器等工具獲得此地址的交易歷史以及餘額資訊,這樣交易雙方的隱私便很難得到保證。

MimbleWimble就像施加到網路交易上的結舌咒,透過密碼學技術使每一次交易變得“無聲無息”,不再透露出這些關鍵隱私資訊。

在BTC網路中,記賬節點判斷一筆交易是否應該被放進即將被打包的區塊的原則通常只有交易的合法性。在驗證交易合法性的過程中,便暴露了以下資訊:交易傳送方的地址與公鑰(用於驗證傳送方對UTXO的使用權)、交易金額(用於驗證交易總輸入是否等於總輸出)、交易接收方的地址。

我們知道,BTC的私鑰本質上是一個隨機生成的大整數的字串表示形式,而公鑰是根據私鑰透過橢圓曲線加密(ECC)計算得出的,並且在橢圓曲線演算法已知、公鑰公開的情況下,仍然難以反解出私鑰。用私鑰加密資訊後可以得到一段資訊簽名,而在已知公鑰、簽名、原始資訊的情況下,可以驗證改簽名是否由對應的私鑰所生成。這構成了BTC進行轉賬、驗證交易的密碼學基礎。

要理解這類加密方法的原理也很容易,素數乘法就是一個例子。假設a,b,c..是若干個非常大的素數,s=abc...是他們的乘積。如果知道了s,也很難找出它的素因子,但驗證a或b,c是否是s的因子就很簡單,因為分解大素數因子在當前的計算水平下是難以實現的。

橢圓曲線是一類方程在二維平面上的函式影象,這條曲線上的一部分點之間可以定義加法運算:P+Q=R,R是P、Q連線與橢圓曲線交點關於x軸的對稱點,P+P則定義為過點P的切線與橢圓曲線交點關於x軸的對稱點,並由此可以定義數乘運算kP,等於P與自身相加k-1次(k是整數)。這部分點組成的集合對於這樣的加法運算是封閉的,也就是說集合中任意點之間進行加法、數乘運算後的結果仍然在這個集合當中。

雖然橢圓曲線點的“加法”P+Q和我們熟悉的加法並不相同,但我們可以透過整數加法去理解這一概念。如果k是一個非常大的整數,我們可以透過一些演算法較快計算出kP=Q的值,但知道計算結果Q,以及P的值,想計算出k卻是非常困難的。可以理解為點P經過k次“變換”成為點Q,但已知P、Q兩點,要計算多少次變換可以將P變為Q是難以實現的。

上面例子裡的k稱為私鑰,P是預先選好的特定橢圓曲線上的特定點,則Q=kP是私鑰k在P上的公鑰。橢圓曲線點對數乘運算滿足分配律,即

(k+j)P=kP+jP

這種特性在密碼學裡又被稱為“同態加密”,橢圓曲線群是滿足加法同態的。

MimbleWimble使用了類似的思路處理交易資訊,使用橢圓曲線加密的加法同態特性保證其在不知曉具體交易金額的情況下,仍然能夠驗證交易數額的合法性。

假設k和j分別是一筆交易的總輸入和總輸出,BTC透過明文交易額k和j,驗證k+j=0的方式確保交易數額的合法,即不會憑空創造貨幣或使貨幣消失。而根據“橢圓曲線分配律”,只需要驗證加密後的結果kP+jP=0,便可以在不知道具體數值的情況下證明k+j=0。

由於交易金額的取值範圍較有限,攻擊者可以透過窮舉私鑰的方式猜解實際交易值,為了保證安全性與隱私性,MimbleWimble還引入一個混淆因子,防止類似的窮舉攻擊。設r是傳送(接收)方的私鑰,v是交易的輸入(輸出),G,H是兩個特定的橢圓曲線點,rG是r在G上的公鑰,vH是v在H上的公鑰。

rG+vH稱為Pedersen承諾,它將是唯一被交易雙方公開的內容。即使G和H都是已知的,也很難推測出r和v的值。透過Pedersen承諾可以方便地驗證交易的合法性,並透過範圍證明(Range Proof)驗證v的取值範圍合法,即不能為負,不能超過賬戶餘額。

MimbleWimble可以在不暴露交易雙方公鑰的情況下完成交易的驗證。BTC透過在交易中附加交易雙方的地址以及傳送方公鑰的方式來驗證傳送方對UTXO的使用權以及完成使用權向接收方的轉讓。

一筆交易的輸出是一個Pedersen承諾,如果想將這筆輸入再次花費,需要同時知道r和v的值,否則無法還原出Pedersen承諾。而這筆輸出的前一個傳送者是知道v的值的,因此交易的雙方必須各自持有不同的僅有自己知道的r值(私鑰),也就是說,私鑰可以用來被證明Pedersen承諾中包含的一定數額貨幣的所有權

設交易傳送方的私鑰為r,傳送方輸入rG + vH,即證明傳送方擁有數量為v的貨幣,接收方將(r+k)G+vH新增到自己的輸出,以及公鑰kG,其中r+k可以是一個隨機生成的數字。這樣接收方就生成了僅有自己才知道的私鑰r+k,並且kG沒有暴露任何關於雙方私鑰與公鑰rG,(r+k)G的資訊。kG被看作是這筆交易的簽名,與一些額外資料一起被稱為交易核。驗證交易合法性只需要驗證 ((r+k)G+vH)-(rG+vH)=kG就證明了以下資訊:輸入與輸出金額相等、傳送方擁有該Pedersen承諾包含的貨幣使用權、該數量貨幣的使用權已轉讓到接收方。

可以看出,一筆未花費交易的使用權是和特定私鑰所繫結的,也就是說,MimbleWimble中沒有地址的概念,每一筆交易都使用了不同的私鑰。在交易建立到確認的過程中,交易的金額、雙方的公鑰都沒有暴露給第三方,從而保證了交易的隱私性。

MimbleWimble還透過合併中間交易的方式,進一步隱藏交易雙方的原始資訊。採用UTXO模型的BTC區塊鏈資訊記錄了完整的每一筆交易,因此可以將每一筆UTXO都追溯到創世區塊。攻擊者可能透過分析大量歷史區塊,揭示出不同地址之間的交易關係,造成使用者隱私資訊的洩露。MimbleWimble將一個區塊內的所有交易合併,僅保留交易核以證明其合法性,在能夠進行驗證的基礎上減小了區塊大小,增強了隱私性。

但這種方式僅在一個區塊中包含多筆交易時才有效,其隱藏交易關係的能力弱於Monero等匿名通證。

2.2  Cuckoo Cycle共識演算法

BTC採用的PoW演算法要求記賬節點透過重複性地求值Hash函式,證明自己花費了一定量的計算能力,並根據計算能力的多少競爭網路的區塊生產權利(記賬權)。但隨著ASIC礦機的研發,普通使用者的計算裝置的算力無法與這些專業挖礦裝置競爭,從而引發社羣對於算力中心化、礦池中心化的擔憂。

Cuckoo Cycle是一種由2014年提出的,意圖實現“更加平等”的抗ASIC礦機工作量證明演算法,從而實現挖礦裝置的“非中心化”。由於DRAM的延遲相較於CPU速度的飛速提升相對穩定,並且成本也更加高昂,因此減弱對計算能力要求,以記憶體容量要求取而代之的Memory-hard演算法通常是被認為可以抗ASIC的。Cuckoo Cycle就是一種在計算過程中要求儲存大量中間狀態的圖論Memory-hard演算法,主網上線後裝置至少要6G視訊記憶體才可進行挖礦。

Grin測試網目前執行著兩種模式的PoW:ASIC友好的主要模式Cuckatoo31+,抗ASIC的次要模式Cuckatoo29。在初期挖礦時,主要演算法將挖掘出10%的區塊,其他區塊由次要演算法生產,而隨著挖礦的進行,100%的區塊將由主要演算法生產。雖然主要演算法是ASIC友好的,但目前的ASIC礦機都不支援該演算法的挖礦,因此Grin的這種設計可能是為了激勵晶片廠商針對其主要演算法設計ASIC礦機。

3生態:社羣驅動,算力非中心化

3.1  社羣化開發,熱度較高

Grin採取社羣化的開發模式。與當前階段占主導地位的企業形式開發不同,Grin的開發由社羣驅動,目前主要有一個核心委員會做發展決策,包括主要的開發者和社羣成員。Grin是開源專案,不受任何商業機構的控制,其發展方向一定程度上體現了社羣的集體意志。以下為主要開發者:

John Tromp:Cuckoo Cycle共識演算法發明者,計算機和數學科學家,圍棋中數學問題的知名研究者。

Ignotus Peverell:匿名開發者,名字源於《哈利波特》中隱形斗篷的主人,是Grin專案的發起者和程式碼最多的貢獻者。

AntiochPeverellAnitioch:匿名開發者,在早期就參與了Grin專案,名字同樣出自《哈利波特》,第二位的程式碼貢獻者;

Michael Cordner:即@yeastplume,第三程式碼貢獻者,非匿名核心開發者,核心團隊與外界的交流常常透過他完成。

Daniel Lehnberg:在Grin團隊中負責社羣運營,很有個性的人,負責Grin的生態週報。

Quentin LeSceller:專案贊助商Blockcypher團隊成員,Grin礦池Grinmint的開發者。

團隊僅接受捐贈,未預先分配通證。與Bitcoin相類似,Grin完全透過挖礦獲得,沒有任何預分配方案。開發團隊堅持完全的社羣驅動的模式,不接受投資,僅僅接受捐贈,對於捐助者團隊只會在社交媒體上表示感謝。截至發稿,Grin已經發起國4次募捐,其中3次是專案的發展基金,1次是Michael Cordner募集的個人開發基金。專案的融資規模非常小,用途也相對透明。

Grin是近期的熱門專案,社羣的關注度整體較高。Grin的Twitter有6159關注和258喜歡,共釋出1531條推文,更新頻率和關注度都比較高。Grin官網論壇中比較熱門的帖子瀏覽量能達到4.3k,討論活躍,內容技術化。Grin的中文社羣也相對活躍,有多個500人的微信群,討論內容主要是技術和挖礦方法等方面。整體來說,Grin的社羣基礎相對比較強,啟動階段可能會相對順利。

3.2  初期抗ASIC,挖礦門檻高,算力相對非中心化

Grin的共識演算法在初期具有ASIC抗性,且挖礦門檻較高。Grin採取了Cuckoo Cycle共識演算法,具有ASIC抗性,早期階段廠商難以研製ASIC礦機,避免了專業礦工對使用個人電腦挖礦的使用者產生過大優勢。這種演算法的ASIC抗性透過高儲存器要求來實現,必須使用6G以上視訊記憶體的Nvidia顯示卡進行挖礦,很大程度上提高了挖礦的成本。具體來講,必須使用GTX1060 6GB及以上型號的顯示卡才能挖礦,排除了此前顯示卡礦機廣泛使用的AMD顯示卡和P106低端型號。Grin的共識演算法阻止了大批存量顯示卡礦機的遷移,一定程度防止了專業礦工的壟斷。但是,相比此前的8GB視訊記憶體門檻,現在的要求允許大量的專用卡P106-100挖Grin,演算法對專業礦工的阻礙作用有所降低,這一改變在社羣也引起了巨大爭議。

算力相對非中心化,避免礦工勢力話語權過大。早期的ASIC抗性和對存量顯示卡礦機的不相容一定程度上防止了算力中心化的問題,社羣發展早期礦工勢力難以在算力上取得絕對優勢。我們認為這對於早期的社羣建設是非常有好處的,可以避免勢力強大的礦工資本早期壟斷話語權。隨著社羣的擴大和新產出Grin在系統中比例的減少,將逐步開放ASIC演算法,引入專業礦工維持網路。這個時候社羣已經相對穩固,社羣成員持有的Grin市值也相對較高,可以有效制約礦工集團,避免發生BTC和XMR硬分叉的類似事件。

增加社羣挖礦參與度,有助於提高Grin的市場認同。算力的非中心化意味著可以有更多的普通社羣成員參與到挖礦中來,僅僅需要電力和高效能的計算機。早期的Grin通證將會相對分散,有利於形成社羣共識,提高Grin的市場認同。算力的分散化加上前期高通脹的經濟模型,可以有效在社羣相對薄弱的階段遏制礦工資本和投機資本,保證社羣對Grin專案的主導,幫助Grin實現開發團隊和社羣的願景。

4風險:初期價格波動,潛在監管壓力

Grin初期總量較低而增長較快,價格波動風險高,僅有場外交易渠道。不同於其他通證,Grin主網上線時存量為0,之後數量隨挖礦的進行而線性增加,早期供應量少但增長快,這使得其價格波動的風險更大。建議投資者注意甄別炒作行為,不要以嚴重高於挖礦產出成本的價格購買。此外,Grin初期沒有場內交易的渠道,僅能在場外以點對點的形式進行流通,交易對手的信用風險也需要特別注意。

Grin匿名性的特點使其面臨潛在的監管壓力。Grin具有密碼學層面的匿名性特點,這使得相關的交易資訊難以在鏈上進行審查。匿名性的特點一方面會在一定程度上便利使用者,擴大應用場景,但另一方面也會催生非法交易活動的可能性。由於審查和監管存在高度的困難,部分國家的政府機構可能會透過封堵法幣賬戶等手段限制Grin的流通,從而影響生態的發展。監管風險是值得Grin社羣思考的問題,也是Grin走向公眾的一大障礙。

附註:

因一些原因,本文中的一些名詞標註並不是十分精準,主要如:通證、數字通證、數字currency、貨幣、token、Crowdsale等,讀者如有疑問,可來電來函共同探討。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;