這篇文章其實最初的來源,來源于區(qū)塊鏈研習社的一些討論翔横,以及一些問題读跷,在沒有禁止ICO之前,很多人連自己的錢包都沒有棕孙,等到了消息不靈通的時候舔亭,往往不知所措,不知道自己的數字貨幣放在哪里是安全的蟀俊。
先說說私鑰,這是理解數字貨幣最為重要的一個概念订雾,私鑰是什么肢预?是一連串的數字,經過了base58方式的壓縮洼哎,才得到如今你看到的樣子烫映,雖然你看到的樣子還是很長沼本,但是相比原始的形式,已經短了很多了锭沟。私鑰是唯一的抽兆,忘記了你的私鑰等于放棄了你的財產,你可以沒有錢包族淮,錢包其實并不重要辫红,接下來你會明白,其實私鑰是一個門沒有關的保險柜祝辣,不過位置只有你自己知道而已贴妻。
你只需要將你的數字貨幣轉移到你的私鑰上就好了,這時候你的轉賬地址是由私鑰產生的公鑰蝙斜,公鑰再次計算產生了地址名惩,所有轉移到這個地址的數字貨幣,都歸你的私鑰管理孕荠,你可以隨時授權任何的錢包娩鹉,通過錢包這個工具來轉到另一個地址。這個就好比稚伍,你有一張銀行卡底循,銀行卡里有錢,錢包是ATM機槐瑞,你授權錢包等于你需要使用某臺ATM機熙涤,而你的私鑰等于你插卡和輸入密碼這兩個行為的總和,你不取錢困檩,你不轉賬祠挫,你的錢永遠還是在你的卡里的,而你授權了錢包(輸入私鑰)等于你的手機是一臺隨身攜帶的ATM機悼沿,你隨時可以轉賬甚至付款等舔,而且由于網絡這一特性,你的錢包是隨時跟網絡有連接的糟趾,屬于俗稱的熱錢包慌植,熱錢包是不安全的,因為如果黑客足夠厲害义郑,破解了錢包的算法蝶柿,是可能獲取你的私鑰的,建立養(yǎng)成良好的習慣非驮,我一般使用錢包轉賬以后交汤,就直接的禁止錢包這個APP上網,防止不必要的損失劫笙,同時要注意防范錢包本身的問題芙扎,如果錢包本身就是問題錢包星岗,故意做出來騙你私鑰的,你的財產也可能損失戒洼。
昨天我看到了一個挺有意思的說法俏橘,說自己輸入的私鑰不對,卻也打開了錢包圈浇,其實我想告訴你這很正常寥掐,因為你輸入的也是一個正確的錢包地址,當然是可以打開錢包的汉额,我們的錢包很安全也很不安全曹仗,我們的錢包總共有256位數,其實256個1也是一個錢包的地址蠕搜,你進行了base58的算法計算以后怎茫,可以直接的得到你現在看到的私鑰,輸入妓灌,當然可以打開轨蛤,同樣的道理,255個1加上一個0也是一個錢包地址虫埂。
舉例子前祥山,先給你講講base58,其實它是0到9掉伏,10個數字缝呕,加上大小寫的26個字母,那么有人問斧散,這不是應該有52加上10個數字供常,應該是base62,可是在實際的使用中鸡捐,有些字母和字母之間栈暇,有些數字和字母之間容易弄混淆,Base58不使用數字"0"箍镜,字母大寫"O"源祈,字母大寫"I",和字母小寫"l"色迂,以及"+"和"/"符號.
ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
注意香缺,少了數字0,大寫字母I脚草,大寫字母O赫悄,小寫字母l,一共是:
10+26×2-4=58
接下來的講解馏慨,簡化了很多的內容埂淮,也將很多的算法抽象了,算是舉個例子写隶,大概了解有助于你理解私鑰倔撞,因為昨天看了討論,心里替問的人著急慕趴,以下文章超級簡化了痪蝇,也抽象了私鑰形成的實際過程,不過有助于你理解私鑰:
我們私鑰其實是丟256次硬幣的方式得到的冕房,是使用2進制的方式進行編碼的躏啰,例如正面是1,反面是0,
256次拋硬幣以后耙册,你可能得到1111111***1111111给僵,當然可能得到1111111***1111110,假設***代表了240個1详拙,當然咱么這是舉例子帝际,240個數全是1是很極端的情況,普通情況饶辙,這些都是0和1的組合蹲诀,因為是二進制,所有的私鑰其實是一連串的數字弃揽,在二進制中其實11代表數字3,10代表數字2,1001代表的是9
隨機選取一個32字節(jié)的數脯爪、大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間,作為私鑰,當然我們上面取的是1111111***1111111矿微,進行base58的編碼以后痕慢,就會形成一個32字節(jié)的私鑰了,你可以拿你現有錢包的私鑰冷冗,比如你的私鑰里有5守屉,你可以將它替換成w,你輸入你的IMtoken錢包,你會發(fā)現蒿辙,可以打開錢包拇泛,因為這本身就是一個新的私鑰,其實這么說思灌,私鑰本身是存在的俺叭,只不過是,一個是錢包用算法替你選擇一個泰偿,一個是你自己選擇一個而已熄守。
想想是不是覺得我們的私鑰很不安全啊!可以你考慮一下2的256次方個私鑰裕照,數量是多大呢攒发?比宇宙的中的原子也差不了多少了!這樣說太不明白了晋南,舉個例子惠猿,就是太平洋里全是乒乓球,只有1個乒乓球有錢负间,你要找到它偶妖,你一輩子找不到是很正常的,這就跟現在的超級計算機要從宇宙原子的量級政溃,去找到1億個使用的私鑰的難度是一樣的趾访,但是我沒說絕對的安全,萬一有人再次抽到了你的私鑰董虱,那么只能說自認倒霉扼鞋,你可能是宇宙第一倒霉蛋!?赵藏鹊!誰找到你的乒乓球,就有第二個人知道私鑰了转锈!
它有多安全盘寡,比如你的計算機1天可以驗證1000萬億個私鑰,但是10000000萬億個私鑰撮慨,你需要的時間是多長呢竿痰?大概是27年,增加10倍呢砌溺?是270年影涉。不過沒說不可能,隨著加密的方式的增強规伐,破解的技術也在增強蟹倾,傳說中的量子計算機就可以,不過現在的量子計算機最快的也就是手機的速度猖闪。私鑰其實是沒鎖的保險柜鲜棠,只不過是因為數量的原因,保證了它的安全性培慌,這個世界上沒有絕對安全的東西豁陆。
當然你可以去嘗試,將你的私鑰的一個字母或者數字替換吵护,但是記住你替換的那個數字和字母必須在base58里面盒音,你也能打開一個錢包表鳍,不是因為你運氣好,而是它本身就是一個錢包祥诽,你的私鑰其實是一個你知道位置的保險箱而已譬圣,它并沒有上鎖。
我們地址又是怎么得來的原押,先是橢圓曲線算法胁镐,然后散列計算偎血,經過8次計算以后诸衔,得到我們看到的地址,散列運算和橢圓曲線運算是不可逆的運算颇玷,這是在目前而言笨农,你的私鑰是你才知道地址的寶箱。
看到這里帖渠,給紅包就好了谒亦!開個玩笑,不要當真空郊。