Skip to content

Latest commit

 

History

History
89 lines (47 loc) · 7.68 KB

Schnorr簽名將解決比特幣的兩個最大問題:擴充套件性和垃圾交易攻擊.md

File metadata and controls

89 lines (47 loc) · 7.68 KB

Schnorr簽名將解決比特幣的兩個最大問題:擴充套件性和垃圾交易攻擊

來源:https://www.8btc.com/author/14244
kyle 2017-07-05 13:16釋出在 比特幣  31176

如果你問幣圈的任何人比特幣的最大挑戰是什麼,那麼你最可能聽到的答案就是“擴充套件性”。

在向你解釋Schnorr簽名是什麼以及它們如何幫助解決擴充套件性之前,我們簡單概括一下比特幣為什麼需要解決擴充套件性以及目前的進展。

概括

在過去幾年,有關比特幣網路如何擴充套件從而讓數百萬(最終數十億)人口能夠以一種無摩擦的方式立即使用比特幣的問題存在著大量爭論。

目前,比特幣網路還無法承擔這個使用者數量級。比特幣區塊能夠容納的交易數量有限。這種限制是由比特幣的設計決定的,是為了確保我們能夠保持那些使比特幣成為令人興奮的創新(抗審查、去中心化、不可更改性和開放的訪問)的特性。

所有的比特幣人都希望比特幣網路擴容,但我們在做這件事時有不同的優先順序:

  1. 有些人主要想讓比特幣網路承受盡可能多的使用者,並且完好無損地保持比特幣的特性。他們希望儘量減少我們需要對他人的信任,並且確保如果我們進行了擴容,那麼我們要以保守的方式進行。
  2. 其他人主要是希望獲得儘可能多的使用者(無論比特幣網路能否承受這麼多使用者),並且保持交易手續費最低,以及在他們看來可接受的安全性。

鑑於比特幣不是某一個人或機構的所有物,所有的利用相關者(開發者,使用者,礦工和企業)需要在比特幣如何發展達成一致,你可以想象一下這種難度。大多數的利益相關者都同意制定一些比特幣擴容所需要的步驟。這場擴容爭論主要是關於這些步驟的時間和順序,這嚴重影響了網路的健康。

在所有的爭論中,一種叫做隔離見證(SegWit)的技術解決方案被提了出來。SegWit最初並不是作為一種擴容解決方案被提出來的(不過這種技術確實能夠為交易新增更多的空間),而是作為邁向更多擴充套件性創新的一個墊腳石。SegWit將解決比特幣網路的長期存在的bug,這阻礙了這些擴充套件性創新的到來。

經過一年多的測試,SegWit現在已經獲得了廣泛的利益相關者的支援(開發者,使用者,礦工和企業)並且將很快被實施。這將為其中一種創新開啟大門:Schnorr簽名,這種技術可以進一步提高擴充套件性。

問題一:擴充套件性

要想成功進行比特幣交易,那麼就需要對交易進行簽名。

不幸的是,這些簽名不可避免地需要佔用比特幣區塊鏈中區塊的空間。

1-U5H7KAh9DzGcokTvMiOjyw|800x559

當你想要從多個地址向一個地址傳送交易時,這就有問題了,因為這些交易都需要它們自己的簽名。

所有的這些簽名資料增加了交易的大小,因此也就意味著需要向礦工支付更高的手續費。你想要為自己的交易索要區塊空間,那麼你就需要付款。

1-L3NV1otCXEB0Y-fmPJNWkg|800x559

歸根到底,如果從多個來源傳送這個交易的人只有一個,那麼應該有辦法只使用一個簽名來進行,對吧?而這正是Schnorr簽名要做的事情。

據估計,Schnorr簽名升級將減少至少25%的儲存和頻寬。顯而易見:這是一個巨大的效率收益。

不過還有更多好處。

Schnorr簽名的另一個主要的好處就是提高隱私性。

一些使用者故意使用多個簽名來發送交易,從而以這種方式提高安全性。例如,你可以要求多個人或裝置來發送一筆交易,這也就是常見的多重簽名(MultiSig)。這只是一種可程式設計貨幣的好處之一。

當然,你不希望外人看到你這麼做,而Schnorr簽名將會是你的簽名看起來與其他的一樣。

問題二:垃圾交易攻擊

在過去6個月裡,比特幣網路遭受了數不盡的垃圾交易攻擊。

我之所以稱之為垃圾交易攻擊是因為這種攻擊為了推動一種政治議程。一些人拼命地想要推動他們的擴容理念。當一種擴容解決方案在5月底的閉門會議中達成協議之後,這種攻擊突然停止了。

下圖你可以看到一張關於比特幣記憶體池的圖表,包括某個時間點的所有等待新增到區塊中的未確認交易。

1-4mPNEiZv5LJu4UqFaG6i4w|800x440

儘管一些人對未確認交易數量屢創新高感到困惑,不過進一步的分析清楚表明這就是垃圾交易攻擊。

為了讓更多人同意增加區塊大小,攻擊者通過儘可能多地佔用交易空間使比特幣交易變得昂貴。

他們的手段之一就是通過頻繁地從多個來源傳送交易使這個交易中包括數十個簽名,可通過下圖看出:

QQ截圖20170705130525|493x871

經進一步分析,很清楚這筆交易的每一個來源都是在幾天前才出現的。這只是我發現的幾十個交易中的一個,都是遵循相同的模式和方法。你可以檢視區塊高度470824作為眾多例子中的一個。

幸運地的是,Schnorr簽名能夠幫助打擊這類攻擊。如果我們每一筆交易只有一個簽名,那麼區塊就能容納更多交易,垃圾交易製造者要想製造攻擊就必須傳送更多交易,與更多人進行競爭,因此攻擊成本就會相對更高。簽名所佔空間通常是一筆交易最大的一部分,所以攻擊者將不具優勢。

如果攻擊者不選擇使用Schnorr簽名並繼續使用舊的簽名,那麼其他使用Schnorr簽名的使用者傳送的交易會更小,支付的手續費也就更少。這就會使攻擊成本比以往更高。

儘管垃圾交易攻擊的價格估計達到數百萬美元,但是這對於任何想要蓄意破壞比特幣網路的土豪,政府或大型機構不過是小錢而已。

儘管一些公共行為者顯然更加了解這些攻擊的來源,我在這裡就將這個問題留給讀者自己推測吧。

歸根到底,比特幣需要抵抗這些攻擊,無論這些攻擊是圈內人或圈外人做的。

但有趣的是,在以下兩種情況下,這樣的攻擊都會適得其反:

  1. 如果這是一種旨在推動擴容程序的內部攻擊,這將導致人們不會認真對待這個程序,因為攻擊非常明顯(正如圖片所示)。
  2. 如果這是一種蓄意破壞比特幣的外部攻擊,這隻會增加對比特幣的宣傳力度,證實比特幣對所有中心化貨幣的威脅。

在這兩種情況下,使用者肯定會感到不適。不過最終會找到解決辦法,或許攻擊者會把錢用完而無法繼續攻擊。

對我來說,非常興奮地看到Schnorr簽名能夠在SegWit啟用之後被實施。像SegWit一樣,Schnorr簽名無論是作為一種比特幣的自我升級還是作為未來創新的一種墊腳石,都是非常有用的。