比特幣的核心準則是去中心化,這一點對安全性具有重要意義。在中心化的模式下,例如傳統的銀行或支付網絡,需要依賴于訪問控制和審查制度將不良行為者拒之門外。相比之下,比特幣這樣的去中心化系統則將責任和控制權都移交給了用戶。由于網絡的安全性是基于工作量證明而非訪問控制,比特幣網絡可以對所有人開放,也無需對比特幣傳輸進行加密。
在一個傳統的支付網絡中,例如信用卡系統,支付是終端開放式的,因為它包含了用戶的個人標識(信用卡號)。在初次支付后,任何能獲得該標識的人都可以從所有者那里反復“提取”資金。因此,該支付網絡必須采取端對端加密的方式,以確保沒有竊聽者或中間人可以在資金流通或存儲過程中將交易數據截獲。如果壞人獲得該系統的控制權,他將能 破獲當前的的交易和支付令牌,他還可以隨意動用這筆資金。更糟的是,當客戶數據被泄露時,顧客的個人身份信息將被盜竊者們一覽無余。客戶這時必須立即采取措施,以防失竊帳戶被盜竊者用于欺詐。
比特幣則截然不同,一筆比特幣交易只授權向指定接收方發送一個指定數額,并且不能被修改或偽造。它不會透露任何 個人信息,例如當事人的身份,也不能用于權限外的支付。因此,比特幣的支付網絡并不需要加密或防竊聽保護。事實 上,你可以在任何公開的網絡上廣播比特幣交易的數據,例如在不安全的WIFI或藍牙網絡上公開傳播比特幣交易的數 據,這對安全性沒有任何影響。
比特幣的去中心化安全模型很大程度上將權力移交到用戶手上,隨之而來的是用戶們保管好密鑰的責任。這對于大多數 用戶來說并非一件易事,特別是在像智能手機或筆記本電腦這種能能時刻聯網的通用設備上。雖然比特幣的去中心化模 型避免了常見的信用卡盜用等情況,但很多用戶由于無法保管好密鑰從而被黑客攻擊。
比特幣系統安全開發?對于比特幣開發者而言最重要的是去中心化原則。大多數開發者對中心化的安全模型很熟悉,并可能試圖將中心化的模 型運用到借鑒比特幣的應用中去去,這將給比特幣帶來滅頂之災。
比特幣的安全性依賴于密鑰的分散性控制,并且需要礦工們各自獨立地進行交易驗證。如果你想利用好比特幣的安全 性,你需要確保自己處于比特幣的安全模型里。簡而言之,不要將用戶的密鑰控制權拿走,不要接受非區塊鏈交易信息。
例如,許多早期的比特幣交易所將所有用戶的資金集中在一個包含著私鑰的“熱錢包”里,并存放在服務器上。這樣的設計奪取了用戶的掌控權,并將密鑰集中到單個系統里。很多這樣的系統都被黑客攻破了,并給客戶帶來災難性后果。 另一個常見的錯誤是接受區塊鏈離線交易,妄圖減少交易費或加速交易處理速度。一個“區塊鏈離線交易”系統將交易數據記錄在一個內部的中心化賬本上,然后偶爾將它們同步到比特幣區塊鏈中。這種做法,再一次,用專制和集中的方式取 代比特幣的去中心化安全模型。當數據處于離線的區塊鏈上的時候,保護不當的中心化賬本里的資金可能會不知不覺被偽造、被挪用、被消耗。
除非你是準備大力投資運營安全,疊加多層訪問控制,或(像傳統的銀行那樣)加強審計,否則在將資金從比特幣的去中心化安全場景中抽離出來之前,你應該慎重考慮一番。即使你有足夠的資金和紀律去實現一個可靠的安全模型,這樣的設計也僅僅是復制了一個脆弱不堪,深受賬戶盜竊威脅、貪污和挪用公款困擾的傳統金融網絡而已。要想充分利用比特幣特有的去中心化安全模型,你必須避免中心化架構的常見誘惑,因它最終將摧毀比特幣的安全性。