隱私加密系列|Grin架構設計選擇分析

買賣虛擬貨幣

01

簡介

Grin是一種在Rust中實現的加密貨幣,它利用Mimblewimble交易和Cuckatoo演算法來執行工作量證明(PoW)計算。Grin專案的主要設計目標是隱私,事務縮放和簡化設計以促進Grin原始碼的長期維護。

在Grin專案的開發過程中,社羣對開發人員的許多設計和實施決策提出了批評。本報告將研究其中的一些批評意見,並確定這些顧慮是否有真相,或者是否無根據或無效。將就如何減輕或解決這些問題提出一些建議。

本報告還將研究Grin選擇的架構方案、PoW演算法、用於簽名的加密曲線的選擇以及金鑰儲存庫的選擇。

選擇靜態發放方案的貨幣政策

比特幣的代幣總量供應有限的。它利用了10分鐘的區塊時間,其中解決第一個區塊的初始獎勵是50 BTC。這種獎勵每四年減少一半,直到2100萬枚代幣完全流通。在此過程中,交易費用和新挖的代幣將支付給礦商並作為礦商維護區塊鏈的激勵。一旦2100萬比特幣全部發行,將只向礦商支付交易費。許多人擔心,未來只向礦商支付交易費,不足以維持龐大的礦商網路。這將導致網路的集中化,因為只有大型挖礦場才能以盈利的方式執行挖礦任務。另一些人則認為,隨著時間的推移,挖礦費用將增加,礦工的硬體成本將降低,這使得挖礦行為有利可圖並維持比特幣區塊鏈。

Grin決定採用另一種方法,即其代幣數量不受固定供應量的限制。它將利用一個靜態發放率,Grin每一分鐘產生一個區塊,每個區塊有60個GRIN獎勵。

Grin選擇靜態發放率的主要動機是:

1. 可以創造無上限代幣的數量;

2. 新發行的代幣與流通中的代幣總數相比所佔的百分比將趨於零;

3. 它將減輕孤塊和代幣丟失的影響;

4. 它會鼓勵代幣交易而不是持有代幣;

選定的發行率將導致Grin在前10年內成為通脹率超過10%的高通脹貨幣,這比大多數競爭性加密貨幣或成功的法令系統要高。這與其他加密貨幣(如Monero)相比,前者在流通的前8年後通脹率將低於1%,而後者在開始發行時通脹率將下降0.87%。從長遠來看,Monero將有更好的潛力被用作價值儲存(SoV)。

另一方面,Grin的固定發行率將限制其作為SoV的使用,因為它將面臨恆定的價格壓力。這可能會使Grin在通脹率居高不下的情況下,很難維持一個較高的初始值。較高的通貨膨脹率可能會鼓勵Grin用作交換媒介(MoE),因為通貨膨脹率降至2%以下大約需要50年的時間。rin團隊認為,通脹率並沒有那麼高,因為許多代幣會丟失,變得無法使用。研究小組認為,這些丟失的代幣每年可能高達總供應量的2%,應排除在通貨膨脹率計算之外。交易代幣丟失的總百分比很難估計。在低價值的代幣高於高價值的代幣中,往往高價值的代幣,使用者往往會更加小心儲存。Grin團隊認為,選擇高通脹率將改善代幣的分配,因為不鼓勵持有代幣。它還希望高通脹率能夠產生自然的價格並限制大型代幣持有者的價格操縱。

傳統法令系統的大多數經濟學家都認為通縮是不好的,因為通縮會增加債務。通貨膨脹有利於刺激一個國家的經濟。隨著通貨膨脹,儲蓄的購買力會隨著時間而下降。這鼓勵購買商品和服務,從而導致該貨幣被用作MoE而不是SoV。諸如學習貸款,車輛貸款和住房貸款等債務人也將從通貨膨脹中受益,因為通貨膨脹會對長期償還債務產生侵蝕作用。

另一方面,隨著時間的流逝,傳統法令系統的通貨緊縮會增加購買力,從而鼓勵儲蓄並減少債務,導致該貨幣被用作SoV。不幸的是,這帶來了負面影響,人們將停止購買商品和服務。比特幣可以被認為是通貨緊縮的,因為人們寧願購買和持有比特幣,因為隨著時間的推移,每枚代幣的價格可能會上升。通貨緊縮也可能導致通縮螺旋上升,因為有債務的人會負債更多,而有錢的人將開始堆積他們的錢,因為在以後的階段它可能會變得更多。傳統法令系統中的通貨緊縮通常僅發生在經濟危機和衰退時期,並透過使用貨幣政策引入通貨膨脹來管理。

由於大多數通貨膨脹的法定製度都得到政府的支援,因此它們能夠控制通貨膨脹的水平,以幫助減輕政府債務和財政預算赤字。這可能會導致惡性通貨膨脹,其中貨幣貶值會以極快的速度發生,從而導致許多人失去儲蓄和養老金。另一方面,加密貨幣提供透明的演算法貨幣通脹,不受中央機構或政府控制,這就限制了它的濫用。

在成為SoV和MoE之間找到良好的平衡是開發成功貨幣的重要問題。通貨緊縮和通貨膨脹之間必須達到平衡,以刺激儲蓄和同時消費一種貨幣。在演算法上維持通脹且不受單一機構控制的低通脹模型似乎是最安全的選擇。然而只有時間才能證明Grin提出的高通脹模型是否會產生預期的效果。

工作證明演算法-從抗ASIC到友好ASIC

最初Grin團隊提出了兩種抗應用專用積體電路(ASIC)的演算法。布穀鳥迴圈(buckoocycles)和一種高記憶體要求的Equihash演算法Equigrin。選擇這些演算法是為了鼓勵挖礦去中心化。透過對PoW演算法具有較高的記憶體要求,將其計算限制在中央處理器(CPU)和高範圍圖形處理器(GPU)中,可以獲得ASIC抵抗。該計劃是每六個月調整這些PoW演算法的引數,以阻止隱形ASIC挖礦,轉而使用布穀鳥週期作為主要PoW演算法。

最近Grin團隊提出切換到一個新的雙PoW系統,其中一個PoW演算法是ASIC友好的,另一個PoW演算法不是。另一個PoW演算法不是。Grin現在將使用新的Cuckatoo迴圈演算法,但其第二個PoW演算法的細節仍不清楚。Cuckatoo PoW演算法是Cuckoo的一種變體,旨在使ASIC更加友好。這是透過將普通位用於三進位制計數器並需要大量的靜態隨機訪問儲存器(SRAM)來加快對隨機節點位的儲存延遲繫結訪問來實現的。SRAM往往受GPU和CPU處理器的限制,但是在ASIC處理器上增加SRAM則更容易實現。

ASIC礦工往往是專門的硬體,在計算和解決特定的PoW演算法方面非常高效。在網路上鼓勵ASIC礦工似乎不是一個壞主意,因為挖掘網路將具有更高的雜湊率。這將使駭客攻擊變得更加困難,與主要使用CPU和GPU的礦工相比,它將使用更少的電力。

不幸的是,執行對ASIC友好的PoW演算法的一個負面影響是,礦工網路將變得更加集中。普通消費者無法使用或不需要此類硬體。這導致ASIC礦工的使用主要保留給正在建立挖礦場的發燒友和大公司,如果網路的雜湊速率大部分侷限於大型挖礦場,則區塊鏈將更容易受到潛在的51%攻擊,特別是當特定ASIC製造商建議或強制其硬體使用由單個實體控制的特定挖礦池時。

使用主要用於遊戲和大型工作站的通用和多用途硬體(例如CPU和GPU)可確保礦工網路分佈更廣泛,並且不受單個潛在的不良玩家的控制。這將使單個實體更難控制網路的雜湊率或總計算能力的50%以上,從而限制了雙花的可能性。

選擇具有ASIC抵抗性或ASIC友好性是一個重要決定,可能會影響區塊鏈的安全性。Grin團隊選擇支援ASIC社羣,並嘗試在ASIC友好型和ASIC抵抗性PoW演算法之間取得平衡,這具有很多潛在的陷阱。

加密橢圓曲線的選擇-secp256k1

橢圓曲線密碼學用於生成可以用於數字簽名以及個人和交易授權的專用和公用金鑰對。與其他公共金鑰加密技術(例如RSA)相比,它更安全,並且需要較小的金鑰以實現類似的安全性。

Secp256k1是高效密碼標準中定義的橢圓曲線,用於比特幣、以太坊、EOS和Litecoin等多種加密貨幣的數字簽名。Grin也使用了同樣的橢圓曲線。一些安全專家建議不要使用secp256k1曲線,因為已經發現了一些問題,但不一定會加以利用。這些問題之一是複數乘法欄位判別式不夠高,無法保證安全。這可能會導致潛在的未來利用,因為具有低複數乘法判別力的曲線往往更容易斷裂。

啟動一個具有潛在危害的曲線的專案似乎不是一個好主意,特別是當確實存在具有更好的安全屬性和特性的其他曲線時。存在許多可用於提高安全性的替代曲線。例如Curve25519,它可以與改進的Ed25519公鑰簽名系統一起使用。Ed25519簽名方案利用Edwards曲線數字簽名演算法(EdDSA),在不犧牲安全性的前提下,利用SHA-512和Curve25519構造了一個快速簽名方案。

還有許多其他替代方案,由Daniel J. Bernstein和Tanje Lange維護的SafeCurves等平臺可以幫助調查和選擇替代安全曲線。SafeCurves平臺將使評估許多加密曲線的安全屬性和潛在漏洞變得更加容易。

金鑰庫的選擇

Grin最初將RocksDB用作內部鍵值儲存,但是對此決定提出了一些批評。存在許多具有其他效能和安全性特徵的替代方案,例如LevelDB,HyperLevelDB和閃電儲存對映資料庫(LMDB)。在這些之間選擇以找到區塊鏈應用程式的“最佳”鍵值儲存庫仍然是一個難題,因為許多線上資源都提供了相互矛盾的資訊。

基於一些線上基準測試的有爭議的結果,似乎其中一些替代方案具有更好的效能,例如生成較小的資料庫大小和執行更快的查詢。例如RocksDB和LevelDB似乎是LMDB更好的替代品,因為與其他資料庫庫相比,它們產生最快的讀取和刪除速度以及一些最小的資料庫。這並不完全正確,因為在測試過程中犯了一些錯誤。Howard Chu寫了一篇題為“謊言,該死的謊言,統計和基準”的文章,揭露了其中的一些問題,並表明LMDB是最好的金鑰價值儲存庫。Symas Corp執行的其他基準測試也支援這一說法,其中LMDB的效能優於所有測試過的金鑰儲存庫。

Grin後來用LMDB取代RocksDB,以保持Grin錢包的狀態。這種轉換似乎是一個好主意,因為LMDB似乎是與區塊鏈相關的應用程式的最佳鍵值儲存庫。

02

結論,意見和建議

1. 選擇正確的發行率,對於創造一個可持續的貨幣政策是一個重要的決定。

2. 應注意確保在SoV和/或MoE之間找到適當的平衡。

3. 權衡與抗ASIC相比,對ASIC友好的好處和潛在問題需要仔細評估。

4. 安全曲線等工具可用於選擇應用程式的安全橢圓曲線。甚至具有潛在安全漏洞的加密曲線也應該被忽略。

5. 使用線上基準測試幫助選擇專案庫時應格外小心,因為結果可能會產生誤導。

相關文章閱讀:

隱私加密系列|Grin與BEAM之間技術公開對比

隱私加密系列|區塊鏈二層擴充套件研究綜述-part2

隱私加密系列|區塊鏈二層擴充套件研究綜述-part1

描下方二維碼新增我,拉您進入技術交流群

掃碼

關注我們

獲得

免責聲明:

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

推荐阅读

;