比特幣的流通:交易

比特幣是怎麼來的呢?要麼是你自己挖礦挖來的,要麼是別人轉賬轉給你的。上一期我們已經介紹了挖礦,下面我們就為大家介紹一下交易,你和你朋友是如何進行比特幣轉賬的。

我們先看一下正常的比特幣轉賬是什麼樣的:

我給小明轉10個比特幣,我只需要比特幣客戶端或者比特幣交易平臺裡面,輸入我的比特幣錢包地址、小明的比特幣錢包地址、轉出比特幣的數量和手續費,然後安靜地等待礦工處理完交易信息之後,就可以完成轉賬了。

這個過程便捷是便捷,但是很多人會質疑一個問題,那就是:比特幣轉賬是如何在一個沒有管理員、沒有中心化服務器的情況下,讓我們能夠在一個安全的環境裡面進行交易呢?下面我們為大家詳細介紹一下比特幣交易背後隱藏的原理。

一、錢包地址

在介紹比特幣轉賬原理之前,我們需要了解一下“錢包地址”是什麼。錢包地址在比特幣轉賬中是真實可見的東西。通俗來講,“錢包地址”可以理解成一張銀行卡、這張“銀行卡”是比特幣支付轉賬的“憑證”,記錄著平臺與平臺、錢包與錢包、錢包與平臺之間的轉賬信息。

但是,光有銀行卡是不夠的,每張銀行卡都有兩個重要的信息,一個是銀行卡號,一個是銀行卡密碼。同理,比特幣錢包地址也涉及到兩個重要的信息:一個是公鑰,一個私鑰。它們之間的對應關係我們可以這樣理解:

銀行卡 —— 比特幣的錢包地址;

銀行卡號 —— 比特幣的公鑰;

銀行卡密碼 —— 比特幣的私鑰;

公鑰和私鑰屬於密碼學中“非對稱加密算法”範疇,而比特幣系統正是採用了非對稱加密算法,來保證交易的安全性問題的。下面我們詳細介紹一下。

二、私鑰&公鑰

私鑰和公鑰,從字面意思我們就可以理解:而私鑰,是私人的、你自己擁有的、需要絕對保密的;公鑰,是可以公開的。這就好比,你的銀行卡密碼必須絕對保密,而你的銀行卡號可以人盡皆知,它印在銀行卡上,誰都可以看到。

(一)私鑰

我們剛剛講過,私鑰,它相當於銀行卡密碼,因此,私鑰是需要絕對保密的。毫不誇張地說,誰掌握了私鑰,誰就掌握了其對應比特幣地址上的生殺大權,因此私鑰必須要好好保護。

私鑰是系統隨機形成的一串字符,因為私鑰數字集合足夠大,大到無窮無盡,所以私鑰是很難被破解的。有種說法是,破解私鑰的概率比被雷劈還小。這就意味著,你不說,別人幾乎不可能破解掉你的私鑰。

科普园地05 | 比特币的流通:交易

“私鑰”是屬於“非對稱加密算法”裡面的概念,與之對應的還有另一個概念,名叫:“公鑰”。

(二)公鑰

公鑰可以理解成”銀行行卡號“。公鑰和私鑰的關係非常密切:公鑰是根據私鑰計算形成的,根據私鑰就能夠計算出公鑰。這就使得,公鑰和私鑰形成了唯一對應的關係:

當你用了其中一把鑰匙加密信息時,只有配對的另一把鑰匙才能解密。正是基於這種唯一對應的關係,它們可以用來驗證信息發送方的身份,還可以做到絕對的保密。

科普园地05 | 比特币的流通:交易

(三)私鑰和公鑰是如何運作的

比特幣系統中引入密碼學概念“私鑰和公鑰”,能夠確保兩件事情:

第一,是我這筆比特幣能夠正確轉給收款方,而不會轉錯收款對象;

第二,是讓收款對象知道,這筆比特幣是我轉給他的,而不是別人轉給他的。

下面我們舉一個例子說明,在比特幣系統中,私鑰和公鑰是如何搭配協作的:

現在我要給小明轉10個比特幣,我要確保這10個比特幣能夠正確轉給小明,而不會轉給小紅和阿花;同時,我還得讓小明知道,這10個比特幣是我轉給他的,不是小紅和阿花轉給他的。

在這個過程中:比特幣系統會把我的交易信息縮短成一個固定長度的字符串,這段字符串可看作交易信息的“摘要”。然後,我的私鑰會被附到這個“摘要”上,形成一個“數字簽名”。這個“數字簽名”既包含了我的交易信息,還隱含了我的私鑰,因此,數字簽名可以證明我就是我,而不是小紅,也不是阿花。

科普园地05 | 比特币的流通:交易

之後,交易信息和數字簽名會一起廣播給礦工,等待礦工驗證。這時,公鑰便開始發揮作用。因為公鑰是全網公開的,所有人都能夠獲取我的公鑰,所以礦工肯定可以知道我的公鑰。礦工會用我的公鑰進行驗證,看看我的公鑰和我的數字簽名能不能匹配上。如果能匹配上,就說明這個交易確實是我發出的。

其實,公鑰和私鑰,簡單理解就是:既然是加密,那肯定是不希望別人知道我的消息,所以只能我才能解密,所以可得出:公鑰負責加密,私鑰負責解密。

舉例:我用小明的公鑰給信息加密,小明用自己的私鑰可以解密。

同理,既然是簽名,那肯定是不希望有人冒充我的身份,只有我才能發佈這個數字簽名,所以可得出:私鑰負責簽名,公鑰負責驗證。

舉例:我給小明發信息,我加上我自己的私鑰信息形成數字簽名,小明用我的公鑰來驗證,驗證成功就證明的確是我發送的信息。

到這裡,我們簡單概括一下上面的內容。上面我們主要講到這麼幾個詞:私鑰、公鑰、錢包地址、數字簽名,它們之間的關係我們梳理一下:

(1)私鑰是系統隨機生成的,公鑰是由私鑰計算得出的,錢包地址是由公鑰計算得出的,也就是:私鑰——公鑰——錢包地址,這樣一個過程;

科普园地05 | 比特币的流通:交易

(2)數字簽名,是由交易信息+私鑰信息計算得出的,因為數字簽名隱含私鑰信息,所以可以證明自己的身份。

私鑰、公鑰都是密碼學範疇的,屬於“非對稱加密”算法中的“橢圓加密算法”,之所以採用這種算法,是為了保障交易的安全。只不過,在比特幣交易中,加密解密啦、驗證啦這些都交給礦工了,我們體會不到這些處理過程。

(四)錢包APP

錢包APP這部分是一個小小的補充內容。因為我們現在很多人都在使用錢包APP,所以我們做一個簡單的介紹。

錢包APP相當於私鑰、錢包地址和其他區塊鏈數據的管理工具。錢包分冷錢包和熱錢包兩種:冷錢包是離線的,永遠不聯網的,一般是以一些實體的形式出現,比如小本子;熱錢包是聯網的,我們用的錢包APP就屬於熱錢包。

總結

比特幣交易這部分我們通過兩期的內容為大家做了呈現。我們可以發現:比特幣系統主要採用了密碼學中的哈希算法和非對稱加密算法來保證交易的安全:在交易信息全網公開的前提下,哈希算法的單向性保護了交易雙方的隱私信息;非對稱加密算法能夠保證交易過程中,你的比特幣不至於轉到別人的口袋裡。


分享到:


相關文章: