如果你還未聽過很多有關神秘的Grin區塊鏈的事情,這也並不奇怪(該詞來自哈利波特中的古靈閣巫師銀行);從一開始,專案背後的開發人員就使用了哈利波特中角色的身份,其創始人為Tom Elvis Jedusor,又名伏地魔。
Blockstream數學家安德魯·波爾斯特拉(Andrew Poelstra)表示,他並不是該組織中的匿名成員 — 但是古靈區塊鏈是Mimblewimble“無指令碼”隱私保障創新的一個方向。
Mimblewimble從Blockstream的保密交易技術中誕生。Mimblewimble保持著如果交易的輸出已被花費,您無需再保留其記錄,因為支出可以抵消收入。
儘管如此,驗證者仍然能夠驗證金鑰的所有權以授權交易,同時顯示輸出減去輸入的總和等於零,且沒有建立新幣。
Mimblewimble也使用保密交易的盲金鑰作為花費輸出的驗證金鑰,並取消了使用任意指令碼的能力,因為這些指令碼不能以這種方式取消。
這導致了功能性的大幅度降低。自此,在比特幣區塊鏈上花費幣不同方法可以被歸結僅從一組到另一組或從一個人到另一個人的進行轉移。
但是,它的對稱性很好:輸入和輸出不能在不使等式無效的情況下進行更改,且沒有人可以在不知道盲金鑰的情況下建立平衡的交易。
Poelstra說:
“如果一筆交易花費了另一筆交易的輸出,那麼在這兩個等式中,兩邊都有相同的項,你可以直接刪除它們。而且你保留了正確的認證,因為這些輸出的所有者必須參與到這些幣的使用中,但人們不再需要看到或驗證那些幣真的存在。這確實是一件很了不起的事情。”
他說,如果有區塊支援Mimblewimble,那麼你根本不需要任何交易輸入來驗證整個區塊鏈;您只需要知道當前未花費的輸出,且基本上整個交易記錄可以被壓縮到這些結合了保密交易的單項聚合簽名中。
“無需追溯每筆交易的歷史。您的每筆交易都會有一個驗證者需要檢查的簽名,然後,他們只需要檢查當前這組未花費的輸出,減去所有已建立或用於側鏈楔入錨定的幣是否等於零。”
支援保密交易的任何系統都將支援Mimblewimble。但是,Poelstra指出,這並不是您明天立即就可以使用的東西,因為目前沒有錢包支援Mimblewinble。他期待著Grin區塊鏈的啟用,並向維護人員提出了一項設計方案,該方案已被維護人員接受,以允許對包括掛鉤在內數字資產進行軟分叉。
“我認為,Grin區塊鏈最初只會有Grin幣,還有一種測試幣。之後,我們可以將比特幣加入其中,由於外部觀察者無法區分比特幣、測試幣和Grin幣,我們可以分享這一隱私。該專案正在發展中。我並不瞭解其時間進度,但對我來說,大概18個月之後,該專案才可以為更廣泛的生態系統所用。”
當他開始為Scaling Bitcoin 2016撰寫Mimblewimble的文章時,Poelstra對其能給比特幣 帶來的壓縮效能感到非常興奮。 “如果你有一百萬個區塊,那麼驗證整條鏈你只需要驗證大約10,000個簽名,不管最初的這些區塊中有多少交易。因此,我能夠將原來80GB的區塊鏈壓縮成1MB,再加上一組非常大的未花費輸出 。”
儘管Mimblewimble極大地壓縮了交易歷史,但是隨之產生一大批未花費的輸出仍會佔據很大的空間,這使得Poelstra感到很沮喪,因此,他決定採取不同的方向:“無指令碼指令碼”。
從保密交易中刪除指令碼削弱了其功能性,特別是有人會擔心他們無法在Mimblewimble上使用閃電網路。在這一點上,Poelstra意識到可以在指令碼系統上進行輕型交易 。他說:“當你證明輸出減輸入值等於零時,你實際獲得的是加密版本的零,就像一個屬於每個交易者的多簽名金鑰一樣。”
“這就是這些額外的簽名的來源,這就是為什麼你在混合了交易之後仍然可以進行驗證 – 即使輸入和輸出被取消並被刪除,原本的簽名仍然會隱藏在多簽名之中,這就是你保護它的方式。”
“我意識到,如果你讓這些簽名也簽署一些指令碼條件,那麼你可以得到一些簡單的東西;你可以做一個簡單版本的閃電網路,就像這樣。在某個時刻,我們注意到你可以用普通的簽名來做很多類似於指令碼的事情。”
對於像原子交換這樣的事情(各方對幣進行時間鎖定並顯示每個區塊鏈上某些雜湊的逆原像),無指令碼指令碼則利用了簽名之間的差異。使用Schnorr簽名型別可以驗證你有兩個不同的簽名,以證明這一交易的簽名與另一交易的簽名或使用不同金鑰的交易之間的區別;您可以在不知道實際簽名的情況下進行驗證。由於簽名本身只是隨機值,所以僅僅知道他們之間的區別並不會讓你知道這些簽名具體是什麼。
Poelstra說:“如果你有不同的簽名,並且現在如果我告訴了你一個,你就會知道另一個。這就是它的工作原理。如果有A用簽名來取他的幣,我就會從區塊鏈上讀到他的簽名,然後我把他的簽名加入到差異中,我就可以得到他在另一條鏈上的簽名了。因此,實際上我只是複製了簽名,將簽名從一個區塊鏈轉換成另一個區塊鏈上的簽名,然後用它來取我的幣。現在我們有了一個原子交換。”
“但是這是一個原子交換,在各自的區塊鏈上有的東西只是簽名。這不需要額外的空間,甚至沒有任何東西可以連線這兩筆交易。任何人都可以區別兩個簽名——真正的魔法是‘A’在我簽署任何東西之前告訴了我這個差異。所以基本上這只是個時間問題。”
Poelstra表示,他已經找到了在使用不同的橢圓曲線的鏈上鍊接交易的方式,比如比特幣和門羅幣,並且他計劃立即釋出該方法。他還發現了一種方法,可以像閃電通道一樣將多個交易串在一起。
閃電支付通道使用必須由大家公佈的雜湊和逆原像來付款。無指令碼指令碼中也有相同的路由,但實際上它使用的並不是雜湊,而是一個離散對數。簽名被設定為其釋出會向知道外部資訊的人顯示離散對數,並且你可以透過這種方式獲得連線。
被問及如何將Mimblewimble側鏈與比特幣區塊鏈相比較,Poelstra表示:
“對於未來的驗證者來說,Mimblewimble所佔空間絕對會更小,因為您可以刪除所有已花費的輸出,並在事後驗證鏈時刪除所有輸入,所以在實時的情況下,它與比特幣加上保密交易的大小是一樣的,所以它會大一點,就像是你仍然使用這個消防水帶,它只是蒸發得更快了。”