㈠ 【科普】如何選擇區塊鏈的最長鏈
本文由幣車HIT( biche.yaofache.com )大V養成計劃支持。
基於逐利,節點就會自發的遵守協議。共識就是數以萬計的獨立節點遵守了簡單的規則(通過非同步交互)自發形成的。
比特幣沒有中心機構,幾乎所有的完整節點都有一份公共總帳本,那麼大家如何達成共識:確認哪一份才是公認權威的總賬本呢?
為什麼要遵守協議
這其實是一個經濟問題,在經濟活動中的每個人都是自私自利的,追求的是利益的最大化,一個節點工作量只有在其他的節點認同其是有效的(打包的新區塊,其他的節點只有驗證通過才會加入到區塊鏈中,並在網路上傳播),才能夠過得收益, 而只有遵守規則才會得到其他的節點認同。 因此,基於逐利,節點就會自發的遵守協議。共識就是數以萬計的獨立節點遵守了簡單的規則(通過非同步交互)自發形成的。
去中心化共識
實際上,比特幣的共識由所有節點的4個獨立過程相互作用而產生:
每個節點(挖礦節點)依據標准對每個交易進行獨立驗證;挖礦節點通過完成工作量證明,將交易記錄獨立打包進新區塊;每個節點獨立的對新區塊進行校驗並組裝進區塊鏈;每個節點對區塊鏈進行獨立選擇,在工作量證明機制下選擇累計工作量最大的區塊鏈;共識最終目的是保證比特幣不停的在工作量最大的區塊鏈上運轉,工作量最大的區塊鏈就是權威的公共總帳本。
最長鏈的選擇
先來一個定義,把累計了最多難度的區塊鏈。在一般情況下,也是包含最多區塊的那個鏈稱為主鏈
每一個(挖礦)節點總是選擇並嘗試延長主鏈。
分叉
當有兩名礦工在幾乎在相同的時間內,各自都算得了工作量證明解,便立即傳播自己的「獲勝」區塊到網路中,先是傳播給鄰近的節點而後傳播到整個網路。每個收到有效區塊的節點都會將其並入並延長區塊鏈。 當這個兩個區塊傳播時,一些節點首先收到#3458A, 一些節點首先收到#3458B,這兩個候選區塊(通常這兩個候選區塊會包含幾乎相同的交易)都是主鏈的延伸,分叉就會產生,這時分叉出有競爭關系的兩條鏈。兩個塊都收到的節點,會把其中有更多工作量的一條會繼續作為主鏈,另一條作為備用鏈保存(保存是因為備用鏈將來可能會超過主鏈難度稱為新主鏈)。
分叉解決
收到#3458A的(挖礦)節點,會立刻以這個區塊為父區塊來產生新的候選區塊,並嘗試尋找這個候選區塊的工作量證明解。同樣地,接受#3458B區塊的節點會以這個區塊為鏈的頂點開始生成新塊,延長這個鏈(下面稱為B鏈)。 當原本以#3458A為父區塊求解的節點在收到#3458B, #3459B之後,會立刻將B鏈作為主鏈(因為#3458A為頂點的鏈已經不是最長鏈了)繼續挖礦。節點也有可能先收到#3459B,再收到#3458B,收到#3459B時,會被認為是「孤塊「(因為還找不到#3459B的父塊#3458B)保存在孤塊池中,一旦收到父塊#3458B時,節點就會將孤塊從孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。
比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易確認更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,長的間隔會減少分叉數量,卻會導致更長的確認時間。
㈡ 區塊鏈的特徵是什麼
區塊鏈的特徵
區塊鏈的四大特徵之一:不可篡改
區塊鏈最容易被理解的特性是不可篡改的特性。
不可篡改是基於「區塊+鏈」(block+chain)的獨特賬本而形成的:存有交易的區塊按照時間順序持續加到鏈的尾部。要修改一個區塊中的數據,就需要重新生成它之後的所有區塊。
共識機制的重要作用之一是使得修改大量區塊的成本極高,從而幾乎是不可能的。以採用工作量證明的區塊鏈網路(比如比特幣、以太坊)為例,只有擁有 51% 的算力才可能重新生成所有區塊以篡改數據。但是,破壞數據並不符合擁有大算力的玩家的自身利益,這種實用設計增強了區塊鏈上的數據可靠性。
通常,在區塊鏈賬本中的交易數據可以視為不能被「修改」,它只能通過被認可的新交易來「修正」。修正的過程會留下痕跡,這也是為什麼說區塊鏈是不可篡改的,篡改是指用作偽的手段改動或曲解。
在現在常用的文件和關系型數據中,除非採用特別的設計,否則系統本身是不記錄修改痕跡的。區塊鏈賬本採用的是與文件、資料庫不同的設計,它借鑒的是現實中的賬本設計——留存記錄痕跡。因此,我們不能不留痕跡地「修改」賬本,而只能「修正」賬本(見圖2)。
圖6:比特幣在組織上去中心化,在邏輯上集中
在設想未來的組織時,我們心中的理想原型常是比特幣的組織:完全去中心化的自治組織。但在實踐過程中,為了效率和能夠推進,我們又會略微往中心化組織靠攏,最終找到一個合適的平衡點。
現在,在通過以太坊的智能合約創建和發放通證,並以社區或生態方式運行的區塊鏈項目中,不少項目的理想狀態是類似於比特幣的組織,但實際情況是介於完全的去中心化組織和傳統的公司之間。
在討論區塊鏈的第四個特徵去中心自組織時,其實我們已經在從代碼的世界往外走,涉及人的組織與協同了。現在,各種討論和實際探索也揭示了區塊鏈在技術之外的意義:它可能作為基礎設施支持人類的生產組織和協同的變革。這正是區塊鏈與互聯網是完全同構的又一例證,互聯網也不僅僅是一項技術,它改變了人們的組織和協同。
總的來說,以太坊把區塊鏈帶入了新的階段。在討論以太坊時,如果要總結兩個關鍵詞的話,那麼這兩個關鍵詞分別是智能合約和通證;而如果只能說一個的話,我會選擇「通證」。我會更願意從互聯網的歷史中找尋它的意義,重復之前的類比:作為價值表示物的通證,它的角色類似於 HTML。在有了 HTML 之後,建什麼樣的網站完全取決於我們的想像力。
㈢ 區塊鏈到底是什麼,能幹什麼,通俗的話講下~謝謝
一、區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。
區塊鏈(Blockchain)是比特幣的一個重要概念,它本質上是一個去中介化的資料庫,同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。
二、應用
1、藝術行業
Ascribe讓藝術家們可以在使用區塊鏈技術來聲明所有權,發行可編號,限量版的作品,可以針對任何類型藝術品的數字形式。它甚至還包括了一個交易市場,藝術家們可以通過他們的網站進行買賣,而無需任何中介服務。
2、法律行業
BitProof是近些年來涌現的眾多文檔時間戳應用中最為先進的,將會讓傳統的公證方式成為過去。相對於包括Blocksgin和OriginStaemp這樣的免費版本,BitProof提供更多的服務,包括有一個是針對知識產權的。有趣的是,BitProof最近和一家舊金山的IT學校進行合作,把他們學生的學歷證書都放在區塊鏈上,完全重新定義了如何讓文憑和學生證書的處理和使用方式。
3、開發行業
Colu是首個允許其它企業發行數字資產的企業,他們可以將各種資產來「代幣化」讓許多人印象深刻。盡管免費的比特幣錢包Counerparty也允許發行簡單的代幣,並且在其他錢包持有者之間進行交易,Colu的代幣可以設置有各種狀態和類型,能夠脫離或者重新回到這個系統,並且當在區塊鏈上存儲數據過大的時候能夠將數據存儲在BitTorrent的網路上。
4、房地產行業
他們計劃能夠讓整個產業鏈流程變得更加現代化,解決每個人在參與房地產面臨的各種問題,包括命名過程,土地登記,代理中介等。
5、物聯網
一種可能的應用場景為:通過 Transaction 產生對應的行為,為每一個設備分配地址 Address,給該地址注入一定的費用,可以執行相關動作,從而達到物聯網的應用。類似於:PM2.5監測點數據獲取,伺服器 租賃,網路攝像頭 數據調用,DNS伺服器 等。
6、保險行業
在過去兩年裡,說起科技領域最炙手可熱話題的必然離不開區塊鏈技術。這一脫胎於比特幣的底層技術,以7年多的穩定運行證明了其高度安全可靠的架構和演算法設計,同時憑借分布式賬本和智能合約等創新性的技術,為多個行業的產業升級打開了巨大的想像空間。甚至有業內專家預言區塊鏈技術將掀起第二次互聯網革命。
(3)區塊鏈除了最大工作量擴展閱讀:
中本聰在2008年,於《比特幣白皮書》中提出「區塊鏈」概念,並在2009年創立了比特幣網路,開發出第一個區塊,即「創世區塊」。
區塊鏈共享價值體系首先被眾多的加密貨幣效仿,並在工作量證明上和演算法上進行了改進,如採用權益證明和SCrypt演算法。隨後,區塊鏈生態系統在全球不斷進化,出現了首次代幣發售ICO、智能合約區塊鏈以太坊、「輕所有權、重使用權」的資產代幣化共享經濟 以及區塊鏈國家。
目前,人們正在利用這一共享價值體系,在各行各業開發去中心化計算機程序(Decentralized applications, Dapp),在全球各地構建去中心化自主組織和去中心化自主社區(Decentralized autonomous society, DAS)。
㈣ 區塊鏈共識機制之一:POW工作量證明機制
區塊鏈可以理解為一個不可篡改的公共賬本,所有參與者都能驗證交易並進行記賬,即為分布式賬本。那到底由誰來記賬?又如何保證賬本的一致性、准確性呢?也就是區塊鏈的共識機制是如何的?
區塊鏈的共識機制就是解決由誰來記賬(構造區塊),以及如何維護區塊鏈的一致性問題。目前區塊鏈項目採用的共識機制有多種,如:POW工作量證明機制,POS權益證明機制,DPOS股份授權證明機制等等。本文說明POW工作量證明機制。
區塊鏈的第一個成功應用比特幣系統採用的POW工作量證明機制。即以比特幣系統為例說明POW機制,首先比特幣系統有一套激勵機制讓所有參與者競爭記賬的權利,即誰擁有記賬權誰將獲取構造新區塊的比特幣獎勵(目前獎勵為12.5比特幣),同時獲取新區塊內所有交易的手續費作為獎勵。
參與者如何競爭記賬權利呢?參與者通過自己的算力計算一道數學難題,誰先計算的結果,誰就擁有了記賬的權利,也就可獲得構造新區塊的獎勵。這道數學難題就是尋找一個隨機數Nonce,使得對區塊頭的哈希計算的結果小於目標值,Nonce本身是區塊頭中的一個欄位,所以通過不斷的嘗試Nonce的值,以滿足區塊頭的哈希計算結果小於目標值。通過動態調整目標值,即可調整計算的Nonce值的難度。
關於哈希計算Nonce的過程通常類比為擲篩子游戲,基於參與游戲的篩子的個數通過調整擲得篩子的點數可調整游戲的難度。例如:100個人參與擲篩子,總共有100個篩子,要求擲得點數為100為贏,則100個人誰先擲得點數100即為勝利者,即擁有了記賬權。如果發現大家擲出100點的時間太快,則可增加難度,要求擲得點數為80為贏。如果又有100個人參與游戲,則游戲中增加了篩子數,如:篩子數增加為200個,同樣通過設置擲得點數來調整游戲的難度。
篩子類似於比特幣網路的算力,擲得點數類似於比特幣網路可動態調整的目標值。
區塊鏈以最長的鏈條視為正確的鏈條,如果存在同時出現兩個區塊,會暫時並行記錄兩個區塊,後續再生成的區塊基於其中的某一個區塊,將會形成的最長的鏈條作為一致性的鏈條,另外一個區塊將會被丟棄,比特幣是基於6個區塊的確認,所以被丟棄的區塊將不會獲得比特幣系統的獎勵,也就是白白將競爭記賬權的算力(電費)浪費了。基於工作量的激勵,參與者必然盡最大能力構造正確的區塊,也就是滿足區塊鏈的一致性。即全網的所有用戶可以達成唯一的一致性的公共賬本。
目前比特幣系統全網算力已達到驚人的24.75EH/s,其中1E=1000P,1P=1000T,1T=1000G,1G=1000M,1M=1000K,1K=1000,H/s為每秒一次哈希計算(哈希碰撞),也就是每秒進行24.75E次哈希計算,且仍有持續的算力加入比特幣系統。比特幣記賬權的競爭,提供算力的硬體從CPU,GPU,專業礦機,礦池。目前單機版的專業礦機已無法競爭到記賬權,必須由多台礦機組合為礦池才能競爭到記賬權。
㈤ 什麼是「區塊鏈」
區塊鏈技術即通過去中心化和消除信任的途徑共同維護可靠資料庫的技術。四個關鍵詞可以用來描述區塊鏈技術:,減少信任、去中心化、集體維護和可靠的資料庫。
當我們談及「區塊鏈」這一概念時,比特幣必然是個不會忽略的話題。近年來比特幣開始進入大眾視野,尤其2017年幾乎是持續全年的瘋漲,讓很多人都知道了這一新興事物。
區塊鏈實際上是一種比特幣的基層技術。比特幣能夠存在的原因在於,互聯網上彼此不認識的人可以通過比特幣網路轉移和交易數字貨幣。 而這正是靠區塊鏈技術驅動的。 所有的比特幣交易都在區塊鏈的賬本上記錄著。某種程度上,在比特幣的運用中,區塊鏈扮演者銀行交易系統的底層資料庫的角色。 兩者都是為了「記賬」。 盡管將區塊鏈直接稱為「資料庫」並不是非常謹慎,但為了便於理解,暫時稱之為去中心化、共享且加密的資料庫。如果用專業術語來描述,區塊鏈就是一種分布式賬本技術。
區塊鏈通常可以分為以下幾種:
1、公開區塊鏈。任何人都可以訪問公開區塊鏈上的數據,人人都能發出交易等待被寫入區塊鏈。共識過程的參與者(對應的時間比特幣中的礦工)通過密碼學技術以及內建的經濟激勵維護資料庫的安全。
2、協作區塊鏈。參與區塊鏈的節點是預先選擇好的,節點間很可能是有很好的網路連接。這樣的區塊鏈上可以採用非工作量證明的其他共識演算法,比如有一百家金融機構之間建立了某個區塊鏈,規定必須達到三分之二以上的機構同意才算達成共識。這樣的區塊鏈上的數據既可以是公開的也可以是這些節點參與者內部共享。
3、私有區塊鏈。參與的節點只有用戶個人,數據的訪問和使用有嚴格的許可權管理。近期部分金融機構公布的內部使用的區塊鏈技術大都語焉不詳,很可能屬於這個范圍。
區塊鏈是一個公開賬本,不存在中心化的硬體或管理機構,任何人均可自動驗證賬本的真假並輕易發現賬本是否被他人篡改。
一句話, 區塊鏈是一個可供人人驗證的公開賬本。
人人均可驗證這一概念對區塊鏈至關重要。
比特幣就是使用區塊鏈來記錄所有的交易,所以任何人都知道每個賬戶上的比特幣數量。
那麼,作為一個可公開驗證的賬本,區塊鏈有哪些使用實例?
其實可以想到的使用實例有很多,區塊鏈適用於任何可以記錄在公開賬本上的數據。下面舉4個例子:
1、去中心化的域名伺服器,即域幣。域名伺服器實際是一個專門記錄域名的賬本。
2、去信任化的公鑰加密,如拋開那些不靠譜的認證授權機構的https。
3、所有權記錄,如實記錄物品與其對應的所有人。
4、合同與履約保證,賬本如實記錄合同各方並保存合同文本。
但不要忘了,區塊鏈還有一個非常重要的組成部分。
使用區塊鏈技術記錄的賬本會一直更新。新的數據如交易、域名輸入、記錄和合同等,會被哈希演算法換算成同等長度的哈希值加以保存。然而哈希演算法不但不免費反而還很昂貴。
因此,賬本本身需要有一個認可體系,對輸入區塊哈希值的人予以認可。
在比特幣中這一體系被稱作挖礦,根植於比特幣的協議中。比特幣礦工將等待驗證的交易運用哈希演算法換算成散列的哈希值,並收取一定的比特幣作為服務費。
因此,對於非貨幣類的使用實例,區塊鏈需要找到一個方式來承擔哈希演算法的高昂費用。
提醒大家注意一點,我的回答主要集中在區塊鏈技術可能運用在哪些使用實例中,並沒有涵蓋區塊鏈的方方面面,如哈希演算法為什麼這么貴。我相信網上肯定能找到很多關於比特幣和其他區塊鏈應用的詳細資料。
補充
雖然區塊鏈技術有諸多優點,但還是有一些不那麼稱心如意的使用實例。比方說,比特幣沒有辦法換算成任何一國貨幣;一個有著數十億條數據輸入的賬本既占空間又不實用。
比特幣已經向世人展示區塊鏈技術在原則上是可行的,而且人們也在嘗試解決這些越來越突出的問題,如對比特幣進行技術改造或引入一種完全不同的區塊鏈技術。我認為以下兩種方法倒是值得一試:一是根據一定標准如付款方地址對賬本進行拆分,二是引入一個主區塊鏈對子區塊鏈進行驗證。區塊鏈技術變化多端,讓人眼花繚亂,說不定已經有人在進行這樣的嘗試也未為可知。但比特幣仍是世界上第一個出現的貨幣類區塊鏈,即是其他人口中所說的加密貨幣。
無論在 科技 圈還是金融圈,區塊鏈儼然成了最熱的詞彙,沒有之一。區塊鏈具有去中心、去信任等核心優點,可以完美地解決共享經濟發展過程中的信息不對稱、交易成本高、陌生人信任等難題,使得「個體經濟」成為可能。基於此,區塊鏈技術,被認為是繼蒸汽機、電力、信息和互聯網 科技 之後,目前最有潛力觸發第五輪顛覆性革命浪潮的核心技術。
在此背景下, 社會 中誕生了一股區塊鏈熱,大家一邊倒地對其大唱贊歌。 辯證法告訴我們,任何事物都有缺陷,看到事物的正反兩面才能理性決策。 所以本文中,蘇寧金融研究院高級研究員薛洪言(洪言微語)就重點給區塊鏈潑點冷水。
| 什麼是區塊鏈
區塊鏈,英文Blockchain,名字帶有相當神秘的 科技 氣息,可簡單分解為「數據塊」和「鏈接」。每個數據塊中包含了一定時間內的系統全部信息交流數據,並用密碼學的方法予以了加密;鏈接是指每一個區塊與下一個區塊存在鏈接關系,從而構成了區塊鏈。
一般認為,區塊鏈具有去中心和去信任兩大特徵,簡要介紹如下:
由於每個區塊都含有特定時間內系統全部信息交流數據,因而每個區塊都是平等的,且單一區塊的損害不影響系統整體的安全性,所以區塊鏈具有 去中心特徵 。
同樣,由於每個區塊含有系統所有信息,使得信息的真實性是可以交叉驗證的,只有攻破超過51%的節點才能篡改信息,在一個足夠大的區塊鏈系統中,成本極高,可以認為區塊鏈中的信息都是真實的,所以區塊鏈具有 去信任特徵 。
大多數人對區塊鏈的認識始於比特幣,二者的關系是,區塊鏈是底層技術和理念,比特幣僅是區塊鏈目前最火的一個應用而已。
也許上面說的還不夠通俗,最後再總結一下,你認為區塊鏈是什麼?是一項顛覆式的新技術嗎?NO!在蘇寧金融研究院高級研究員薛洪言(洪言微語)看來, 與其說區塊鏈是一項新技術,不如說是一種新的思想理念 。區塊鏈中包含的信息加密等技術早已有之,更多地還是理念上的革新,這也是區塊鏈之所以影響巨大的原因所在。新技術遲早會被超越,少則一兩年,多則四五年;而革新性的理念才有足夠的能量影響到經濟 社會 的方方面面。
| 區塊鏈有望改變金融系統底層規則
在金融領域的應用中,區塊鏈將改變交易流程和記錄保存的方式,從而大幅降低交易成本,顯著提升效率,被認為在 數字貨幣、跨境支付與清算、票據交易、證券發行與交易、產權交易、客戶徵信與反欺詐、反洗錢 等方面擁有廣闊的市場環境。
這么好的技術,自然是人人追捧。和很多傳統金融人士一樣,洪言微語一開始也是抗拒的,認為這東西哪有那麼神,並沒有專門去做研究。後來隨著對金融 科技 研究的逐步深入,發現區塊鏈是繞不過去的坎,因為無論是智能投顧、大數據風控還是在線借貸,都只是金融業務層面和風控層面的技術創新,並未深入金融體系的底層。 金融系統的底層是什麼?自然是支付清算、交易規則和系統交互,區塊鏈改變的恰恰是底層規則。
所以,縱觀國際國內,金融機構對區塊鏈的研究最為積極,沒別的,是真的怕了。區塊鏈的去中心化和去信任化特徵充分發揮後,還要金融機構的中介做什麼呢?估計這也是很多對區塊鏈有了初步了解的人的第一感覺。
本篇文章中,洪言微語就重點對這種觀點潑潑冷水。
| 顛覆金融體系,區塊鏈仍面臨兩座大山
馬克思主義辯證法告訴我們,凡事都有兩面,優點越突出,缺陷也就越明顯,只是角度不同罷了。區塊鏈顛覆金融體系的 兩大難題恰恰出在去中心化和去信任化兩大優點上 。
首先講講去中心化。 先要明確一個道理,中心化必然代表著低效率嗎?自然不是的。在特定的范圍內,中心化帶來的資源集中是可以大大提升效率的,這也是人類進化過程中從個體到村落到部落再到國家的原因。就以銀聯為例,銀聯是國內銀行業清結算的中心,銀聯成立後,每家銀行只需要和銀聯對接即可實現和所有銀行的交易,若去中心化呢,沒有銀聯,每家銀行需要和所有的交易對手去對接,效率孰高孰低?所以,沒有必要對中心化一棍子打死,區塊鏈的去中心化特徵,註定只能在特定領域(即不適合中心化的領域)發揮作用,怎麼可能顛覆一切呢?
再者,就是去信任問題 。去信任本身沒有問題,但是其背後的技術邏輯有很大的缺陷。區塊鏈實現去信任靠的是全民記賬,即在每個區塊上保留所有的交易信息,以供系統交叉驗證,辨真偽。問題來了,每個區塊保留所有交易信息,在小的區塊鏈上是沒有問題的,但隨著越來越多信息的加入,必然導致交易信息的爆發式增長,也會帶來信息存儲成本的急劇上升。同時,信息量越大,交叉驗證所需的時間越長,效率也會越低下。 所以,區塊鏈解決了信任問題,但帶來了成本的上升和效率的下降 。
世上原本就沒有十全十美的事情,區塊鏈也是如此。
作為結語,洪言微語想要闡明的是,區塊鏈作為一種理念的創新,的確有很大的價值,在特定領域也可以產生顛覆式的影響。但當前對區塊鏈一邊倒的思維是有問題的,東方智慧告訴我們,「極高明而道中庸」,面對任何事物,保持中庸之道才是最明智的。
(文/薛洪言,蘇寧金融研究院高級研究員;微信公眾號:洪言微語)
早在幾年前,「挖礦」這個詞就隨著比特幣的大火而廣為人知,很多人是先知道比特幣而後才知道的區塊鏈,甚至至今不知道區塊鏈。從定義來說,區塊鏈是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。
我不是計算機技術專家,以下對區塊鏈的介紹來自閱讀和專家朋友的評論,僅供參考。
如果要用一個詞來解釋區塊鏈,那就是:分布式記賬。
要理解一下這個詞是什麼意思,就需要先理解,傳統的記賬都是有一個中心的。比如銀行,你從銀行存款取款,通過銀行借錢給別人,都是以銀行為中心,所有這些交易都建立在銀行的信用之上。那如果銀行耍賴呢?或者更嚴重,國家耍賴呢?國民黨在統治中國大陸的末期濫發金圓券,以及魏瑪德國和辛巴威的惡性通貨膨脹,搞得貨幣沒有衛生紙值錢,都是非常著名的例子。
金圓券
區塊鏈針對的,就是這個問題。他們認為,去中心化的記賬才是不可修改,不可抵賴的。怎麼實現去中心化記賬?基本的思想是,所有的用戶都存儲下所有的交易記錄,通過數學方法,讓非法修改賬本變得非常困難。這樣一來,就保證了賬本的可靠性。
具體而言,所有用戶通過窮舉隨機數變數,第一個得到特定要求哈希函數值(Hash)的用戶將有權記賬該輪交易,並獲得對應的比特幣獎勵。以數據塊(block)的形式進行傳輸,並以末端追加的方式將數據塊連成鏈狀(chain),因而叫做區塊鏈(block chain)。
聽了介紹,你也許會感到這種思想很有意思,但並不像宣傳得那樣激動人心,那樣有革命性。你的感覺是對的。實際上,區塊鏈的基本邏輯就有些繞不過去的問題。
例如,目前完整的比特幣公共賬本大小已經超過150 G,並以每年數十G的速度快速遞增——僅僅為了支持500萬用戶每年3000萬筆交易。如果有朝一日其處理量與目前的支付寶比肩,那每年比特幣賬本的大小將增加超過500 T。這相當於把支付寶伺服器的存儲數據在所有用戶的個人電腦上進行備份,——你會覺得這是個好主意嗎?
又如,在傳統的銀行體系中,如果你把密碼丟了,並沒有什麼了不起,向系統及時申報就是了,你的財富不會消失。但在區塊鏈體系中,如果你把密碼丟了,那麼這就是個巨大的麻煩,你的貨幣就找不回來了。開不開心?意不意外?
區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法
通俗點將,就是打麻將,四個人都可以輪流當庄,彼此放炮自摸四個人都有各自賬本記錄,但如果你想修改賬本必須掌握50%以上的修改許可權,所以你在賬本上作弊的成本非常大。
將來區塊鏈更多的將用於金融方面可以打擊洗錢,詐騙,因為所有的信息都可以追溯,文化方面可以用於版權保護等等
我看了很多人對區塊鏈的解釋都是官方話術,有些可能連解釋的人自己都不清楚,我下面用白話文來解釋區塊鏈,保證讓大家都能看得懂。
區塊鏈是什麼?我打個比方,在50年後,你可以從超市中買一台電風扇,這台電風扇在扇風的時候會幫你自動挖幣,你一邊用電風扇可以一邊自動化挖幣,當你這台電風扇壞了的時候,你可以用挖來的幣進行電風扇的維修,當然也可以用挖來的幣購買一台新的電風扇。很多人一想不對啊!那這樣商家的盈利不就少了嗎?我給大家說某個品牌,這個品牌的商品賣給你的時候,本身商品甚至可能是虧錢賣給你的,但是一旦用戶數量大了,用戶粘性大了,可以通過會員費或者服務費之類的小額費用或者其它方式來盈利。如同這個道理,挖來的幣可以購買和維修,這樣雖然商家的盈利可能減少了,但是商家獲得了更多的用戶和更大的用戶粘性,到這個時候商家想賺錢就是分分鍾的事情。
並且你買來的這台電風扇相當於給你上鏈了,什麼叫上鏈呢?假如現在把你家裡的電風扇放到大街上,有10個人來搶這台電風扇,你是沒有辦法證明這台電風扇的所有權就是你的,而你一旦上鏈了以後,相當於就和你綁定了,你就可以證明了。
所以說,區塊鏈的本質就是在幫助把人們的生活變得更方便了,相當於在互聯網的基礎上進行了升級,變得更加安全更加便捷,這就是區塊鏈!就是這么簡單。
區塊鏈的安全體現在它的不可逆性,不可以篡改數據。我們都知道在現在的 社會 中,任何數據都是可以通過黑客進行修改攻克的,但是區塊鏈中的數據是不可能更改的,一旦生成就不可以修改,除非區塊鏈中所有的用戶一起同意修改數據,但這是不可能發生的事情。
目前區塊鏈還是非常不成熟的,就如同2000年的互聯網泡沫破裂一樣,等泡沫破了就會孵化出真正有價值的區塊鏈互聯網公司。
歷史 的車輪是不會倒退的,很多人不願意接受區塊鏈,就像在20年前告訴你網上可以進行購物,這都是一樣荒唐的事情,時間終將證明。
1. 區塊鏈的主要作用是儲存信息。任何需要保存的信息,都可以寫入區塊鏈,也可以從裡面讀取,所以它是資料庫。
2. 任何人都可以架設伺服器,加入區塊鏈網路,成為一個節點。區塊鏈的世界裡面,沒有中心節點,每個節點都是平等的,都保存著整個資料庫。你可以向任何一個節點,寫入/讀取數據,因為所有節點最後都會同步,保證區塊鏈一致。
3. 每個人都在同一條區塊鏈上工作,每個人都公開分享區塊鏈的當前狀態,每個人都同意新數據提交的規則並且篡改區塊鏈的行為在算力上是難以操作的。
如果我們把資料庫假設成一本賬本,讀寫資料庫就是一種記賬行為:
任何人都可以對這個公共賬本進行核查,但不存在一個單一的用戶可以對它進行控制。在區塊鏈系統中的參與者們,會共同維持賬本的更新:它只能按照嚴格的規則和共識來進行修改,這背後有非常精妙的設計。
(1)記賬,系統在一段時間內找出記賬最快最好的人、由這個人來記賬,然後將賬本的這一頁信息廣播給全網其他每個節點,這也就相當於改變資料庫記錄;(共識機制,密碼學)
(2)核對,全網其他有效節點核對該區塊記賬的正確性,並且蓋上時間戳,確認區塊合法;(時間戳,數學)
(3)形成單鏈,即在上一合法區塊之後競爭下一個區塊;(智能合約,加密技術)
(4)存儲,賬簿是分區塊存儲的,隨著交易的增加,新的數據塊會附加到已存在的鏈上,形成鏈狀結構;(分布式結構,信息技術)
(5)備份,每一個參與交易者都是區塊網路的節點,每個節點都有一份完整的公共賬簿備份,也就是分布式賬本。
特點
1. 區塊鏈沒有管理員,它是徹底無中心的。正是因為無法管理,區塊鏈才能做到無法被控制。沒有了管理員,人人都可以往裡面寫入數據,為了保證數據可信:區塊鏈的技術使得其數據一旦寫入,就無法被篡改。
2. 接近於零的信任成本。
互聯網企業構建其信用需要的周期時間極長,比如淘寶建立信用往往需要數年時間。在區塊鏈里,大家信任的是代碼、演算法和規則,所以信任成本降到極低。
3. 構造和交易資產的邊際成本趨近於零。
傳統的資產想用於交易,需要大量依賴第三方,要投行、銀行、證券所等來包裝、背書等,而且費用和門檻極高。有了區塊鏈,這些都不會是問題,而且成本極低。
區塊鏈的價值傳遞屬性還天然解決了支付的問題,而且有支持全球支付的基因。
區塊鏈,簡單來說,就是支持ICO(虛擬貨幣)的底層技術。而爆紅的比特幣則是ICO的一種應用。也就是說,區塊鏈的內涵更加豐富,主要特點為:
1、區塊鏈相當於數字信託,交易雙方可以自主訂立數字合約,提供區塊鏈服務的公司相當於數字信託公司;
2、區塊鏈的存在目的和特點是「3去」——去中介、去貨幣、去主權; 可以
3、比特幣是區塊鏈的一種應用,比特幣是一種加密貨幣,所有區塊鏈都應用數字加密技術;
4、「3去」特徵針對於金融業,只有在需要高頻交易的金融領域才需要區塊鏈;
5、有用戶基礎的大平台更適合應用區塊鏈,小公司參與的價值不大,所以扎克伯格的2018新年願望就包含了研究數字加密貨幣。柯達公司也推出了數字貨幣,並促使其股價暴漲。
此外,談及比特幣,其可以用來兌現,可以兌換成大多數國家的貨幣。使用者可以用比特幣購買一些虛擬物品,也可以使用比特幣購買現實生活當中的物品。在此種意義上,比特幣類似於世界貨幣,趨近於黃金。
PayPal聯合創始人,同時也是Facebook早期投資人彼得·蒂爾(Peter Thiel)認為,比特幣被人們「低估」了,並將其比做黃金。他說:「如果哪天比特幣成了黃金的線上等價物,那麼它還將有升值空間。」
但1月3日,《人民日報》發文稱,「無論是從漲幅還是從幣值本身看,比特幣價格存在泡沫,這已是一個無需討論的問題。」資料顯示,在剛剛過去的2017年,比特幣暴漲暴跌:一年之內價格暴漲約20倍,一日之內深跌逾40%。
的確,比特幣存在風險。但是,內涵更加豐富的區塊鏈顯然還有更大的發展空間。
昨晚,網上爆出真格基金創始人徐小平在內部群鼓勵擁抱區塊鏈革命的截圖。在他看來,區塊鏈革命確確實實已經到來。「我在內部強烈鼓勵大家擁抱區塊鏈革命、學習區塊鏈技術,是我經過長期觀察和思考得出的認知,我感到有責任告訴我們的創業者。我不希望我對區塊鏈的看法被人誤解為是對ICO的觀點。」
不過,在互聯網公司和投資機構集體進場的背景下,政府必將有所舉措。
近期,美國證券交易委員會(SEC)對此表現出了擔憂,擱置了兩家美國公司推出比特幣交易所交易基金(ETF)的提議。
其實,這也算是遲早之事。因為區塊鏈的「3去」特徵本來就與政府集權相矛盾。
㈥ 什麼是區塊鏈運用在哪些方面
您的問題我已看到,那麼,區塊鏈能應用在哪些方面?下面由小編來為您解答。
答:比特幣是區塊鏈的第一個具體應用。它是在 2008 年由一個人或一群人提出的一篇論文中提出的。比特幣使用區塊鏈來對比特幣進行數字發送,而 BitCoin 的名稱是比特幣,而不需要第三方中間人的干涉。
但比特幣並不是區塊鏈的唯一應用,如下:
1.金融領域:將區塊鏈技術應用在金融行業中,能夠省去第三方中介環節,實現點對點的直接對接,從而在大大降低成本的同時,快速完成交易支付。
2.物聯網和物流領域:區塊鏈在物聯網和物流領域也可以天然結合。通過區塊鏈可以降低物流成本,追溯物品的生產和運送過程,並且提高供應鏈管理的效率。
3.公共服務領域:區塊鏈在公共管理、能源、交通等領域都與民眾的生產生活息息相關,但是這些領域的中心化特質也帶來了一些問題,可以用區塊鏈來改造。
4.數字版權領域:通過區塊鏈技術,可以對作品進行鑒權,證明文字、視頻、音頻等作品的存在,保證權屬的真實、唯一性
5.保險領域:在保險理賠方面,保險機構負責資金歸集、投資、理賠,往往管理和運營成本較高。通過智能合約的應用,既無需投保人申請,也無需保險公司批准,只要觸發理賠條件,實現保單自動理賠。
6.公益領域:區塊鏈上存儲的數據,高可靠且不可篡改,天然適合用在社會公益場景。公益流程中的相關信息,如捐贈項目、募集明細、資金流向、受助人反饋等,均可以存放於區塊鏈上,並且有條件地進行透明公開公示,方便社會監督。
以上僅供您參考,還望您能採納,謝謝!
㈦ 詳解比特幣挖礦原理
可以將區塊鏈看作一本記錄所有交易的公開總帳簿(列表),比特幣網路中的每個參與者都把它看作一本所有權的權威記錄。
比特幣沒有中心機構,幾乎所有的完整節點都有一份公共總帳的備份,這份總帳可以被視為認證過的記錄。
至今為止,在主幹區塊鏈上,沒有發生一起成功的攻擊,一次都沒有。
通過創造出新區塊,比特幣以一個確定的但不斷減慢的速率被鑄造出來。大約每十分鍾產生一個新區塊,每一個新區塊都伴隨著一定數量從無到有的全新比特幣。每開采210,000個塊,大約耗時4年,貨幣發行速率降低50%。
在2016年的某個時刻,在第420,000個區塊被「挖掘」出來之後降低到12.5比特幣/區塊。在第13,230,000個區塊(大概在2137年被挖出)之前,新幣的發行速度會以指數形式進行64次「二等分」。到那時每區塊發行比特幣數量變為比特幣的最小貨幣單位——1聰。最終,在經過1,344萬個區塊之後,所有的共20,999,999.9769億聰比特幣將全部發行完畢。換句話說, 到2140年左右,會存在接近2,100萬比特幣。在那之後,新的區塊不再包含比特幣獎勵,礦工的收益全部來自交易費。
在收到交易後,每一個節點都會在全網廣播前對這些交易進行校驗,並以接收時的相應順序,為有效的新交易建立一個池(交易池)。
每一個節點在校驗每一筆交易時,都需要對照一個長長的標准列表:
交易的語法和數據結構必須正確。
輸入與輸出列表都不能為空。
交易的位元組大小是小於MAX_BLOCK_SIZE的。
每一個輸出值,以及總量,必須在規定值的范圍內 (小於2,100萬個幣,大於0)。
沒有哈希等於0,N等於-1的輸入(coinbase交易不應當被中繼)。
nLockTime是小於或等於INT_MAX的。
交易的位元組大小是大於或等於100的。
交易中的簽名數量應小於簽名操作數量上限。
解鎖腳本(Sig)只能夠將數字壓入棧中,並且鎖定腳本(Pubkey)必須要符合isStandard的格式 (該格式將會拒絕非標准交易)。
池中或位於主分支區塊中的一個匹配交易必須是存在的。
對於每一個輸入,如果引用的輸出存在於池中任何的交易,該交易將被拒絕。
對於每一個輸入,在主分支和交易池中尋找引用的輸出交易。如果輸出交易缺少任何一個輸入,該交易將成為一個孤立的交易。如果與其匹配的交易還沒有出現在池中,那麼將被加入到孤立交易池中。
對於每一個輸入,如果引用的輸出交易是一個coinbase輸出,該輸入必須至少獲得COINBASE_MATURITY (100)個確認。
對於每一個輸入,引用的輸出是必須存在的,並且沒有被花費。
使用引用的輸出交易獲得輸入值,並檢查每一個輸入值和總值是否在規定值的范圍內 (小於2100萬個幣,大於0)。
如果輸入值的總和小於輸出值的總和,交易將被中止。
如果交易費用太低以至於無法進入一個空的區塊,交易將被拒絕。
每一個輸入的解鎖腳本必須依據相應輸出的鎖定腳本來驗證。
以下挖礦節點取名為 A挖礦節點
挖礦節點時刻監聽著傳播到比特幣網路的新區塊。而這些新加入的區塊對挖礦節點有著特殊的意義。礦工間的競爭以新區塊的傳播而結束,如同宣布誰是最後的贏家。對於礦工們來說,獲得一個新區塊意味著某個參與者贏了,而他們則輸了這場競爭。然而,一輪競爭的結束也代表著下一輪競爭的開始。
驗證交易後,比特幣節點會將這些交易添加到自己的內存池中。內存池也稱作交易池,用來暫存尚未被加入到區塊的交易記錄。
A節點需要為內存池中的每筆交易分配一個優先順序,並選擇較高優先順序的交易記錄來構建候選區塊。
一個交易想要成為「較高優先順序」,需滿足的條件:優先值大於57,600,000,這個值的生成依賴於3個參數:一個比特幣(即1億聰),年齡為一天(144個區塊),交易的大小為250個位元組:
High Priority > 100,000,000 satoshis * 144 blocks / 250 bytes = 57,600,000
區塊中用來存儲交易的前50K位元組是保留給較高優先順序交易的。 節點在填充這50K位元組的時候,會優先考慮這些最高優先順序的交易,不管它們是否包含了礦工費。這種機制使得高優先順序交易即便是零礦工費,也可以優先被處理。
然後,A挖礦節點會選出那些包含最小礦工費的交易,並按照「每千位元組礦工費」進行排序,優先選擇礦工費高的交易來填充剩下的區塊。
如區塊中仍有剩餘空間,A挖礦節點可以選擇那些不含礦工費的交易。有些礦工會竭盡全力將那些不含礦工費的交易整合到區塊中,而其他礦工也許會選擇忽略這些交易。
在區塊被填滿後,內存池中的剩餘交易會成為下一個區塊的候選交易。因為這些交易還留在內存池中,所以隨著新的區塊被加到鏈上,這些交易輸入時所引用UTXO的深度(即交易「塊齡」)也會隨著變大。由於交易的優先值取決於它交易輸入的「塊齡」,所以這個交易的優先值也就隨之增長了。最後,一個零礦工費交易的優先值就有可能會滿足高優先順序的門檻,被免費地打包進區塊。
UTXO(Unspent Transaction Output) : 每筆交易都有若干交易輸入,也就是資金來源,也都有若干筆交易輸出,也就是資金去向。一般來說,每一筆交易都要花費(spend)一筆輸入,產生一筆輸出,而其所產生的輸出,就是「未花費過的交易輸出」,也就是 UTXO。
塊齡:UTXO的「塊齡」是自該UTXO被記錄到區塊鏈為止所經歷過的區塊數,即這個UTXO在區塊鏈中的深度。
區塊中的第一筆交易是筆特殊交易,稱為創幣交易或者coinbase交易。這個交易是由挖礦節點構造並用來獎勵礦工們所做的貢獻的。假設此時一個區塊的獎勵是25比特幣,A挖礦的節點會創建「向A的地址支付25.1個比特幣(包含礦工費0.1個比特幣)」這樣一個交易,把生成交易的獎勵發送到自己的錢包。A挖出區塊獲得的獎勵金額是coinbase獎勵(25個全新的比特幣)和區塊中全部交易礦工費的總和。
A節點已經構建了一個候選區塊,那麼就輪到A的礦機對這個新區塊進行「挖掘」,求解工作量證明演算法以使這個區塊有效。比特幣挖礦過程使用的是SHA256哈希函數。
用最簡單的術語來說, 挖礦節點不斷重復進行嘗試,直到它找到的隨機調整數使得產生的哈希值低於某個特定的目標。 哈希函數的結果無法提前得知,也沒有能得到一個特定哈希值的模式。舉個例子,你一個人在屋裡打檯球,白球從A點到達B點,但是一個人推門進來看到白球在B點,卻無論如何是不知道如何從A到B的。哈希函數的這個特性意味著:得到哈希值的唯一方法是不斷的嘗試,每次隨機修改輸入,直到出現適當的哈希值。
需要以下參數
• block的版本 version
• 上一個block的hash值: prev_hash
• 需要寫入的交易記錄的hash樹的值: merkle_root
• 更新時間: ntime
• 當前難度: nbits
挖礦的過程就是找到x使得
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET
上式的x的范圍是0~2^32, TARGET可以根據當前難度求出的。
簡單打個比方,想像人們不斷扔一對色子以得到小於一個特定點數的游戲。第一局,目標是12。只要你不扔出兩個6,你就會贏。然後下一局目標為11。玩家只能扔10或更小的點數才能贏,不過也很簡單。假如幾局之後目標降低為了5。現在有一半機率以上扔出來的色子加起來點數會超過5,因此無效。隨著目標越來越小,要想贏的話,扔色子的次數會指數級的上升。最終當目標為2時(最小可能點數),只有一個人平均扔36次或2%扔的次數中,他才能贏。
如前所述,目標決定了難度,進而影響求解工作量證明演算法所需要的時間。那麼問題來了:為什麼這個難度值是可調整的?由誰來調整?如何調整?
比特幣的區塊平均每10分鍾生成一個。這就是比特幣的心跳,是貨幣發行速率和交易達成速度的基礎。不僅是在短期內,而是在幾十年內它都必須要保持恆定。在此期間,計算機性能將飛速提升。此外,參與挖礦的人和計算機也會不斷變化。為了能讓新區塊的保持10分鍾一個的產生速率,挖礦的難度必須根據這些變化進行調整。事實上,難度是一個動態的參數,會定期調整以達到每10分鍾一個新區塊的目標。簡單地說,難度被設定在,無論挖礦能力如何,新區塊產生速率都保持在10分鍾一個。
那麼,在一個完全去中心化的網路中,這樣的調整是如何做到的呢?難度的調整是在每個完整節點中獨立自動發生的。每2,016個區塊(2周產生的區塊)中的所有節點都會調整難度。難度的調整公式是由最新2,016個區塊的花費時長與20,160分鍾(兩周,即這些區塊以10分鍾一個速率所期望花費的時長)比較得出的。難度是根據實際時長與期望時長的比值進行相應調整的(或變難或變易)。簡單來說,如果網路發現區塊產生速率比10分鍾要快時會增加難度。如果發現比10分鍾慢時則降低難度。
為了防止難度的變化過快,每個周期的調整幅度必須小於一個因子(值為4)。如果要調整的幅度大於4倍,則按4倍調整。由於在下一個2,016區塊的周期不平衡的情況會繼續存在,所以進一步的難度調整會在下一周期進行。因此平衡哈希計算能力和難度的巨大差異有可能需要花費幾個2,016區塊周期才會完成。
舉個例子,當前A節點在挖277,316個區塊,A挖礦節點一旦完成計算,立刻將這個區塊發給它的所有相鄰節點。這些節點在接收並驗證這個新區塊後,也會繼續傳播此區塊。當這個新區塊在網路中擴散時,每個節點都會將它作為第277,316個區塊(父區塊為277,315)加到自身節點的區塊鏈副本中。當挖礦節點收到並驗證了這個新區塊後,它們會放棄之前對構建這個相同高度區塊的計算,並立即開始計算區塊鏈中下一個區塊的工作。
比特幣共識機制的第三步是通過網路中的每個節點獨立校驗每個新區塊。當新區塊在網路中傳播時,每一個節點在將它轉發到其節點之前,會進行一系列的測試去驗證它。這確保了只有有效的區塊會在網路中傳播。
每一個節點對每一個新區塊的獨立校驗,確保了礦工無法欺詐。在前面的章節中,我們看到了礦工們如何去記錄一筆交易,以獲得在此區塊中創造的新比特幣和交易費。為什麼礦工不為他們自己記錄一筆交易去獲得數以千計的比特幣?這是因為每一個節點根據相同的規則對區塊進行校驗。一個無效的coinbase交易將使整個區塊無效,這將導致該區塊被拒絕,因此,該交易就不會成為總賬的一部分。
比特幣去中心化的共識機制的最後一步是將區塊集合至有最大工作量證明的鏈中。一旦一個節點驗證了一個新的區塊,它將嘗試將新的區塊連接到到現存的區塊鏈,將它們組裝起來。
節點維護三種區塊:
· 第一種是連接到主鏈上的,
· 第二種是從主鏈上產生分支的(備用鏈),
· 第三種是在已知鏈中沒有找到已知父區塊的。
有時候,新區塊所延長的區塊鏈並不是主鏈,這一點我們將在下面「 區塊鏈分叉」中看到。
如果節點收到了一個有效的區塊,而在現有的區塊鏈中卻未找到它的父區塊,那麼這個區塊被認為是「孤塊」。孤塊會被保存在孤塊池中,直到它們的父區塊被節點收到。一旦收到了父區塊並且將其連接到現有區塊鏈上,節點就會將孤塊從孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。當兩個區塊在很短的時間間隔內被挖出來,節點有可能會以相反的順序接收到它們,這個時候孤塊現象就會出現。
選擇了最大難度的區塊鏈後,所有的節點最終在全網范圍內達成共識。隨著更多的工作量證明被添加到鏈中,鏈的暫時性差異最終會得到解決。挖礦節點通過「投票」來選擇它們想要延長的區塊鏈,當它們挖出一個新塊並且延長了一個鏈,新塊本身就代表它們的投票。
因為區塊鏈是去中心化的數據結構,所以不同副本之間不能總是保持一致。區塊有可能在不同時間到達不同節點,導致節點有不同的區塊鏈視角。解決的辦法是, 每一個節點總是選擇並嘗試延長代表累計了最大工作量證明的區塊鏈,也就是最長的或最大累計難度的鏈。
當有兩個候選區塊同時想要延長最長區塊鏈時,分叉事件就會發生。正常情況下,分叉發生在兩名礦工在較短的時間內,各自都算得了工作量證明解的時候。兩個礦工在各自的候選區塊一發現解,便立即傳播自己的「獲勝」區塊到網路中,先是傳播給鄰近的節點而後傳播到整個網路。每個收到有效區塊的節點都會將其並入並延長區塊鏈。如果該節點在隨後又收到了另一個候選區塊,而這個區塊又擁有同樣父區塊,那麼節點會將這個區塊連接到候選鏈上。其結果是,一些節點收到了一個候選區塊,而另一些節點收到了另一個候選區塊,這時兩個不同版本的區塊鏈就出現了。
分叉之前
分叉開始
我們看到兩個礦工幾乎同時挖到了兩個不同的區塊。為了便於跟蹤這個分叉事件,我們設定有一個被標記為紅色的、來自加拿大的區塊,還有一個被標記為綠色的、來自澳大利亞的區塊。
假設有這樣一種情況,一個在加拿大的礦工發現了「紅色」區塊的工作量證明解,在「藍色」的父區塊上延長了塊鏈。幾乎同一時刻,一個澳大利亞的礦工找到了「綠色」區塊的解,也延長了「藍色」區塊。那麼現在我們就有了兩個區塊:一個是源於加拿大的「紅色」區塊;另一個是源於澳大利亞的「綠色」。這兩個區塊都是有效的,均包含有效的工作量證明解並延長同一個父區塊。這個兩個區塊可能包含了幾乎相同的交易,只是在交易的排序上有些許不同。
比特幣網路中鄰近(網路拓撲上的鄰近,而非地理上的)加拿大的節點會首先收到「紅色」區塊,並建立一個最大累計難度的區塊,「紅色」區塊為這個鏈的最後一個區塊(藍色-紅色),同時忽略晚一些到達的「綠色」區塊。相比之下,離澳大利亞更近的節點會判定「綠色」區塊勝出,並以它為最後一個區塊來延長區塊鏈(藍色-綠色),忽略晚幾秒到達的「紅色」區塊。那些首先收到「紅色」區塊的節點,會即刻以這個區塊為父區塊來產生新的候選區塊,並嘗試尋找這個候選區塊的工作量證明解。同樣地,接受「綠色」區塊的節點會以這個區塊為鏈的頂點開始生成新塊,延長這個鏈。
分叉問題幾乎總是在一個區塊內就被解決了。網路中的一部分算力專注於「紅色」區塊為父區塊,在其之上建立新的區塊;另一部分算力則專注在「綠色」區塊上。即便算力在這兩個陣營中平均分配,也總有一個陣營搶在另一個陣營前發現工作量證明解並將其傳播出去。在這個例子中我們可以打個比方,假如工作在「綠色」區塊上的礦工找到了一個「粉色」區塊延長了區塊鏈(藍色-綠色-粉色),他們會立刻傳播這個新區塊,整個網路會都會認為這個區塊是有效的,如上圖所示。
所有在上一輪選擇「綠色」區塊為勝出者的節點會直接將這條鏈延長一個區塊。然而,那些選擇「紅色」區塊為勝出者的節點現在會看到兩個鏈: 「藍色-綠色-粉色」和「藍色-紅色」。 如上圖所示,這些節點會根據結果將 「藍色-綠色-粉色」 這條鏈設置為主鏈,將 「藍色-紅色」 這條鏈設置為備用鏈。 這些節點接納了新的更長的鏈,被迫改變了原有對區塊鏈的觀點,這就叫做鏈的重新共識 。因為「紅」區塊做為父區塊已經不在最長鏈上,導致了他們的候選區塊已經成為了「孤塊」,所以現在任何原本想要在「藍色-紅色」鏈上延長區塊鏈的礦工都會停下來。全網將 「藍色-綠色-粉色」 這條鏈識別為主鏈,「粉色」區塊為這條鏈的最後一個區塊。全部礦工立刻將他們產生的候選區塊的父區塊切換為「粉色」,來延長「藍色-綠色-粉色」這條鏈。
從理論上來說,兩個區塊的分叉是有可能的,這種情況發生在因先前分叉而相互對立起來的礦工,又幾乎同時發現了兩個不同區塊的解。然而,這種情況發生的幾率是很低的。單區塊分叉每周都會發生,而雙塊分叉則非常罕見。
比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易清算更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,更長的間隔會減少分叉數量,卻會導致更長的清算時間。
㈧ 區塊鏈的核心技術是什麼
簡單來說,區塊鏈是一個提供了拜占庭容錯、並保證了最終一致性的分布式資料庫;從數據結構上看,它是基於時間序列的鏈式數據塊結構;從節點拓撲上看,它所有的節點互為冗餘備份;從操作上看,它提供了基於密碼學的公私鑰管理體系來管理賬戶。
或許以上概念過於抽象,我來舉個例子,你就好理解了。
你可以想像有 100 台計算機分布在世界各地,這 100 台機器之間的網路是廣域網,並且,這 100 台機器的擁有者互相不信任。
那麼,我們採用什麼樣的演算法(共識機制)才能夠為它提供一個可信任的環境,並且使得:
節點之間的數據交換過程不可篡改,並且已生成的歷史記錄不可被篡改;
每個節點的數據會同步到最新數據,並且會驗證最新數據的有效性;
基於少數服從多數的原則,整體節點維護的數據可以客觀反映交換歷史。
區塊鏈就是為了解決上述問題而產生的技術方案。
二、區塊鏈的核心技術組成
無論是公鏈還是聯盟鏈,至少需要四個模塊組成:P2P 網路協議、分布式一致性演算法(共識機制)、加密簽名演算法、賬戶與存儲模型。
1、P2P 網路協議
P2P 網路協議是所有區塊鏈的最底層模塊,負責交易數據的網路傳輸和廣播、節點發現和維護。
通常我們所用的都是比特幣 P2P 網路協議模塊,它遵循一定的交互原則。比如:初次連接到其他節點會被要求按照握手協議來確認狀態,在握手之後開始請求 Peer 節點的地址數據以及區塊數據。
這套 P2P 交互協議也具有自己的指令集合,指令體現在在消息頭(Message Header) 的 命令(command)域中,這些命令為上層提供了節點發現、節點獲取、區塊頭獲取、區塊獲取等功能,這些功能都是非常底層、非常基礎的功能。如果你想要深入了解,可以參考比特幣開發者指南中的 Peer Discovery 的章節。
2、分布式一致性演算法
在經典分布式計算領域,我們有 Raft 和 Paxos 演算法家族代表的非拜占庭容錯演算法,以及具有拜占庭容錯特性的 PBFT 共識演算法。
如果從技術演化的角度來看,我們可以得出一個圖,其中,區塊鏈技術把原來的分布式演算法進行了經濟學上的拓展。
在圖中我們可以看到,計算機應用在最開始多為單點應用,高可用方便採用的是冷災備,後來發展到異地多活,這些異地多活可能採用的是負載均衡和路由技術,隨著分布式系統技術的發展,我們過渡到了 Paxos 和 Raft 為主的分布式系統。
而在區塊鏈領域,多採用 PoW 工作量證明演算法、PoS 權益證明演算法,以及 DPoS 代理權益證明演算法,以上三種是業界主流的共識演算法,這些演算法與經典分布式一致性演算法不同的是,它們融入了經濟學博弈的概念,下面我分別簡單介紹這三種共識演算法。
PoW: 通常是指在給定的約束下,求解一個特定難度的數學問題,誰解的速度快,誰就能獲得記賬權(出塊)權利。這個求解過程往往會轉換成計算問題,所以在比拼速度的情況下,也就變成了誰的計算方法更優,以及誰的設備性能更好。
PoS: 這是一種股權證明機制,它的基本概念是你產生區塊的難度應該與你在網路里所佔的股權(所有權佔比)成比例,它實現的核心思路是:使用你所鎖定代幣的幣齡(CoinAge)以及一個小的工作量證明,去計算一個目標值,當滿足目標值時,你將可能獲取記賬權。
DPoS: 簡單來理解就是將 PoS 共識演算法中的記賬者轉換為指定節點數組成的小圈子,而不是所有人都可以參與記賬。這個圈子可能是 21 個節點,也有可能是 101 個節點,這一點取決於設計,只有這個圈子中的節點才能獲得記賬權。這將會極大地提高系統的吞吐量,因為更少的節點也就意味著網路和節點的可控。
3、加密簽名演算法
在區塊鏈領域,應用得最多的是哈希演算法。哈希演算法具有抗碰撞性、原像不可逆、難題友好性等特徵。
其中,難題友好性正是眾多 PoW 幣種賴以存在的基礎,在比特幣中,SHA256 演算法被用作工作量證明的計算方法,也就是我們所說的挖礦演算法。
而在萊特幣身上,我們也會看到 Scrypt 演算法,該演算法與 SHA256 不同的是,需要大內存支持。而在其他一些幣種身上,我們也能看到基於 SHA3 演算法的挖礦演算法。以太坊使用了 Dagger-Hashimoto 演算法的改良版本,並命名為 Ethash,這是一個 IO 難解性的演算法。
當然,除了挖礦演算法,我們還會使用到 RIPEMD160 演算法,主要用於生成地址,眾多的比特幣衍生代碼中,絕大部分都採用了比特幣的地址設計。
除了地址,我們還會使用到最核心的,也是區塊鏈 Token 系統的基石:公私鑰密碼演算法。
在比特幣大類的代碼中,基本上使用的都是 ECDSA。ECDSA 是 ECC 與 DSA 的結合,整個簽名過程與 DSA 類似,所不一樣的是簽名中採取的演算法為 ECC(橢圓曲線函數)。
從技術上看,我們先從生成私鑰開始,其次從私鑰生成公鑰,最後從公鑰生成地址,以上每一步都是不可逆過程,也就是說無法從地址推導出公鑰,從公鑰推導到私鑰。
4、賬戶與交易模型
從一開始的定義我們知道,僅從技術角度可以認為區塊鏈是一種分布式資料庫,那麼,多數區塊鏈到底使用了什麼類型的資料庫呢?
我在設計元界區塊鏈時,參考了多種資料庫,有 NoSQL 的 BerkelyDB、LevelDB,也有一些幣種採用基於 SQL 的 SQLite。這些作為底層的存儲設施,多以輕量級嵌入式資料庫為主,由於並不涉及區塊鏈的賬本特性,這些存儲技術與其他場合下的使用並沒有什麼不同。
區塊鏈的賬本特性,通常分為 UTXO 結構以及基於 Accout-Balance 結構的賬本結構,我們也稱為賬本模型。UTXO 是「unspent transaction input/output」的縮寫,翻譯過來就是指「未花費的交易輸入輸出」。
這個區塊鏈中 Token 轉移的一種記賬模式,每次轉移均以輸入輸出的形式出現;而在 Balance 結構中,是沒有這個模式的。
㈨ 區塊鏈的應用特徵有哪些
最近區塊鏈(blockchain)非常火,新聞媒體大量報道,國內眾多巨頭公司紛紛入場布局區塊鏈,把區塊鏈當做互聯網時代的偉大顛覆性創新,都想在區塊鏈上搶占自己的市場商機。那麼區塊鏈究竟是什麼呢?
今天小編簡單介紹下區塊鏈教程。畢竟它也不是很難的東西,核心概念非常簡單,幾句話就能說清楚。希望大家看了後可以理解區塊鏈,還會明白什麼是挖礦,為什麼挖礦越來越難等問題。
區塊鏈,Blockchain,用英文解釋起來比較順,是基於互聯網的一項技術創新,技術含量有限,架構精美。它是互聯網貨幣王者「比特幣」的技術基礎。今天,區塊鏈從幕後走向前台,這是互聯網技術的一個進步,雖然它還不成熟。區塊鏈的主要作用是儲存信息。任何需要保存的信息,都可以寫入區塊鏈,也可以從裡面讀取,所以它是資料庫。
一、區塊鏈特徵
區塊鏈是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。其主要含有以下特徵:
去中心化
由於使用分布式核算和存儲,不存在中心化的硬體或管理機構,任意節點的權利和義務都是均等的,系統中的數據塊由整個系統中具有維護功能的節點來共同維護。
開放性
系統是開放的,除了交易各方的私有信息被加密外,區塊鏈的數據對所有人公開,任何人都可以通過公開的介面查詢區塊鏈數據和開發相關應用,因此整個系統信息高度透明。
自治性
區塊鏈採用基於協商一致的規范和協議(比如一套公開透明的演算法)使得整個系統中的所有節點能夠在去信任的環境自由安全的交換數據,使得對「人」的信任改成了對機器的信任,任何人為的干預不起作用。
信息不可篡改
一旦信息經過驗證並添加至區塊鏈,就會永久的存儲起來,除非能夠同時控制住系統中超過51%的節點,否則單個節點上對資料庫的修改是無效的,因此區塊鏈的數據穩定性和可靠性極高。
匿名性
由於節點之間的交換遵循固定的演算法,其數據交互是無需信任的(區塊鏈中的程序規則會自行判斷活動是否有效),因此交易對手無須通過公開身份的方式讓對方自己產生信任,對信用的累積非常有幫助。
二、區塊鏈項目都需要挖礦嗎
並非所有的區塊鏈項目都會採用類似於比特幣這樣的「工作量證明」方式,這更多出現在早期的區塊鏈項目中。如果採取其他的證明機制,如「權益證明(Proof of Stake,PoS)」、「股份授權證明機制(Delegate Proof of Stake)」都是不需要採取這樣的挖礦方式。
區塊鏈有哪些種類
目前區塊鏈有三種:
1、公有鏈
任何節點都是向任何人開放的,每個人都可以參與到這個區塊鏈中進行計算,而且任何人都可以下載獲得完整區塊鏈數據(全部賬本)。比特幣就是最典型的公有鏈。
2、私有鏈
有些區塊鏈的應用場景下,並不希望這個系統任何人都可以參與,任何人都可以查看所有數據,只有被許可的節點才可以參與並且查看所有數據,這種區塊鏈結構我們稱為私有鏈。
3、聯盟鏈
聯盟鏈是指有若干機構或組織共同參與管理的區塊鏈,他們各自運行著一個或多個節點,之中的數據只允許系統內不同的機構進行讀取和發送交易,並且共同記錄交易數據。R3組成的銀行區塊鏈聯盟要構建的就是典型的聯盟鏈。
區塊鏈項目中一定需要出現某種幣嗎
不一定。
比特幣本身是作為一種支付系統,所以需要有一個價值度量的工具,必須要有bitcoin出現。此外,為鼓勵更多人貢獻自己的計算機來為系統提供計算,也需要有bitcoin來進行獎勵。
而在一些私有鏈的系統,可以設計專門的資產進行交易,每個節點都必須參與計算,這是每個節點責任也是權利,也不用考慮通過獎勵的方式來鼓勵他們參與。在這樣的系統裡面,就可能不再需要設計某種幣的存在。
三、區塊鏈可以應用在哪些行業
區塊鏈主要的優勢是無需中介參與、過程高效透明且成本很低、數據高度安全。所以,在這三個方面有任意一個需求的行業都有機會使用區塊鏈技術。
四、大數據和區塊鏈有什麼聯系
在大數據中使用區塊鏈技術,大數據的技術生態百花齊放,沒有哪個軟體能解決所有的問題,能解決問題也是在一個范圍內,即使是Spark、Flink等。在強調透明性、安全性的場景下,區塊鏈有其用武之地。在大數據的系統上使用區塊鏈技術,可以使得數據不能被隨意添加、修改和刪除,當然其時間和數據量級是有限度的。以時間、數據量為坐標軸,列出了目前大數據引擎大致擅長處理數據的范圍,區塊鏈可在其中成為一種很好的補充比如,對於存檔的歷史數據,因為它們是不能被修改的,我們可以對大數據作Hash處理,並加上時間戳,存在區塊鏈之上。在未來的某一時刻,當我們需要驗證原始數據地真實性時,可以對對應的數據做同樣的Hash處理,如果得出的答案是相同的,則說明數據是沒有被篡改過的。或者,只對匯總數據和結果做處理,這樣,只需要處理增量數據處理,那麼應對的數據量級和吞吐量級可能是今天的區塊鏈或改善過的系統可以處理的。通過把大數據與區塊鏈相結合,能讓區塊鏈中的數據更有價值,也能讓大數據的預測分析落實為行動,它們都將是數字經濟時代的基石。