加密貨幣的錢包、公鑰和私鑰你都了解清楚了嗎
判斷一個(gè)人是否真的了解區(qū)塊鏈,可以先問一句:“我轉(zhuǎn) Token 給你,你的錢包地址是什么呢?”這個(gè)試金石可以輕松地區(qū)分很多人。在區(qū)塊鏈?zhǔn)澜纾瑳]有自己的錢包地址就是一個(gè)旁觀者。
要?jiǎng)?chuàng)建一個(gè)錢包,需要先獲得自己的錢包地址。比如,這就是一個(gè)合法的比特幣地址:1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm
就像銀行賬戶一樣,有了它,任何人都可以給你轉(zhuǎn)賬。其實(shí),任何人都可以獨(dú)立地、不聯(lián)網(wǎng)地生成自己的錢包。這是怎么做到的呢?
公鑰和私鑰
這涉及到一個(gè)密碼學(xué)上的一個(gè)基本概念:公鑰加密技術(shù)。
公鑰加密技術(shù)中,公鑰和私鑰成對(duì)出現(xiàn),公鑰加密的東西可以拿私鑰解開,私鑰加密的東西可以用公鑰解開。兩者的關(guān)系,大家可以想象成一個(gè)帶鎖的盒子和一把鑰匙之間的關(guān)系。這個(gè)特性用來(lái)加密和簽名。
加密的過程,就像是把要寄的信放到盒子里,鎖上并寫上地址,然后寄出去。寄件人和收件人都很放心,因?yàn)槠渌藷o(wú)法打開盒子。
簽名的過程,類似于對(duì)外展示鑰匙的過程。鎖上的盒子只有你可以打開,如果有人拿著你發(fā)的鑰匙打開了盒子,那盒子里的東西一定是你發(fā)的。
你手里面握著私鑰,無(wú)論如何都不能泄露;你的錢包地址,是滿世皆知的轉(zhuǎn)換后的公鑰。鑰匙信息可以被公鑰打開,則說(shuō)明是知道私鑰的人加密的。所以,任何的交易一旦用你的私鑰加密了,收到的人用你的公鑰可以解密,那就認(rèn)為是你授權(quán)的操作。
錢包地址的生成
比特幣世界幾個(gè)關(guān)鍵的信息是按照這個(gè)順序生成的:先生成私鑰,再由私鑰算出公鑰,再由公鑰經(jīng)過一系列哈希算出錢包地址。
私鑰 → 公鑰 → 錢包地址
上面的推導(dǎo)次序是單向的,反向不可能。也就是說(shuō),從錢包地址無(wú)法得到公鑰,從公鑰無(wú)法得到私鑰。比特幣的公鑰變形出來(lái)的錢包地址,可以想象成用戶名,這全世界都可以知道;私鑰可以想象成密碼,這個(gè)只有自己知道。
私鑰是一切的開端。私鑰是一個(gè)大于零、小于 2 的 256 次方的任意數(shù)字,比如下面這個(gè)私鑰:
00000000000000000000000001(也就是數(shù)字 1)
需要注意的是,不是隨機(jī)生成的私鑰,風(fēng)險(xiǎn)非常大!
然后,私鑰通過橢圓曲線函數(shù),生成對(duì)應(yīng)的公鑰,比如下面這個(gè):
0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
經(jīng)過一系列哈希加密之后,最終形成比特幣地址,比如下面這個(gè):1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm
私鑰就像《阿里巴巴和四十大盜》故事里面的“芝麻開門”。世界上任何人只要知道“芝麻開門”這個(gè)咒語(yǔ),就可以在那座大山里面找到那個(gè)山洞并且打開大門。一個(gè)人是否擁有賬戶,只看他知不知道那個(gè)咒語(yǔ)。四十大盜知道咒語(yǔ)后可以取走寶貝,阿里巴巴知道后也可以取走,至于那個(gè)山洞里面有沒有金銀財(cái)寶,則是另外一件事情了。
看這篇文章的你,在知道了本文舉例中的比特幣私鑰(即數(shù)字 1),這意味著我們對(duì)這個(gè)地址里面的“錢”都擁有控制權(quán)。
在比特幣的世界,雖然無(wú)法知道地址背后的人是誰(shuí),但這個(gè)地址歷史上所有的交易都是公開的,可以通過區(qū)塊鏈瀏覽器查詢。