區塊鏈技術的核心特徵
⑴ 區塊鏈的核心技術是什麼
簡單來說,區塊鏈是一個提供了拜占庭容錯、並保證了最終一致性的分布式資料庫;從數據結構上看,它是基於時間序列的鏈式數據塊結構;從節點拓撲上看,它所有的節點互為冗餘備份;從操作上看,它提供了基於密碼學的公私鑰管理體系來管理賬戶。
或許以上概念過於抽象,我來舉個例子,你就好理解了。
你可以想像有 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 結構中,是沒有這個模式的。
⑵ 什麼是區塊鏈技術區塊鏈技術的核心構成是什麼
從技術的角度,架構的角度,用通俗的語言來跟大家講講,我對區塊鏈的一些理解。
究竟啥是區塊鏈?Block chain,一句話來說,區塊鏈是一個存儲系統,存儲系統更細一點,區塊鏈是一個沒有管理員,每個節點都擁有全部數據的分布式存儲系統。
那常見的存儲系統,是什麼樣子的呢?
首先看一下如何保證高可用?
普通的存儲系統通常是用「冗餘」的方式來解決高可用問題的。圖上圖所示如果能夠把數據復製成幾份,冗餘到多個地方,就能夠保證高可用。一個地方的數據掛了,另外的地方還存有數據,例如MySQL的主從集群就是這個原理,磁碟的RAID也是這個原理。
這個地方需要強調的兩點是:數據冗餘,往往會引發一致性的問題
1、例如MySQL的主從集群中中其實讀寫會有延時的,它其實就是有一個短的時間內讀寫不一致。這個是數據冗餘,帶來的一個副作用。
2、第二個點是數據冗餘往往會降低寫入的效率,因為數據同步也是需要消耗資源的。你看單點寫入,如果加了兩個從庫之後,其實寫入的效率會受影響。普通的存儲系統,就是採用冗餘的方式,保證數據的高可用的。
那麼第二個問題,普通的存儲系統,能否多點寫入呢?
答案是可以的,比如說以這個圖為例:
其實MySQL的話可以做一個雙主的主從同步,雙主的主從同步,兩個節點,同時可以寫入。如果要做多機房多活的數據中心,其實多機房多活也是進行數據同步的。這里要強調的是多點寫入,往往會引發寫寫沖突的一致性問題,以MySQl為例,假設有一個表的屬性是自增ID,那麼現在資料庫中的數據是1234,那麼其中一個節點寫入,插入了一條數據,那它可能變成5了,然後這5條數據,向另外一個主節點進行數據同步,同步完成之前,如果另外一個寫入節點,也插入了一條數據,也生成了一條這個自增id為5的數據。那麼,生成之後,往另外一個節點同步,然後同步數據到達之後會與本地的這兩條5沖突,就會同步失敗,會引發寫寫的一致性沖突問題。這個多點寫入的話都會出現這個問題。
多點寫入,如何保證一致?
維新「天鵝大咖課」給你更多的技術幹活
⑶ 區塊鏈的基本特性
區塊鏈具有去中心化、不可篡改、不可逆、匿名等特性。
去中心化:因為整個網路沒有中心統治者。系統依靠的是網路上多個參與者的公平約束,所以任意每幾個節點的權利和義務都是均等的,而且每一個節點都會儲存這個區塊鏈上所有數據。即使該節點被損壞或遭受攻擊,仍然不會對賬簿造成任何威脅。
不可篡改:確保信息或合約無法偽造。賬簿在某個人或某幾人手上,造假的可能性就非常高,但每個人手裡都有一本賬簿,除非整個游戲里超過 51% 的人都更改某一筆賬目,否則任何的篡改都是無效的,這也是集體維護和監督的優越性。
不可逆:區塊鏈上的信息必須不可撤銷,不能隨意銷毀。系統是開源的,整個系統都必須是公開透明的,因此某筆交易被全網廣播以後,達到 6 個確認以上就成功記錄在案了,且不可逆轉不可撤銷。注: imToken 是 12 個區塊確認。
匿名性:各區塊節點的身份信息不需要公告或驗證, 信息傳遞可以匿名進行。舉個簡單的例子, 就是你在區塊鏈上向一個錢包地址發起交易, 但是卻無法知道這個地址背後確切對應的是那一個人, 或者你的私鑰被某一個黑客盜竊了, 無法從一個錢包地址中得知黑客是誰。
⑷ 區塊鏈的特徵是什麼
區塊鏈的特徵
區塊鏈的四大特徵之一:不可篡改
區塊鏈最容易被理解的特性是不可篡改的特性。
不可篡改是基於「區塊+鏈」(block+chain)的獨特賬本而形成的:存有交易的區塊按照時間順序持續加到鏈的尾部。要修改一個區塊中的數據,就需要重新生成它之後的所有區塊。
共識機制的重要作用之一是使得修改大量區塊的成本極高,從而幾乎是不可能的。以採用工作量證明的區塊鏈網路(比如比特幣、以太坊)為例,只有擁有 51% 的算力才可能重新生成所有區塊以篡改數據。但是,破壞數據並不符合擁有大算力的玩家的自身利益,這種實用設計增強了區塊鏈上的數據可靠性。
通常,在區塊鏈賬本中的交易數據可以視為不能被「修改」,它只能通過被認可的新交易來「修正」。修正的過程會留下痕跡,這也是為什麼說區塊鏈是不可篡改的,篡改是指用作偽的手段改動或曲解。
在現在常用的文件和關系型數據中,除非採用特別的設計,否則系統本身是不記錄修改痕跡的。區塊鏈賬本採用的是與文件、資料庫不同的設計,它借鑒的是現實中的賬本設計——留存記錄痕跡。因此,我們不能不留痕跡地「修改」賬本,而只能「修正」賬本(見圖2)。
圖6:比特幣在組織上去中心化,在邏輯上集中
在設想未來的組織時,我們心中的理想原型常是比特幣的組織:完全去中心化的自治組織。但在實踐過程中,為了效率和能夠推進,我們又會略微往中心化組織靠攏,最終找到一個合適的平衡點。
現在,在通過以太坊的智能合約創建和發放通證,並以社區或生態方式運行的區塊鏈項目中,不少項目的理想狀態是類似於比特幣的組織,但實際情況是介於完全的去中心化組織和傳統的公司之間。
在討論區塊鏈的第四個特徵去中心自組織時,其實我們已經在從代碼的世界往外走,涉及人的組織與協同了。現在,各種討論和實際探索也揭示了區塊鏈在技術之外的意義:它可能作為基礎設施支持人類的生產組織和協同的變革。這正是區塊鏈與互聯網是完全同構的又一例證,互聯網也不僅僅是一項技術,它改變了人們的組織和協同。
總的來說,以太坊把區塊鏈帶入了新的階段。在討論以太坊時,如果要總結兩個關鍵詞的話,那麼這兩個關鍵詞分別是智能合約和通證;而如果只能說一個的話,我會選擇「通證」。我會更願意從互聯網的歷史中找尋它的意義,重復之前的類比:作為價值表示物的通證,它的角色類似於 HTML。在有了 HTML 之後,建什麼樣的網站完全取決於我們的想像力。
⑸ 區塊鏈的基本特徵是什麼
特徵:
去中心化。區塊鏈技術不依賴額外的第三方管理機構或硬體設施,沒有中心管制,除了自成一體的區塊鏈本身,通過分布式核算和存儲,各個節點實現了信息自我驗證、傳遞和管理。去中心化是區塊鏈最突出最本質的特徵 。
開放性。區塊鏈技術基礎是開源的,除了交易各方的私有信息被加密外,區塊鏈的數據對所有人開放,任何人都可以通過公開的介面查詢區塊鏈數據和開發相關應用,因此整個系統信息高度透明 。
獨立性。基於協商一致的規范和協議(類似比特幣採用的哈希演算法等各種數學演算法),整個區塊鏈系統不依賴其他第三方,所有節點能夠在系統內自動安全地驗證、交換數據,不需要任何人為的干預 。
安全性。只要不能掌控全部數據節點的51%,就無法肆意操控修改網路數據,這使區塊鏈本身變得相對安全,避免了主觀人為的數據變更。
匿名性。除非有法律規范要求,單從技術上來講,各區塊節點的身份信息不需要公開或驗證,信息傳遞可以匿名進行。
(5)區塊鏈技術的核心特徵擴展閱讀:
例子
目前區塊鏈技術最大的應用是數字貨幣,例如比特幣的發明。因為支付的本質是「將賬戶A中減少的金額增加到賬戶B中」。
如果人們有一本公共賬簿,記錄了所有的賬戶至今為止的所有交易,那麼對於任何一個賬戶,人們都可以計算出它當前擁有的金額數量。而區塊鏈恰恰是用於實現這個目的的公共賬簿,其保存了全部交易記錄。在比特幣體系中,比特幣地址相當於賬戶,比特幣數量相當於金額。
⑹ 區塊鏈的特點是什麼
區塊鏈的特點就是類似傳銷,而且多數你分不清真假,有很多很容易跑路!
⑺ 區塊鏈有什麼特徵
1.開放,共識,任何人都可以參與到區塊鏈網路,每一台設備都能作為一個節點,每個節點都允許獲得一份完整的資料庫拷貝,節點之間基於一套共識機制,通過競爭計算共同維護整個區塊鏈。
2.去中心化、去信任機制,區塊鏈由眾多的節點共同組成一個點對點的網路,不存在中心化的設備和管理機構,節點之間數據交互通過數字簽名技術進行驗證,不需要信任,只需要按照設置好的規則就行,節點之間不存在欺騙不信任的問題。
3.交易透明,雙方匿名,區塊鏈的運行規則是公開透明的,所有的數據信息也是公開的,每筆交易都是對所有節點公開可見,由於節點之間是去信任的,因此節點不需要公開身份,每個參與的節點都是匿名的。
4.不可篡改,可追溯,單個節點甚至多個節點對資料庫的修改無法影響其他節點的資料庫,區塊鏈中的每一筆交易都通過密碼學方法與兩個相鄰的兩個區塊串聯,因此可以追溯每一筆交易的所有記錄。
⑻ 區塊鏈技術的主要特徵有哪些
據了解,相比於傳統的中心化方案,區塊鏈技術主要有以下三個特徵:
區塊鏈的核心思想是去中心化
在區塊鏈系統中,任意節點之間的權利和義務都是均等的,所有的節點都有能力去用計算能力投票,從而保證了得到承認的結果是過半數節點公認的結果。即使遭受嚴重的黑客攻擊,只要黑客控制的節點數不超過全球節點總數的一半,系統就依然能正常運行,數據也不會被篡改。
區塊鏈最大的顛覆性在於信用的建立
理論上說,區塊鏈技術可以讓微信支付和支付寶不再有存在價值。《經濟學人》對區塊鏈做了一個形象的比喻:簡單地說,它是「一台創造信任的機器」。區塊鏈讓人們在互不信任並沒有中立中央機構的情況下,能夠做到互相協作。打擊假幣和金融詐騙未來都不需要了。
區塊鏈的集體維護可以降低成本
在中心化網路體系下,系統的維護和經營依賴於數據中心等平台的運維和經營,成本不可省略。區塊鏈的節點是任何人都可以參與的,每一個節點在參與記錄的同時也來驗證其他節點記錄結果的正確性,維護效率提高,成本降低。
一句話概括,區塊鏈觸動的是錢、信任和權力,這些人類賴以生存的根本性基礎。
⑼ 區塊鏈技術的特點有哪些
區塊鏈技術特點:1.安全:不受任何人或實體攻擊;2.任何信息不可篡改;3.可溯源,網路中的所有節點均可訪問;4.去中心化,無第三方。密碼財經 mimacaijing 專注區塊鏈信息。