比特幣——區塊鏈

鏈客,專爲開發者而生,有問必答!算法

此文章來自鏈客區塊鏈技術問答社區,未經容許拒絕轉載。
在這裏插入圖片描述數據庫

區塊鏈:一種實時記錄所有交易的去中心化公開數據庫,在區塊鏈上進行支付時全網計算機共同查詢區塊鏈數據,共同驗證這筆支付交易是否有效。確認支付後將寫入區塊鏈併產生一條不可篡改記錄。安全

區塊:區塊大小是1M,包含父哈希、Merkle根、時間戳、難度目標、隨機數。程序上近似每10分鐘增長一個BLOCK,block就是當前帳本區塊,若是礦工運算高於這個時間則下次下調難度,若是低於這個時間則增長難度,難度由當前算力肯定。網絡

區塊鏈:每個網絡中的用戶不須要完整的blockchain,不過擁有完整blockchain數據的節點數算是一條blockchain的健康程度的指標之一。分佈式

獎勵:這個獎勵初始是50每隔4年減半一次,到2140年最後一次減半後,獎勵的幣過小將中止新幣的獎勵,全網比特幣的數量被維持在2100萬。區塊鏈

分叉處理:因爲網絡位置不一樣,不一樣區域收到的廣播hash不一樣,經過延長鏈,肯定使用的區塊鏈。加密

可能的問題:(1) 更改交易信息:從新計算該交易記錄後的全部區塊,而且追上區塊鏈進度。spa

(2)控制區塊鏈生成:51%的計算能力。

核心技術:代理

區塊鏈主要解決的交易的信任(基於密碼學)和安全問題,所以它針對這個問題提出了四個技術創新:code

第一個叫分佈式帳本,就是交易記帳由分佈在不一樣地方的多個節點共同完成,並且每個節點都記錄的是完整的帳目,所以它們均可以參與監督交易合法性,同時也能夠共同爲其做證。不一樣於傳統的中心化記帳方案,沒有任何一個節點能夠單獨記錄帳目,從而避免了單一記帳人被控制或者被賄賂而記假帳的可能性。另外一方面,因爲記帳節點足夠多,理論上講除非全部的節點被破壞,不然帳目就不會丟失,從而保證了帳目數據的安全性。

第二個叫作對稱加密和受權技術,存儲在區塊鏈上的交易信息是公開的,可是帳戶身份信息是高度加密的,只有在數據擁有者受權的狀況下才能訪問到,從而保證了數據的安全和我的的隱私。

第三個叫作共識機制,就是全部記帳節點之間怎麼達成共識,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。區塊鏈提出了四種不一樣的共識機制,適用於不一樣的應用場景,在效率和安全性之間取得平衡。以比特幣爲例,採用的是工做量證實,只有在控制了全網超過51%的記帳節點的狀況下,纔有可能僞造出一條不存在的記錄。當加入區塊鏈的節點足夠多的時候,這基本上不可能,從而杜絕了造假的可能。

注:四種共識機制

一、Pow工做量證實,就是你們熟悉的挖礦,經過與或運算,計算出一個知足規則的隨機數,即得到本次記帳權,發出本輪須要記錄的數據,全網其它節點驗證後一塊兒存儲; 優勢:徹底去中心化,節點自由進出;缺點:目前bitcoin已經吸引全球大部分的算力,其它再用Pow共識機制的區塊鏈應用很難得到相同的算力來保障自身的安全;挖礦形成大量的資源浪費;共識達成的週期較長,不適合商業應用二、Pos權益證實,Pow的一種升級共識機制;根據每一個節點所佔代幣的比例和時間;等比例的下降挖礦難度,從而加快找隨機數的速度。 優勢:在必定程度上縮短了共識達成的時間缺點:仍是須要挖礦,本質上沒有解決商業應用的痛點三、DPos股份受權證實機制,相似於董事會投票,持幣者投出必定數量的節點,代理他們進行驗證和記帳。 優勢:大幅縮小參與驗證和記帳節點的數量,能夠達到秒級的共識驗證缺點:整個共識機制仍是依賴於代幣,不少商業應用是不須要代幣存在的四、Pool驗證池,基於傳統的分佈式一致性技術,加上數據驗證機制;是目前行業鏈大範圍在使用的共識機制 優勢:不須要代幣也能夠工做,在成熟的分佈式一致性算法(Pasox、Raft)基礎上,實現秒級共識驗證;

缺點:去中心化程度不如bictoin;更適合多方參與的多中心商業模式

最後一個技術特色叫智能合約,智能合約是基於這些可信的不可篡改的數據,能夠自動化的執行一些預先定義好的規則和條款。以保險爲例,若是說每一個人的信息(包括醫療信息和風險發生的信息)都是真實可信的,那就很容易的在一些標準化的保險產品中,去進行自動化的理賠。

交易過程:(1)新的交易向全網進行廣播

(2)每個節點都將收到的交易信息歸入一個區塊中

3)每一個節點都嘗試在本身的區塊中找到一個具備足夠難度的工做量證實

(4)當一個節點找到了一個工做量證實,它就向全網進行廣播

5)當且僅當包含在該區塊中的全部交易都是有效的且以前未存在過的,其餘節點才認同該區塊的有效性

(6)其餘節點表示他們接受該區塊,而表示接受的方法,則是在跟隨該區塊的末尾,製造新的區塊以延長該鏈條,而將被接受區塊的隨機散列值視爲先於新區塊的隨機散列值。

只驗證是否有能力履行該交易,而不驗證交易的真實性。真實性由公私鑰保證。

目前已知的一些區塊鏈技術應用大體有這三類:

[if !supportLists]00001. [endif]公開區塊鏈(public blockchain) 例子:比特幣,Ethereum Frontier。公開區塊鏈上的數據全部人均可以訪問,全部人均可以發出交易等待被寫入區塊鏈。共識過程的參與者(對應比特幣中的礦工)經過密碼學技術以及內建的經濟激勵維護數據庫的安全。公開區塊鏈是徹底的分佈式。

[if !supportLists]00002. [endif]協做區塊鏈(federated blockchain) 例子:Hyperledger以及德勤等會計所嘗試的審計系統。參與區塊鏈的節點是事先選擇好的,節點間極可能是有很好的網絡鏈接。這樣的區塊鏈上能夠採用非工做量證實的其餘共識算法,好比有100家金融機構之間創建了某個區塊鏈,規定必須67個以上的機構贊成纔算達成共識。這樣的區塊鏈上的數據能夠是公開的也能夠是這些節點參與者內部。部分意義上的分佈式。

[if !supportLists]00003. [endif]私有區塊鏈(private blockchain) 例子:Eris Industries。參與的節點只有用戶本身,數據內的訪問和使用有嚴格的權限管理。近期部分金融機構公佈的內部使用的區塊鏈技術大都語焉不詳,不過極可能都在這個範圍。

比特幣系統主要存在5大問題:總節點規模較小,還沒有經歷大規模的廣播風暴、交易確認速度變慢、區塊同步速度慢、日處理交易峯值數有限、系統迭代更新進展緩慢。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息