想知道更多關於區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社群】
鏈客,有問必答!!
區塊鏈是一個從頂向下實現的一項技術,是可以設計,可以程式設計的。是一個信任的機器,是在完全不信任的節點之間建立信任機制的技術,是利用網際網路傳遞價值的一種價值網路,這是一個把時間當朋友的技術。
區塊鏈在應用的過程中通過自身的設計,解決的問題:如何避免記假賬?如何判斷誰的記錄是準確的?如何避免“雙花”?
首先,區塊鏈技術利用非對稱祕鑰對交易資訊簽名,並廣播;接著,驗證交易資訊,組裝區塊,並形成區塊鏈結構;然後利用共識機制(工作量證明Pow),防止鏈分叉;最後P2P資料傳輸,分散式網路儲存。
用私有祕鑰對交易資訊簽名,然後必須用配對的公共金鑰來驗證簽名,私用金鑰的使用者必須是付款人。接著,被簽名的交易資訊可以在網路上傳播,所有參與到這條鏈的人都會收到這筆交易資訊,並且可以對交易資訊進行延籤,確保交易是合法的,這就解決了第一個記假賬的問題。當我們收到交易資訊之後,大家會按照預定的規則去生成區塊,就是一個資料塊,這個資料塊中包含所有的交易的明細資訊,按照merkle樹的方式組裝起來。
所謂的公識機制,就是區塊鏈系統中,實現不同節點之間,建立信任、獲取權益的數學演算法。比特幣中的決策機制叫做工作量證明,就是讓大家在區塊頭中,結合上個區塊的Hash值,以及本區塊的Hash值,試算一個隨機數,這個隨機數結合前面提到的兩個Hush值做運算之後,結果必須要小於某個數值。
區塊生成之後也要傳送給大家驗證,一旦網上有相當多的人驗證區塊以後,這個區塊就會被正式納入到區塊鏈中,稱為區塊鏈中合法的一環了。然後這些新的區塊資訊會通過點通訊網路在網上傳播,讓大家都同步到最新生成的區塊,並保持區塊鏈的一致性。
那麼它是怎麼避免雙花的呢?大家在生成區塊鏈的時候,會從網上收集交易資訊,交易資訊中包含了付款人的私鑰簽名。大家會首先驗證簽名是否是正確的,只要是正確的簽名就會被認為是付款人認可的支付。之後,大家會從之前的區塊中去追溯,看看付款人的這次消費的區塊是否以前被消費國=過,然後記錄下付款人可用的餘額(UTXO機制)。