作為中本聰的一個「業餘小發明」,比特幣現在可以說是無人不知,無人不曉。只要你能連上網際網路,幾乎就一定聽說過比特幣。即便你對區塊鏈應用或者密碼學技術完全不感興趣,也會從多如牛毛的報道中獲取很多關於比特幣的資訊。
一個公認的事實是,正是比特幣開啟區塊鏈應用成功落地之先河。至今,比特幣誕生已超過10年。這個時間足夠漫長,足夠去驗證一件新生事物的生命力。
如今,微信現在已經成為我們人際交往的重要工具,從北上廣深到十八線小鎮農村,很少不用微信的人。一個難以相信的現實是,微信的年齡只有不到9歲。如今,微信之強大,不在於其功能強大,也不在於其合作伙伴眾多,其強大來自於使用者。目前,超過10億中國人民大多都是其使用者。
而作為去中心化的代表,比特幣的強大——不是掌握國家權力的各國政府,事實上,各國政府對比特幣恨大於愛;也不是掌握算力、炒作、媒介的大咖們,事實上,不少投機客混跡其中,風聲不對頭一個跑;更不是什麼虛無縹緲的自由主義信仰,信仰的又不是聖光,誰來賜予你力量?比特幣真正的底氣,是密碼學。
作為目前知名度最高的區塊鏈產品與市場總值最高的加密貨幣,比特幣主要使用兩個密碼學演算法保證自身的安全性:ECDSA與SHA256雜湊演算法。ECDSA是基於ECC的數字簽名演算法,它主要用來生成隨機的秘鑰對(公鑰和私鑰),而SHA256則用來實現工作量證明機制(PoW)以及透過公鑰計算出地址。
下面我們簡單分析一下密碼學是如何保證比特幣系統安全的:
正所謂,密碼學問題,基本都是數學問題,比特幣系統自然也不例外。在比特幣系統中,我們透過私鑰來完成對比特幣的控制,私鑰必須始終保持機密,一旦私鑰被洩露給第三方,就意味著失去對相應地址下比特幣的控制。一言以蔽之,認鑰不認人。
這是比特幣跟銀行賬戶一個顯著的不同,銀行賬戶主要是認人,密碼丟失也可以透過提交有效身份證明來進行密碼找回,這在比特幣系統中是行不通的。
比特幣系統中,私鑰由符合Secp256k1.ECDSA 標準橢圓曲線生成(記住這個曲線的名字,後文中要講)。產生私鑰後,再由私鑰生成相對應的公鑰,進而根據公鑰進行SHA256雜湊演算法生成比特幣地址。注意,整個過程單向不可逆,這在密碼學上被稱為陷門函式。
在進行比特幣交易時,每筆交易都必須進行數字簽名。數字簽名,就好比政府單位批示檔案中蓋的合格印章,只有掌握私鑰才能進行數字簽名。簽名之後,交易即被記錄到鏈上,經過足夠多的區塊確認之後,便成為比特幣總賬簿的一部分。這意味著本記錄永久有效,再也不能被撤回和修改。
綜上,以ECC為代表的密碼學堪稱比特幣的基石,其重要性無論怎麼形容都是不過分的。關於ECC中,秘鑰對的建立方式,地址實現等流程等相對複雜,這裡不做詳述,期待大家自行研究。
SECP256K1與稜鏡門
關於用來產生秘鑰對的Secp256k1曲線,還有一段值得載入史冊的軼事,因為它幫助比特幣躲過一支歷史級的暗箭。
前文我們說到,在RSA等非對稱加密演算法的誕生,給各國情報部門的工作帶來極大阻力。縱然特工們上窮碧落下黃泉,結果也是收效甚微,但各國情報部門對現有加密方式的破解行動從未停止過,他們在嘗試各種方式來破解其他國家的加密檔案。
就拿ECC來說,儘管它功能強大,但畢竟不是完美無缺。ECC有一個特點,它需要透過橢圓曲線來獲取大量的隨機數。要選擇出一條安全的橢圓曲線用以加密,並不是一件容易的事。學術界已經提出了很多不同的橢圓曲線選取標準,但遺憾的是,雖然理論上可行,但現實表明,目前人們研究出的通用標準並不足以完全保障ECC的安全。因此,如何選擇更優質的曲線,成為了安全相關課題明面上的難題之一。
為了攻破ECC,各國駭客和特工無不下了大功夫。密碼學領域貌似平靜的水面下,你不知道它背後藏著怎樣的陰謀!早先,美國RSA公司開發了兩條用以加密的橢圓曲線,SECP256r1和SECP256k1。前者廣泛被實際應用中採用,後者在實際應用中不如前者,比特幣系統的設計中採用了後者。
2013年發生了震驚世界的稜鏡門事件。這一年,前中情局(CIA)職員愛德華·斯諾登將兩份絕密資料交給英國《衛報》和美國《華盛頓郵報》,世界輿論隨之譁然,從此拉開稜鏡門的帷幕。
稜鏡計劃(PRISM),代號“US-984XN”,是一項由美國國家安全域性(NSA)和聯邦調查局(FBI)自2007年小布什時期起開始實施的絕密電子監聽計劃,包括微軟、雅虎、谷歌、蘋果等在內的9家國際網路巨頭皆參與其中。
該計劃的一項重要內容,即NSA對SECP256r1曲線安置了後門陷阱。這使得特工在破解ECC加密時難度大幅降低。只要暴露過公鑰,就有一定概率被NSA猜出私鑰。
一言以蔽之,SECP256r1被證實是一條不安全的偽隨機曲線,被美國情報人員破解可能性非常大。
幸運的是,比特幣選擇的橢圓曲線是沒有被新增後門的SECP256k1,這件事至今仍讓人感到不可思議。大家在佩服中本聰的密碼學造詣的同時一度有人懷疑中本聰是美國國家安全域性的人,或者曾經為其效力過,但最終沒有真憑實據。
在北大軟微-八分量協同實驗室學術沙龍活動中,我們進行了許多前沿加密技術的分析和論文解讀,從功能性、系統方案出發,結合新的實際場景進一步研究。在學術沙龍分析中,發現ECC在應用中特別需要注意的兩個地方。
1. 如何擴大ECC在使用過程中的優勢
比如,現在ECC的實現方法都是序列的,關於如何能夠用並行方式實現ECC是ECC在實際使用中非常值得研究的方向。如果能在這個領域有所突破,無論理論上還是實踐中,都會是一件非常引人矚目的事。或者,透過軟硬體結合的方式來提高安全性,比如已經有專案透過SGX與區塊鏈的結合來實現安全高效的方案。
2. 如何選擇更優質的曲線來保障安全
目前研究表明,曲線係數的選取必須滿足判別式δ=4a3+27b2≠0,這是曲線選取的必要條件。另外,除了稜鏡門爆出的SECP256r1曲線被證明是偽隨機數曲線外,異常曲線和超奇異曲線已經被證明是不安全曲線,一定要避免使用。
值得一提的是,未來學術沙龍將就如橢圓曲線的工程最佳化、數字簽名的加速手段、多方安全計算需求、零知識證明需求等內容展開談論。
此外,我們知道,這些年區塊鏈專案在獲得長足發展之時,也沒少受到外界的各種攻擊。頭部專案如比特幣、以太坊,更是各種駭客的優先攻擊物件。現在已經有很多論文來分析復現這些比特幣、以太坊上的攻擊方法和漏洞,而八分量對這些攻擊的抵禦能力如何呢?軟微實驗室如果未來可以透過實際測試來確認八分量的抵禦效果,實驗結果不但對八分量自身的開發大有利處,也為未來發論文積累了寶貴的經驗財富。