據報導,全球在線賬簿網路——區塊鏈真的安全嗎?它的支持者認為的確如此,因為它將交易或智能合同分配給不可變的分類帳,並可由多方驗證。然而,最近發表的論文指出,有些漏洞可能會導致區塊鏈陷入低效、黑客攻擊以及其他犯罪活動中。
這篇論文由香港理工大學的李曉淇(Xiaoqi Li)、姜鵬(Peng Jiang)和羅夏普(Xiapu Luo)、中國電子科技大學的陳婷(Ting Chen)以及北京大學的溫巧燕(Qiaoyan Wen)共同發表的,他們聲稱,區塊鏈有幾個漏洞,用戶需要對它們保持警惕。
隨著區塊鏈逐漸成為業務運營的重要組成部分,需要對這種新興技術帶來的潛在安全責任進行更仔細的審視。李曉淇等人表示:“隨著這種分佈式應用數量的增長,區塊鏈的隱私洩露風險將會變得更加嚴重。分佈式應用本身,以及應用程序和網際網路之間的通信過程,都面臨著隱私洩露的風險。”
他們敦促採用更安全的技術來應對挑戰,比如代碼混淆、應用程序硬化以及執行可信任的計算等。研究人員概述了區塊鏈已知的九大關鍵風險因素:
1.區塊鏈效率
對於新手來說,區塊鏈本身的效率可能會因複雜的共識機制(consensus mechanism)和無效數據而超載。李曉琪和他的合著者指出,網際網路上使用的共識機制是計算資源的基礎。例如,區塊鏈中最流行的共識機制就是工作證明系統(Proof of Work),研究人員稱之為“浪費計算資源”。他們表示,目前正在努力開發更高效和混合的共識機制,將工作證明系統和權益證明系統(Proof of Stake)結合起來。
此外,區塊鏈將產生大量數據,包括區塊信息、交易數據、契約位元組碼等,它們容易過時且無用。研究人員認為:“有很多智能合同不包含任何代碼,或者在以太坊中使用完全相同的代碼,而且許多智能合同在部署後永遠不會被執行。為了提高區塊鏈系統的執行效率,需要高效的數據清理和檢測機制。”
2.51%的脆弱性
區塊鏈依賴於分佈式的共識機制建立相互信任。然而,共識機製本身有51%的漏洞,即攻擊者可以利用它來控制整個區塊鏈。更準確地說,在以工作證明系統為基礎的區塊鏈中,如果單個礦商的散列功率佔整個區塊鏈總散列功率的50%以上,那麼51%的攻擊可能就會被啟動。因此,集中在少數幾個礦池的採礦力量可能導致對疏忽情況的恐懼,例如單個礦池控制超過一半的計算能力。
3.私鑰安全
當使用區塊鏈時,用戶的私鑰被視為身份和安全憑證,由用戶而不是第三方機構生成和維護。舉例來說,當在比特幣區塊鏈中創建冷存儲錢包時,用戶必須輸入他/她的私鑰。攻擊者可以恢復用戶的私鑰,因為在簽名過程中它並非完全依賴隨機性生成。一旦用戶的私鑰丟失,它將無法恢復。由於區塊鏈不依賴於任何集中的第三方可信機構,如果用戶的私鑰被竊取,則很難跟蹤犯罪行為並恢復修改的區塊鏈信息。
4.犯罪活動
通過支持比特幣的第三方交易平台,用戶可以購買或出售任何產品。由於這個過程是匿名的,所以很難追蹤用戶行為,更不用說讓他們受到法律制裁了。與比特幣相關的犯罪活動通常包括勒索贖金、地下市場和洗錢。
5.重複支出
雖然區塊鏈的共識機制可以驗證交易,但仍然不可能避免重複支出,或者在交易中多次使用相同的加密貨幣。攻擊者可以利用兩次交易發起和確認之間的中間時間來快速發起攻擊。
6.交易隱私洩漏
不幸的是,區塊鏈的隱私保護措施並不是很健全。犯罪智能合同可能導致機密信息的洩露、竊取密鑰,以及各種現實世界的罪行(如謀殺、縱火、恐怖主義等)。
7.智能合同中的漏洞
由於應用程序在區塊鏈中運行,智能合同可能有由程序缺陷引起的安全漏洞。舉例來說,一項研究發現,在19366個以太坊智能合同中,有8833個容易受到錯誤的影響,比如交易順序依賴、時間戳依賴、錯誤異常處理以及重入性漏洞。
8.未充分優化的智能合同
當用戶與在以太坊中部署的智能合同進行交互時,會收取一定數量的“氣體”。這種氣體可以用以太坊的加密貨幣——以太幣來兌換。這就導致了“無用代碼相關模式”和“循環相關模式”,其中包括“死代碼、不透明謂詞和循環中昂貴操作”。
9.定價偏低的操作
根據執行時間、帶寬、內存佔用率和其他參數,以太坊設置“氣體”價值。一般來說,氣體的價值與操作消耗的計算資源成正比。然而,要準確測量單個操作的計算資源消耗量非常困難,因此有些氣體的價值是不準確的。例如,有些氣體值設置得太低,因此這些操作可以在某個交易中大量執行。通過這種方式,攻擊者可以發起對以太坊的拒絕服務攻擊。