㈠ 什麼是公鑰、私鑰、密碼、助記詞、Keystore
1. 公鑰:相當於數字貨幣錢包的地址,可以理解為銀行賬戶。公鑰的地址是由公鑰通過計算得來,類似於銀行開戶後給您的銀行卡號。錢包地址主要用於接收款項,也可作為轉賬的憑證,類似於別人向您匯款時需要知道您的銀行卡卡號。常見的錢包地址樣式包括比特幣的普通地址(以1開頭)、隔離見證地址(以3開頭)、以太坊地址(以0x開頭,包括基於以太坊平台的代幣)以及瑞波幣地址(以r開頭)和萊特幣地址(以L開頭)。
2. 私鑰:非常重要,可以看作是銀行卡號加上銀行卡密碼。創建錢包時,輸入密碼即可導出私鑰。私鑰由字母和數字組成的字元串構成,每個錢包地址只有一個私鑰,且不可更改。私鑰應當離線保存,避免進行網路傳輸,最好將其記錄在紙上保存。私鑰的主要用途是在同系列的任何一款錢包上導入資產,類似於您在丟失手機後,只要有私鑰就可以恢復錢包。
3. 密碼:相當於銀行卡密碼。在創建數字貨幣錢包時,需要設置一個不少於8個字元的密碼。密碼主要用於兩個方面:一是在轉賬時需要輸入密碼,類似於使用銀行卡給他人轉賬時需要輸入密碼;二是當使用Keystore文件導入錢包時,必須輸入這個密碼。密碼可以進行修改或重置,如果您忘記原密碼,可以使用私鑰或助記詞導入錢包,並設置新的密碼。
4. 助記詞:等於私鑰,也可以理解為銀行卡號加上銀行卡密碼。由於私鑰由64位字元串組成,不便於記錄,非常容易抄錯,因此推出了助記詞,方便用戶記憶和記錄。助記詞由12個單片語成,每個單詞之間用空格分隔。一個錢包地址只有一套助記詞,且不能修改。助記詞備份後,在錢包中便不會顯示,因此務必在備份時仔細抄寫,防止抄寫錯誤,並多次核對。
5. Keystore:Keystore加上密碼等於私鑰,但Keystore不等同於銀行卡號。Keystore文件相當於加密後的私鑰。在導入錢包時,只需輸入Keystore文件和密碼即可。與使用私鑰或助記詞導入錢包不同,後者不需要原密碼,可以直接重置密碼。每個Keystore文件都有一個對應的密碼,且密碼無法更改。但是,可以通過錢包的助記詞重新生成Keystore文件,新文件可以用新的密碼生成。生成新Keystore後,最好刪除舊的Keystore文件以保證安全。
總結:數字貨幣錢包創建後,公鑰和私鑰是成對出現的,它們都是由字母和數字組成的字元串。Keystore文件和助記詞可以視為私鑰的另一種表現形式。助記詞作為錢包私鑰的友好格式,非常便於備份和導入。錢包地址可以通過私鑰、助記詞或Keystore加密碼導入錢包找回。密碼可以通過私鑰、助記詞導入錢包並重置。如果私鑰、助記詞或Keystore加密碼中的任何信息泄露,別人就可以控制您的錢包,裡面的幣就會被轉移走。私鑰可以推導出公鑰,公鑰可以推導出地址,但無法通過地址或公鑰推導出私鑰。
在生活中,銀行開戶是先開設賬戶,然後得到卡號和設置密碼。在數字貨幣領域,則是先設置密碼(私鑰),然後得到賬戶地址(公鑰),最後是地址。在錢包安全管理方面,主要要注意防盜和防丟。防止私鑰泄露或丟失。注意事項包括:不要泄露私鑰、助記詞或Keystore加密碼的信息;重視備份,並進行多次驗證以防止錯誤;避免在線備份或通過第三方工具傳輸您的錢包密鑰;將備份內容放在安全的地方,並告知家人以防不測。數字貨幣錢包的主要作用是安全存儲資產,這是最重要的。在投資錢包時,應當注重資產的安全和私密性,避免投資失敗導致損失。
㈡ 什麼是公鑰、私鑰、密碼、助記詞、Keystore
公鑰、私鑰、密碼、助記詞、Keystore是在使用數字貨幣錢包時,必須要弄清的概念:如果不搞清楚,很可能會造成數字資產的嚴重損失。
1.公鑰:
相當於所屬錢包的地址,可理解成銀行賬戶。
公鑰的地址可理解成銀行卡號,是由公鑰通過計算得來,就像銀行先給你開戶,後給你銀行卡卡號。
錢包地址的主要用途是收款,也可以作為轉賬的憑證,就像別人匯款給你時你需要告訴他銀行卡卡號一樣。
常見的錢包地址樣式:
比特幣:普通地址:1開頭、隔離見證地址:3開頭
以太坊地址:0x開頭:(包括基於以太坊平台代幣)瑞波幣地址:r開頭。
萊特幣地址:L開頭。
2.私鑰:
非常重要,相當於銀行卡號+銀行卡密碼。
創建錢包後,輸入密碼即可導出私鑰。私鑰是由字母數字組成的字元串,一個錢包地址只有一個私鑰且不能修改。私鑰要離線保存,不要進行網路傳輸,可用紙張記錄並保存。
主要用途,導入錢包。有了私鑰就可以在同系列的任何一款錢包上,輸入私鑰並設置一個新的密碼就可以把之前的A錢包的資產導入B錢包。比如手機丟了,只要你有私鑰就可以恢復。
3.密碼 :
相當於銀行卡密碼。
在創建數字貨幣錢包時,需要設置一個密碼,一般要求不少於8個字元。
主要用途:①轉賬時需要輸入密碼,可理解成你用銀行卡給別人轉賬需要輸入密碼;②用Keystore導入錢包時,必須輸入這個密碼。
密碼可以進行修改或重置。輸入原密碼後,就可以直接修改新的密碼了;但如果原密碼忘記,可以用私鑰或是助記詞導入錢包,同時設置新的密碼。數字貨幣錢包中,一個錢包在不同手機上可以用不同的密碼,彼此相互獨立,互不影響。
4.助記詞
等於私鑰=銀行卡號+銀行卡密碼
由於私鑰由64位字元串組成,不便於記錄,非常容易抄錯,於是就出現了助記詞,方便用戶記憶和記錄。由12個單片語成,每個單詞之間有一個空格,助記詞和私鑰具有同樣的功能:只要輸入助記詞並設置一個新的密碼,就可以導入錢包。
一個錢包只有一套助記詞且不能修改。助記詞只能備份一次,備份後,在錢包中便不會再顯示。因此,在備份時一定要抄寫下來,防止抄寫錯誤,盡量多次檢驗。
5.Keystore:
Keystore+密碼=私鑰=銀行卡號+銀行卡密碼、Keystore ≠ 銀行卡號
Keystore相當於加密過後的私鑰,在導入錢包時,只要輸入Keystore 和密碼,就能進入錢包了。這一點和用私鑰或助記詞導入錢包不一樣,後兩者不需要知道原密碼,而是直接重置密碼。
keystore進行交易轉賬等錢包操作,必須知道該keystore的密碼。keystore的密碼是無法更改的,一個keystore對應一個密碼。但是可以通過該錢包的助記詞,重新生成一個keystore。這個keystore可以用新的密碼生成,重新生成新的keystore之後,最好將舊的keystore刪除。
總結:
一個數字貨幣錢包創建完成後,公鑰和私鑰是成對出現的。公鑰,私鑰都是由字母,數字組成的較長的字元串。
keystore和助記詞可以理解為私鑰的另一種表現形式。助記詞作為錢包私鑰的友好格式,非常方便備份和導入。
地址可以通過私鑰、助記詞、keystore+密碼,導入錢包找回。密碼可以通過私鑰、助記詞,導入錢包重置密碼。如果私鑰、助記詞、Keystore+密碼,有一個信息泄漏,別人就可以擁有你錢包的控制權,錢包內的幣就會被別人轉移走。
私鑰通過加密生成公鑰,公鑰轉換一下格式生成地址。私鑰可以推導出公鑰,公鑰可以推導出地址,但無法通過輸出地址、公鑰推導出私鑰。
在生活中,銀行開戶是「開設銀行賬戶—銀行卡號—設置銀行卡密碼—開戶成功
在幣圈裡,是先設置「密碼」(私鑰),再得到「銀行賬戶」(公鑰),最後給地址。對於錢包安全管理,主要注意防盜和防丟。防止私鑰泄露及丟失。
注意事項:
1.關於各種騙局誘導交出私鑰、助記詞的行為,都要謹慎操作;
2.重視私鑰、助記詞、Keystore+密碼的備份和保存!多重備份,多次備份,多重驗證,防止抄寫錯誤。
3.私鑰不好備份的情況下,可選用備份助記詞,具體根據錢包的備份要求。
4.不要進行聯網備份,或通過微信、qq、郵箱等任何第三方工具進行傳輸發送你的私鑰、助記詞、keystore。不要截圖。
5.備份內容放到安全、妥善的地方,並告訴家人(以防突發事故發生)
數字貨幣錢包的作用是安全存儲資產,這是最重要的!從投資紀律來講,本金安全是一切的基礎。對於理財類的錢包,聲稱賺取收益高回報等,應該叫「數字資產理財」更恰當。你的資產他們可以隨意動用拿去投資。你對資產沒有完全的掌控權,如果投資順利,本息安全,如果投資失敗,血本無歸。所以,請慎重使用這類錢包,應該注重的是資產的安全和私密性。
㈢ imtoken錢包是什麼
1、imtoken是區塊鏈數字貨幣錢包。imtoken為廣大區塊鏈領域的用戶提供安全、便捷的數字資產服務。imtoken是基於ERC20的錢包,BTC等非ERC20的幣種是無法存儲的。中國國內是禁止對中國公民銷售數字貨幣。imtoken的所有操作都是不可逆的,用戶一定要保管好自己的私鑰,在交易的時候,需要仔細核對收款人地址,避免丟失或者誤打款的情況。如果出現了丟失或者誤打款的情況,用戶無法聯系imtoken客服解決問題。
imtoken支持多鏈,imtoken能夠幫助用戶管理在區塊鏈上的賬戶和資產。在區塊鏈的世界中,錢包是用於幫助用戶管理鏈上資產和數據的工具。
2、imtoken通過一組助記詞,為用戶創建數字身份。數字身份可以同時管理多鏈錢包,數據加密並去中心化存儲。imtoken需要使用海外Apple ID登錄App Store,搜索安裝。創建數字身份後,同時對應生成多鏈錢包。備份身份時抄寫的一組助記詞,導入到imtoken的各公鏈錢包中。區塊鏈錢包不同於傳統的錢包,用戶需要謹慎選擇。
拓展資料
由於目前95%以上的項目所發行的代幣均為採用以太坊ERC20標准發行的代幣,因此收幣時需要使用以太坊錢包的錢包地址來收幣。考慮到目前國內的實際情況以及現有錢包軟體的普及程度,本人推薦imToken。
1、風險測評
點擊創建錢包。首先是一個風險測評的頁面。
2、備份私鑰(助記詞與Keystore)
在完成測評後,就可以創建新錢包了。在設置了錢包名稱,錢包支付密碼創建完錢包之後,第一步就是備份助記詞與備份Keystore。這個步驟非常重要,相信你在認真做完上面的風險測評後,應該了解助記詞和Keystore可以幫助你恢復錢包,因此需要選擇合適的方式來備份,並且最好是離線備份,比如昨天大毛文章中提到的:最好離線保存——放到不聯網的電腦、加密的U盤或者移動硬碟上,同時雞蛋不要放到同一個籃子里,大毛自己的私鑰通常會備份在2-3個地方。
3、了解錢包地址
備份完成後,你的錢包就可以使用了。同時你也獲取了一個全新的錢包地址。你可以用這個錢包地址來接受你參投項目所獲得的代幣。如果通過你是通過代投方式參與,那記得點擊「復制收款地址」將這個錢包地址發送給代投方。
㈣ 如何找到區塊鏈的密碼,區塊鏈的密鑰是什麼
【深度知識】區塊鏈之加密原理圖示(加密,簽名)先放一張以太坊的架構圖:
在學習的過程中主要是採用單個模塊了學習了解的,包括P2P,密碼學,網路,協議等。直接開始總結:
秘鑰分配問題也就是秘鑰的傳輸問題,如果對稱秘鑰,那麼只能在線下進行秘鑰的交換。如果在線上傳輸秘鑰,那就有可能被攔截。所以採用非對稱加密,兩把鑰匙,一把私鑰自留,一把公鑰公開。公鑰可以在網上傳輸。不用線下交易。保證數據的安全性。
如上圖,A節點發送數據到B節點,此時採用公鑰加密。A節點從自己的公鑰中獲取到B節點的公鑰對明文數據加密,得到密文發送給B節點。而B節點採用自己的私鑰解密。
2、無法解決消息篡改。
如上圖,A節點採用B的公鑰進行加密,然後將密文傳輸給B節點。B節點拿A節點的公鑰將密文解密。
1、由於A的公鑰是公開的,一旦網上黑客攔截消息,密文形同虛設。說白了,這種加密方式,只要攔截消息,就都能解開。
2、同樣存在無法確定消息來源的問題,和消息篡改的問題。
如上圖,A節點在發送數據前,先用B的公鑰加密,得到密文1,再用A的私鑰對密文1加密得到密文2。而B節點得到密文後,先用A的公鑰解密,得到密文1,之後用B的私鑰解密得到明文。
1、當網路上攔截到數據密文2時,由於A的公鑰是公開的,故可以用A的公鑰對密文2解密,就得到了密文1。所以這樣看起來是雙重加密,其實最後一層的私鑰簽名是無效的。一般來講,我們都希望簽名是簽在最原始的數據上。如果簽名放在後面,由於公鑰是公開的,簽名就缺乏安全性。
2、存在性能問題,非對稱加密本身效率就很低下,還進行了兩次加密過程。
如上圖,A節點先用A的私鑰加密,之後用B的公鑰加密。B節點收到消息後,先採用B的私鑰解密,然後再利用A的公鑰解密。
1、當密文數據2被黑客攔截後,由於密文2隻能採用B的私鑰解密,而B的私鑰只有B節點有,其他人無法機密。故安全性最高。
2、當B節點解密得到密文1後,只能採用A的公鑰來解密。而只有經過A的私鑰加密的數據才能用A的公鑰解密成功,A的私鑰只有A節點有,所以可以確定數據是由A節點傳輸過來的。
經兩次非對稱加密,性能問題比較嚴重。
基於以上篡改數據的問題,我們引入了消息認證。經過消息認證後的加密流程如下:
當A節點發送消息前,先對明文數據做一次散列計算。得到一個摘要,之後將照耀與原始數據同時發送給B節點。當B節點接收到消息後,對消息解密。解析出其中的散列摘要和原始數據,然後再對原始數據進行一次同樣的散列計算得到摘要1,比較摘要與摘要1。如果相同則未被篡改,如果不同則表示已經被篡改。
在傳輸過程中,密文2隻要被篡改,最後導致的hash與hash1就會產生不同。
無法解決簽名問題,也就是雙方相互攻擊。A對於自己發送的消息始終不承認。比如A對B發送了一條錯誤消息,導致B有損失。但A抵賴不是自己發送的。
在(三)的過程中,沒有辦法解決交互雙方相互攻擊。什麼意思呢?有可能是因為A發送的消息,對A節點不利,後來A就抵賴這消息不是它發送的。
為了解決這個問題,故引入了簽名。這里我們將(二)-4中的加密方式,與消息簽名合並設計在一起。
在上圖中,我們利用A節點的私鑰對其發送的摘要信息進行簽名,然後將簽名+原文,再利用B的公鑰進行加密。而B得到密文後,先用B的私鑰解密,然後對摘要再用A的公鑰解密,只有比較兩次摘要的內容是否相同。這既避免了防篡改問題,有規避了雙方攻擊問題。因為A對信息進行了簽名,故是無法抵賴的。
為了解決非對稱加密數據時的性能問題,故往往採用混合加密。這里就需要引入對稱加密,如下圖:
在對數據加密時,我們採用了雙方共享的對稱秘鑰來加密。而對稱秘鑰盡量不要在網路上傳輸,以免丟失。這里的共享對稱秘鑰是根據自己的私鑰和對方的公鑰計算出的,然後適用對稱秘鑰對數據加密。而對方接收到數據時,也計算出對稱秘鑰然後對密文解密。
以上這種對稱秘鑰是不安全的,因為A的私鑰和B的公鑰一般短期內固定,所以共享對稱秘鑰也是固定不變的。為了增強安全性,最好的方式是每次交互都生成一個臨時的共享對稱秘鑰。那麼如何才能在每次交互過程中生成一個隨機的對稱秘鑰,且不需要傳輸呢?
那麼如何生成隨機的共享秘鑰進行加密呢?
對於發送方A節點,在每次發送時,都生成一個臨時非對稱秘鑰對,然後根據B節點的公鑰和臨時的非對稱私鑰可以計算出一個對稱秘鑰(KA演算法-KeyAgreement)。然後利用該對稱秘鑰對數據進行加密,針對共享秘鑰這里的流程如下:
對於B節點,當接收到傳輸過來的數據時,解析出其中A節點的隨機公鑰,之後利用A節點的隨機公鑰與B節點自身的私鑰計算出對稱秘鑰(KA演算法)。之後利用對稱秘鑰機密數據。
對於以上加密方式,其實仍然存在很多問題,比如如何避免重放攻擊(在消息中加入Nonce),再比如彩虹表(參考KDF機制解決)之類的問題。由於時間及能力有限,故暫時忽略。
那麼究竟應該採用何種加密呢?
主要還是基於要傳輸的數據的安全等級來考量。不重要的數據其實做好認證和簽名就可以,但是很重要的數據就需要採用安全等級比較高的加密方案了。
密碼套件是一個網路協議的概念。其中主要包括身份認證、加密、消息認證(MAC)、秘鑰交換的演算法組成。
在整個網路的傳輸過程中,根據密碼套件主要分如下幾大類演算法:
秘鑰交換演算法:比如ECDHE、RSA。主要用於客戶端和服務端握手時如何進行身份驗證。
消息認證演算法:比如SHA1、SHA2、SHA3。主要用於消息摘要。
批量加密演算法:比如AES,主要用於加密信息流。
偽隨機數演算法:例如TLS1.2的偽隨機函數使用MAC演算法的散列函數來創建一個主密鑰——連接雙方共享的一個48位元組的私鑰。主密鑰在創建會話密鑰(例如創建MAC)時作為一個熵來源。
在網路中,一次消息的傳輸一般需要在如下4個階段分別進行加密,才能保證消息安全、可靠的傳輸。
握手/網路協商階段:
在雙方進行握手階段,需要進行鏈接的協商。主要的加密演算法包括RSA、DH、ECDH等
身份認證階段:
身份認證階段,需要確定發送的消息的來源來源。主要採用的加密方式包括RSA、DSA、ECDSA(ECC加密,DSA簽名)等。
消息加密階段:
消息加密指對發送的信息流進行加密。主要採用的加密方式包括DES、RC4、AES等。
消息身份認證階段/防篡改階段:
主要是保證消息在傳輸過程中確保沒有被篡改過。主要的加密方式包括MD5、SHA1、SHA2、SHA3等。
ECC:EllipticCurvesCryptography,橢圓曲線密碼編碼學。是一種根據橢圓上點倍積生成公鑰、私鑰的演算法。用於生成公私秘鑰。
ECDSA:用於數字簽名,是一種數字簽名演算法。一種有效的數字簽名使接收者有理由相信消息是由已知的發送者創建的,從而發送者不能否認已經發送了消息(身份驗證和不可否認),並且消息在運輸過程中沒有改變。ECDSA簽名演算法是ECC與DSA的結合,整個簽名過程與DSA類似,所不一樣的是簽名中採取的演算法為ECC,最後簽名出來的值也是分為r,s。主要用於身份認證階段。
ECDH:也是基於ECC演算法的霍夫曼樹秘鑰,通過ECDH,雙方可以在不共享任何秘密的前提下協商出一個共享秘密,並且是這種共享秘鑰是為當前的通信暫時性的隨機生成的,通信一旦中斷秘鑰就消失。主要用於握手磋商階段。
ECIES:是一種集成加密方案,也可稱為一種混合加密方案,它提供了對所選擇的明文和選擇的密碼文本攻擊的語義安全性。ECIES可以使用不同類型的函數:秘鑰協商函數(KA),秘鑰推導函數(KDF),對稱加密方案(ENC),哈希函數(HASH),H-MAC函數(MAC)。
ECC是橢圓加密演算法,主要講述了按照公私鑰怎麼在橢圓上產生,並且不可逆。ECDSA則主要是採用ECC演算法怎麼來做簽名,ECDH則是採用ECC演算法怎麼生成對稱秘鑰。以上三者都是對ECC加密演算法的應用。而現實場景中,我們往往會採用混合加密(對稱加密,非對稱加密結合使用,簽名技術等一起使用)。ECIES就是底層利用ECC演算法提供的一套集成(混合)加密方案。其中包括了非對稱加密,對稱加密和簽名的功能。
metacharset="utf-8"
這個先訂條件是為了保證曲線不包含奇點。
所以,隨著曲線參數a和b的不斷變化,曲線也呈現出了不同的形狀。比如:
所有的非對稱加密的基本原理基本都是基於一個公式K=kG。其中K代表公鑰,k代表私鑰,G代表某一個選取的基點。非對稱加密的演算法就是要保證該公式不可進行逆運算(也就是說G/K是無法計算的)。*
ECC是如何計算出公私鑰呢?這里我按照我自己的理解來描述。
我理解,ECC的核心思想就是:選擇曲線上的一個基點G,之後隨機在ECC曲線上取一個點k(作為私鑰),然後根據kG計算出我們的公鑰K。並且保證公鑰K也要在曲線上。*
那麼kG怎麼計算呢?如何計算kG才能保證最後的結果不可逆呢?這就是ECC演算法要解決的。
首先,我們先隨便選擇一條ECC曲線,a=-3,b=7得到如下曲線:
在這個曲線上,我隨機選取兩個點,這兩個點的乘法怎麼算呢?我們可以簡化下問題,乘法是都可以用加法表示的,比如22=2+2,35=5+5+5。那麼我們只要能在曲線上計算出加法,理論上就能算乘法。所以,只要能在這個曲線上進行加法計算,理論上就可以來計算乘法,理論上也就可以計算k*G這種表達式的值。
曲線上兩點的加法又怎麼算呢?這里ECC為了保證不可逆性,在曲線上自定義了加法體系。
現實中,1+1=2,2+2=4,但在ECC演算法里,我們理解的這種加法體系是不可能。故需要自定義一套適用於該曲線的加法體系。
ECC定義,在圖形中隨機找一條直線,與ECC曲線相交於三個點(也有可能是兩個點),這三點分別是P、Q、R。
那麼P+Q+R=0。其中0不是坐標軸上的0點,而是ECC中的無窮遠點。也就是說定義了無窮遠點為0點。
同樣,我們就能得出P+Q=-R。由於R與-R是關於X軸對稱的,所以我們就能在曲線上找到其坐標。
P+R+Q=0,故P+R=-Q,如上圖。
以上就描述了ECC曲線的世界裡是如何進行加法運算的。
從上圖可看出,直線與曲線只有兩個交點,也就是說直線是曲線的切線。此時P,R重合了。
也就是P=R,根據上述ECC的加法體系,P+R+Q=0,就可以得出P+R+Q=2P+Q=2R+Q=0
於是乎得到2P=-Q(是不是與我們非對稱演算法的公式K=kG越來越近了)。
於是我們得出一個結論,可以算乘法,不過只有在切點的時候才能算乘法,而且只能算2的乘法。
假若2可以變成任意個數進行想乘,那麼就能代表在ECC曲線里可以進行乘法運算,那麼ECC演算法就能滿足非對稱加密演算法的要求了。
那麼我們是不是可以隨機任何一個數的乘法都可以算呢?答案是肯定的。也就是點倍積計算方式。
選一個隨機數k,那麼k*P等於多少呢?
我們知道在計算機的世界裡,所有的都是二進制的,ECC既然能算2的乘法,那麼我們可以將隨機數k描述成二進制然後計算。假若k=151=10010111
由於2P=-Q所以這樣就計算出了kP。這就是點倍積演算法。所以在ECC的曲線體系下是可以來計算乘法,那麼以為這非對稱加密的方式是可行的。
至於為什麼這樣計算是不可逆的。這需要大量的推演,我也不了解。但是我覺得可以這樣理解:
我們的手錶上,一般都有時間刻度。現在如果把1990年01月01日0點0分0秒作為起始點,如果告訴你至起始點為止時間流逝了整1年,那麼我們是可以計算出現在的時間的,也就是能在手錶上將時分秒指針應該指向00:00:00。但是反過來,我說現在手錶上的時分秒指針指向了00:00:00,你能告訴我至起始點算過了有幾年了么?
ECDSA簽名演算法和其他DSA、RSA基本相似,都是採用私鑰簽名,公鑰驗證。只不過演算法體系採用的是ECC的演算法。交互的雙方要採用同一套參數體系。簽名原理如下:
在曲線上選取一個無窮遠點為基點G=(x,y)。隨機在曲線上取一點k作為私鑰,K=k*G計算出公鑰。
簽名過程:
生成隨機數R,計算出RG.
根據隨機數R,消息M的HASH值H,以及私鑰k,計算出簽名S=(H+kx)/R.
將消息M,RG,S發送給接收方。
簽名驗證過程:
接收到消息M,RG,S
根據消息計算出HASH值H
根據發送方的公鑰K,計算HG/S+xK/S,將計算的結果與RG比較。如果相等則驗證成功。
公式推論:
HG/S+xK/S=HG/S+x(kG)/S=(H+xk)/GS=RG
在介紹原理前,說明一下ECC是滿足結合律和交換律的,也就是說A+B+C=A+C+B=(A+C)+B。
這里舉一個WIKI上的例子說明如何生成共享秘鑰,也可以參考AliceAndBob的例子。
Alice與Bob要進行通信,雙方前提都是基於同一參數體系的ECC生成的公鑰和私鑰。所以有ECC有共同的基點G。
生成秘鑰階段:
Alice採用公鑰演算法KA=ka*G,生成了公鑰KA和私鑰ka,並公開公鑰KA。
Bob採用公鑰演算法KB=kb*G,生成了公鑰KB和私鑰kb,並公開公鑰KB。
計算ECDH階段:
Alice利用計算公式Q=ka*KB計算出一個秘鑰Q。
Bob利用計算公式Q'=kb*KA計算出一個秘鑰Q'。
共享秘鑰驗證:
Q=kaKB=ka*kb*G=ka*G*kb=KA*kb=kb*KA=Q'
故雙方分別計算出的共享秘鑰不需要進行公開就可採用Q進行加密。我們將Q稱為共享秘鑰。
在以太坊中,採用的ECIEC的加密套件中的其他內容:
1、其中HASH演算法採用的是最安全的SHA3演算法Keccak。
2、簽名演算法採用的是ECDSA
3、認證方式採用的是H-MAC
4、ECC的參數體系採用了secp256k1,其他參數體系參考這里
H-MAC全程叫做Hash-.其模型如下:
在以太坊的UDP通信時(RPC通信加密方式不同),則採用了以上的實現方式,並擴展化了。
首先,以太坊的UDP通信的結構如下:
其中,sig是經過私鑰加密的簽名信息。mac是可以理解為整個消息的摘要,ptype是消息的事件類型,data則是經過RLP編碼後的傳輸數據。
其UDP的整個的加密,認證,簽名模型如下:
區塊鏈密碼演算法是怎樣的?
區塊鏈作為新興技術受到越來越廣泛的關注,是一種傳統技術在互聯網時代下的新的應用,這其中包括分布式數據存儲技術、共識機制和密碼學等。隨著各種區塊鏈研究聯盟的創建,相關研究得到了越來越多的資金和人員支持。區塊鏈使用的Hash演算法、零知識證明、環簽名等密碼演算法:
Hash演算法
哈希演算法作為區塊鏈基礎技術,Hash函數的本質是將任意長度(有限)的一組數據映射到一組已定義長度的數據流中。若此函數同時滿足:
(1)對任意輸入的一組數據Hash值的計算都特別簡單;
(2)想要找到2個不同的擁有相同Hash值的數據是計算困難的。
滿足上述兩條性質的Hash函數也被稱為加密Hash函數,不引起矛盾的情況下,Hash函數通常指的是加密Hash函數。對於Hash函數,找到使得被稱為一次碰撞。當前流行的Hash函數有MD5,SHA1,SHA2,SHA3。
比特幣使用的是SHA256,大多區塊鏈系統使用的都是SHA256演算法。所以這里先介紹一下SHA256。
1、SHA256演算法步驟
STEP1:附加填充比特。對報文進行填充使報文長度與448模512同餘(長度=448mod512),填充的比特數范圍是1到512,填充比特串的最高位為1,其餘位為0。
STEP2:附加長度值。將用64-bit表示的初始報文(填充前)的位長度附加在步驟1的結果後(低位位元組優先)。
STEP3:初始化緩存。使用一個256-bit的緩存來存放該散列函數的中間及最終結果。
STEP4:處理512-bit(16個字)報文分組序列。該演算法使用了六種基本邏輯函數,由64步迭代運算組成。每步都以256-bit緩存值為輸入,然後更新緩存內容。每步使用一個32-bit常數值Kt和一個32-bitWt。其中Wt是分組之後的報文,t=1,2,...,16。
STEP5:所有的512-bit分組處理完畢後,對於SHA256演算法最後一個分組產生的輸出便是256-bit的報文。
作為加密及簽名體系的核心演算法,哈希函數的安全性事關整個區塊鏈體系的底層安全性。所以關注哈希函數的研究現狀是很有必要的。
2、Hash函的研究現狀
2004年我國密碼學家王小雲在國際密碼討論年會(CRYPTO)上展示了MD5演算法的碰撞並給出了第一個實例(CollisionsforhashfunctionsMD4,MD5,HAVAL-128andRIPEMD,rumpsessionofCRYPTO2004,,EuroCrypt2005)。該攻擊復雜度很低,在普通計算機上只需要幾秒鍾的時間。2005年王小雲教授與其同事又提出了對SHA-1演算法的碰撞演算法,不過計算復雜度為2的63次方,在實際情況下難以實現。
2017年2月23日谷歌安全博客上發布了世界上第一例公開的SHA-1哈希碰撞實例,在經過兩年的聯合研究和花費了巨大的計算機時間之後,研究人員在他們的研究網站SHAttered上給出了兩個內容不同,但是具有相同SHA-1消息摘要的PDF文件,這就意味著在理論研究長期以來警示SHA-1演算法存在風險之後,SHA-1演算法的實際攻擊案例也浮出水面,同時也標志著SHA-1演算法終於走向了生命的末期。
NIST於2007年正式宣布在全球范圍內徵集新的下一代密碼Hash演算法,舉行SHA-3競賽。新的Hash演算法將被稱為SHA-3,並且作為新的安全Hash標准,增強現有的FIPS180-2標准。演算法提交已於2008年10月結束,NIST分別於2009年和2010年舉行2輪會議,通過2輪的篩選選出進入最終輪的演算法,最後將在2012年公布獲勝演算法。公開競賽的整個進程仿照高級加密標准AES的徵集過程。2012年10月2日,Keccak被選為NIST競賽的勝利者,成為SHA-3。
Keccak演算法是SHA-3的候選人在2008年10月提交。Keccak採用了創新的的「海綿引擎」散列消息文本。它設計簡單,方便硬體實現。Keccak已可以抵禦最小的復雜度為2n的攻擊,其中N為散列的大小。它具有廣泛的安全邊際。目前為止,第三方密碼分析已經顯示出Keccak沒有嚴重的弱點。
KangarooTwelve演算法是最近提出的Keccak變種,其計算輪次已經減少到了12,但與原演算法比起來,其功能沒有調整。
零知識證明
在密碼學中零知識證明(zero-knowledgeproof,ZKP)是一種一方用於向另一方證明自己知曉某個消息x,而不透露其他任何和x有關的內容的策略,其中前者稱為證明者(Prover),後者稱為驗證者(Verifier)。設想一種場景,在一個系統中,所有用戶都擁有各自全部文件的備份,並利用各自的私鑰進行加密後在系統內公開。假設在某個時刻,用戶Alice希望提供給用戶Bob她的一部分文件,這時候出現的問題是Alice如何讓Bob相信她確實發送了正確的文件。一個簡單地處理辦法是Alice將自己的私鑰發給Bob,而這正是Alice不希望選擇的策略,因為這樣Bob可以輕易地獲取到Alice的全部文件內容。零知識證明便是可以用於解決上述問題的一種方案。零知識證明主要基於復雜度理論,並且在密碼學中有廣泛的理論延伸。在復雜度理論中,我們主要討論哪些語言可以進行零知識證明應用,而在密碼學中,我們主要討論如何構造各種類型的零知識證明方案,並使得其足夠優秀和高效。
環簽名群簽名
1、群簽名
在一個群簽名方案中,一個群體中的任意一個成員可以以匿名的方式代表整個群體對消息進行簽名。與其他數字簽名一樣,群簽名是可以公開驗證的,且可以只用單個群公鑰來驗證。群簽名一般流程:
(1)初始化,群管理者建立群資源,生成對應的群公鑰(GroupPublicKey)和群私鑰(GroupPrivateKey)群公鑰對整個系統中的所有用戶公開,比如群成員、驗證者等。
(2)成員加入,在用戶加入群的時候,群管理者頒發群證書(GroupCertificate)給群成員。
(3)簽名,群成員利用獲得的群證書簽署文件,生成群簽名。
(4)驗證,同時驗證者利用群公鑰僅可以驗證所得群簽名的正確性,但不能確定群中的正式簽署者。
(5)公開,群管理者利用群私鑰可以對群用戶生成的群簽名進行追蹤,並暴露簽署者身份。
2、環簽名
2001年,Rivest,shamir和Tauman三位密碼學家首次提出了環簽名。是一種簡化的群簽名,只有環成員沒有管理者,不需要環成員間的合作。環簽名方案中簽名者首先選定一個臨時的簽名者集合,集合中包括簽名者。然後簽名者利用自己的私鑰和簽名集合中其他人的公鑰就可以獨立的產生簽名,而無需他人的幫助。簽名者集合中的成員可能並不知道自己被包含在其中。
環簽名方案由以下幾部分構成:
(1)密鑰生成。為環中每個成員產生一個密鑰對(公鑰PKi,私鑰SKi)。
(2)簽名。簽名者用自己的私鑰和任意n個環成員(包括自己)的公鑰為消息m生成簽名a。
(3)簽名驗證。驗證者根據環簽名和消息m,驗證簽名是否為環中成員所簽,如果有效就接收,否則丟棄。
環簽名滿足的性質:
(1)無條件匿名性:攻擊者無法確定簽名是由環中哪個成員生成,即使在獲得環成員私鑰的情況下,概率也不超過1/n。
(2)正確性:簽名必需能被所有其他人驗證。
(3)不可偽造性:環中其他成員不能偽造真實簽名者簽名,外部攻擊者即使在獲得某個有效環簽名的基礎上,也不能為消息m偽造一個簽名。
3、環簽名和群簽名的比較
(1)匿名性。都是一種個體代表群體簽名的體制,驗證者能驗證簽名為群體中某個成員所簽,但並不能知道為哪個成員,以達到簽名者匿名的作用。
(2)可追蹤性。群簽名中,群管理員的存在保證了簽名的可追
㈤ 區塊鏈錢包怎麼注冊
Metamask手機端:手把手教你注冊以太坊錢包第一步:前面幾個安全提示,向下滾動到最底部表示全部閱讀,一步一步點擊「接受」就行了
2.下面是創建一個8位數的密碼,每次打開MetaMask可能都需要,如果忘記了密碼,可以用助記詞找回錢包
3.接下來是顯示的助記詞,可以直接點擊「我已妥善保存」,最好還是保存一下,以備不時之需。這里也可以不保存,之後在設置裡面,顯示助記詞,也能找到。
4.之後就進去了MetaMask錢包主頁面
5.點擊右上角小圓圈,點擊創建賬戶,可以創建更多的賬戶地址(所有創建的地址都可以通過剛剛的12個助記詞導入,比如你創建了10個地址,下次導入的時候初始顯示1個地址,你在點擊9次創建賬戶,之前的10個地址賬戶就完全不變的找回來了)
6.如果你在官方錢包,imtoken錢包,myetherwallet錢包已有賬戶可以導入,方法和創建錢包差不多
7.點擊「發送」,輸入你想轉賬的以太地址和數量,就可以轉賬了。(交易數據可以不填)
8.交易費限制,和氣體價格可以設置一下(如果不在乎交易時間,氣體價格可以設置低一些,如果想快速交易,氣體價格設高一些,如果是發送代幣或者部署合約,交易費限制建議填高一些以免交易氣體gas不足),之後點擊提交,就成功轉賬了。
9.成功發送交易後,會顯示交易概況。
10.點擊賬戶旁邊的三個小點,點擊「通過Etherscan查看賬戶"可以查看區塊鏈瀏覽器的詳情。
11、點擊三個點,點擊導出私鑰,可以導出該地址私鑰。
12、.點擊右上角三條杠,點擊設置,再點擊助記詞,可以查看你的助記詞,助記詞非常重要。
13.點擊添加代幣,可以添加其它基於以太坊的發幣,輸入縮寫即可。
14.如果沒有搜索到你需要的代幣,可以通過合約地址自動添加,輸入合約地址,代幣符號,小數位精度即可添加。
冷錢包怎麼創建簡便生成冷錢包,需要工具:手機+內存卡。
步驟如下:
第1步:找一部不用的手機或專門用作錢包的手機,手機恢復出廠設置;
第2步:斷開手機網路;
第3步:安裝imtoken錢包;
第4步:用imtoken錢包創建錢包;
第5步:將私鑰備份至內存卡,手抄好助記詞多重備份,並導出錢包地址。
拓展資料:
一、冷錢包好處
冷錢包永不聯網,不能被網路訪問,因而避免了黑客盜取私鑰的風險,相比熱錢包更安全。
價值投資者,把冷錢包放進保險櫃,避免放在交易所,時不時「手賤"操作一把。
當然,如果需要經常用來交易或頻繁交易的,當資產較大的時候,冷熱錢包配合使用,經常需要交易的用熱錢包儲存;無需進程交易的,用冷錢包儲存。
二、冷錢包《Coldwallet),與熱錢包相對應,也稱離線錢包或者斷網錢包,區塊鏈錢包種類之一,意指網路不能訪問到用戶私鑰的錢包。
冷錢包通常依靠「冷設備(不聯網的電腦、手機等〉確保比特幣私鑰的安全,運用二維碼通信讓私鑰不觸網,避免了被黑客盜取私鑰的風險,但是也可能面臨物理安全風險(比如電腦丟失,損壞等〉。
三、基本概念
錢包就是存儲和使用數字貨幣的工具,一個幣對應一個錢包。用來存儲幣種,或者"交易幣種。
比特幣錢包使用戶可以檢查、存儲、花費其持有的比特幣,其形式多種多樣,功能可繁可簡,它可以是遵守比特幣協議運行的各種工具,如電腦客戶端、手機客戶端、網站服務、專用設備,也可以只是存儲著比特幣私密密鑰的介質,如一張紙、一段暗號、一個U盤、一個文本文檔,因為只要掌握比特幣的私密密鑰,就可以處置其對應地址中包含的比特幣。比特幣無法存入一般的銀行賬戶,交易只能在比特幣網路上進行,使用前需下載客戶端或接入線上網路。
冷錢包是指由提供區塊鏈數字資產安全存儲解決方案的信息技術公司研發的比特幣存儲技術。庫神冷錢包集數字貨幣存儲、多重交易密碼設置、發布最新行情與資訊、提供硬分叉解決方案等功能於一身,且運用二維碼通信讓私鑰永不觸網,能有效防止黑客竊取。
操作環境:產品型號:華為mate30系統版本:EMUI10
蘋果手機如何創建區塊鏈錢包下載Kcash,即可創建
_還只話闃_Phone。iPhone是蘋果公司(AppleInc.)發布搭載iOS操作系統的系列智能手機。截至2021年9月,蘋果公司(AppleInc.)已發布32款手機產品,初代:iPhone,最新版本:iPhone13mini,iPhone13,iPhone13Pro,iPhone24ProMax。
區塊鏈地址怎麼加錢包指引1.下載TP錢包,然後填加一條公鏈,你領哪家公鏈的空投就添加哪家的公鏈!
2.你需要哪條公鏈,就創建哪條公鏈的錢包,按要求填寫就行!
3.創建完錢包,你就有了公鏈地址了!
4.然後看項目需要哪個地址,復制你公鏈的地址,按要求留下地址即可!
5.參加完活動留了地址後,你還需要添加這個幣種的合約到錢包,這樣你的錢包才會顯示這個幣,否則默認是不顯示的!
6.操作完以上幾步,你就耐心等待即可,有些直接不會到賬,剩下的不是時時到賬,因為得收集地址統一打幣等等!如果區塊鏈擁堵,那就需要更長的時間!
領空投需要一個公鏈的地址,公鏈地址有火幣生態鏈HECO,幣安智能鏈BSC等等,不同鏈上的幣,就留不同鏈的地址!
如何注冊trc20錢包
先找到trc20這個軟體的app或者網址進行下載安裝,下載安裝以後就可以開始注冊了,首先點進去,然後輸入手機號進行驗證,驗證成功以後就可以設置密碼了密碼設置成功以後就注冊完成了。
拓展資料:加密領域高度認可波場USDT-TRC20的原因有哪些呢?
1.穩定幣作為支付網路將具有越來越多的應用場景。其實改變早已發生了,只是許多人還不自知——很多商鋪、個人、企業已經開始將波場版USDT作為支付手段,取代SWIFT。
2.波場具有轉賬速度快、低手續費、高吞吐量等特點,可極大程度增強以太坊、比特幣的用戶體驗。整個波場穩定幣的流通量突破了141億美元,今後不排除到達200億甚至300億美元體量的可能。業內越來越多的人會使用穩定幣作為支付工具,相信未來也會有機構和銀行使用穩定幣網路進行清算。
區塊鏈加密數字貨幣交易所/商城/游戲平台如何實現USDT-TRC20錢包接入?
1.據悉,很多平台對區塊鏈底層技術積累甚淺,接入區塊鏈實現充幣、提幣耗時耗力,影響業務正常開展,且平台方現有接入方案不規范,「盜幣」事故時有發生。
2.當然,困難不止於外部環境,內部環境往往成為被忽略的重要因素。比如項目方現有接入方案操作復雜,過度依賴內部技術人員,管理人員難以介入資產掌控,導致「內鬼」事件時有發生,一旦發生往往陷入損失慘重、難以釐清的困局。
除此之外,USDT-TRC20利用智能合約完成在波場鏈上的發行、持有、轉賬,完全公開透明,秒級到賬,這些都極大地降低了用戶的信任成本,提升了用戶轉賬穩定幣的安全保障。正是TRC20-USDT顯而易見的優勢加劇了投資者對於穩定幣的選擇。
虛擬幣歸集地址提幣地址一種是注冊區塊鏈錢包時生成的,一種是交易所為用戶自動生成的。你想把幣提出去,就需要填寫提幣地址,按照提幣步驟、根據提示來填寫就行了。下面就以MetaMask錢包為例,給大家介紹一下提幣地址的生成:
點擊以太坊官網推薦的錢包MetaMask,MetaMask錢包可以滿足大部分用戶包括礦工的需求,但是它需要與瀏覽器配合才能使用,對於新手而言,可以選擇手機端的錢包APP。
這些錢包在下載時,務必去找官方網站下載,對那些廣告推廣連接,不明來歷的軟體商店,不要輕易去下載,否則會被盜幣或者遇上釣魚網站。下載好錢包軟體之後,打開APP,點擊「創建錢包」之類的選項,按照系統提示,一步一步注冊就可以了,請一定記住密碼,因為如果是去中心化的錢包,密碼將無法找回。
所以錢包備份必不可少,錢包備份一般是備份助記詞、密鑰和keystore,錢包創建好之後,APP顯示的那一連串字元就是錢包地址了,這個ETH錢包可以用來轉賬,儲存資產或者去領空投,收集糖果。
希望對你有幫助.
㈥ imtoken鍒涘緩澶氫釜閽卞寘 imtoken鍙浠ュ壋寤哄嚑涓浠ュお鍧 www.sangyuangongshe.com
浣跨敤imToken錛岀敤鎴峰彲浠ュ壋寤哄氫釜浠ュお鍧婇挶鍖咃紝鏁伴噺涓婃病鏈夋槑紜鐨勯檺鍒訛紝浣嗗緩璁鐢ㄦ埛鏍規嵁鑷宸辯殑瀹為檯闇奼傚拰瀹夊叏綆$悊鑳藉姏鏉ュ悎鐞嗗壋寤
imToken鏄涓嬈懼幓涓蹇冨寲鐨勬暟瀛楄祫浜ч挶鍖呭簲鐢錛屾敮鎸佸氱嶅尯鍧楅摼璧勪駭錛屽寘鎷浠ュお鍧婏紙ETH錛夊強鍏禘RC20鏍囧噯鐨勪唬甯併傚湪imToken涓錛岀敤鎴峰彲浠ラ氳繃鐢熸垚鏂扮殑鍔╄拌瘝鎴栫侀掗鏉ュ壋寤烘柊鐨勯挶鍖呭湴鍧錛屾瘡涓鍦板潃閮芥槸鐙絝嬩笖鍞涓鐨勶紝鍙浠ュ瓨鍌ㄣ佹帴鏀跺拰鍙戦佹暟瀛楄祫浜с
鍒涘緩澶氫釜浠ュお鍧婇挶鍖呯殑涓昏佷紭鍔垮湪浜庯紝瀹冨彲浠ュ府鍔╃敤鎴鋒洿濂藉湴綆$悊涓嶅悓鐢ㄩ旂殑璧勪駭銆備緥濡傦紝鐢ㄦ埛鍙浠ュ皢涓閮ㄥ垎璧勯噾鐢ㄤ簬鏃ュ父浜ゆ槗錛屽皢鍙︿竴閮ㄥ垎璧勯噾鐢ㄤ簬闀挎湡鎸佹湁鎴栨姇璧勶紝閫氳繃涓嶅悓鐨勯挶鍖呭湴鍧鏉ラ殧紱昏繖浜涜祫閲戱紝鍙浠ラ檷浣庡洜鍗曚竴閽卞寘琚鏀誨嚮鎴栬鎿嶄綔鑰屽艱嚧鐨勯庨櫓銆
鐒惰岋紝闇瑕佹敞鎰忕殑鏄錛屽壋寤哄氫釜閽卞寘涔熸剰鍛崇潃闇瑕佺$悊澶氫釜鍔╄拌瘝鎴栫侀掗銆傚傛灉鐢ㄦ埛涓㈠け浜嗕換浣曚竴涓閽卞寘鐨勫姪璁拌瘝鎴栫侀掗錛屽皢鏃犳硶璁塊棶璇ラ挶鍖呬腑鐨勮祫浜с傚洜姝わ紝鍦ㄥ壋寤哄氫釜閽卞寘鏃訛紝鐢ㄦ埛闇瑕佹牸澶栨敞鎰忓囦喚鍜屼繚綆″ソ榪欎簺淇℃伅錛岄伩鍏嶉犳垚涓嶅繀瑕佺殑鎹熷け銆
鎬葷殑鏉ヨ達紝imToken涓虹敤鎴鋒彁渚涗簡鍒涘緩澶氫釜浠ュお鍧婇挶鍖呯殑鍔熻兘錛岀敤鎴峰彲浠ユ牴鎹鑷宸辯殑闇奼傛潵鐏墊椿浣跨敤銆備絾鍚屾椂錛岀敤鎴蜂篃闇瑕佹壙鎷呯浉搴旂殑瀹夊叏綆$悊璐d換錛岀『淇濇瘡涓閽卞寘鐨勫畨鍏ㄣ傚湪浣跨敤imToken鎴栧叾浠栨暟瀛楄祫浜ч挶鍖呮椂錛屽緩璁鐢ㄦ埛鍏呭垎浜嗚В鍏跺姛鑳藉拰椋庨櫓錛屽苟閲囧彇蹇呰佺殑瀹夊叏鎺鏂芥潵淇濇姢鑷宸辯殑璧勪駭銆
㈦ 什麼是以太幣/以太坊ETH
以太幣(ETH)是以太坊(Ethereum)的一種數字代幣,被視為「比特幣2.0版」,採用與比特幣不同的區塊鏈技術「以太坊」(Ethereum),一個開源的有智能合約成果的民眾區塊鏈平台,由全球成千上萬的計算機構成的共鳴網路。開發者們需要支付以太幣(ETH)來支撐應用的運行。和其他數字貨幣一樣,以太幣可以在交易平台上進行買賣 。
溫馨提示:以上解釋僅供參考,不作任何建議。入市有風險,投資需謹慎。您在做任何投資之前,應確保自己完全明白該產品的投資性質和所涉及的風險,詳細了解和謹慎評估產品後,再自身判斷是否參與交易。
應答時間:2020-12-02,最新業務變化請以平安銀行官網公布為准。
[平安銀行我知道]想要知道更多?快來看「平安銀行我知道」吧~
https://b.pingan.com.cn/paim/iknow/index.html