區塊鏈安全在線簽名
Ⅰ 怎麼解讀區塊鏈的數字簽名
在區塊鏈的分布式網路里,節點之間進行通訊並達成信任,需要依賴數字簽名技術,它主要實現了身份確認以及信息真實性、完整性驗證。
數字簽名
數字簽名(又稱公鑰數字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑒別數字信息的方法。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。就是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。簡單證明 「我就是我」。
Ⅱ 簽電子合同時電子簽名是怎麼保證安全的
簡單來說,電子簽名是利用哈希演算法與加密演算法實現的電子文件上直接簽字、蓋章的技術。為了保障簽署後的電子文件具備法律有效性,使用電子簽名簽署後的電子文件還需要具備簽署身份可識別、簽署內容不可篡改的特性。
但是,通過上述技術名詞解釋並不能直觀、易懂的說明電子簽名的原理,以下是通過還原電子簽名簽署的過程簡介電子簽名是如何保證安全保密的:
場景:由於業務需要,你和我需要簽署一份合作協議。為方便起見,你將擬好的電子版合同文本在線發送給我簽署。
怎樣確保合同只有我可查看且不被他人惡意竊取?我又怎樣才能確定文件的發送人就是你呢?
關鍵點1:公鑰私鑰登場
為了滿足電子合同內容保密性和發送人認證的要求,我們了解到非對稱加密的加密方式。
非對稱加密:具有唯一對應的一對秘鑰,一個公鑰一個私鑰,公鑰所有人可見,而私鑰僅自己可見。
非對稱加密具有這樣的特性:用公鑰加密的文件只能用私鑰解密,而私鑰加密的文件只能用公鑰解密。
發送合同時,你將擬好的電子合同使用自己的私鑰加密後發送;接收合同時,如果能夠使用你的公鑰解密,則說明這份文件就是你發送的。
但是,我怎麼才能知道你的公鑰呢?
關鍵點2:政府出了個CA來幫忙
我了解到,政府授權了一個權威機構叫CA,可以提供網路身份認證的服務。
CA (Certificate Authority) :全稱證書管理機構,即數字證書的申請、簽發及管理機關。其主要功能為: 產生密鑰對、生成數字證書、分發密鑰、密鑰管理等。
數字證書:是由CA機構頒發的證明,它包含公鑰、公鑰擁有者名稱、CA 的數字簽名、有效期、授權中心名稱、證書序列號等信息,可以通俗為理解個人或企業在「網路身份證」。
我向CA機構申請獲取你的公鑰,使用它對電子合同解密,解密成功則說明發送人就是你。文件發送人的身份確認了,那怎麼保障電子合同傳輸過程中未被篡改呢?
關鍵點3:哈希兄弟出場
有技術人員推薦了哈希演算法(摘要演算法),可以證明電子合同傳輸過程中是否被篡改。
哈希演算法:通過加密演算法將文本內容生成為一段代碼,即信息摘要,其主要特徵是加密過程不需要密鑰,經加密的數據無法被反向還原。也就是說,只有兩份完全相同的合同經過相同的哈希演算法才能得到相同的摘要。
發送合同時,你將電子合同原文和經哈希運算的摘要一起發送給我接收合同時,通過對合同原文進行同樣的哈希運算得到新的摘要,對比兩組摘要是否一致即可證明我接收的文件是否被篡改
但是,如果傳輸過程中文件原文與摘要同時被替換了怎麼辦?
關鍵點4:對稱加密來幫忙
除了上述的哈希演算法、非對稱加密、CA,為確保合同由發送到接收滿足三個要求,即:由你發送、只能發給我、不能被篡改,我們還需要應用新的加密方式:對稱加密。
對稱加密:採用單鑰密碼系統的加密方法,信息的加密和解密只能使用同一個密碼。
發送文件時:
1、你通過哈希運算得到原文摘要並使用私鑰對其加密,得到你的數字簽名,再將數字簽名和合同原文進行對稱加密,得到密文A——對原文加密
2、再通過CA獲得我的公鑰,對上述步驟中對稱加密的秘鑰進行非對稱加密,即我的「數字信封」——對秘鑰加密
3、將密文A和我的數字信封一起發送給我
數字簽名:用哈希演算法提取出源文件的摘要並用發送人的私鑰進行加密後的內容。
數字信封:用接收方的公鑰加密對稱秘鑰」,這就叫「給乙的數字信封。
接收文件時:
1、我使用自己的私鑰解密數字信封得到對稱秘鑰——能解開,說明是發給我的
2、再使用對稱秘鑰解密密文A,得到帶有你的數字簽名的原文
3、使用你的公鑰解密你的數字簽名,得到簽名中的原文摘要——能解開,說明發送者是你
4、使用相同的摘要演算法獲取原文摘要並與解密簽名中的摘要對比——摘要一致,則說明原文沒有被篡改
除了文件內容不可篡改,精確記錄簽署時間固定合同生效期限也十分重要,網路環境中怎樣怎麼確保合同簽署時間不可篡改呢?
關鍵點5:時間戳來證明
我又請教了專家,原來我們國家還有專門確定時間的法定授時中心,它可以在我們簽署的文件上加蓋「時間印跡」,即時間戳。
時間戳(time-stamp):書面簽署文件的時間是由簽署人自己寫上,而數字時間戳則由第三方認證單位(DTS)添加,以DTS收到文件的時間為依據,更精準、更有公信力。
至此,我們簽合同的時間精準記錄、合同內容不可篡改、雙方身份也真實有效,這下沒問題了!但是,簽署完的電子合同怎麼存儲呢?不管是哪一方簽署,日後產生糾紛都難免對合同存儲期間的安全性產生質疑。
關鍵點6:找個權威第三方來存證
聽說有專門的第三方電子數據存證機構,可以保存已簽署的電子合同數據,當用戶雙方對合同內容產生爭議時可申請出具具有公信力的證明。
合同簽署的最後一個問題:存儲問題也解決了!但唯一不足之處就是:簽署過程太麻煩!為保障電子合同有效性,我們用到了非對稱加密、哈希運算、時間戳等技術,還要CA機構、公證處等機構協助;
怎樣更簡單快捷地簽一份有效的電子合同呢?
關鍵點7:選擇可靠的第三方電子合同平台
根據《電子簽名法》規定,使用可靠的電子簽名簽署的電子合同具備與手寫簽字或蓋章的紙質合同同等的法律效力。
根據《電子簽名法》規定,符合下列條件的,視為可靠的電子簽名:
1)電子簽名製作數據用於電子簽名時,屬於電子簽名人專有
2)簽署時電子簽名製作數據僅由電子簽名人控制
3)簽署後對電子簽名的任何改動能夠被發現
4)簽署後對數據電文內容和形式的任何改動能夠被發現
結合上述電子合同簽署過程,我們可歸納總結有效的電子合同應關注以下幾個核心點:內容保密性、內容防篡改、明確簽訂身份、明確簽訂時間。
同時,為保障電子合同作為書面形式的證據能力,合同簽署全程還應當由權威第三方機構存儲公證。
商務部在《電子合同在線訂立流程規范》指出:「通過第三方(電子合同服務提供商)的電子合同訂立系統中訂立電子合同,才能保證其過程的公正性和結果的有效性」。
Ⅲ 區塊鏈one 如何簽名驗證
【驗證簽名】
跳出驗證界面的,點擊左上角的返回按鍵,然後升級到最新版本,刷新一下節點就可以了。 或者重新卸載,用助記詞恢復賬號。【刷新節點】在自由溝通,右上角+號,「節點檢測"
Ⅳ 區塊鏈它是如何安全的
區塊鏈中的安全性來自一些屬性。
1.挖掘塊需要使用資源。
2.每個塊包含之前塊的哈希值。
想像一下,如果攻擊者想要通過改變5個街區之前的交易來改變鏈條。如果他們篡改了塊,則塊的哈希值會發生變化。然後攻擊者必須將指針從下一個塊更改為更改的塊,然後更改下一個塊的哈希值...這將一直持續到鏈的末尾。這意味著塊體在鏈條的後面越遠,其變化的阻力就越大。
實際上,攻擊者必須模擬整個網路的哈希能力,直到鏈的前端。然而,當攻擊者試圖攻擊時,鏈繼續向前移動。如果攻擊者的哈希值低於鏈的其餘部分(<50%),那麼他們將始終追趕並且永遠不會產生最長的鏈。因此,這種類型的區塊鏈可以抵禦攻擊,其中攻擊者的哈希值低於50%。
當攻擊者擁有51%的哈希值時,他們可以使用有效事務列表重寫網路歷史記錄。這是因為他們可以比網路的其他部分更快地重新計算任何塊排序的哈希值,因此它們最終可以保證更長的鏈。51%攻擊的主要危險是雙重花費的可能性。這簡單的意思是攻擊者可以購買一件物品並表明他們已經在區塊鏈上用任意數量的確認付款。一旦他們收到了該物品,他們就可以對區塊鏈進行重新排序,使其不包括發送交易,從而獲得退款。
即使攻擊者擁有>50%的哈希值,攻擊者也只能造成這么大的傷害。他們不能做諸如將錢從受害者的賬戶轉移到他們的賬戶或列印更多硬幣之類的事情。這是因為所有交易都由帳??戶所有者簽署,因此即使他們控制整個網路,也無法偽造帳戶簽名。
Ⅳ 區塊鏈網站如何做好安全防護的一些工作,遭受到攻擊時,應該如何解決
微三雲回答到:區塊鏈開發者們可以採取一些措施
一是使用專業的代碼審計服務,
二是了解安全編碼規范,防患於未然。
密碼演算法的安全性
隨著量子計算機的發展將會給現在使用的密碼體系帶來重大的安全威脅。區塊鏈主要依賴橢圓曲線公鑰加密演算法生成數字簽名來安全地交易,目前最常用的ECDSA、RSA、DSA 等在理論上都不能承受量子攻擊,將會存在較大的風險,越來越多的研究人員開始關注能夠抵抗量子攻擊的密碼演算法。
當然,除了改變演算法,還有一個方法可以提升一定的安全性:
參考比特幣對於公鑰地址的處理方式,降低公鑰泄露所帶來的潛在的風險。作為用戶,尤其是比特幣用戶,每次交易後的余額都採用新的地址進行存儲,確保有比特幣資金存儲的地址的公鑰不外泄。
共識機制的安全性
當前的共識機制有工作量證明(Proof of Work,PoW)、權益證明(Proof of Stake,PoS)、授權權益證明(Delegated Proof of Stake,DPoS)、實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)等。
Ⅵ 區塊鏈安全問題應該怎麼解決
區塊鏈項目(尤其是公有鏈)的一個特點是開源。通過開放源代碼,來提高項目的可信性,也使更多的人可以參與進來。但源代碼的開放也使得攻擊者對於區塊鏈系統的攻擊變得更加容易。近兩年就發生多起黑客攻擊事件,近日就有匿名幣Verge(XVG)再次遭到攻擊,攻擊者鎖定了XVG代碼中的某個漏洞,該漏洞允許惡意礦工在區塊上添加虛假的時間戳,隨後快速挖出新塊,短短的幾個小時內謀取了近價值175萬美元的數字貨幣。雖然隨後攻擊就被成功制止,然而沒人能夠保證未來攻擊者是否會再次出擊。
當然,區塊鏈開發者們也可以採取一些措施
一是使用專業的代碼審計服務,
二是了解安全編碼規范,防患於未然。
密碼演算法的安全性
隨著量子計算機的發展將會給現在使用的密碼體系帶來重大的安全威脅。區塊鏈主要依賴橢圓曲線公鑰加密演算法生成數字簽名來安全地交易,目前最常用的ECDSA、RSA、DSA 等在理論上都不能承受量子攻擊,將會存在較大的風險,越來越多的研究人員開始關注能夠抵抗量子攻擊的密碼演算法。
當然,除了改變演算法,還有一個方法可以提升一定的安全性:
參考比特幣對於公鑰地址的處理方式,降低公鑰泄露所帶來的潛在的風險。作為用戶,尤其是比特幣用戶,每次交易後的余額都採用新的地址進行存儲,確保有比特幣資金存儲的地址的公鑰不外泄。
共識機制的安全性
當前的共識機制有工作量證明(Proof of Work,PoW)、權益證明(Proof of Stake,PoS)、授權權益證明(Delegated Proof of Stake,DPoS)、實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)等。
PoW 面臨51%攻擊問題。由於PoW 依賴於算力,當攻擊者具備算力優勢時,找到新的區塊的概率將會大於其他節點,這時其具備了撤銷已經發生的交易的能力。需要說明的是,即便在這種情況下,攻擊者也只能修改自己的交易而不能修改其他用戶的交易(攻擊者沒有其他用戶的私鑰)。
在PoS 中,攻擊者在持有超過51%的Token 量時才能夠攻擊成功,這相對於PoW 中的51%算力來說,更加困難。
在PBFT 中,惡意節點小於總節點的1/3 時系統是安全的。總的來說,任何共識機制都有其成立的條件,作為攻擊者,還需要考慮的是,一旦攻擊成功,將會造成該系統的價值歸零,這時攻擊者除了破壞之外,並沒有得到其他有價值的回報。
對於區塊鏈項目的設計者而言,應該了解清楚各個共識機制的優劣,從而選擇出合適的共識機制或者根據場景需要,設計新的共識機制。
智能合約的安全性
智能合約具備運行成本低、人為干預風險小等優勢,但如果智能合約的設計存在問題,將有可能帶來較大的損失。2016 年6 月,以太坊最大眾籌項目The DAO 被攻擊,黑客獲得超過350 萬個以太幣,後來導致以太坊分叉為ETH 和ETC。
對此提出的措施有兩個方面:
一是對智能合約進行安全審計,
二是遵循智能合約安全開發原則。
智能合約的安全開發原則有:對可能的錯誤有所准備,確保代碼能夠正確的處理出現的bug 和漏洞;謹慎發布智能合約,做好功能測試與安全測試,充分考慮邊界;保持智能合約的簡潔;關注區塊鏈威脅情報,並及時檢查更新;清楚區塊鏈的特性,如謹慎調用外部合約等。
數字錢包的安全性
數字錢包主要存在三方面的安全隱患:第一,設計缺陷。2014 年底,某簽報因一個嚴重的隨機數問題(R 值重復)造成用戶丟失數百枚數字資產。第二,數字錢包中包含惡意代碼。第三,電腦、手機丟失或損壞導致的丟失資產。
應對措施主要有四個方面:
一是確保私鑰的隨機性;
二是在軟體安裝前進行散列值校驗,確保數字錢包軟體沒有被篡改過;
三是使用冷錢包;
四是對私鑰進行備份。
Ⅶ 為什麼說區塊鏈很安全
因為每個塊包含它自己的哈希值和前一個塊的哈希值,更改一個哈希值將使其餘的區塊鏈無效。
如果有區塊鏈方面的問題,歡迎私聊咨詢~~~~~
Ⅷ 區塊鏈使用安全如何來保證呢
區塊鏈本身解決的就是陌生人之間大規模協作問題,即陌生人在不需要彼此信任的情況下就可以相互協作。那麼如何保證陌生人之間的信任來實現彼此的共識機制呢?中心化的系統利用的是可信的第三方背書,比如銀行,銀行在老百姓看來是可靠的值得信任的機構,老百姓可以信賴銀行,由銀行解決現實中的糾紛問題。但是,去中心化的區塊鏈是如何保證信任的呢?
實際上,區塊鏈是利用現代密碼學的基礎原理來確保其安全機制的。密碼學和安全領域所涉及的知識體系十分繁雜,我這里只介紹與區塊鏈相關的密碼學基礎知識,包括Hash演算法、加密演算法、信息摘要和數字簽名、零知識證明、量子密碼學等。您可以通過這節課來了解運用密碼學技術下的區塊鏈如何保證其機密性、完整性、認證性和不可抵賴性。
基礎課程第七課 區塊鏈安全基礎知識
一、哈希演算法(Hash演算法)
哈希函數(Hash),又稱為散列函數。哈希函數:Hash(原始信息) = 摘要信息,哈希函數能將任意長度的二進制明文串映射為較短的(一般是固定長度的)二進制串(Hash值)。
一個好的哈希演算法具備以下4個特點:
1、 一一對應:同樣的明文輸入和哈希演算法,總能得到相同的摘要信息輸出。
2、 輸入敏感:明文輸入哪怕發生任何最微小的變化,新產生的摘要信息都會發生較大變化,與原來的輸出差異巨大。
3、 易於驗證:明文輸入和哈希演算法都是公開的,任何人都可以自行計算,輸出的哈希值是否正確。
4、 不可逆:如果只有輸出的哈希值,由哈希演算法是絕對無法反推出明文的。
5、 沖突避免:很難找到兩段內容不同的明文,而它們的Hash值一致(發生碰撞)。
舉例說明:
Hash(張三借給李四10萬,借期6個月) = 123456789012
賬本上記錄了123456789012這樣一條記錄。
可以看出哈希函數有4個作用:
簡化信息
很好理解,哈希後的信息變短了。
標識信息
可以使用123456789012來標識原始信息,摘要信息也稱為原始信息的id。
隱匿信息
賬本是123456789012這樣一條記錄,原始信息被隱匿。
驗證信息
假如李四在還款時欺騙說,張三隻借給李四5萬,雙方可以用哈希取值後與之前記錄的哈希值123456789012來驗證原始信息
Hash(張三借給李四5萬,借期6個月)=987654321098
987654321098與123456789012完全不同,則證明李四說謊了,則成功的保證了信息的不可篡改性。
常見的Hash演算法包括MD4、MD5、SHA系列演算法,現在主流領域使用的基本都是SHA系列演算法。SHA(Secure Hash Algorithm)並非一個演算法,而是一組hash演算法。最初是SHA-1系列,現在主流應用的是SHA-224、SHA-256、SHA-384、SHA-512演算法(通稱SHA-2),最近也提出了SHA-3相關演算法,如以太坊所使用的KECCAK-256就是屬於這種演算法。
MD5是一個非常經典的Hash演算法,不過可惜的是它和SHA-1演算法都已經被破解,被業內認為其安全性不足以應用於商業場景,一般推薦至少是SHA2-256或者更安全的演算法。
哈希演算法在區塊鏈中得到廣泛使用,例如區塊中,後一個區塊均會包含前一個區塊的哈希值,並且以後一個區塊的內容+前一個區塊的哈希值共同計算後一個區塊的哈希值,保證了鏈的連續性和不可篡改性。
二、加解密演算法
加解密演算法是密碼學的核心技術,從設計理念上可以分為兩大基礎類型:對稱加密演算法與非對稱加密演算法。根據加解密過程中所使用的密鑰是否相同來加以區分,兩種模式適用於不同的需求,恰好形成互補關系,有時也可以組合使用,形成混合加密機制。
對稱加密演算法(symmetric cryptography,又稱公共密鑰加密,common-key cryptography),加解密的密鑰都是相同的,其優勢是計算效率高,加密強度高;其缺點是需要提前共享密鑰,容易泄露丟失密鑰。常見的演算法有DES、3DES、AES等。
非對稱加密演算法(asymmetric cryptography,又稱公鑰加密,public-key cryptography),與加解密的密鑰是不同的,其優勢是無需提前共享密鑰;其缺點在於計算效率低,只能加密篇幅較短的內容。常見的演算法有RSA、SM2、ElGamal和橢圓曲線系列演算法等。 對稱加密演算法,適用於大量數據的加解密過程;不能用於簽名場景:並且往往需要提前分發好密鑰。非對稱加密演算法一般適用於簽名場景或密鑰協商,但是不適於大量數據的加解密。
三、信息摘要和數字簽名
顧名思義,信息摘要是對信息內容進行Hash運算,獲取唯一的摘要值來替代原始完整的信息內容。信息摘要是Hash演算法最重要的一個用途。利用Hash函數的抗碰撞性特點,信息摘要可以解決內容未被篡改過的問題。
數字簽名與在紙質合同上簽名確認合同內容和證明身份類似,數字簽名基於非對稱加密,既可以用於證明某數字內容的完整性,同時又可以確認來源(或不可抵賴)。
我們對數字簽名有兩個特性要求,使其與我們對手寫簽名的預期一致。第一,只有你自己可以製作本人的簽名,但是任何看到它的人都可以驗證其有效性;第二,我們希望簽名只與某一特定文件有關,而不支持其他文件。這些都可以通過我們上面的非對稱加密演算法來實現數字簽名。
在實踐中,我們一般都是對信息的哈希值進行簽名,而不是對信息本身進行簽名,這是由非對稱加密演算法的效率所決定的。相對應於區塊鏈中,則是對哈希指針進行簽名,如果用這種方式,前面的是整個結構,而非僅僅哈希指針本身。
四 、零知識證明(Zero Knowledge proof)
零知識證明是指證明者在不向驗證者提供任何額外信息的前提下,使驗證者相信某個論斷是正確的。
零知識證明一般滿足三個條件:
1、 完整性(Complteness):真實的證明可以讓驗證者成功驗證;
2、 可靠性(Soundness):虛假的證明無法讓驗證者通過驗證;
3、 零知識(Zero-Knowledge):如果得到證明,無法從證明過程中獲知證明信息之外的任何信息。
五、量子密碼學(Quantum cryptography)
隨著量子計算和量子通信的研究受到越來越多的關注,未來量子密碼學將對密碼學信息安全產生巨大沖擊。
量子計算的核心原理就是利用量子比特可以同時處於多個相干疊加態,理論上可以通過少量量子比特來表達大量信息,同時進行處理,大大提高計算速度。
這樣的話,目前的大量加密演算法,從理論上來說都是不可靠的,是可被破解的,那麼使得加密演算法不得不升級換代,否則就會被量子計算所攻破。
眾所周知,量子計算現在還僅停留在理論階段,距離大規模商用還有較遠的距離。不過新一代的加密演算法,都要考慮到這種情況存在的可能性。
Ⅸ 區塊鏈如何保證使用安全
區塊鏈項目(尤其是公有鏈)的一個特點是開源。通過開放源代碼,來提高項目的可信性,也使更多的人可以參與進來。但源代碼的開放也使得攻擊者對於區塊鏈系統的攻擊變得更加容易。近兩年就發生多起黑客攻擊事件,近日就有匿名幣Verge(XVG)再次遭到攻擊,攻擊者鎖定了XVG代碼中的某個漏洞,該漏洞允許惡意礦工在區塊上添加虛假的時間戳,隨後快速挖出新塊,短短的幾個小時內謀取了近價值175萬美元的數字貨幣。雖然隨後攻擊就被成功制止,然而沒人能夠保證未來攻擊者是否會再次出擊。
當然,區塊鏈開發者們也可以採取一些措施
一是使用專業的代碼審計服務,
二是了解安全編碼規范,防患於未然。
密碼演算法的安全性
隨著量子計算機的發展將會給現在使用的密碼體系帶來重大的安全威脅。區塊鏈主要依賴橢圓曲線公鑰加密演算法生成數字簽名來安全地交易,目前最常用的ECDSA、RSA、DSA 等在理論上都不能承受量子攻擊,將會存在較大的風險,越來越多的研究人員開始關注能夠抵抗量子攻擊的密碼演算法。
當然,除了改變演算法,還有一個方法可以提升一定的安全性:
參考比特幣對於公鑰地址的處理方式,降低公鑰泄露所帶來的潛在的風險。作為用戶,尤其是比特幣用戶,每次交易後的余額都採用新的地址進行存儲,確保有比特幣資金存儲的地址的公鑰不外泄。
共識機制的安全性
當前的共識機制有工作量證明(Proof of Work,PoW)、權益證明(Proof of Stake,PoS)、授權權益證明(Delegated Proof of Stake,DPoS)、實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)等。
PoW 面臨51%攻擊問題。由於PoW 依賴於算力,當攻擊者具備算力優勢時,找到新的區塊的概率將會大於其他節點,這時其具備了撤銷已經發生的交易的能力。需要說明的是,即便在這種情況下,攻擊者也只能修改自己的交易而不能修改其他用戶的交易(攻擊者沒有其他用戶的私鑰)。
在PoS 中,攻擊者在持有超過51%的Token 量時才能夠攻擊成功,這相對於PoW 中的51%算力來說,更加困難。
在PBFT 中,惡意節點小於總節點的1/3 時系統是安全的。總的來說,任何共識機制都有其成立的條件,作為攻擊者,還需要考慮的是,一旦攻擊成功,將會造成該系統的價值歸零,這時攻擊者除了破壞之外,並沒有得到其他有價值的回報。
對於區塊鏈項目的設計者而言,應該了解清楚各個共識機制的優劣,從而選擇出合適的共識機制或者根據場景需要,設計新的共識機制。
智能合約的安全性
智能合約具備運行成本低、人為干預風險小等優勢,但如果智能合約的設計存在問題,將有可能帶來較大的損失。2016 年6 月,以太坊最大眾籌項目The DAO 被攻擊,黑客獲得超過350 萬個以太幣,後來導致以太坊分叉為ETH 和ETC。
對此提出的措施有兩個方面:
一是對智能合約進行安全審計,
二是遵循智能合約安全開發原則。
智能合約的安全開發原則有:對可能的錯誤有所准備,確保代碼能夠正確的處理出現的bug 和漏洞;謹慎發布智能合約,做好功能測試與安全測試,充分考慮邊界;保持智能合約的簡潔;關注區塊鏈威脅情報,並及時檢查更新;清楚區塊鏈的特性,如謹慎調用外部合約等。
數字錢包的安全性
數字錢包主要存在三方面的安全隱患:第一,設計缺陷。2014 年底,某簽報因一個嚴重的隨機數問題(R 值重復)造成用戶丟失數百枚數字資產。第二,數字錢包中包含惡意代碼。第三,電腦、手機丟失或損壞導致的丟失資產。
應對措施主要有四個方面:
一是確保私鑰的隨機性;
二是在軟體安裝前進行散列值校驗,確保數字錢包軟體沒有被篡改過;
三是使用冷錢包;
四是對私鑰進行備份。