區塊鏈安全入門筆記(三)

買賣虛擬貨幣

雖然有著越來越多的人參與到區塊鏈的行業之中,然而由於很多人之前並沒有接觸過區塊鏈,也沒有相關的安全知識,安全意識薄弱,這就很容易讓攻擊者們有空可鑽。面對區塊鏈的眾多安全問題,慢霧特推出區塊鏈安全入門筆記系列,向大家介紹十篇區塊鏈安全相關名詞,讓新手們更快適應區塊鏈危機四伏的安全攻防世界,同時歡迎新增文章末尾二維碼催更!

系列回顧:

區塊鏈安全入門筆記(一) | 慢霧科普

區塊鏈安全入門筆記(二) | 慢霧科普

共識 Consensus

共識演算法主要是解決分散式系統中,多個節點之間對某個狀態達成一致性結果的問題。分散式系統由多個服務節點共同完成對事務的處理,分散式系統中多個副本對外呈現的資料狀態需要保持一致性。由於節點的不可靠性和節點間通訊的不穩定性,甚至節點作惡,偽造資訊,使得節點之間出現資料狀態不一致性的問題。透過共識演算法,可以將多個不可靠的單獨節點組建成一個可靠的分散式系統,實現資料狀態的一致性,提高系統的可靠性。

區塊鏈系統本身作為一個超大規模的分散式系統,但又與傳統的分散式系統存在明顯區別。由於它不依賴於任何一箇中央權威,系統建立在去中心化的點對點網路基礎之上,因此分散的節點需要就交易的有效與否達成一致,這就是共識演算法發揮作用的地方,即確保所有節點都遵守協議規則並保證所有交易都以可靠的方式進行。由共識演算法實現在分散的節點間對交易的處理順序達成一致,這是共識演算法在區塊鏈系統中起到的最主要作用。

區塊鏈系統中的共識演算法還承擔著區塊鏈系統中激勵模型和治理模型中的部分功能,為了解決在對等網路中(P2P),相互獨立的節點如何達成一項決議問題的過程。簡而言之,共識演算法是在解決分散式系統中如何保持一致性的問題。

工作量證明 PoW(Proof of Work)

PoW(Proof of Work)是歷史上第一個成功的去中心化區塊鏈共識演算法。工作量證明是大多數人所熟悉的,被比特幣、以太坊,萊特幣等主流公鏈廣泛使用。

工作量證明要求節點參與者執行計算密集型的任務,但是對於其他網路參與者來說易於驗證。在比特幣的例子中,礦工競相向由整個網路維護的區塊鏈賬本中新增所收集到的交易,即區塊。為了做到這一點,礦工必須第一個準確計算出“nonce”,這是一個新增在字串末尾的數字,用來建立一個滿足開頭特定個數為零的雜湊值。不過存在採礦的大量電力消耗和低交易吞吐量等缺點。

權益證明 PoS(Proof of Stake)

PoS(Proof of Stake)——權益證明機制,一種主流的區塊鏈共識演算法,目的是為了讓區塊鏈裡的分散式節點達成共識,它往往和工作量證明機制(Proof of Work)一起出現,兩種都被認為是區塊鏈共識演算法裡面的主流演算法之一。作為一種演算法,它透過持幣人的同意來達成共識,目的是確定出新區塊,這過程相對於 PoW,不需要硬體和電力,且效率更高。

PoS 共識中引入了 Stake 的概念,持幣人將代幣進行 Staking,要求所有的參與者抵押一部分他們所擁有的 Token 來驗證交易,然後獲得出塊的機會,PoS 共識中會透過選舉演算法,按照持幣量比例以及 Token 抵押時長,或者是一些其他的方式,選出打包區塊的礦工。礦工在指定高度完成打包交易,生成新區塊,並廣播區塊,廣播的區塊經過 PoS 共識中另外一道"門檻",驗證人驗證交易,透過驗證後,區塊得到確認。這樣一輪 PoS 的共識過程就進行完成了。權益證明透過長期繫結驗證者的利益和整個網路的利益來阻止不良行為。鎖定代幣後,如果驗證者存在欺詐性交易,那麼他們所抵押的 Token 也會被削減。

PoS 的研究腳步還在不斷前進,安全、效能和去中心化一直都是 PoS 所追求的方向,未來也將有更多 PoS 的專案落地。為了更好的觀測公鏈執行狀態,即時監測安全異常,慢霧在 EOS、BOSCORE、FIBOS、YOYOW、IoTeX、COSMOS 上都部署了 Safe Staking,落地紮根安全領域,關注節點的穩定與安全。

委託權益證明

DPoS(Delegate Proof of Stake)

委託權益證明,其雛形誕生在 2013 年 12 月 8 日,Daniel Larimer 在 bitsharetalk 首次談及用投票選擇出塊人的方式,代替 PoS 中可能出現的選舉隨機數被操縱的問題。在 DPoS 中,讓每一個持幣者都可以進行投票,由此產生一定數量的代表 ,或者理解為一定數量的節點或礦池,他們彼此之間的權利是完全相等的。持幣者可以隨時透過投票更換這些代表,以維繫鏈上系統的“長久純潔性”。在某種程度上,這很像是國家治理裡面的代議制,或者說是人大代表制度。這種制度最大的好處就是解決了驗證人過多導致的效率低下問題,當然,這種制度也有很明顯的缺點,由於 “代表”制度,導致其一直飽受中心化詬病。

惡意挖礦攻擊 

Cryptojacking Attack

惡意挖礦攻擊(Cryptojacking)是一種惡意行為,指未經授權的情況下劫持使用者裝置挖掘加密貨幣。通常,攻擊者會劫持受害者裝置(個人 PC 或伺服器)的處理能力和頻寬,由於加密貨幣挖掘需要大量算力,攻擊者會嘗試同時感染多個裝置,這樣他們能夠收集到足夠的算力來執行這種低風險和低成本的挖礦活動。

一般惡意挖礦軟體會誘導使用者在計算機上載入挖礦程式碼,或透過使用類似網路釣魚的方法,如惡意連結、電子郵件或是在網站裡植入挖礦指令碼等方式,使系統無意中被隱藏的加密挖礦程式感染進而完成攻擊行為。近年來,隨著加密貨幣價格的上漲,更加複雜的惡意軟體被開發出來,使惡意挖礦攻擊事件層出不窮。

在此我們為大家提供幾條建議防範惡意挖礦攻擊:

  1. 注意裝置效能和 CPU 利用率

  2. 在 Web 瀏覽器上安裝挖礦指令碼隔離外掛,例如 MinerBlock,NoCoin 和 Adblocker

  3. 小心電子郵件附件和連結

  4. 安裝一個值得信賴的防毒軟體,讓軟體應用程式和作業系統保持最新狀態

無利益攻擊

Nothing at Stake Attack

無利益攻擊(Nothing at Stake Attack),是在 PoS 共識機制下一個有待解決的問題,其問題的本質可以簡單概括為“作惡無成本,好處無限多”。

當 PoS 共識系統出現分叉(Fork)時,出塊節點可以在“不受任何損失”的前提下,同時在兩個分叉上出塊;無論哪一個分叉後面被公認為主鏈,該節點都可以獲得“所有收益”且不會有任何成本損失。這就很容易給某些節點一種動力去產生新的分叉,支援或發起不合法交易,其他逐利的出塊節點會同時在多條鏈(視窗)上排隊出塊支援新的分叉。隨著時間的推移,分叉越來越多,非法交易,作惡猖狂。區塊鏈將不再是唯一鏈,所有出塊節點沒有辦法達成共識。

為了預防這樣的情況發生,許多類 PoS 共識機制對此的解決方法是引入懲罰機制,對作惡的節點進行經濟懲罰(Slashing),以建立更加穩定的網路。DPoS 實際上也是無利益攻擊的解決方案之一,由上文我們可知 DPoS 這個機制由持幣人選出出塊節點來運營網路,出塊節點會將一部分獎勵分給投票者。

為了提供一個更加開放的區塊鏈安全學習交流環境,慢霧安全團隊現已開放「慢霧區·區塊鏈安全學習交流群」,可搜尋微訊號:helloslowmist 或長按二維碼新增“慢霧區小助手”並回復“進群”,就有機會加入「慢霧區·區塊鏈安全學習交流群」

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;