• <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>
     找回密碼
     立即注冊

    掃一掃,登錄網站

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

    區塊鏈是什么,一文讓你看懂區塊鏈的本質?

    2018-2-5 23:30

    區塊鏈世界:走進區塊內,探索消息的本質

    上面我們構建了一個最簡單的區塊鏈世界的模型,相信大多數同學都已經輕松掌握了。但是別驕傲也別著急,這還只是一些皮毛中的皮毛,坐好,下面我們準備開車了。

    前面我們說到“大概每十分鐘會憑空產生一個神奇的區塊,這個區塊里放了一張小紙條,上面記錄了這十分鐘內產生的這唯一一筆交易信息”。顯然,十分鐘內產生的交易肯定遠不止一條,可能是上萬條,這上萬條數據在區塊鏈世界是如何組織和處理的呢?另外,為什么在紙條上記錄的只是某一次的交易信息,而不是某一個人的余額?余額好像更符合我們現實世界的理解才對。

    既然存在這樣那樣的疑問。現在我們就把視線暫時從“區塊”、“區塊鏈”這些看起來似乎較大實體的物質中移開,進入到區塊內更微觀的世界里一探究竟,看看小紙條到底是怎么一回事,它的產生以及它終其一生的使命:

    1. 發起交易的時候,發起人會收到一張小紙條,他需要將交易記錄比如說“盜盜轉賬給張三40元”寫在紙上。說來也神奇,當寫完的那一剎那,在小紙條的背面會自動將這段交易記錄格式化成至少包含了“輸入值”和“輸出值”這兩個重要字段;“輸入值”用于記錄數字貨幣的有效來源,“輸出值”記錄著數字貨幣發往的對象。
    2. 剛剛創建的小紙條立馬被標記成為“未確認”的小紙條。從地下成功挖出區塊并最終連接到區塊鏈里的小紙條一開始會被標記為“有效”。若這條有效的小紙條作為其他交易的輸入值被使用,那么,這個有效的小紙條很快會被標記為“無效”。因為各種原因,區塊從鏈上斷開、丟棄,曾經這個區塊內被標記為“有效”的小紙條會被重新標記為“未確認”。
    3. 區塊鏈里面沒有賬戶余額的概念,你真正擁有的數字資產實際上是一段交易信息;通過簡單的加減法運算獲知你數字錢包里的余額。

    上面的1、2、3僅僅作為結論一開始強行灌輸給你的知識點,其中有幾個描述可能會有點繞,讓你覺得云里霧里,沒有關系,因為我們立刻、馬上就開始會細說里面的細枝末節。

    上圖就是從無數打包進區塊內的小紙條中,抽取出來的一張,以及它最終被格式化后的縮影。

    單看右側的圖可能很容易產生誤會,雖然看起來有多行,但實際上就是“盜盜轉賬給張三40個比特幣”這一條交易數據另外的一種呈現形態。因為區塊鏈世界里面這么規定,每一條交易記錄,必須有能力追溯到交易發起者 發起這筆交易、其中所涉及金額的上一筆全部交易信息;即這筆錢從何而來的問題。這其實很容易理解,在去中心化的網絡中,通過建立交易鏈、和通過交易鏈上的可溯源性間接保證數據安全和有效。

    我們繼續看,在區塊鏈世界里,我們是如何僅通過“盜盜轉賬給張三40個比特幣” 這條交易信息完成轉賬流程的。其實跟現實中你在路邊買一個包子的流程大抵上相同。

    第一步:判斷是否有足夠的余額完成交易

    這里我們再一次重申,區塊鏈世界是沒有余額的概念,余額是通過簡單數字的加減最終獲得,你擁有所謂的數字貨幣實際上是因為你擁一條交易記錄,即 “盜盜轉賬給張三40個比特幣”!這里,我們還是拿這條記錄說事:

    追溯“輸出值”是“盜盜”相關的全部有效交易記錄作為,對有效交易中的數字進行簡單求和,判斷是否大于等于40,如果確實大于等于,則將這些有效的交易記錄合并形成一條新的交易記錄(如下圖)。如果小于40,其實可以不需要再繼續往下探討。

    就上圖的例子,我們追溯到曾經轉賬給盜盜的有效交易記錄有“小A轉賬給盜盜10 btc”、“小B轉賬給盜盜20 btc”、“小C轉賬給盜盜 25 btc”,我們需要將這三條交易記錄合并成一條更復雜描述的交易記錄,即 “( 小A轉賬給盜盜10 btc + 小B轉賬給盜盜20 btc + 小C轉賬給盜盜 25 btc ) 轉賬給張三40 btc ”

    第二步:判斷是否需要找零

    對追溯到的有效交易數字求和,如果發現大于需要支付的金額,需要將多出的數字重新支付給自己,相當于找零。對應生成了一條全新的交易記錄(如下圖)。

    就上圖例子來說,我們最后合并成的交易記錄 “( 小A轉賬給盜盜10 btc + 小B轉賬給盜盜20 btc + 小C轉賬給盜盜 25 btc + 盜盜轉賬給盜盜15 btc ) 轉賬給張三40 btc ” 事實上等同于“盜盜轉賬給張三40 btc”。其中“盜盜轉賬給盜盜15 btc”就可以理解找零。

    第三步:發出去,讓全球節點認同和備份小紙條

    這條內部重新處理過的復雜交易記錄被塞進區塊,埋到地下,等待節點挖出來,一旦區塊被挖礦成功,并且該區塊最終被連在了區塊鏈的主鏈上。張三將最終擁有了這條交易記錄,而先前的“小A轉賬給盜盜10 btc” 、“小B轉賬給盜盜20 btc” 、“小C轉賬給盜盜25 btc”都將被視為已經使用過的交易記錄——從此被貼上“無效”的標簽,意味著這些交易記錄將永遠不會再被追溯到。

    我們最后一次重申,只是希望讓你加深印象:擁有數字貨幣=擁有交易記錄!

    通過設計巧妙的精巧密碼學保證數據安全

    記錄著交易信息的小紙條借助區塊這個載體,在分布式的網絡中以不同的軌跡錯綜復雜的傳遞,我們前面說了,你真正擁有的數字資產實際上是一段交易信息,而不是你常規意義上理解的貨幣。所以這個過程就需要重點解決兩個問題:

    • 接受到的這條交易記錄在傳輸過程沒有被其他人所篡改
    • 接受到的這條交易記錄確實是由發起交易的人所創造

    在這里,我們需要事先引入兩個知識點,可能稍微有點難消化,但都是計算機領域較為成熟的和基礎的概念。

    第一個知識點:Hash()函數。你只需要知道,任意長度的字符串、甚至文件體本身經過Hash函數工廠的加工,都會輸出一個固定長度的字符串;同時,輸入的字符串或者文件稍微做一丟丟的改動,Hash() 函數給出的輸出結果都將發生翻天覆地的改變。注意,Hash()函數是公開的,任何人都能使用。

    上圖,僅僅一個小數點的變化,輸出的結果已經翻天覆地

    第二個知識點:非對稱加密。你也只需要了解,任何人手里都有兩把鑰匙,其中一把只有自己知道,叫做“私鑰”,以及一把可以公布于眾,叫做“公鑰”;通過私鑰加密的信息,必須通過公鑰才能解密,連自己的私鑰也無解。公鑰可以通過私鑰生成多把。

    有了這些知識點的加持,上面兩個問題開始變得有解。下面我們來看下內部是如何扭轉和工作的吧,這里拿“小A 轉賬給了小B 100元錢” 舉例:

    1. 第一步:小A會先用Hash函數對自己的小紙條進行處理,得到一個固定長度的字符串,這個字符串就等價于這張小紙條。
    2. 第二步:小A使用只有自己知道的那一把私鑰,對上面固定長度的字符串進行再加密,生成一份名叫數字簽名的字符串,這份數字簽名能夠充分證明是基于這張小紙條的。你可以這么理解,在現實中,你需要對某一份合同的簽署,萬一有人拿你曾經在其他地方留下的簽名復制粘貼過來怎么辦?!最好的辦法,就是在你每一次簽名的時候,故意在字跡當中留下一些同這份合同存在某種信息關聯的小細節,通過對小細節的觀察可以知道這個簽名有沒有被移花接木。步驟一和步驟二的結合就是為了生成這樣一份有且僅針對這條小紙條有效的簽名。
    3. 第三步:小A將「明文的小紙條」、剛剛加密成功的「數字簽名」,以及自己那把可以公布于眾的「公鑰」打包一起發給小B。
    4. 第四步:當小B收這三樣東西,首先會將明文的小紙條進行Hash()處理,得到一個字符串,我們將其命名為“字符串1”。然后,小B使用小A公布的公鑰,對發過來的數字簽名進行解密,得到另外一個“字符串2”。通過比對“字符串1”和“字符串2”的一致性,便可充分證明:小B接受到的小紙條就是小A發出來的小紙條,這張小紙條在中途沒有被其他人所篡改;且這張小紙條確實是由小A所編輯。

    可以看得出來,加解密的過程幾乎是一環套一環,中途任何環節被篡改,結果都是大相徑庭。借助這一連串的機制,其實已經能夠很好的在公開、匿名、彼此不信任的分布式網絡環境中解決數字交易過程中可能遇到的很多問題。這個環節可能確實有點難理解,現在,我需要你停下來,靜下心,花上幾分鐘閉目慢慢回味其中設計精湛的地方。

    掌握了這部分知識以后,我們在這里回答一下前面沒有解釋清楚的問題,「節點對區塊的檢驗」檢驗的到底是什么?實際上就是:

    • 檢驗區塊內的交易記錄簽名是否準確(是否被篡改)
    • 檢驗區塊內的交易記錄輸入值是否“有效”(是否使用過)
    • 檢驗區塊內的交易記錄輸入值的數字之和是否大于等于輸出值的數字
    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系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>
      妖精视频