新一代加密貨幣Grin和MimbleWimble區塊鏈解析

Williams Lai
Taipei Ethereum Meetup
8 min readJan 16, 2019

--

在熊市寒冬中,一個名為Grin的新加密貨幣主網在今天上線了。

看到國外的Telegram社群在談論這個新貨幣還有MimbleWimble談得很兇,我花了一些時間整理目前所看到的可靠資訊,讓大家理解這個新一代的區塊鏈和建立在其上的一個重要應用:Grin 。

MimbleWimble

MimbleWimble是個專注在於可替代性、隱私性與可擴展性的區塊鏈協議,他緣起於2016年7月,有位化名為Tom Elvis Jedusor的人在IRC channel #bitcoin-wizard上提出了一種新的方式,來解決比特幣和區塊鏈社區所面臨的隱私以及可擴展性的問題。而Mimblewimble的起源據說是來自哈利波特,就是一個念了讓人說不出話的咒語。

在Tom Elvis Jedusor的白皮書中,他說到了比特幣現存的問題:

比特幣是第一個廣泛使用的金融系統,所有必要的驗證系統狀態的數據,都可以由任何人以密碼的方式來進行驗證,的問題在於每個想要檢查的人都必須下載完整本交易帳本,其實對於想要加入節點的人而言是件比較吃力的事情。
因此,如果我們負責查帳的人只需要檢查總輸入和輸出的數據,那就輕鬆多了,但在比特幣的架構下,這個問題很難被解決。同時帳本中其實仍然會曝露很多個人的資訊,例如發送方、接收方的地址以及傳送金額等在公鏈上大家都看的到,這使得隱私這件事其實受到挑戰。

後續Greg Maxwell等BitcoinCore的專家又繼續針對這個議題提出了 "CoinJoin"和 “confidential transactions”等專案去延伸這個議題。MimbleWimble最後開發出了解決"隱私洩漏"還有"需要加載大量不必要資訊"等問題的新區塊鏈協議,並且確保兩個不讓貨幣崩潰的條件:

一、能夠驗證接收的幣的數量與發送的幣的數量相等

二、我只能從自己的銀行帳戶轉帳給我要的人

MimbleWimble透過了橢圓曲線加密技術(Exploring Elliptic Curve,ECC),他們成功了隱藏了交易雙方是誰,並且能夠驗證所有權;同時,也透過了ECC隱藏了交易金額,並且確定了發送的幣和接受的幣價值相等。橢圓曲線的示意圖如下,雖然橢圓曲線很複雜(有興趣深入研究的可以看官方推薦的文件,或者之前CryptoCow有篇好文),但其實概念很簡單:

那就是要乘出兩個數的積是多少很容易,但看到一個數要拆解成唯一兩個乘他的數卻很困難

(k+j)*H = k*H + j*H

在ECC中,我們如果選擇一個很大很大的是數字k作為私鑰,而k * H作為相應的公鑰,我們難以推導出k,在上面的算式中kj都是私鑰。當然這是簡化的概念,但透過這樣的方式,我們能夠用未知數去隱藏信息,同時要破解也相當困難。透過這個應用MimbleWimble解決了隱藏交易值和雙方地址,方法如下:

隱藏實際交易值:等式平衡

Pedersen Commitment是他們用來確保交易值正確,同時能夠隱藏金額的方法,他們的方式是利用橢圓曲線,外加一個來搗亂的很大很大的數字來讓交易數字不被交易雙方以外的人發現,在一個MimbleWimble交易中,總共會有兩個Pedersen Commitment,一個用來紀錄進入交易的貨幣數;另個則用來記錄交易輸出的貨幣數

算式如下:

(ri1*G + vi1*H) + (ri2*G + vi2*H) = (ro3*G + vo3*H)
[(發送貨幣數量*大數1)+(私鑰1*大數2)]+[(收到的貨幣數量*大數1)+(私鑰2*大數2)]=ro3*G + vo3*H)

並同時要求ri1 + ri2 = ro3,這個方式可以讓交易在完全不知道交易實際值的情況下,依然能夠被驗證。

所有權:透過一個非常大的數字做為私鑰,也能夠使得所有權在橢圓曲線中獲得驗證

Cut-through:壓縮帳本達到可擴展性( scalablility)

最後再附帶提一個我個人覺得MimbleWimble非常有趣的地方,就是他可以透過核銷(cut-through)的方式,去壓縮鏈上面所需存儲的數據,並且保證總輸入等於總輸出。大致來介紹他如何去運行,官方介紹cut-through的示意圖滿爛的,我覺得 Jordan Clifford文章中講的圖很傳神:

在未經核銷前,整個區塊的狀態大致如左邊,但其實我們可以發現,如果要使最初的Input1等於最後的輸出,那其實在這個等式中,我們是不需要紀錄Output1的,他同時會出現在等式的兩邊

Input1+Output1=Ouput1+Change1+Output2+Change2

以此類推,當產生10000筆交易甚至更多時,我們其實就能夠減少更多的儲存資料,讓整個區塊能變得更緊湊、更有擴展性,因為讓整個區塊傳輸的資料變得很小。這個方式如果能夠在實作中強制執行,甚至能夠讓MimbleWimble提供很好的隱私保證,讓某筆交易不會在區塊鏈中被揭露身分,因為無法區分單筆交易。但也同時可以透過密碼學來保證交易的安全性。

綜合而言,我認為MimbleWimble專門解決的是加密貨幣所遇到的問題,但像智能合約,或者區塊鏈可作為不可竄改的追溯帳本等特性,就不是MimbleWimble可以滿足的。

Grin

Grin是一個建立在MimbleWimble協定上的一個應用:隱私幣(另一個MimbleWimble上的專案叫做Beam) ,基於建立在MimbleWimble上,他能夠保證隱私,並且維持點對點的匿名傳輸。
同時比較特別的是,Grin是一種社區驅動的加密貨幣,並宣稱能夠保有隱私性、規模性以及維持去中心化,Grin不會進行ICO或者基金會稅(foundation tax),也不進行預挖礦,目的是為了能讓Grin幣不受特定單一實體操作,成為真正的去中心化加密貨幣。

目前他們在官網上有很多周邊的衣服啊等等的商品,可以購買當作捐贈發展基金

像比特幣一樣,Grin使用POW共識(classical Nakamoto consensus),但是使用了完全不同的演算,我們可以將它稱作Cuckoo Cycles,是個可以抗ASIC的算法。

目前最紅的議題是Grin的挖礦議題,Grin在1/15號正式開挖,要加入Grin挖礦的先決條件是並需要有Linux (x86–64 only) or MacOS的系統,比較特別的是Grin目前釋出的挖礦算法分為兩種,分別是對GPU友好(CuckARoo)以及對礦機友好(CuckAToo),所需規格如下:

  • CuckARoo (or ASIC Resistant) :6GB+GPU(目前NVIDIA的運行狀況比AMD好)
  • CuckAToo (or ASIC Targeted) :11GB+ GPUs.

目前差不多寫到這邊,如果繁中過幾天還沒有挖礦文章,我會試著寫寫看,看國外不少礦池蠢蠢欲動哈哈。

參考資料:

[1]Mimblewimble介紹
https://github.com/mimblewimble/grin/blob/master/doc/intro.md

https://medium.com/beam-mw/mimblewimble-explained-like-youre-12-d779a5bb483d

[2]關於橢圓曲線
https://medium.com/cryptocow/exploring-elliptic-curve-pairings-e322a3f029e8
https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/43964/

[3]挖礦官方文章
https://github.com/mimblewimble/docs/wiki/How-to-mine-Grin

--

--

Williams Lai
Taipei Ethereum Meetup

A blockchain degen who is doing something Impossible in DeFi \ prev Nervos advocate from 2019~2021/10