更多微軟Azure 動手實戰視頻,請關注公衆號:算法
本文是前奏,原本要介紹Azure上的Azure Blockchain Service,發現,須要從什麼是區塊鏈開始講起。。。數據庫
什麼是區塊鏈?咱們從比特幣提及, 2008年11月,中本聰提出了比特幣白皮書,比特幣系統從09年至今,未出現重大安全事故。編程
1.比特幣的底層技術即是區塊鏈;安全
2.比特幣是點對點的電子現金系統(支付領域);app
3.該系統基於區塊鏈技術構建;less
4.該系統經過區塊鏈技術,使得點對點電子交易不須要中間方驗證;分佈式
5.具備實驗性質,運行10年,未出現重大問題。ide
簡單理解區塊鏈,從一個故事提及:區塊鏈
張三給李四轉1000塊錢的故事:ui
1.張三大吼一聲,我給李四轉了1000塊錢;
2.張三附近的村民聽到了這聲吶喊,而後確認了張三有足夠餘額;
3.村民檢查事後,每一個村民都在自家的帳本上記錄:
張三轉給李四1000,張三3000-1000=2000;李四200+1000=1200;
4. 張三附近的村民把轉帳告訴鄰村,鄰村又告訴鄰村,全球人都知道了並記錄到了自家帳本上。
幾個問題?
李四的問題:帳本會不會被篡改?
村民A的問題,爲何要費力氣給張三記錄這筆交易呢?
全體村民的問題,以誰記的爲準?
帳本會不會被篡改?
通俗理解,把一段時間內的交易放到一個區塊中,經過對區塊進行哈希運算(哈希運算理解爲Hash算法能夠將一個數據轉換爲一個標誌,這個標誌和源數據的每個字節都有十分緊密的關係。Hash算法還具備一個特色,就是很難找到逆向規律。原始數據中發生任何改變,哈希運算的結果都將發生變動),產生該區塊的哈希值,該區塊發生任何變化,區塊的哈希值就會有巨大改變,講哈希算法的結果寫入到下一個區塊中,將先後兩個區塊串起來。
若上一頁帳單(區塊)數據被修改,那它的數據指紋(哈希值)會發生改變,就沒法與下一頁帳單中記錄的哈希值對應上。全部玩家就能識別出這是個被篡改的無效鏈,並將其拋棄。
因此,經過區塊+鏈的方式,帳不可篡改。
做爲普村A,爲何要費力氣記帳呢?
由於有好處,就是所謂的礦工激勵,第一個得到記帳權的人,會得到獎勵。
誰記得爲準?
工做量證實(PoW),誰最早計算出某個題目的答案,就以誰的帳本爲準,其餘人複製該帳本。某個題目的答案,其實就是區塊頭中的隨機數。
區塊鏈的幾個特色:
1.去中心化(Decentralized)去中心化系統,其沒有中介機構,全部節點的權利和義務都相等,任一節點中止工做都會不影響系統總體的運做;
2.去信任(Trustless)系統中全部節點之間無需信任也能夠進行交易,由於數據庫和整個系統的運做是公開透明的,在系統的規則和時間範圍內,節點之間沒法欺騙彼此;
3.集體維護(Collectively Maintain)系統是由其中全部具備維護功能的節點共同維護的,系統中全部人共同參與維護工做;
4.可靠數據庫(Reliable Database)系統中每個節點都擁有最新的完整數據庫拷貝,修改單個節點的數據庫是無效的,由於系統會自動比較,認爲最屢次出現的相同數據記錄爲真。
區塊鏈不是新技術,是一組技術的組合:
核心技術-分佈式帳本
經過P2P的方式,將正確的帳本發送給其餘人。
核心技術-密碼學
主要在下一個區塊中,存儲上一個區塊的哈希值。
核心技術-區塊構成
核心技術-分佈式共識
核心技術-智能合約
區塊鏈的技術演進
廣泛認爲,區塊鏈已經經歷了三個階段:
加密貨幣階段:就是指以比特幣系統爲表明的加密貨幣階段;
數字資產,加密金融:在比特幣發展成全民挖礦的狀況下,於2013年,以太坊創始人Vitalik Buterin發佈以太坊第一版白皮書。以太坊引進了智能合約的概念,從真正意義上,能夠知足商業化應用發佈的需求。與第一階段,只服務於比特幣等加密貨幣不一樣,區塊鏈2.0階段,依賴以太坊,能夠用來編程、分散、擔保和交易任何事物,實現了「區塊鏈+」應用的蔓延、擴展。大部分的區塊鏈應用,都是基於以太坊而成立,如以太貓,如元鏈星系等區塊鏈遊戲,還有各類加密狗等等。
隨着區塊鏈技術的進一步發展,其「去中心化」功能及「數據防僞」 功能在其餘領域逐步受到重視。人們開始認識到,區塊鏈的應用也許不只局 限在金融領域,還能夠擴展到任何有需求的領域中去。因而,在金融領域之 外,區塊鏈技術又陸續被應用到了公證、仲裁、審計、域名、物流、醫療、 郵件、鑑證、投票等其餘領域中來,應用範圍擴大到了整個社會。
三個階段中,前兩個仍是主要以公開的區塊鏈爲主,也成爲公鏈,第三個階段開始,則開始存在私鏈,聯盟鏈等形式。
區塊鏈的分類:
公鏈是指任何人均可讀取的、任何人都能發送交易且交易能得到有效確認的、任何人都能參與其中共識過程的區塊鏈。
公鏈採起了採起工做量證實機制(POW)、權益證實機制(POS)、股份受權證實機制(DPOS)等方式,並將經濟獎勵和加密數字驗證結合了起來,並創建一個原則就是每一個人從中可得到的經濟獎勵與工做量成正比。這些區塊鏈一般被認爲是徹底去中心化的。
私鏈是指其寫入權限僅在一個組織手裏的區塊鏈。讀取權限或者對外開放,或者被任意程度地進行了限制。相關的應用囊括數據庫管理、審計、甚至一個公司,儘管在有些狀況下但願它能有公共的可審計性,但在不少的情形下,公共的可讀性並不是是必須的。
聯盟鏈開放程度和去中心化程度是有所限制的。其參與者是被提早篩選出來或者直接指定的,數據庫的讀取權限多是公開的,也可能像寫入權限同樣只限於系統的參與者。
區塊鏈的典型應用:幣圈+鏈圈