本文內容來自最近我在小組內的一次分享,整理成一篇文章,主要關注區塊鏈技術特色,幾個發展階段以及應用場景,文末有PPT下載地址。算法
以太貓的火爆直接致使了一段時間內的以太坊網絡擁堵。數據庫
區塊鏈起源於中本聰的比特幣,做爲比特幣的底層技術,本質上是一個去中心化的數據庫。經過去中心化和去信任的方式集體維護一個可靠數據庫的技術方案。編程
區塊鏈做爲分佈式帳本技術,其特色是去中心化、公開透明,讓每一個人都可參與數據庫記錄。promise
區塊鏈本質上是個注重安全和可信度賽過效率的一項技術。安全
解決信任問題:互聯網技術解決的是通信問題,區塊鏈技術解決的是信任問題。服務器
區塊鏈起源於中本聰的比特幣,做爲比特幣的底層技術,本質上是一個去中心化的數據庫。是指經過去中心化和去信任的方式集體維護一個可靠數據庫的技術方案。網絡
區塊鏈解決了什麼問題嗎?
區塊鏈最重要的是解決了中介信用問題。在過去,兩個互不認識和信任的人要達成協做是難的,必需要依靠第三方。好比支付行爲,在過去任何一種轉帳,必需要有銀行或者支付寶這樣的機構存在。可是經過區塊鏈技術,比特幣是人類第一次實如今沒有任何中介機構參與的狀況下,完成雙方能夠互信的轉帳行爲。這是區塊鏈的重大突破。架構
去中心化:區塊鏈技術不依賴額外的第三方管理機構或硬件設施,沒有中心管制,除了自成一體的區塊鏈自己,經過分佈式覈算和存儲,各個節點實現了信息自我驗證、傳遞和管理。去中心化是區塊鏈最突出最本質的特徵。框架
開放性:區塊鏈技術基礎是開源的,除了交易各方的私有信息被加密外,區塊鏈的數據對全部人開放,任何人均可以經過公開的接口查詢區塊鏈數據和開發相關應用,所以整個系統信息高度透明。分佈式
獨立性:基於協商一致的規範和協議(相似比特幣採用的哈希算法等各類數學算法),整個區塊鏈系統不依賴其餘第三方,全部節點可以在系統內自動安全地驗證、交換數據,不須要任何人爲的干預。
不可篡改性:只要不能掌控所有數據節點的51%,就沒法肆意操控修改網絡數據,這使區塊鏈自己變得相對安全,避免了主觀人爲的數據變動。
匿名性:除非有法律規範要求,單從技術上來說,各區塊節點的身份信息不須要公開或驗證,信息傳遞能夠匿名進行。
對比傳統數據庫等技術。
根據參與者的不一樣,能夠分爲公開(Public)鏈、聯盟(Consortium)鏈和私有(Private)
鏈。
公開鏈:任何人均可以參與使用和維護,典型的如比特幣區塊鏈,信息是徹底公開的
私有鏈:則是集中管理者進行限制,只能獲得內部少數人可使用,信息不公開
聯盟鏈:聯盟鏈則介於二者之間,由若干組織一塊兒合做維護一條區塊鏈,該區塊鏈的使用必須是有權
限的管理,相關信息會獲得保護,典型如銀聯組織
目前來看,公開鏈將會更多的吸引社區和媒體的眼球,但更多的商業價值應該在聯盟鏈和私
有鏈上。
區塊鏈1.0時代:比特幣爲表明的數字貨幣應用,其場景包括支付、流通等貨幣職能,主要解決貨幣和支付手段的去中心化
區塊鏈2.0時代:數字貨幣與智能合約相結合,對金融領域更普遍的場景和流程進行優化的應用
區塊鏈3.0時代:不止金融領域,爲各類行業提供去中心化解決方案
區塊鏈2.0可用來註冊、確認和轉移各類不一樣類型的資產及合約,如各類金融交易、公共記錄、私人記錄等,從而更宏觀地對整個市場去中心化。
由中本聰於2009年1月3日,基於無國界的對等網絡,用共識主動性開源軟件發明創立,是目前市場總值最高的加密貨幣。
組隊挖礦就是,一旦隊伍裏任何人得到了一個區塊,就將區塊中的貨幣按你們的性能分給你們,這樣你們就能很快地得到比特幣。
全部的區塊鏈都須要挖礦嗎?
並不是全部的區塊鏈項目都會採用相似於比特幣這樣的「工做量證實」方式,這更多出如今早期的區塊鏈項目中。若是採起其餘的證實機制,如POS、DPOS都是不須要採起這樣的挖礦方式。
共識:故名思義,共同的認識,共識問題研究的就是多個成員如何達成一致,典型的好比投票選舉。
共識機制:區塊鏈是一種去中心化的分佈式帳本系統,因爲點對點網絡下存在較高的網絡延遲,各個節點所觀察到的交易事務前後順序不可能徹底一致。 所以區塊鏈系統須要設計一種機制對在必定的時間內發生的事務的前後順序進行共識。這種對一個時間窗口內的事務的前後順序達成共識的算法被稱爲「共識機制」。
工做量證實,Proof of Work:經過計算來猜想一個數值(nonce),得以解決規定的 hash 問題(來源於 hashcash)。保證在一段時間內,系統中只能出現少數合法提案。
分叉:少許的合法提案會在網絡中進行廣播,收到的用戶進行驗證後會基於它認爲的最長鏈上繼續難題的計算。所以,系統中可能出現鏈的分叉(Fork),但最終會有一條鏈成爲最長的鏈。
51%攻擊:hash 問題具備不可逆的特色,所以,目前除了暴力計算外,尚未有效的算法進行解決。反之,若是得到符合要求的 nonce,則說明在機率上是付出了對應的算力。誰的算力多,誰最早解決問題的機率就越大。當掌握超過全網一半算力時,從機率上就能控制網絡中鏈的走向。
有一個很直觀的例子能夠說明爲什麼這種經濟博弈模式會確保系統中最長鏈的惟一。
超市付款須要排成一隊,可能有人不守規矩要插隊。超市管理員會檢查隊伍,認爲最長的一條隊伍是合法的,並讓不合法的分叉隊伍從新排隊。只要大部分人不傻,就會自覺在最長的隊伍上排隊。
軟分叉:因爲整個區塊鏈系統軟件的升級, 部分礦工沒有來得及升級,出現遵
從不一樣共識機制產生的分叉。當這部分礦工升級系統後,這個分叉就會消失。
硬分叉:區塊鏈發生永久性分歧,在新共識規則發佈後,部分沒有升級的節點沒法驗證已經升級的節點生產的區塊,一般硬分叉就會發生。
擴容問題:隨着比特幣網絡的發展,單個區塊存儲的交易信息愈來愈多,1MB區塊僅能容納2000條左右交易,交易量大時須要排隊等待區塊寫入確認,交易網絡擁堵問題愈來愈嚴重。
隔離見證:把交易的簽名數據從交易數據中剝離出來,用於解決延展性攻擊。
閃電網絡:在比特幣網絡上再外加一個「閃電網絡(Lightning Network)」,把原有比特幣鏈上金額較少的交易,轉移到這個閃電網絡來處理,完成後再記錄到原鏈上。
依賴於隔離見證的閃電網絡等二層網絡並不能被認爲是比特幣的擴容方案,由於閃電網絡的交易並不等價於比特幣的點對點的鏈上交易,大部分比特幣交易的場景並不適用於閃電網絡。
支付中心問題:假設閃電網絡部署成功,也會存在大型支付中心的問題,這違背了比特幣作爲點對點支付系統的初衷。
用搭乘公共汽車的來假設,試想像比特幣的區塊是一輛公共汽車,每隔十分鐘,固定時間發車,當要乘車的人超過公共汽車容量,不能上車的人就要等待下一班。咱們的目的就是讓更多的人能夠乘車,即承載更多的交易。
以太坊項目進一步擴展區塊鏈網絡的能力,從交易延伸爲智能合約(Smart Contract)。是一個運行智能合約的去中心化平臺 (Platform for Smart Contract),平臺上的應用按程序設定運行, 不存在停機、審查、欺詐、第三方爲干預的可能。
以太坊是一個區塊鏈應用開發平臺,基於以太坊構建的網絡和智能合約語言,咱們能夠實現各類各樣的與現實世界接近的分佈式應用(DApp)。
以太坊特色
Gas機制:以太坊上的每筆交易都會被收取必定數量的gas,gas的目的是限制執行交易所需的工做量,同時爲執行支付費用。當EVM執行交易時,gas將按照特定規則被逐漸消耗。gas在以太坊網絡中實際的體現就是ether代幣。
叔塊(uncle block):將由於速度較慢未及時被收錄的較短區塊鏈併入並能夠得到獎勵。使用的是有向無環圖的相關技術。
閃電網絡(lightning network):可提高交易速度、下降區塊鏈的負擔,提可擴展性。
由於以太坊的區塊時間是20秒左右,相對於比特幣,更容易出現臨時分叉和孤兒區塊。並且較短的區塊時間,也使得區塊在整個網絡中更難以充分傳播,尤爲是對那些網速慢的礦工,這是一種極大的不公平。爲了平衡各方利益,才設計了這樣一個叔塊機制。
POW協議存在的問題:算力被掌握在大的算池手中,比特幣並無像它但願的那樣分散化,這也是比特幣不斷出現分叉的緣由。
Casper協議:權益證實將讓整個挖礦過程虛擬化,並以驗證者取代礦工。
如下是權益證實的運行過程:
驗證者必須鎖定一些他們擁有的幣做爲保證金。
在此以後,他們將開始驗證區塊。同時,當他們發現一個他們認爲能夠被加到鏈上的區塊時,他們會經過下賭注來驗證它。
若是該區塊成功上鍊,驗證者就將獲得一個與他們的賭注成比例的獎勵。
智能合約是區塊鏈技術的特性之一。
以太坊在其區塊鏈上實施了一種近乎圖靈完備的語言,這是一個突出的智能合約框架。
尼克·薩博:一個智能合約是一套以數字形式定義的承諾(promises),包括合約參與方能夠在上面執行這些承諾的協議。
智能合約實際上是一段被存儲在一個區塊鏈上的代碼,由區塊鏈交易觸發,讀取而且在區塊鏈數據庫寫入數據。
尼克•薩博關於智能合約的工做理論遲遲沒有實現,一個重要緣由是由於缺少可以支持可編程合約的數字系統和技術。區塊鏈技術的出現解決了該問題,不只能夠支持可編程合約,並且具備去中心化、不可篡改、過程透明可追蹤等優勢,自然適合於智能合約。所以,也能夠說,智能合約是區塊鏈技術的特性之一。
ICO(Initial Coin Offering):對比IPO 首次公開募股,是指企業或非企業組織在區塊鏈技術的支持下發行代幣,向投資人募集虛擬貨幣(通常爲比特幣、以太坊)的融資活動,將發行的標的物由IPO的證券變成了數字加密貨幣。
美國多個州的法律法規不認爲ICO自己是證券、期貨等金融類產品,即不能做爲一種投資品或者投資類型存在,所以不容許公開進行ICO活動;2017年9月4日,央行等7部委聯合下發《關於防範代幣發行融資風險的公告》,叫停國內ICO。
2017年明星項目,天天發行2000000代幣,目前已經衆籌近252億人民幣。
EOS.IO採用委託股權證實算法,全稱是delegated proof of stake,縮寫就是DPOS。DPOS至關於人民表明大會制度,全部的網絡上的代幣持有人均爲用戶,用戶經過投票方式選取得票人成爲區塊鏈節點。
EOS號稱使用石墨烯技術:基於石墨烯底層的BTS和STEEM能夠達到1.5S的平均確認速度和有限條件下實測3300TPS的數據吞吐量,EOS經過並行鏈的方式,最高能夠達到數百萬TPS,而且並行本地鏈甚至能夠達到毫秒級的確認速度。
2018年6月主網上線,須要進行上鍊操做。
基於DPOS的EOS.IO會每三秒產生一個新的區塊,這個區塊必須由投票產生的21位生產者輪流生產出來,這樣,完成一個輪迴以後,就會從新選出21位生產者。選擇的過程當中,得到票數數量的前20名自動被選中,剩下的一個生產者則須要按照得票比例來選出。
2015 年 12 月,開源世界的旗艦——Linux 基金會牽頭,聯合 30 家初始企業成員(包括
IBM、Accenture、Intel、J.P.Morgan、R三、DAH、DTCC、FUJITSU、HITACHI、SWIFT、
Cisco 等),共同宣告了Hyperledger項目的成立。
該項目試圖打造一個透明、公開、去中心化的分佈式帳本項目,做爲區塊鏈技術的開源規範和標準,讓更多的應用能更容易的創建在區塊鏈技術之上。
區塊鏈3.0時代:比特幣爲表明的貨幣區塊鏈技術爲 1.0,以太坊爲表明的合同區塊鏈技術爲 2.0,Hyperledger 實現了完備的權限控制和安全保障項目,表明 3.0 時代的到來。
Blockchain Explorer:提供 Web 操做界面,經過界面快速查看查詢綁定區塊鏈的狀態(區塊個數、交易歷史)信息等。
Fabric:區塊鏈的基礎核心平臺,支持 pbft 等新的 consensus 機制,支持權限管理。
STL項目: Intel 主要發起和貢獻的區塊鏈平臺,支持全新的基於硬件芯片的共識機制 Proof of ElapsedTime(PoET)。
Iroha:帳本平臺項目,基於 C++ 實現,帶有很多面向 Web 和 Mobile 的特性,主要由Soramitsu 發起和貢獻。
Cello:提供「Blockchain as a Service」 功能,使用Cello,管理員能夠輕鬆獲取和管理多條區塊鏈;應用開發者能夠無需關心如何搭建和維護區塊鏈。
金融領域:區塊鏈在國際匯兌、信用證、股權登記和證券交易所等金融領域有着潛在的巨大應用價值。將區塊鏈技術應用在金融行業中,可省去第三方中介環節,實現點對點的對接,從而在大大下降成本的同時,快速完成交易支付。
供應鏈和物流領域:區塊鏈在物聯網和物流領域也能夠自然結合。經過區塊鏈能夠下降物流成本,追溯物品的生產和運送過程,而且提升供應鏈管理的效率。該領域被認爲是區塊鏈一個頗有前景的應用方向。
公共服務領域:區塊鏈在公共管理、能源、交通等領域都與民衆的生產生活息息相關,可是目前這些領域的中心化特質也帶來了一些問題,能夠用區塊鏈來改造。
認證、公證領域:區塊鏈具備不可篡改的特性,因此在認證和公證也有巨大的市場。
數字版權領域:經過區塊鏈技術,能夠對做品進行鑑權,證實文字、視頻、音頻等做品的存在,保證權屬的真實、惟一性。做品在區塊鏈上被確權後,後續交易都會進行實時記錄,實現數字版權全生命週期管理,也可做爲司法取證中的技術性保障。
預測市場和保險領域:在保險理賠方面,保險機構負責資金歸集、投資、理賠,每每管理和運營成本較高。經過智能合約的應用,既無需投保人申請,也無需保險公司批准,只要觸發理賠條件,實現保單自動理賠。
公益慈善:區塊鏈上存儲的數據,高可靠且不可篡改,自然適合用在社會公益場景。公益流程中的相關信息,如捐贈項目、募集明細、資金流向、受助人反饋等,都可以存放於區塊鏈上,而且有條件地進行透明公開公示,方便社會監督。