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