从零开始学习区块链(1)
定義1:區塊鏈(Blockchain)技術是維護一個不斷增長的數據記錄的分布式數據庫,這些數據通過密碼學的技術和之前被寫入的所有數據關聯,使得第三方甚至是節點的擁有者難以篡改。區塊(Block)包含有數據庫中實際需要保存的數據,這些數據通過區塊組織起來被寫入數據庫。
?
定義2:Hash算法:哈希算法將任意長度的二進制值映射為較短的固定長度的二進制值,這個小的二進制值稱為哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨后的哈希都將產生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的,所以數據的哈希值可以檢驗數據的完整性。一般用于快速查找和加密算法。
哈希表是根據設定的哈希函數H(key)和處理沖突方法將一組關鍵字映射到一個有限的地址區間上,并以關鍵字在地址區間中的象作為記錄在表中的存儲位置,這種表稱為哈希表或散列,所得存儲位置稱為哈希地址或散列地址。作為線性數據結構與表格和隊列等相比,哈希表無疑是查找速度比較快的一種。
通過將單向數學函數(有時稱為“哈希算法”)應用到任意數量的數據所得到的固定大小的結果。如果輸入數據中有變化,則哈希也會發生變化。哈希可用于許多操作,包括身份驗證和數字簽名,也稱為“消息摘要”。
簡單解釋:哈希(Hash)算法,即散列函數。它是一種單向密碼體制,即它是一個從明文到密文的不可逆映射,只有加密過程,沒有解密過程。同時,哈希函數可以將任意長度的輸入經過變化以后得到固定長度的輸出。哈希函數的這種單向特征和輸出數據長度固定的特征使得它可以生成消息或者數據。
舉個例子,如果你輸入一篇論文對并對其使用哈希函數運算得到一串固定長度的哈希值(計算結果),一旦別人抄襲或更改計算結果都會變化。而且哈希函數是不可逆的,這和普通函數有很大不同。
?
定義3:merkel樹,
?
Merkle Tree是一種數據結構中所說的樹,網上大都稱為Merkle Hash Tree,這是因為它所構造的Merkle Tree的所有節點都是Hash值。
Merkle Tree具有以下特點:
1. 它是一種樹,可以是二叉樹,也可以多叉樹。無論是幾叉樹,它都具有樹結構的所有特點;
2. Merkle樹的葉子節點上的Value,是由你指定的,這主要看你的設計了,如Merkle Hash Tree會將數據的Hash值作為葉子節點的值;
3.?非葉子節點的Value是根據它下面所有的葉子節點值按照一定的算法計算得出的。如Merkle Hash Tree的非葉子節點Value的計算方法是將該節點的所有子節點進行組合,然后對組合結果進行Hash計算所得出的Hash Value。
例如,下圖就是一個Merkle Hash Tree形狀,如果它是Merkle Hash Tree,則節點7的hash value必須是通過節點15、16上的value計算而得到。
?
目前在計算機領域,Merkle Tree大多用來進行比對以及驗證處理。在處理比對或驗證的應用場景中特別是在分布式環境下進行比對或驗證時,Merkle Tree會大大減少數據的傳輸量以及計算的復雜度。例如,就拿上圖舉例,假如是 15,16.......30是一個個數據塊的hash值,我把這些數據從A傳輸到B,并且在數據傳輸到B后,我想驗證下傳輸到B上的數據的有效性型(驗證數據是否在傳輸過程中發生變化),我只需要驗證A和B上所構造的Merkle Tree的Root節點值是否一致即可。如果一致,表示數據是有效的,傳輸過程中沒有發生改變。假如在傳輸過程中,15對應的數據被人篡改,通過Merkle Tree很容易定位找到(因為此時,節點0、1、3、7、15對應的Hash值都發生了變化),定位的時間復雜度為O(log(n))。
?
最后,我們來了解一下鼎鼎大名的比特幣。著名的中本聰論文《比特幣:一種點對點(Peer-to-Peer)的電子現金系統》中涉及了幾個觀點:
(論文下載地址:https://xueshu.glgoo.net/scholar?cluster=9372423383988544578&hl=zh-CN&as_sdt=0,5)
1. 去中心化、去中介化的可靠交易;
2. 反欺詐;
3. 基于密碼學原理的電子交易憑證管理;
4. 分布式的時間戳服務器;
5. 足夠的安全能力支持系統。
所以,我們可以把比特幣理解為一個區塊鏈技術的應用場景。
當區塊鏈技術被發表后,很多人士認為有可能實現DAC。DAC,全稱是Distributed Autonomous
Corporation,中文可以翻譯為分布式自治系統。所謂DAC,就是通過一系列公開公正的規則、可以在無人干預和管理的情況下自主運行的組織系統。DAC的形態非常多,它可能是某種數字貨幣,也可能是一個系統或者實體機構,甚至可能是無人駕駛的汽車。作為企業,它們為客戶提供有價值的服務,這種服務可以是貨幣傳輸(如比特幣)、資產交易、域名服務,或者其他任意一種商業模式。
以下是分布式系統的四個突出特點:
1.沒有強制性的中心控制;
2. 次級單位具有自治的特質;
3. 次級單位之間彼此高度連接;
4. 點對點間的影響通過網絡形成了非線性因果關系。
通過以上介紹,我們大概能夠了解區塊鏈技術的概念,而區塊鏈技術現有的應用場景基本如下:
1.存在性證明 ?:在互聯網金融領域可以用于確權,因為區塊鏈真的可以實現證明你媽是你媽。 ?
2. 智能合約: ?保證合約的有效性,如電子簽名法所規定的生成、儲存或者傳遞數據電文方法的可靠性;保持內容完整性方法的可靠性;用以鑒別發件人方法的可靠性;其他相關因素。 ?
3.物聯網 ?:區塊鏈可以讓物聯網對物體的編碼標準交互接口的問題得以解決。IBM認為區塊鏈將在分布式網絡中起到至關重要的作用,每一個設備都充當一個礦工,在網絡上的節點之間傳輸數據。在IBM正在開發的被稱為“Adept”的項目中,區塊鏈在創建一個可行的分布式網絡中起到了至關重要的作用。 ?
4. 身份驗證 ?:電子簽名法所規定的電子簽名制作數據用于電子簽名時,屬于電子簽名人專有;簽署時電子簽名制作數據僅由電子簽名人控制;簽署后對電子簽名的任何改動能夠被發現;簽署后對數據電文內容和形式的任何改動能夠被發現;當事人也可以選擇使用符合其約定的可靠條件的電子簽名。 ?
5. 預測市場 ?:股市預測社區Augur就是一個例子。任何人在世界任何地方都可以訪問和使用的Augur,這可能給市場帶來前所未有的流動性和交易量。 ?
6. 資產交易 ?:Nasdaq OMX Group Inc正在測試區塊鏈技術,納斯達克認為該技術有機會讓傳統的金融交易方式變為和比特幣類似的交易方式。 ?
7. 電子商務 ?:比特幣的模式直接套用就可以了,電商是不是有可能變成沒有監管但是“和諧”的黑市? ?
8. 社交通訊 ?:Magma VC已經向去中心化社交通信應用初創項目GetGems(原名Gems)投資了40萬美元。 ?
9. 文件存儲 ?:直接沖擊甚至顛覆傳統的云計算架構。 ?
10. 數據API ?:區塊鏈API服務提供商Chain已經獲得由Khosla Ventures領投的950萬美元投資,投資者還包括Pantera Capital、Barry Silbert、RRE Ventures、SV Angel、Thrive Capital和500 Startups。華爾街的金融公司正在投資區塊鏈、搶灘布局。Visa、納斯達克、花旗風投也投資這家舊金山區塊鏈初創公司Chain,涉及融資金額達到3000萬美元。 ?
總結
以上是生活随笔為你收集整理的从零开始学习区块链(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器位置不可用,服务器的MSDTC不可
- 下一篇: [ProblemSolving]ut下载