昨天去ATM取錢,前面有一對(duì)小夫妻。
妻子對(duì)丈夫說:“我要輸密碼了,你走開!”丈夫退到一邊去了。
我心想,這女人好強(qiáng)勢(shì)啊,說明女人管賬啊!
只聽到滴滴三聲過后,妻子轉(zhuǎn)身對(duì)丈夫說:“好了,我輸完了,該你輸后三位
了!”?
哎呦,我去,真開眼,原來是互相制約互相監(jiān)督啊~~高!
后來,丈夫先按了3次退格鍵,然后輸入了6位密碼~~我整個(gè)人都呆了!
高手啊,真是道高一尺、魔高一丈。
“區(qū)塊鏈數(shù)字錢包”就是未來世界的銀行卡,認(rèn)識(shí)和保護(hù)它就是在守衛(wèi)我們自己
的財(cái)產(chǎn)。在未來的區(qū)塊鏈數(shù)字世界,當(dāng)傲嬌女碰到了理工男可要小心了。在各大
聊天平臺(tái)交流中和相關(guān)數(shù)字貨幣的報(bào)道中,我們看到了不少人由于對(duì)“區(qū)塊鏈數(shù)
字錢包”的理解不清而至私鑰保護(hù)不善造成個(gè)人數(shù)字資產(chǎn)損失的情況,這真的不
應(yīng)該。
每當(dāng)進(jìn)行數(shù)字資產(chǎn)投資時(shí),我們不能僅僅依靠交易所來存儲(chǔ)數(shù)字資產(chǎn),我們更需
要有個(gè)自己的數(shù)字錢包,來存儲(chǔ)屬于我們個(gè)人的數(shù)字資產(chǎn),了解“區(qū)塊鏈數(shù)字錢
包”(以下簡(jiǎn)稱錢包)的相關(guān)知識(shí)更是我們投資前就應(yīng)該弄清楚的。
錢包本質(zhì)上是一個(gè)工具,目前絕大多數(shù)的錢包都是在網(wǎng)絡(luò)中建立了屬于用戶的單
獨(dú)區(qū)塊空間,它是去中心化的。一般意義上的銀行卡是由中心化的銀行發(fā)放,并
進(jìn)行其中的資產(chǎn)管理,我們密碼丟失,可以通過相關(guān)證明來讓銀行幫忙找回,我
們銀行卡遺失,別人拿到銀行卡沒有密碼也取不走我們的資產(chǎn),我們更可以通過
銀行凍結(jié)個(gè)人銀行卡賬戶,重新辦理新的銀行卡廢除舊的銀行卡;錢包則不然,
丟失了打開錢包的鑰匙誰(shuí)也沒法幫我們找回錢包。
區(qū)塊鏈錢包在2011年8月誕生,并此后在代幣交易中發(fā)揮著巨大的作用;由于該平
臺(tái)被密碼學(xué)嚴(yán)格保護(hù),因此基本不用擔(dān)心被黑客襲擊。區(qū)塊鏈錢包本身就相當(dāng)于
個(gè)人銀行賬戶,在銀行中我們創(chuàng)建存款賬戶并且存取現(xiàn)金,那么類似地,在區(qū)塊
鏈錢包中我們創(chuàng)建區(qū)塊鏈賬號(hào)并且存取比特幣。在該平臺(tái)上,用戶可以在任何時(shí)
間段將比特幣轉(zhuǎn)換成現(xiàn)金或用現(xiàn)金來支付比特幣,下圖比較了區(qū)塊鏈錢包和銀行
的區(qū)別,左邊的區(qū)塊鏈錢包識(shí)別碼對(duì)應(yīng)右邊銀行的客戶ID,左邊的比特幣地址對(duì)
應(yīng)右邊銀行的存款賬號(hào)。
錢包一般包含以下內(nèi)容:公鑰、私鑰、助記詞、keystore、密碼;這里的內(nèi)容就
稍微有點(diǎn)燒腦了,本質(zhì)上,錢包和鑰匙是一一對(duì)應(yīng)的,固定的鑰匙直接就可以在
網(wǎng)絡(luò)上打開屬于自己的錢包,但為了避免在網(wǎng)絡(luò)傳輸過程中的泄密,密碼學(xué)家運(yùn)
用非對(duì)稱加密技術(shù),發(fā)明了公鑰和私鑰,公鑰用于傳輸,私鑰用于解密,簡(jiǎn)單的
看,我們可以認(rèn)為公鑰就是銀行卡號(hào),而私鑰就是銀行密碼。
私鑰=keystore+密碼,私鑰是由五六十位包含數(shù)字和區(qū)分大小寫的字母所組成。
為了方便數(shù)字資產(chǎn)交易,用簡(jiǎn)單的密碼加上keystore我們就能便捷的轉(zhuǎn)移數(shù)字資
產(chǎn)。助記詞是加密了的私鑰,基本也就是私鑰,它是為了便于導(dǎo)出keystore而發(fā)
明的。
給一個(gè)錢包地址發(fā)送數(shù)字貨幣,這筆交易在全網(wǎng)廣播、被確認(rèn)、被打包進(jìn)區(qū)塊。
這是發(fā)生在鏈上的,被稱為on-chain交易;on-chain錢包需要自己保管私鑰。
相對(duì)于on-chain交易是off-chain交易。通常,通過交易所進(jìn)行的交易是off-
chain的,本人并沒有私鑰。私鑰在交易所,由交易所托管。所以,交易所的錢包
也是中心化的錢包。
冷即離線、斷網(wǎng),也就是說,私鑰存儲(chǔ)的位置不能被網(wǎng)絡(luò)所訪問。例如紙錢包、
腦錢包、硬件錢包等等。
熱即聯(lián)網(wǎng),也就是私鑰存儲(chǔ)在能被網(wǎng)絡(luò)訪問的位置。例如存放在交易所的、在線
錢包網(wǎng)站、手機(jī)App錢包都屬于熱錢包。通常而言,冷錢包更加安全,熱錢包使用
更加方便。
除了保存私鑰外,全節(jié)點(diǎn)錢包還有保存了所有區(qū)塊的數(shù)據(jù),最為著名的是
bitcoin-core。
它不必保存所有區(qū)塊的數(shù)據(jù),只保存跟自己相關(guān)的數(shù)據(jù)。基本可以實(shí)現(xiàn)去中心
化。
在交易所中的錢包,以及類似 OKLink 提供的保險(xiǎn)柜服務(wù)。
在使用錢包的時(shí)候,大家一定要多學(xué)習(xí)多研究。因?yàn)閰^(qū)塊鏈?zhǔn)怯心涿缘模褂?/p>
各種錢包是不需要實(shí)名認(rèn)證。雖然你可以看到交易轉(zhuǎn)賬的地址,但是你并不知道
地址的使用者是誰(shuí)。
而且,區(qū)塊鏈的信息是不可逆轉(zhuǎn)的,萬(wàn)一你小心把幣打錯(cuò)地址了,可就找不回來
了。我們把幣存在錢包里,到底是放在哪里了呢?是不是就在錢包里呢?
我們使用的去中心化的區(qū)塊鏈貨幣錢包,其實(shí)只是一個(gè)區(qū)塊鏈的軟件。你的幣不
是存在錢包公司,也不是存在你的手機(jī)設(shè)備上的,幣還是在區(qū)塊鏈網(wǎng)絡(luò)的地址中
的。錢包只是通過服務(wù)器來把區(qū)塊鏈的各種代碼展現(xiàn)給你,建立了一個(gè)通道,把
你的各種操作指令發(fā)到區(qū)塊鏈上。所以,區(qū)塊鏈錢包是不存在銀行凍結(jié)你賬戶或
者公司凍結(jié)你賬戶的情況,只要丟失了私鑰,你就再也無(wú)法打開錢包,損失你錢
包中的幣。從這個(gè)角度來看,其實(shí)錢包安不安全與你私鑰保管有很大的關(guān)系,因
為錢包服務(wù)商是不會(huì)保存你的私鑰的,不會(huì)放在服務(wù)器上;即使是錢包出現(xiàn)問題
無(wú)法登陸,或者版本更新,再或者被黑客攻擊等等各種問題,都不會(huì)影響你的資
產(chǎn)。這么來看,其實(shí)私鑰是保存加密貨幣最重要的東西。
數(shù)字錢包的生成可以簡(jiǎn)單的分解為三個(gè)步驟:
1. 創(chuàng)建隨機(jī)私鑰(64位16進(jìn)制字符/256比特/32字節(jié));
2. 從私鑰推導(dǎo)出公鑰(128位16進(jìn)制字符/512比特/64字節(jié));
3. 從公鑰中導(dǎo)出地址(40位16進(jìn)制字符/160比特/20字節(jié))。
簡(jiǎn)單的步驟背后已經(jīng)囊括了密碼學(xué)中大多數(shù)的技術(shù):隨機(jī)數(shù)生成器、非對(duì)稱加
密、單向散列函數(shù)等。
隨機(jī)數(shù)是專門的隨機(jī)試驗(yàn)的結(jié)果。在錢包中隨機(jī)數(shù)用于生成私鑰,因其相關(guān)安全
性的重要性,所以必須保證隨機(jī)數(shù)具備以下三種特性:
隨機(jī)性:不存在統(tǒng)計(jì)學(xué)偏差,完全雜亂的數(shù)列;
不可預(yù)測(cè)性:不能從過去數(shù)列推測(cè)下一個(gè)出現(xiàn)的數(shù);
不可重現(xiàn)性:除非將數(shù)列保存下來,否則不能重現(xiàn)相同的數(shù)列。
也就是真隨機(jī)數(shù)。當(dāng)然,實(shí)際上只要給定邊界條件,真隨機(jī)數(shù)并不存在。但目前
大多數(shù)的看法是密鑰存在一定的循環(huán)周期,只要該周期足夠長(zhǎng),也會(huì)有足夠好的
安全性和保密性。
非對(duì)稱加密算法于1976年提出,用于在不安全的媒體上解決信息公開傳送和密鑰
管理的問題。它將一般的密鑰分為加密密鑰和解密密鑰,也就是我們常說的公鑰
和私鑰。公鑰私鑰一一對(duì)應(yīng),由公鑰加密的密文,必須使用與公鑰配對(duì)的私鑰才
可以解密。如下圖所示,甲乙之間使用非對(duì)稱加密的方式完成了重要信息的安全
傳輸。
1. 乙方生成一對(duì)密鑰(公鑰和私鑰)并將公鑰向其它方公開。
2. 得到該公鑰的甲方使用該密鑰對(duì)機(jī)密信息進(jìn)行加密后再發(fā)送給乙方。
3. 乙方再用自己保存的另一把專用密鑰(私鑰)對(duì)加密后的信息進(jìn)行解密。
乙方只能用其專用密鑰(私鑰)解密由對(duì)應(yīng)的公鑰加密后的信息。
在傳輸過程中,即使攻擊者截獲了傳輸?shù)拿芪模⒌玫搅艘业墓€,也無(wú)法破解
密文,因?yàn)橹挥幸业乃借€才能解密密文;同樣,如果乙要回復(fù)加密信息給甲,那
么需要甲先公布甲的公鑰給乙用于加密,甲自己保存甲的私鑰用于解密。
單向散列函數(shù)又稱為單向Hash函數(shù)、雜湊函數(shù)。它有一個(gè)輸入和一個(gè)輸出,輸入
稱為消息,輸出稱為散列值(也稱為消息摘要)。單向散列函數(shù)可以把任意長(zhǎng)度
的輸入串變化成固定長(zhǎng)的輸出串,也就是可以根據(jù)消息的內(nèi)容計(jì)算出散列值,而
散列值就可以用來檢查消息的完整性。由于它的單向性,其輸出不依賴于輸入。
已知一個(gè)散列值,要找到預(yù)映射的值,使它的散列值等于已知的散列值在計(jì)算上
是不可行的。單向散列函數(shù)的安全性使它主要用于完整性效驗(yàn)和提高數(shù)字簽字的
有效性。
通常是由隨機(jī)算法生成的,說白了,就是一個(gè)巨大的隨機(jī)整數(shù),以太坊錢包的私
鑰就是64 位的 16 進(jìn)制哈希值字符串。
這么多個(gè)字節(jié)可怎么記呢?所以有的錢包就就出現(xiàn)了助記詞,一般情況下,助記
詞由一些單詞組成,只要你記住這些單詞,按照順序在錢包中輸入,也能打開錢
包,對(duì)吧,單詞可比一串代碼好記多了。
有的錢包會(huì)采取把私鑰制作成keystore讓用戶導(dǎo)出保存,這個(gè)Keystore就是私鑰
經(jīng)過加密過后的一個(gè)文件,需要你自己設(shè)置的密碼才能打開文件。這樣的好處是
就算keystore文件被盜,只要你額外設(shè)置的密碼夠長(zhǎng)夠隨機(jī),那么短時(shí)間內(nèi)私鑰
也不會(huì)泄露,有充足的時(shí)間轉(zhuǎn)移地址里面的加密貨幣到其他地址。
那么,別人要給你轉(zhuǎn)賬怎么辦呢?但是你肯定不能把私鑰告訴別人,對(duì)吧,私鑰
就代表了你對(duì)錢包的所有權(quán),這是用密碼學(xué)來保護(hù)的。所以,我們需要另一個(gè)東
西,就是別人能給你轉(zhuǎn)賬,同時(shí)又不會(huì)泄露你的私鑰,我們用到了哈希加密技
術(shù),把私鑰轉(zhuǎn)換一下得到一串字符,我們把它叫做公鑰。哈希加密技術(shù)目前的技
術(shù)水平是不可逆的,也就是說通過公鑰幾乎不可以倒推出來私鑰,所以可以認(rèn)為
這種方法比較安全。一般情況,我們轉(zhuǎn)賬都用一個(gè)收幣地址,這是通過公鑰轉(zhuǎn)化
過來的,是公鑰的縮減版本,公鑰和收幣地址之間是可以相互轉(zhuǎn)換的。
錢包生成私鑰,通過橢圓曲線算法可以從私鑰計(jì)算得到公鑰。注意:它是單向
的,不可逆的。
下圖可知私鑰是可以生成公鑰,公鑰可以生成比特幣地址的,相反則不行,因?yàn)?/p>
比特幣是由一個(gè)不可逆的算法完成這個(gè)流程的。所以,我們可以放心的把錢包地
址給別人看而不用擔(dān)心自己財(cái)產(chǎn)的丟失。但如果你的私鑰泄露,那別人就有可能
復(fù)制一份跟你一摸一樣的錢包,你的資產(chǎn)就有安全問題了。其實(shí),加密貨幣保管
只需要一個(gè)“私鑰”,誰(shuí)掌握了私鑰,就掌握了你的錢包財(cái)產(chǎn),所以你的私鑰一
定要保管好。