區塊鏈所用技術
Ⅰ 區塊鏈的核心技術是什麼
簡單來說,區塊鏈是一個提供了拜占庭容錯、並保證了最終一致性的分布式資料庫;從數據結構上看,它是基於時間序列的鏈式數據塊結構;從節點拓撲上看,它所有的節點互為冗餘備份;從操作上看,它提供了基於密碼學的公私鑰管理體系來管理賬戶。
或許以上概念過於抽象,我來舉個例子,你就好理解了。
你可以想像有 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沖突,就會同步失敗,會引發寫寫的一致性沖突問題。這個多點寫入的話都會出現這個問題。
多點寫入,如何保證一致?
維新「天鵝大咖課」給你更多的技術幹活
Ⅲ 區塊鏈能應用在哪些方面
您的問題我已看到,那麼,區塊鏈能應用在哪些方面?下面由小編來為您解答。
答:比特幣是區塊鏈的第一個具體應用。它是在 2008 年由一個人或一群人提出的一篇論文中提出的。比特幣使用區塊鏈來對比特幣進行數字發送,而 BitCoin 的名稱是比特幣,而不需要第三方中間人的干涉。
但比特幣並不是區塊鏈的唯一應用,如下:
1.金融領域:將區塊鏈技術應用在金融行業中,能夠省去第三方中介環節,實現點對點的直接對接,從而在大大降低成本的同時,快速完成交易支付。
2.物聯網和物流領域:區塊鏈在物聯網和物流領域也可以天然結合。通過區塊鏈可以降低物流成本,追溯物品的生產和運送過程,並且提高供應鏈管理的效率。
3.公共服務領域:區塊鏈在公共管理、能源、交通等領域都與民眾的生產生活息息相關,但是這些領域的中心化特質也帶來了一些問題,可以用區塊鏈來改造。
4.數字版權領域:通過區塊鏈技術,可以對作品進行鑒權,證明文字、視頻、音頻等作品的存在,保證權屬的真實、唯一性
5.保險領域:在保險理賠方面,保險機構負責資金歸集、投資、理賠,往往管理和運營成本較高。通過智能合約的應用,既無需投保人申請,也無需保險公司批准,只要觸發理賠條件,實現保單自動理賠。
6.公益領域:區塊鏈上存儲的數據,高可靠且不可篡改,天然適合用在社會公益場景。公益流程中的相關信息,如捐贈項目、募集明細、資金流向、受助人反饋等,均可以存放於區塊鏈上,並且有條件地進行透明公開公示,方便社會監督。
以上僅供您參考,還望您能採納,謝謝!
Ⅳ 區塊鏈技術有哪些應用
基於以太坊開發以太貓,這個算不算應用,玩的有點意思,還有網易星球。用於溯源,搶購過中企通寶區塊鏈做的橙鏈,就是在橙子上用於區塊鏈溯源記錄。
Ⅳ 主流區塊鏈技術有哪些
本文試圖對區塊鏈有關技術流派和主流平台進行一個概覽,作為學習區塊鏈技術體系的導覽,意在拋磚引玉,促進區塊鏈開發社區的討論與共識。區塊鏈技術的流派未戰先謀局,你想投入區塊鏈開發這個領域,至少先要搞清楚現在有哪些玩家,各自的主張和實力如何。劃分區塊鏈技術流派並無一定之規,據我所見,或可有以下四種方式:第一是按照節點准入規則,劃分為公有鏈、私有鏈和聯盟鏈。公有鏈的代表自然是比特幣和以太坊,私有鏈則以R3 Corda聲名最盛,聯盟鏈的代表作品是Hyperledger名下的Fabric。公有鏈注重匿名性與去中心化,而私有鏈及聯盟鏈注重高效率,而且還往往設置了准入門檻。公有鏈、私有鏈與聯盟鏈之間的這些不同都在技術中有所體現,比如私有鏈和聯盟鏈假設節點數目不大,可以採用PBFT演算法來形成共識。而公有鏈假設有大量且不斷動態變化的節點網路,用PBFT效率太低,只能採用類似抽彩票的演算法來確定意見領袖。這就意味著,私有鏈與聯盟鏈很難變成公有鏈,而用公有鏈來作聯盟鏈或私有鏈雖然容易,卻也並非即插即用。此種差異,學者不可不察。第二是按照共享目標,劃分為共享賬本和共享狀態機兩派。比特幣是典型的共享賬本,而Chain和BigchainDB也應屬此類,這幾個區塊鏈系統在各個節點之間共享一本總賬,因此對接金融應用比較方便。另一大類區塊鏈系統中,各個節點所共享的是可完成圖靈完備計算的狀態機,如以太坊、Fabric,它們都通過執行智能合約而改變共享狀態機狀態,進而達成種種復雜功能。第三是按照梅蘭妮· 斯旺所描述的代際演進,將區塊鏈系統分為1.0、2.0和3.0三代。其中1.0支撐去中心化交易和支付系統,2.0通過智能合約支撐行業應用,3.0支撐去中心化的社會體系。比特幣和Chain應屬於區塊鏈1.0系統,而以太坊和Fabric是區塊鏈2.0系統,目前尚無成功的區塊鏈3.0系統出現,不成功的嘗試倒是有那麼一個,就是著名的The DAO。第四是按照核心數據結構,分為區塊鏈和分布式總賬兩派。區塊鏈這一派在系統中真的實現了一個區塊的鏈作為核心數據結構,而分布式總賬這一派,只是吸取了區塊鏈的精神,並沒有真用一條區塊鏈作為核心數據結構,或者雖然暫時用了,但聲明說吾項庄舞區塊鏈,意在分布式總賬耳,若假以時日,因緣際會,未嘗不可取而代之也。主流區塊鏈技術平台了解流派劃分,仍是只能用來指點江山,吹牛論道,要動手,總要有個切入點。區塊鏈貨幣據說已經有上千個了,但值得關注的技術平台大概只有數十個,而如果要進入區塊鏈開發領域,打下一個好基礎,練出一身好功夫,撈到幾個好offer,則值得深入研究學習的平台,屈指可數。首先當然是比特幣。比特幣作為區塊鏈的第一個也是目前為止最成功、最重要的樣板工程,已經上線運行了八年多,本身沒有發生任何嚴重的安全和運維事故,其穩定與強悍堪稱當代軟體系統典範。比特幣Bitcoin Core是一個代碼質量高、文檔良好的開源軟體,從學習區塊鏈原理、掌握核心技術的角度來說,Bitcoin Core是最佳切入點,能夠學到原汁原味的區塊鏈技術。當然,Bitcoin Core是用C++寫的,而且用了一些C++11和Boost庫的機制,對學習者的C++水平提出了較高的要求。學習比特幣平台開發還有一個優勢,就是可以對接繁榮的比特幣技術社區。目前圍繞比特幣進行改進和提升的人很多,人多力量就大,諸如隔離驗證、閃電網路、側鏈等比較新的想法和技術,都率先在比特幣社區里落地。比如側鏈技術的主要領導者Blockstream是由密碼學貨幣元老Adam Back領銜的,而Blockstream是Bitcoin Core最大的貢獻者之一,所以一些有關側鏈的技術在比特幣社區里討論最充分。但比特幣作為一個典型的區塊鏈1.0系統,是不是支撐其他類型區塊鏈應用的最佳技術平台,存在很大的爭議。另外,也不是所有人都有能力和必要精通區塊鏈底層技術。所以對那些急於沖到區塊鏈領域里做(quān)事(qián)的人來說,可能更直截了當的學習目標是以太坊和Hyperledger Fabric。在以太坊上面用Solidity進行的智能合約開發是切入區塊鏈開發最簡單的方式,沒有之一。以太坊的理想非常宏大,由於配備了強大的圖靈完備的智能合約虛擬機,因此可以成為一切區塊鏈項目的母平台,是馱住整個區塊鏈世界的大烏龜。在以太坊上開發一個類似比特幣的加密貨幣,是一個不折不扣的小目標。一般有經驗的開發者在文檔指導下,半天到一天即可入門。問題在於,入門以後又如何?靠寫Solidity是否就可以包打天下?這是大大存疑的。我們也可以反過來說,如果以太坊+Solidity是區塊鏈的終極解決方案,那麼怎麼還會出現那麼多區塊鏈技術門派呢?特別是,以太坊似乎並沒有給現實世界中巨型的中心化組織們留下一條活路,這種徹底不妥協的革命態度有可能也成為以太坊推廣的障礙。當前以太坊項目的開發進展並不順利。一個比較突出的問題是項目過多,力量分散,導致項目質量參差不齊。但盡管如此,跟其他區塊鏈2.0平台相比,以太坊提供的開發環境是最簡單最完善的。初學區塊鏈的人絕對有必要學習以太坊,從而對區塊鏈和智能合約建立起一個最「正宗」的認識。主流區塊鏈技術平台的第三支就是Fabric,它是Hyperledger的第一個也是最知名的孵化項目。 Fabric最早來自IBM的Open Blockchain項目,到2015年11月,IBM將當時已經開發完成的44,000行Go語言代碼交給Linux基金會,並入Hyperledger項目之中。在2016年3月一次黑客馬拉松中,Blockstream和DAH兩家公司將各自的代碼並入Open Blockchain,隨後改名為Fabric。到目前為止,Fabric與Intel提供的Sawtooth Lake並列為Hyperledger的一級孵化項目,但前者得到的關注遠超後者。從技術角度來說,Fabric思路不錯,重點是滿足企業商用的需求,比如解決交易量問題。眾所周知,比特幣最大的短板是它每秒鍾7個交易的上限,完全無法滿足現實需要。而Fabric目標是實現每秒鍾10萬交易,這個量接近剛剛過去的雙十一交易量瞬時峰值,完全可以滿足正常條件下的行業級應用。Fabric用Go語言開發,也提供多種語言的API。特別值得一提的是,Fabric比較充分地運用了容器技術,比如其智能合約就運行在容器當中。這也是Go語言帶給Fabric的一項福利,因為Go語言靜態編譯部署的特徵很適合開發容器中的程序。Fabric還有一些特點,比如其membership服務可以設置節點准入審查,這是典型的聯盟鏈特徵。再比如其共識演算法是可定製的。Fabric的短板是體系較為復雜,雖有文檔,但缺少經驗的開發者學習起來障礙比較大。然而由於其定位清楚,迎合了不少企業的心態,所以已經有多家機構在基於Fabric秘密研發行業內的聯盟鏈項目。
Ⅵ 區塊鏈技術有哪些應用領域
應用領域:金融領域,物聯網和物流領域,公共服務領域,數字版權領域,保險領域,公益領域。
區塊鏈在物聯網和物流領域也可以天然結合。通過區塊鏈可以降低物流成本,追溯物品的生產和運送過程,並且提高供應鏈管理的效率。該領域被認為是區塊鏈一個很有前景的應用方向。
區塊鏈在公共管理、能源、交通等領域都與民眾的生產生活息息相關,但是這些領域的中心化特質也帶來了一些問題,可以用區塊鏈來改造。
區塊鏈技術
該專業培養德智體美勞全面發展,掌握自然科學和人文社科基礎知識、計算機科學基礎理論、區塊鏈技術與應用專業的基礎理論及應用知識,具有區塊鏈軟體開發能力、軟體開發實踐和項目組織的基本能力,具有創新創業意識、競爭和團隊意識及工匠精神,能從事區塊鏈技術設計、管理、服務等工作的高素質高層次技術技能人才。
以上內容參考:網路-區塊鏈技術
Ⅶ 區塊鏈在技術層面有哪幾種屬性
區塊鏈技術起源於化名為「中本聰」(Satoshi Nakamoto)的學者在2008年發表的奠基性論文《比特幣: 一種點對點電子現金系統》。狹義來講, 區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構, 並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。區塊鏈網路的技術屬性主要在於:匿名性、去中心化、不可篡改、分布式存儲、多備份、數據加密等。匿名性是指在區塊鏈網路中任何一個用戶在交易的過程中,發送的交易數據中都不包含任何和個人信息有關的數據,用戶和用戶之間通過地址進行交易,而且地址理論上可以無限生成。去中心化是指通過多節點共同決策達成共識的方法,將原本的單一管理決策方案轉換成多方共同商量決策,並且區塊鏈網路中的所有節點擁有平等的數據控制權利和義務,任何節點都可以訪問區塊鏈網路中存儲的數據,訪問的過程可以同步並發執行。不可篡改是指區塊鏈除創世區塊以外,之後的每一個區塊中都包含有上一個區塊中數據的唯一哈希值,然後通過唯一的哈希值將各個區塊進行串聯。一旦其中某一個節點的區塊數據被更改,此區塊生成的哈希值也會改變。在區塊連接的過程中,後面的區塊無法找到其前區塊哈希值所對應的區塊,區塊鏈也就被迫斷開,該節點所保存的數據就不再被其他節點承認,變得沒有價值。分布式存儲和多備份的概念和現在資料庫的分布式存儲不同。區塊鏈的分布式存儲不僅是將數據存儲在不同的地理位置和物理設備上,每個設備中都有完整的賬本數據,而不是數據碎片,通過使用 Merkle 樹技術在一定程度上解決數據冗餘的問題。數據加密主要是指通過非對稱加密的方式對數據使用公鑰進行加密私鑰進行解密或者私鑰加密公鑰解密。這種加密方式在數據傳輸的過程中,數據中不必包含數據解密的密鑰,而是通過接收方手中的密鑰完成解密操作,排除數據傳輸過程中被截取所帶來的信息安全隱患。
吳超人會飛
帖子數1.0千獲贊數20
rollup擴容是什麼
什麼叫數字人民幣
什麼是RBF內存池
比特幣網路的運行邏輯
轉載bitsbetter海盜王2021-08-0510:17:0810樓:囤幣是屯在鏈上,只需要一個確認安全的私鑰和對應的地址,地址才是真錢包。一般所謂的「錢包」都是私鑰包。bitsbetter海盜王2021-08-0511:15:3112樓:把私鑰放在別人提 ...
來源
比特幣是一種貨幣。SaifedeanAmmous寫了一本名為《比特幣標准》的書,他在書中設定了一系列測試,以明確貨幣必須具有哪些特質,並將其分為三個主要類別:貨幣必須具有這些特質:第一點是具有價值存儲功能(即保值、 ...
來源
閱讀作者更多精彩帖子
最佳回答