• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 百科 查看內容
    • 18158
    • 0
    • 分享到

    什么是區塊鏈,如何簡單易懂地介紹區塊鏈?

    2018-2-26 09:38

    來源: 云心區塊鏈

    比特幣的轉賬


    三、比特幣的轉賬

    去中心化,意味著陌生人之間的轉賬支付是直接進行的,沒有第三方提供信用擔保,這怎么可能呢?nothing is impossible,中本聰就設計出來了,當然技術上很復雜。我們這里先打個比方介紹一下,感受一下這根蔥的厲害。

    比如Alice要向Bob轉賬,注意兩人互相不認識,毫無信任感,那如何直接轉賬呢?在我們目前的具有中心的網絡下,Alice向Bob轉賬100元,銀行收到Alice請求,并檢查Alice賬戶余額,如果大于100,便減少100,同時Bob賬戶增加100余額。所有人的賬戶都是非公開的,權力掌握在中心機構手中。但在本聰的設計中,在一個去中心化的網絡中,每一個用戶自己都有一個賬本,這個賬本記錄了從第一枚比特幣誕生以來的所有交易記錄,Alice要向Bob轉賬5個btc,會在村口喊一句“Alice要轉賬5btc給Bob”,村口居民張三聽到Alice的聲音,掏出自己的小本子,檢驗了一下Alice的賬戶,發現Alice有5個btc,便寫下Alice向Bob轉賬5個btc。同時也喊出“Alice要轉賬5btc給Bob”,這樣村民一傳十十傳百,直到每個村民都把這筆交易記錄在自己的賬本上。這樣,每一個村民的賬本都是一樣的,這就是所謂的去中心化賬本。在去中心化的網絡中,剛才說的各個村民就是體系中的各個節點。這個去中心化的體系中每個節點的賬本都是一樣的,所以它幾乎不可能摧毀。傳統網路中,如果銀行體系被破壞了,那么大家的賬目就混亂了。但是在比特幣網絡中,每個節點都明確的記錄了本聰開比特幣以來的所有賬目,即使節點幾乎都炸毀了,只要還剩一個節點、就可以還原出所有記錄,除非瞬間摧毀整個互聯網。

    我們要記住,在去中心化網絡中,所有人都是不可信任的,這是我們的前提,上述例子中,居民自發記賬,有沒有可能記錯呢?當然可能,張三如果跟Alice有仇,給人家肆意篡改,到時候我們該相信哪個賬本呢?在大家都不互相信任的體系如何做到這點呢?首先要做的是要先驗證這條消息是不是Alice本人發出的,這里用的辦法就是簽名,Alice廣播這條信息的時候要在信息下簽個名,當然網絡上要數字簽名了,大家收到這個信息以后要對照一下字跡,發現確實是Alice發送的,就承認這條信息是真的,驗證數字簽名的算法叫橢圓曲線數字簽名算法,是一種非對稱加密算法。

    非對稱加密算法,聽著都很可怕,這里只能舉個例子,聽聽氣質,聽完氣質長精神。什么叫非對稱加密呢?那要先明白啥叫對稱加密。在傳統的對稱加密過程中,比如我要傳遞一個秘密數字給佐爾格,加密方式就是給這個數字加上33。當然佐爾格要知道這個加密方式,當他看到寫著223這個數字的紙條的時候,他就會用223減去33,等于190。這個190就是我想傳遞給佐爾格的數字;佐爾格看后非常震驚,馬上通過秘密渠道告知斯大林:德軍要用動用190個師閃擊蘇聯。

    這種加密方式的關鍵在于、雙方要實現約定加密方式,但如果事先無法約定怎么辦,或者這種加密方式被敵方所竊取或者所破解了怎么辦?這就是我們在很多諜戰片里的情景,一旦密碼本丟失,整套密碼系統就完蛋了。

    那么,有沒有一種辦法,即使對方知道了加密方式也破解不了信息?這個可以有,這就是非對稱加密。

    你知道了我的加密方式,竟然都破解不了我的信息,這個非對稱加密要滿足如下條件:有一個解密方式A與加密方式B,我要傳遞信息M,使用加密方式B進行運算,得到加密信息X=F(M,B),這個過程的好處在于,即使你知道我的加密方式B和加密后得到的信息X,你依然無法算出我的原始信息M,而原始信息M=F(X,A),即原始信息必須使用解密方式A算出。這里的A稱為私鑰,B稱為公鑰——意思就是私人密鑰和公開密鑰,比如特工小孫需要接受情報,他大可以放心的把公鑰在網絡上公布,任何想要給他發送信息的人只要按照公鑰B的方式進行加密,得到加密信息X,小孫只需要對X使用自己的私鑰解密即可,這樣就避免了對稱加密中加密方式的傳遞和破解問題,只要小孫保管好自己的私鑰,這個體系幾乎很完美,但是大家基本沒聽懂,對吧?

    所以這里必須要舉一個例子,一個非常簡化的例子,簡直就是一個小游戲、小魔術。大家提提神,我們一起小游戲。你現在隨便想一個三位數,但你別告訴我,因為怕被旁人聽見,你加密后告訴我,你把你想好的這個三位數乘以91,然后告訴我最后三位就行了;然后呢?然后我就知道你想的那個三位數是多少了,辦法很簡單,就是我把你告訴我的最后三位再乘以11,所得到數字的最后三位就是你想的數字。

    那我們試一下,假定你想好的數字是321,想把這個數字加密后告訴我,于是你用91乘以321,等于29211,然后你告訴我最后三位是211,隨后我用211乘以11,得到數字2321,這個數字的最后三位不正是你想告訴我的321嗎?哇塞,好神奇。

    或許有朋友覺得,是不是碰巧了啊。你321這個數字太特殊了啊。Ok,我們再來一次。這回你想好的三位數是598,然后你乘以91,這個乘以91就是公鑰;598乘以91=54418,其最后三位是418,所以你把418告訴了我。于是我拿出了我的私鑰11,乘以418,得到了數字4598,其最后三位是598,不正是你真正想要給我傳遞的598嗎?我乘以11就是解密的過程。此所謂:公鑰加密、私鑰解密。就算別人偷聽到了你秘密告訴我的418、并且也知道這是經過公鑰加密的——也就是乘以91了,但他只要不知道我的私鑰、也就是不知道乘以11,那他看著418照樣無法解密,只能看著418干瞪眼,無法破解出598這個真正信息。

    這就是非對稱加密的牛逼之處——“公鑰加密,私鑰破解”,而傳統的對稱加密就是加密和破解用的是同樣的密鑰,而非對稱用的兩套密鑰——“公鑰加密,私鑰破解”。

    此時此刻,估計有盆友覺得震驚了,為什么我一乘11,直接就解密了呢?因為91乘以11等于1001,任何三位數乘以1001的后三位就是三位數本身。

    大家注意,剛才這個例子只是一個極其簡單的非對稱加密。人家比特幣所用的非對稱加密那是相當的復雜,叫什么橢圓曲線數字簽名算法。我們在剛才的例子里面,我們只說了單向的公鑰加密、私鑰解密,比特幣世界里的橢圓曲線算法更神奇,不但有公鑰加密、私鑰解密,還有私鑰加密、公鑰解密,私鑰可以推出公鑰,但公鑰推不出私鑰。有了這點公鑰和私鑰的概念,我們可以講述一下比特幣系統下Alice向Bob轉賬的過程。

    你作為一個比特幣的用戶,自然會有一個錢包,這個錢包下面可以生成一大堆的地址和對應的密碼,由用戶自主選擇一個,甚至每一筆交易都使用一個新的公鑰(當然只能是收款),這樣可以避免任何人對你的追查,如果你頻繁使用一個公鑰,這些交易記錄大家還可以推出一些有限信息,比如頻繁程度,額度大小等,可以對你的財富做一些推測,你的隱私會受到威脅。在比特幣的世界里我們把錢包里的地址叫公鑰,把對應的密碼叫私鑰。我們可以簡單理解公鑰就是我們銀行卡賬號,私鑰就是銀行卡密碼。我們每一個人在比特幣世界里可以有茫茫多的銀行卡,而且每張銀行卡并不與你本人任何身份信息綁定,這就是比特幣的匿名性。任何人只要有這個私鑰,也就是密碼,就可以操縱對應銀行卡,也就是公鑰里的比特幣。

    現在Alice要向Bob轉賬5btc,Alice會把這條信息用自己的私鑰加密并發送到Bob的地址,也就是Bob的公鑰,其實就是Alice先使用Bob的公鑰加密一層信息,把這條加密后的信息再使用Alice自己的私鑰加密一層,這時信息已經被加密了兩層,一層是Bob公鑰,一層是Alice私鑰。大家收到這條信息以后,會用Alice的公鑰來驗證加密信息是不是Alice發送的,其實就是用公鑰解密了Alice這層信息,從而驗證了這條信息確實來自于Alice,但是這條信息還使用了Bob的公鑰加密,Bob再用自己的私鑰對這條信息進行解密,也就是用自己的密碼打開了銀行賬號,也就是用自己的私鑰打開了自己的公鑰。

    理論上如果你找到了一個私鑰,那么你就是可以操縱其余額的,因為私鑰是可以推出對應的公鑰的,然后你就可以像上述一樣對這個地址的記錄進行數字簽名,相當于就掌握了這個地址。反過來說,如果你的私鑰丟了,那這個地址上的整個錢也就消失了,你想申訴?申訴個nothing,整個比特幣世界是去中心化的,就沒有中心機構可以申訴。

    早期有很多用戶不知道其中厲害,還將私鑰保存在電腦里,結果被黑客入侵,私鑰被盜,其中的比特幣就全沒了。所以,千萬不要把私鑰存在聯網的電腦,可以寫在紙上,再把紙放在鞋墊下面,這樣不但安全、還能增高。或許有人擔心,既然私鑰是隨機生成的,那么有沒有可能大家生成了相同的私鑰呢?有可能,nothing is impossible,但這種可能性有多小呢?小到了只有零可以與其媲美,所以大家不用擔心私鑰重合的問題。

    現在要談另一個重要問題,就是如何驗證廣播信息的真實性。也就是Alice廣播說她要給Bob轉5個幣,但有可能她在騙人,因為她只有3個幣,怎么能給Bob轉5個?對呀,如何確認Alice的話是真的呢?以下我會把Alice當做你來說,這樣你更有感覺、更有feeling。

    如果要是有中心機構銀行,那就好辦了,就只要統計你的余額就好了;而比特幣只儲存交易記錄,只驗證這筆交易中涉及比特幣的來源與去向,并不是對于你的余額進行檢驗。比如你要轉賬兩枚比特幣,這兩枚的編號分別是1和2;系統并不關心你總共有多少枚比特幣,而是檢驗編號1的比特幣上次發送到了你的公鑰,而且并沒有再被發送出去,那這個比特幣就可以被轉賬發送出去;編號2也同理,如果你只轉賬2btc,那么系統到此就判定結束了,如果你需要轉賬3枚,那么你就必須再援引一個btc的交易記錄,我們說過,它記錄了比特幣誕生以來的所有交易記錄,每一項資產和交易記錄都是公開可查的!這就是公開透明的特點。別忘了,我們是與陌生人打交道,時時刻刻都是不信任。

    事實上,Alice傳達的信息中:我要給Bob轉賬5個btc。這5個btc都是有編號的,我們可以查這5個btc上一次是從哪里轉到Alice這里的?這5個幣有沒有從Alice這里轉走?如果都滿足,那就表明Alice可以轉走這5個幣。所以比特幣是一種去中心化的賬本大家聽出點意思了吧,比特幣世界算你的余額,是算從你這個賬戶誕生開始每一筆收支,加減到現在你的正值,由于每一筆交易都是全網驗證過的,每一筆交易的比特幣都是有來龍去脈的,所以可以說它是相當安全的。當你在電腦上下載比特幣客戶端的時候,系統會一次性的下載所有交易記錄,而且會驗證一遍,一般需要一天一夜的時間,好麻煩啊;不過只要驗證一次、就一勞永逸了。


    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频