怒放的明天10星評價
2020-04-26 15:49:04
SHA(Secure Hash Algorithm),中文名為安全散列算法,是美國國家安全局 (NSA) 設計,美國國家標準與技術研究院(NIST) 發(fā)布的一系列密碼散列函數,包括 SHA-1.SHA-224.SHA-256.SHA-384 和 SHA-512 等變體。主要適用于數字簽名標準(DigitalSignature Standard DSS)里面定義的數字簽名算法(Digital Signature Algorithm DSA)。而比特幣開發(fā)使用橢圓曲線算法生成公鑰和私鑰,選擇的是SHA-256.
安全散列算法生成的公鑰是33字節(jié)的大數,私鑰是32字節(jié)的大數,錢包文件wallet.dat中直接保存了公鑰和私鑰。我們在接收和發(fā)送比特幣時用到的比特幣地址是公鑰經過算法處理后得到的,具體過程是公鑰先經過安全散列算法算法處理得到32字節(jié)的哈希結果,再經過RIPEMED算法處理后得到20字節(jié)的摘要結果,再經過字符轉換過程得到我們看到的地址。
這個字符轉換過程與私鑰的字符轉換過程完成相同,步驟是先把輸入的內容(對于公鑰就是20字節(jié)的摘要結果,對于私鑰就是32字節(jié)的大數)增加版本號,經過連續(xù)兩次安全散列算法算法,取后一次哈希結果的前4字節(jié)作為校驗碼附在輸入內容的后面,然后再經過Base58編碼,得到字符串。
非凡1星評價
2020-04-26 15:53:09
當新礦工開始學習區(qū)塊鏈知識的時候,都會聽到HASH(哈希算法),這似乎是無處不在的安全性保證。比特幣作為首個SHA-256網絡在2009年正式誕生,與隨后涌現的大量SHA-256網絡共同實現了百億億次級(exascale)計算能力。
而比特幣挖礦其實就是礦工通過計算設備完成由SHA-256加密的復雜數學題,題干是需要被記錄的交易,大家通過做題搶奪記賬權,搶到的礦工就能獲得系統獎勵和交易手續(xù)費。
關于SHA-256
SHA (Secure HashAlgorithm,譯作安全散列算法) 是美國國家安全局 (NSA) 設計,美國國家標準與技術研究院 (NIST) 發(fā)布的一系列密碼散列函數,經歷了SHA-0,SHA-1,SHA-2,SHA-3系列發(fā)展。
比特幣采用的SHA-256算法則屬于SHA-2系列,在中本聰發(fā)明比特幣時(2008)被公認為最安全最先進的算法之一。除了生成地址中有一個環(huán)節(jié)使用了REPID-160算法,比特幣系統中但凡有需要做Hash運算的地方都是用SHA25。
SHA256算法的特點是已知答案驗證正確很容易,但是要得到答案非常麻煩,需要一個一個數字去試。最先得到答案的礦工即搶到了記賬權,獎勵就歸他了。其他礦工便繼續(xù)搶下一題的記賬權。
SHA-256如何保證安全不被篡改
比特幣本身是個公開的賬本,每一個區(qū)塊就是一頁賬,從第一頁開始,每一頁上都有一個這樣的哈希值。每一頁的哈希值,都是由上一頁的哈希值和剩下的信息通過SHA256得到的結果。如果有人修改之前的賬目,那么從他修改的下一頁賬開始,每一頁的哈希值都會完全不同,會被所有人一眼看穿。這樣被修改過的賬本,無法得到51%以上的人承認,就無法寫入區(qū)塊中,因此修改是無效的。這樣的設計,就保證了比特幣這個分布式賬本的不可篡改性。
以現在的計算機破解SHA-256需要消耗極大的資源,因此無法獲得利益。數次的黑客攻擊事件,并不是攻破了由于比特幣網絡本身,而是交易所和一些個人。SHA-256這套算法的安全性是被世界各國密碼學家所廣泛承認的,在量子計算機普及之前,SHA-256還是相對來說目前最安全的加密算法。