1. 程式人生 > >比特幣與區塊鏈的前世今生

比特幣與區塊鏈的前世今生

問題 完成 出了 權限管理 沒有 防止 The 解決 授權

  大家下午好,這裏是鏈客區塊鏈技術問答社區,現在為大家講解一下

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

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

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

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

分叉處理:由於網絡位置不同,不同區域收到的廣播hash不同,通過延長鏈,確定使用的區塊鏈。

可能的問題:(1) 更改交易信息:重新計算該交易記錄後的所有區塊,並且追上區塊鏈進度。

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

核心技術:

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

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

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

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

註:四種共識機制

1、Pow工作量證明,就是大家熟悉的挖礦,通過與或運算,計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的數據,全網其它節點驗證後一起存儲;
優點:完全去中心化,節點自由進出;


缺點:目前bitcoin已經吸引全球大部分的算力,其它再用Pow共識機制的區塊鏈應用很難獲得相同的算力來保障自身的安全;挖礦造成大量的資源浪費;共識達成的周期較長,不適合商業應用

2、Pos權益證明,Pow的一種升級共識機制;根據每個節點所占代幣的比例和時間;等比例的降低挖礦難度,從而加快找隨機數的速度。
優點:在一定程度上縮短了共識達成的時間
缺點:還是需要挖礦,本質上沒有解決商業應用的痛點

3、DPos股份授權證明機制,類似於董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證
缺點:整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的

4、Pool驗證池,基於傳統的分布式一致性技術,加上數據驗證機制;是目前行業鏈大範圍在使用的共識機制
優點:不需要代幣也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基礎上,實現秒級共識驗證;

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

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

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

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

(3)每個節點都嘗試在自己的區塊中找到一個具有足夠難度的工作量證明

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

(5)當且僅當包含在該區塊中的所有交易都是有效的且之前未存在過的,其他節點才認同該區塊的有效性

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

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

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

  1. 公開區塊鏈(public blockchain) 例子:比特幣,Ethereum Frontier。公開區塊鏈上的數據所有人都可以訪問,所有人都可以發出交易等待被寫入區塊鏈。共識過程的參與者(對應比特幣中的礦工)通過密碼學技術以及內建的經濟激勵維護數據庫的安全。公開區塊鏈是完全的分布式。
  2. 協作區塊鏈(federated blockchain) 例子:Hyperledger以及德勤等會計所嘗試的審計系統。參與區塊鏈的節點是事先選擇好的,節點間很可能是有很好的網絡連接。這樣的區塊鏈上可以采用非工作量證明的其他共識算法,比如有100家金融機構之間建立了某個區塊鏈,規定必須67個以上的機構同意才算達成共識。這樣的區塊鏈上的數據可以是公開的也可以是這些節點參與者內部。部分意義上的分布式。
  3. 私有區塊鏈(private blockchain) 例子:Eris Industries。參與的節點只有用戶自己,數據內的訪問和使用有嚴格的權限管理。近期部分金融機構公布的內部使用的區塊鏈技術大都語焉不詳,不過很可能都在這個範圍。

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

比特幣與區塊鏈的前世今生