Skip to content

Latest commit

 

History

History
76 lines (39 loc) · 12.8 KB

ch11.asciidoc

File metadata and controls

76 lines (39 loc) · 12.8 KB

比特幣的安全

確保比特幣安全具有挑戰性,因為比特幣不是抽象的價值參考,就像銀行賬戶的餘額。比特幣非常像數字現金或黃金。你可能聽到過這樣的表達:"佔有是法律的十分之九"。那麼,在比特幣中,佔有是法律的十分之一。擁有解鎖比特幣的密鑰相當於擁有現金或貴重金屬。你可能會失去它,放錯位置,被盜,或者不小心把錯誤的數字給別人。在每一種情況下,用戶都沒有追索權,就好像他們在公共人行道上放棄了現金一樣。

但是,比特幣具有現金,黃金和銀行賬戶不具備的能力。包含您的密鑰的比特幣錢包可以像任何檔案一樣備份。它可以儲存在多個副本中,甚至可以打印在紙張上進行硬拷貝備份。您不能"備份"現金,黃金或銀行賬戶。比特幣與之前的任何東西都不相同,我們需要以一種新穎的方式來思考比特幣安全。

安全原則

比特幣的核心原則是去中心化,它對安全性有重要影響。傳統的銀行或支付網路等集中模式依賴於訪問控制和審查,以防止不良行為者。相比之下,像比特幣這樣的分散系統將責任和控制交給了用戶。由於網路的安全性基於工作量證明,而不是訪問控制,因此網路可以公開,並且比特幣流量不需要加密。

在諸如信用卡系統的傳統支付網路中,支付是開放式的,因為它包含用戶的私人標識符(信用卡號碼)。在初始收費後,任何可以使用該標識符的人都可以"拉取"資金並一次又一次地向擁有者收費。因此,支付網路必須通過加密進行端對端的安全保護,必須確保沒有竊聽者或中間人可以危害付款流量,包括傳輸中或儲存時(靜止時)。如果一個不良行為者獲得了訪問系統的權限,他可以危害當前的交易,以及 可用於創建新交易的支付令牌。更糟糕的是,當客戶數據遭到破壞時,客戶面臨身份盜用的風險,必須採取措施防止被盜賬戶的欺詐性使用。

比特幣有很大的不同。比特幣交易僅向特定收件人授予特定的價值,不能偽造或修改。它不會透露任何隱私訊息,例如當事人的身份,也不能用於授權額外付款。因此,比特幣支付網路不需要加密或防止竊聽。事實上,您可以通過開放的公共頻道(例如不安全的WiFi或藍牙)來廣播比特幣交易,同時不會降低安全性。

比特幣的去中心化安全模式將大量權力交給用戶。有了這個權力就有責任對密鑰進行保密。對於大多數用戶來說,這並不容易,特別是在通用計算設備上,例如連接互聯網的智慧型手機或筆記本電腦。雖然比特幣的去中心化模式可以防止向信用卡那樣出現大規模危機,但許多用戶無法充分保護他們的密鑰,並一個接一個地被駭客入侵。

安全地開發比特幣系統

比特幣開發者最重要的原則是去中心化。大多數開發人員都熟悉集中式安全模型,並可能試圖將這些模型應用到他們的比特幣應用程式中,從而帶來災難性後果。

比特幣的安全性依賴於對密鑰的去中心化控制以及礦工的獨立交易驗證。如果你想利用比特幣的安全性,你需要確保你保持在比特幣安全模型中。簡而言之:不要將密鑰從用戶手中接管,也不要將交易從區塊鏈中移除。

例如,許多早期的比特幣交易所將所有用戶資金集中在單個"熱"錢包中,密鑰儲存在單個伺服器上。這種設計消除了用戶的控制權,並集中控制單個系統中的密鑰。許多此類系統已被駭客入侵,對客戶造成災難性後果。

另一個常見的錯誤是,為了減少交易費用或加速交易處理,錯誤地將交易"脫離區塊鏈"。一個"離線的區塊鏈"系統將在內部的集中式賬本上記錄交易,並且偶爾將它們同步到比特幣區塊鏈上。這種做法再次以專有和集中的方式取代了去中心化的比特幣安全性。當交易離開區塊鏈時,安全措施不當的集中賬本可能被偽造,導致資金流失和儲備枯竭,而不被人注意到。

除非您準備在運營安全,多層訪問控制和審計(如傳統銀行所做的那樣)上投入大量資金,否則在將資金用於比特幣的去中心化環境外之前,應該仔細考慮。即使你有足夠的資金和規則來實施強大的安全模式,這樣的設計也只是複製了傳統金融網路的脆弱模式,這種模式受到身份盜用,腐敗和貪汙的困擾。為了利用比特幣獨特的去中心化安全模式,您必須避免可能會感到熟悉但最終顛覆比特幣安全性的集中式體系結構的誘惑。

信任根 Root of Trust

傳統的安全體系結構基於一個稱為 信任根 root of trust 的概念,它是一個可信的核心,用作整個系統或應用程式安全的基礎。安全架構是圍繞信任根發展起來的,是一系列同心圓,如洋蔥中的層,從中心向外擴展信任。每層使用訪問控制、數位簽章、加密和其他安全基元構建更可信的內層。隨著軟體系統變得越來越複雜,它們更容易包含錯誤,這使得它們容易受到安全危害。結果,軟體系統越複雜,就越難保證安全。信任根的概念可以確保大多數信任被放置在系統中最不復雜的部分,系統中最不易受影響的部分,更復雜的軟體則圍繞著它。這種安全體系結構在不同規模上重複出現,首先在單個系統的硬體中建立信任根,然後通過作業系統將信任根擴展到更高級的系統服務,最後跨越多個伺服器減少信任。

比特幣安全架構不同。在比特幣中,共識系統創建了一個完全分散的可信公共賬本。經過正確驗證的區塊鏈使用創世區塊作為信任根,建立一個直至當前區塊的信任鏈。比特幣系統可以也應該使用區塊鏈作為他們的信任根。在設計由許多不同系統上的服務組成的複雜比特幣應用程式時,您應仔細檢查安全架構,以確定信任的位置。最終,唯一應該明確信任的是完全驗證的區塊鏈。如果您的應用程式明確或隱含地信任除區塊鏈之外的任何其他訊息,那麼應該引起關注,因為它會引入漏洞。評估應用程式的安全體系結構的一個好方法是考慮每個單獨的組件並評估一個假想的場景,其中該組件完全受到攻擊並處於惡意行為者的控制之下。依次評估應用程式的每個組件受到危害時對整體安全性的影響。如果您的應用程式在組件受損時不再安全,則表明您錯誤地信任這些組件。一個沒有漏洞的比特幣應用程式應該只會損害比特幣共識機制,這意味著它的信任根源是比特幣安全架構中最強大的部分。

眾多被駭客入侵的比特幣交易所的例子有助於強調這一點,因為即使在最偶然的審查下,其安全架構和設計也會失敗。這些集中式實施已經將信任明確地投入到比特幣區塊鏈以外的眾多組件中,比如熱錢包、集中化賬本資料庫、易受攻擊的加密密鑰以及類似的模式。

用戶安全最佳實踐

人類已經使用了數千年的物理安全控制。相比之下,我們在數字安全方面的經驗還不到50年。現代通用作業系統並不是非常安全,並不適合儲存數位貨幣。我們的電腦通過永遠在線的網路連接不斷暴露於外部威脅下。他們運行數百個作者的數千個軟體組件,通常無限制地訪問用戶的檔案。在您的電腦上安裝的數千個軟體中,一個流氓軟體,可能會危及您的鍵盤和檔案,竊取儲存在錢包應用程式中的任何比特幣。保持電腦無病毒和無木馬所需的電腦維護技能超出了大多數電腦用戶的水平。

儘管有數十年來資訊安全方面的研究和進步,但數位資產仍然很容易受到堅定的對手的攻擊。即使是在金融服務公司,情報機構和國防承包商中受到高度保護和限制的系統也經常遭到侵犯。比特幣創造的數位資產具有內在價值,可以被盜取,並立即不可撤銷地轉移給新的所有者。這為駭客創造了一個巨大的誘因。到目前為止,駭客在入侵之後不得不將身份訊息或賬戶令牌(如信用卡和銀行賬戶)轉換為價值。儘管銷贓和洗錢很困難,但我們發現盜竊案日益增多。比特幣升級了這個問題,因為它不需要被銷贓或洗錢;這是數位資產的內在價值。

幸運的是,比特幣也創造了提高電腦安全性的動力。之前電腦被入侵的風險是模糊和間接,比特幣使這些風險變得清晰明瞭。在電腦上持有比特幣有助於將用戶的注意力集中在提高電腦安全性的需求上。作為比特幣和其他數位貨幣的激增和採用的直接結果,我們看到了駭客技術和安全解決方案的升級。簡而言之,駭客現在有了一個非常肥美的目標,而用戶也有了明確的動機來保護自己。

在過去的三年中,作為比特幣應用的直接結果,我們看到了以硬體加密、密鑰儲存和硬體錢包,多重簽名技術以及數字託管等形式在資訊安全領域的巨大創新。在下面的章節中,我們將研究實際用戶安全的各種最佳實踐。

物理比特幣儲存

讓比特幣離線稱為 cold storage ,它是最有效的安全技術之一。冷儲存系統是在離線系統(從未連接到網路)上生成密鑰並在紙上或數位媒體(如USB記憶棒)上離線儲存的系統。

硬體錢包

從長遠來看,比特幣安全越來越多地採取硬體防篡改錢包的形式。與智慧型手機或臺式電腦不同,比特幣硬體錢包只有一個目的:安全地持有比特幣。沒有通用軟體的危害並且介面有限,硬體錢包可以為非專業用戶提供幾乎萬無一失的安全級別。我期望看到硬體錢包成為比特幣儲存的主要方法。有關這種硬體錢包的示例,請參閱 Trezor

平衡風險

雖然大多數用戶都對比特幣失竊有正確的擔憂,但風險更大。數據檔案一直在丟失。如果他們包含比特幣,損失會更加痛苦。為了保證他們的比特幣錢包的安全,用戶必須非常小心,不要太過分,而最終會失去比特幣。2011年7月,一個眾所周知的比特幣意識和教育項目損失了近7,000比特幣。為了防止盜竊,擁有者們實施了一系列複雜的加密備份。最後,他們意外地丟失了加密密鑰,使得備份毫無價值並且失去了一筆財富。就像把錢埋在沙漠中一樣,如果你過於仔細地保護你的比特幣,你可能無法再找到它。

分散風險

你會把你的全部資產以現金形式放入你的錢包嗎?大多數人會認為魯莽,但比特幣用戶經常把所有的比特幣放在一個錢包裡。相反,用戶應該將風險分散到多種多樣的比特幣錢包中。謹慎的用戶將比特幣的一小部分,或許不到5%的比特幣保留在在線或行動錢包中作為"零錢"。剩下的應該分成幾種不同的機制儲存,比如桌面錢包和離線(冷儲存)。

多重簽名和治理

每當公司或個人儲存大量比特幣時,他們應該考慮使用多重簽名比特幣地址。多重簽名通過要求多個簽名進行付款來解決資金安全問題。簽名密鑰應儲存在多個不同位置,並由不同人員控制。例如,在公司環境中,密鑰應該由多個公司管理人員獨立生成並保存,以確保任何人都不會損害資金。多重簽名地址也可以提供冗餘,即一個人擁有多個儲存在不同位置的密鑰。

生存性

經常被忽視的一個重要的安全因素是可用性,特別是在密鑰持有者無能力或死亡的情況下。比特幣用戶被告知使用複雜的密碼,並保證他們的密鑰安全和私密,而不與任何人分享。不幸的是,如果用戶無法解鎖,那麼這種做法幾乎不可能讓用戶的家人恢復任何資金。事實上,在大多數情況下,比特幣用戶的家族可能完全不知道比特幣資金的存在。

如果你有很多比特幣,你應該考慮與受信任的親戚或律師分享訪問細節。可以通過專門的稱為"數位資產執行者"的律師,使用多重簽名訪問和資產規劃設立更復雜的生存性計劃。

總結

比特幣是一種全新的,前所未有的複雜技術。隨著時間的推移,我們將開發更好的安全工具和實踐,使非專業人員更容易使用。目前,比特幣用戶可以使用這裡討論的許多技巧來享受安全且無故障的比特幣體驗。