本文轉自:http://blog.csdn.net/pony_maggie/article/details/54837674算法
轉自:http://www.bikeji.com/t/110#reply25安全
比特幣交易涉及到不少密碼學知識:公鑰、私鑰、哈希、對稱加密、非對稱加密、簽名等等。那麼哪些是須要用戶認真保管不能對外泄露的,那些是須要用戶公開的呢?先從錢包地址的生成提及。網絡
在上述的五個步驟裏只有「BASE58編碼」有相應的可逆算法(「BASE58解碼」),其餘算法都是不可逆的,因此這些數據之間的關係能夠表示爲:編碼
能夠看到:加密
經過『私鑰』能夠獲得上述計算過程當中全部的值。
『公鑰哈希』和『錢包地址』能夠經過互逆運算進行轉換,因此它們是等價的。spa
比特幣錢包間的轉帳是經過交易(Transaction)實現的。交易數據是由轉出錢包『私鑰』的全部者生成,也就是說有了『私鑰』就能夠花費該錢包的比特幣餘額。生成交易的過程以下:.net
交易數據被廣播到比特幣網絡後,節點會對這個交易數據進行檢驗,其中就包括對簽名的校驗。若是校驗正確,那麼這筆餘額就成功地從「轉出錢包」轉移到「轉入錢包」了。blog
若是一個『錢包地址』從不曾發送餘額到其餘『錢包地址』,那麼它的『公鑰』是不會暴露在比特幣網絡上的。而公鑰生成算法(SECP256K1)是不可逆的,即便『公鑰』暴露,也很難對『私鑰』的安全性形成影響(難易取決於『私鑰』的生成算法)。
『私鑰』用來生成『公鑰』和『錢包地址』,也用來對交易進行簽名。擁有了『私鑰』就是擁有了對這個錢包餘額的一切操做權力。因此,保護『私鑰』是全部比特幣錢包應用最基本也是最重要的功能。
注圖片
本文僅討論標準P2PKH交易方式,P2SH不在討論範圍內。
歷史上發生過校驗錯誤的交易被打入到blockchain中的事情,這種交易中的比特幣永遠地消失在Cyberspace中了。get