當前位置:首頁 » 區塊鏈知識 » 區塊鏈圖片高清

區塊鏈圖片高清

發布時間: 2024-04-18 01:27:05

⑴ 漫畫圖解 什麼是區塊鏈

漫畫圖解:什麼是區塊鏈

什麼是區塊鏈?
區塊鏈,英文 Blockchain,本質上是一種去中心化的分布式資料庫。任何人只要架設自己的伺服器,接入區塊鏈網路,都可以成為這個龐大網路的一個節點。
區塊鏈既然本質是資料庫,裡面究竟存儲了什麼東西呢?讓我們來了解一下區塊鏈的基本單元:區塊(Block)。
一個區塊分為兩大部分:
1.區塊頭
區塊頭裡面存儲著區塊的頭信息,包含上一個區塊的哈希值(PreHash),本區塊體的哈希值(Hash),以及時間戳(TimeStamp)等等。
2.區塊體
區塊體存儲著這個區塊的詳細數據(Data),這個數據包含若干行記錄,可以是交易信息,也可以是其他某種信息。
剛才提及的哈希值又是什麼意思呢?
想必大家都聽說過MD5,MD5就是典型的哈希演算法,可以把一串任意長度的明文轉化成一串固定長度(128bit)的字元串,這個字元串就是哈希值。
而在我們的區塊鏈中,採用的是一種更為復雜的哈希演算法,叫做SHA256。最新的數據信息(比如交易記錄)經過一系列復雜的計算,最終會通過這個哈希演算法轉化成了長度為256bit的哈希值字元串,也就是區塊頭當中的Hash,格式如下:

區塊與Hash是一一對應的,Hash可以當做是區塊的唯一標識。
不同的區塊之間是如何進行關聯的呢?依靠Hash和PreHash來關聯。每一個區塊的PreHash和前一個區塊的Hash值是相等的。
為什麼要計算區塊的哈希值呢?
既然區塊鏈是一個鏈狀結構,就必然存在鏈條的頭節點(第一個區塊)和尾節點(最後一個區塊)。一旦有人計算出區塊鏈最新數據信息的哈希值,相當於對最新的交易記錄進行打包,新的區塊會被創建出來,銜接在區塊鏈的末尾。
新區塊頭的Hash就是剛剛計算出的哈希值,PreHash等於上一個區塊的Hash。區塊體的Data存儲的是打包前的交易記錄,這部分數據信息已經變得不可修改。
這個計算Hash值,創建新區塊的過程就叫做挖礦
用於進行海量計算的伺服器,叫做礦機
操作計算的工作人員,叫做礦工。
計算哈希值究竟難在哪裡?咱們來做一個最粗淺的解釋,哈希值計算的公式如下:
Hash = SHA-256(最後一個區塊的Hash + 新區塊基本信息 + 交易記錄信息 + 隨機數)
其中,交易記錄信息也是一串哈希值,它的計算涉及到一個數據結構 Merkle Tree。有興趣的小夥伴可以查閱相關資料,我們暫時不做展開介紹。
這里關鍵的計算難點在於隨機數的生成。猥瑣的區塊鏈發明者為了增大Hash的計算難度,要求Hash結果的前72bit必須都是0,這個幾率實在是太小太小。
由於(最後一個區塊的Hash + 新區塊基本信息 + 交易記錄信息)是固定的,所以能否獲得符合要求的Hash,完全取決於隨機數的值。挖礦者必須經過海量計算,反復生成隨機數進行「撞大運」一般的嘗試,才有可能得到正確的Hash,從而挖礦成功。
同時,區塊頭內還包含著一個動態的難度系數,當全世界的硬體計算能力越來越快的時候,區塊鏈的難度系數也會水漲船高,使得全網平均每10分鍾才能產生出一個新區塊。
小夥伴們明白挖礦有多麼難了吧?需要補充的是,不同的區塊鏈應用在細節上是不同的,這里所描述的挖礦規則是以比特幣為例。
區塊鏈的應用

比特幣(BitCoin)的概念最初由中本聰於2008年提出,而後根據這一思路設計發布了開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。
什麼是P2P網路呢?
傳統的貨幣都是由中央銀行統一發行,所有的個人儲蓄也是由銀行統一管理,這是典型的中心化系統。
而比特幣則是部署在一個全世界眾多對等節點組成的去中心化網路之上。每一個節點都有資格對這種數字貨幣進行記錄和發行。
至於比特幣底層的數據存儲,正是基於了區塊鏈技術。比特幣的每一筆交易,都對應了區塊體數據中的一行,簡單的示意如下:
交易記錄的每一行都包含時間戳、交易明細、數字簽名。
表格中只是為了方便理解。實際存儲的交易明細是匿名的,只會記錄支付方和收款方的錢包地址。
至於數字簽名呢,可以理解為每一條單筆交易的防偽標識,由非對稱加密演算法所生成。
接下來說一說比特幣礦工的獎勵:
比特幣協議規定,挖到新區塊的礦工將獲得獎勵,從2008年起是50個比特幣,然後每4年減半,目前2018年是12.5個比特幣。流通中新增的比特幣都是這樣誕生的,也難怪大家對挖掘比特幣的工作如此趨之若鶩!
區塊鏈的優勢和劣勢
區塊鏈的優勢:
1.去中心化
區塊鏈不依賴於某個中心節點,整個系統的數據由全網所有對等節點共同維護,都可以進行數據的存儲和檢驗。這樣一來,除非攻擊者黑掉全網半數以上的節點,否則整個系統是不會遭到破壞的。
2.信息不可篡改
區塊內的數據是無法被篡改的。一旦數據遭到篡改哪怕一丁點,整個區塊對應的哈希值就會隨之改變,不再是一個有效的哈希值,後面鏈接的區塊也會隨之斷裂。
區塊鏈的劣勢:
1.過度消耗能源
想要生成一個新的區塊,必須要大量伺服器資源進行大量無謂的嘗試性計算,嚴重耗費電能。
2.信息的網路延遲
以比特幣為例,任何一筆交易數據都需要同步到其他所有節點,同步過程中難免會受到網路傳輸延遲的影響,帶來較長的耗時。
幾點補充:
1.本漫畫部分內容參考了阮一峰的博文《區塊鏈入門教程》,感謝這位大神的科普。
2.由於篇幅有限,關於Merkle Tree 和 非對稱加密 的知識暫時沒有展開細講,有興趣的小夥伴們可以查閱資料進行更深一步的學習。

⑵ 【區塊鏈思維導圖】002:比特幣

在這里,傑Sir為你送出第002張區塊鏈思維導圖:002比特幣~

下面是比特幣的相關內容簡述:

比特幣(英語:Bitcoin)是一種去中心化,非普遍全球可支付的電子加密貨幣。比特幣由中本聰(又譯中本哲史)(化名)於2009年1月3日,基於無國界的對等網路,用共識主動性開源軟體發明創立。截至目前2018年2月12日,比特幣是目前市場總值最高的加密貨幣。【1】

為什麼會產生比特幣這種加密貨幣呢?或者說,比特幣為什麼會廣受大眾的歡迎,從極客圈的潮流玩意逐漸走進普通人的日常生活投資之中??

有觀點認為,比特幣的問世是人們憎恨商品經濟中國家主權貨幣超發、以及貨幣政策干預、嚮往禮物經濟中社區共識貨幣自主的結果。相信大家都會對於「通貨膨脹」的問題深有感觸吧?

查閱資料可得:通貨膨脹,一般定義為:在信用貨幣制度下,流通中的貨幣數量超過經濟實際需要而引起的貨幣貶值和物價水平全面而持續的上漲--用更通俗的語言來說就是:在一段給定的時間內,給定經濟體中的物價水平普遍持續增長,從而造成貨幣購買力的持續下降。【2】

在中國,我們可以用個形象的例子來說明:在改革開放之初的1980年左右,「萬元戶」都是很厲害的富翁了;而過了30多年後的今天,估計要到億萬資產的級別才能算得上「富翁」了吧?? 而這上千萬倍的差距變化,背後就是因為貨幣超發而造成的貨幣貶值大問題 。

中本聰對於這種「通貨膨脹」類的問題可謂是深惡痛絕的。於是,他提出了自己解決問題的方法論: 基於對技術的信仰和自由貨幣主義的信念,提出了區塊鏈技術系統;並且以區塊鏈技術為依託,創造了比特幣 。

有趣的是,中本聰創造了比特幣系統的第一個區塊,即「創世區塊」,並附有一句「The Times 03/Jan/2009 Chancellor on brink of second lout for banks」(2009年1月3日,財政大臣正處於實施第二輪銀行緊急援助的邊緣),而這句是當天泰晤士報的頭版文章標題。

至此,人們自主發行貨幣系統的大膽嘗試開始啟動,而一旦啟動了的試驗車輪,便很難被阻擋下來。後來,比特幣歷經了不斷的迭代發展,也產生了許許多多的硬分叉幣種。

資料顯示:

當然,比特幣的發展也並不是一帆風順的,黑客們會攻擊比特幣的交易網站;而很多的犯罪組織也會利用比特幣進行非法的交易;甚至很多人至今認為比特幣是一種「龐氏騙局」。

另外,名人大咖們對於比特幣的褒貶也是不一的,資料顯示:

諾貝爾經濟學得主保羅·克魯曼,認為「比特幣是邪惡的」,發表了若干對於比特幣的看法。

美銀美林利率與外匯研究全球主管David Woo 認為「比特幣能夠成為電子商務的一種主要支付方式,並且成為傳統貨幣交易的有力競爭者」。。。【3】

比特幣到底是如何呢?每個人都會有自己不同的看法。不過,傑Sir覺得: 對於不清楚的新事物,在我們輕易地做下判斷之前,不如先主動去學習去了解它吧。而學習比特幣,先去了解比特幣的白皮書就是一種很好的方法論 。

傑Sir在之前的文章裡面也曾經寫到過比特幣的官方白皮書解讀,歡迎大家查看:

題目:【說數字貨幣】比特幣白皮書解讀

鏈接: https://mp.weixin.qq.com/s?__biz=MzU1MTA2NDM1NA==&mid=2247483713&idx=1&sn=&chksm=5c761a#rd

總的來說,一個新的時代已經到來,區塊鏈、比特幣等新事物,必將會在未來展現出它們巨大的能量!我們都是時代的幸運兒與見證者,大家趕緊去學習、去了解區塊鏈的世界吧!!!

註:

【1】摘自維基網路:比特幣

【2】摘自網路:通貨膨脹

【3】摘自維基網路:比特幣

⑶ 圖解什麼是區塊鏈

區塊鏈這么火,都開始影響到我的生活了,不想了解也不行了的樣子,今天來看看到底什麼是區塊鏈。

本文結構:

和它的名字一樣,
區塊鏈是由一組塊組成的鏈,
塊是包含信息的信息塊,組成的鏈也就包含了信息。

區塊鏈技術最早是在1991年由一群研究人員研發,用來給數字化文檔打時間戳,使得這些文檔不能被篡改。從那之後就基本上沒有再發揮其他作用,直到2009年,中本聰採用區塊鏈技術創造了數字加密貨幣-比特幣。

一條區塊鏈,就是一個對所有人完全公開的分布式賬本,它有一個很有趣的屬性: 一旦某些數據被記錄到一條區塊鏈中後,那麼數據就很難再被改變。

來看一下 一個區塊(block)的組成:

每一個區塊包含了 一些數據,這個區塊的哈希值,以及前一個區塊的哈希值

區塊中所保存的數據與區塊鏈的類型有關,例如,比特幣區塊鏈中的區塊保存了相關的交易信息,包括賣家,買家,以及交易比特幣的數量。

每個區塊包含了一個哈希值,哈希值用來標識一個區塊和它所包含的所有內容,並且它是獨一無二的,就像指紋一樣。一旦某個區塊被創建,它的哈希值就相對應的被計算出來了。如果改變區塊中的某些內容會使得哈希值改變, 如果一個區塊的指紋改變了,那它就再也不是之前的區塊了

區塊中包含的第三個元素是前一個區塊的哈希值,這個元素使得區塊之間可以形成鏈接,並且能夠使得區塊鏈十分的安全。

假設我們有一條區塊鏈包含3個區塊
每個區塊包含了一個自己的哈希值以及前一個區塊的哈希值
3號區塊指向2號區塊,2號區塊又指向1號區塊
1號區塊有點特殊,它不能指向前一個區塊,因為它是第一個
我們把1號區塊叫做 創世區塊

現在假設我們篡改了第二個區塊
這將導致第二個區塊的哈希值改變
接下來這就會導致3號區塊以及3號區塊連接的所有的後續區塊變得非法
因為現在它們存儲的前一個區塊號的都變得非法
所以 單獨改變一個塊,將連帶性地致使後面的所有內容都變成無效

但要 防止篡改,只有哈希是不夠的
因為現在的計算機運算速度已經足夠強大,並且能夠每秒計算成千上萬的哈希值
這樣你完全可以篡改一個區塊並且重新計算其他的區塊的哈希值,使得你的區塊再次變得合法。

所以 為了減少這種風險,區塊鏈還採用了一種技術,叫做工作證明
這是一種減緩新區塊創建過程的機制
在比特幣區塊鏈中,大概需要花費10分鍾來完成所要求的工作證明,並且添加一個新的區塊到區塊鏈中
這個機制使得區塊鏈的篡改更加困難
因為 一旦篡改了一個區塊,就需要重新計算所有後續的區塊的工作量證明

所以 區塊鏈技術的安全性主要來自於哈希值以及工作量證明機制

區塊鏈還有一種機制來 保護自身的安全性,那就是分布式
相對於用一個中心化的實體來管理區塊鏈網路,區塊鏈採用的是一種 peer-to-peer網路,並且所有人都可以加入
當有人加入這個網路時, 他就會得到整個區塊鏈的復制
這個人就可以以此來驗證是否所有的區塊還是合法未篡改的,也就是不同的節點也可以藉此互相驗證。

當某人創建了一個新的區塊時,
這個新的區塊會被發送給網路上的所有人。
每個人再驗證這個區塊以確保這個區塊沒有被篡改過
如果所有的東西都被檢驗正確之後,那麼每個人才能把這塊新的區塊加到自己的區塊鏈上
我們可以稱之為, 網路上的所有人達成了「共識」

區塊鏈網路中的所有節點都達成共識
他們認同網路中哪些區塊是合法的,哪些是不合法的
那些被篡改過的區塊將會被網路上的其他用戶拒絕
所以, 要成功篡改一個區塊鏈,你需要篡改區塊鏈上的所有區塊
重新完成每個區塊的工作量證明,並且控制區塊鏈網路中超過50%的用戶
只有這樣,你篡改的區塊才會被所有人承認
可以說, 這基本上是不可能做得到的!

區塊鏈技術本身也在不斷地發展
例如後來的一個技術改進,叫做智能合約
智能合約 是一些存放在區塊鏈上的簡單的程序
它能基於合約內所記載的條件自動執行, 只要條件成立,依照合約自動完成交易
例如在特定條件下可以實現自動化比特幣交易。

學習資料:
https://www.youtube.com/watch?v=SSo_EIwHSd4

⑷ 分布式存儲網路Filecoin是什麼

Filecoin是IPFS上的一個代幣,而Filecoin就是通過貢獻閑置的硬碟來作為獎勵礦工的一種方式。Filecoin採用了一種全新的演算法(工作量證明),簡單的來說,你擁有的硬碟容量夠大,那麼你獲取的Filecoin獎勵就越多。
Filecoin是一個去中心化分布式存儲網路,是IPFS的唯一激勵層。Filecoin採用了區塊鏈通證體系發行了Token,Token簡稱FIL。Filecoin基於IPFS協議將雲存儲構建了一個去中心化的存儲交易市場,包括「存儲」和「檢索」兩個市場。這個市場運行在有著本地協議令牌(FIL)的區塊鏈,礦工可以通過為客戶提供存儲來獲取FIL;同樣的,客戶可以通過花費FIL來僱傭礦工來存儲或分發數據。

鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。

⑸ 什麼是區塊鏈

區塊鏈的意思是一個信息技術領域的術語。從本質上講,它是一個共享資料庫,存儲於其中的數據或信息,具有「蠢並不可偽造」「全程留痕」「可以追溯」「公開透明」「集體維護」等特徵。

它最早出現在1991年,由一群研究人員用來給數字化文檔打時間戳。以使得這些文檔不能被篡改,看上去區塊鏈技術就像一位公證人一樣。

一條區塊鏈就是對所有人完全公開的分布式賬本,它有一個很有趣的屬性:一旦數據被記錄到區塊鏈中後就帶爛跡很難再發生改變。那麼它到底是如何工作的呢?接下來讓我們首先來觀察一下單個區塊的組成。

請點擊輸入圖片描述(最多18字)

相關資料


一般說來,區塊鏈系統由數據層、網路層、共識層、激勵層、合約層和應用層組成。其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等基礎數據和基本演算法;網路層則包括分布式組網機制、數據傳播機制和數據驗證機制等。

⑹ 什麼是區塊鏈技術區塊鏈到底是什麼什麼叫區塊鏈

狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構, 並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。

廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算方式。

【基礎架構】

一般說來,區塊鏈系統由數據層、網路層、共識層、激勵層、合約層和應用層組成。 其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等基礎數據和基本演算法;網路層則包括分布式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網路節點的各類共識演算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、演算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各種應用場景和案例。該模型中,基於時間戳的鏈式區塊結構、分布式節點的共識機制、基於共識算力的經濟激勵和靈活可編程的智能合約是區塊鏈技術最具代表性的創新點 。

拓展資料:

【區塊鏈核心技術】

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

1.分布式賬本,就是交易記賬由分布在不同地方的多個節點共同完成,而且每一個節點都記錄的是完整的賬目,因此它們都可以參與監督交易合法性,同時也可以共同為其作證。

區塊鏈的分布式存儲的獨特性主要體現在兩個方面:一是區塊鏈每個節點都按照塊鏈式結構存儲完整的數據,傳統分布式存儲一般是將數據按照一定的規則分成多份進行存儲。二是區塊鏈每個節點存儲都是獨立的、地位等同的,依靠共識機制保證存儲的一致性,而傳統分布式存儲一般是通過中心節點往其他備份節點同步數據。

沒有任何一個節點可以單獨記錄賬本數據,從而避免了單一記賬人被控制或者被賄賂而記假賬的可能性。也由於記賬節點足夠多,理論上講除非所有的節點被破壞,否則賬目就不會丟失,從而保證了賬目數據的安全性。

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

3.共識機制,就是所有記賬節點之間怎麼達成共識,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。區塊鏈提出了四種不同的共識機制,適用於不同的應用場景,在效率和安全性之間取得平衡。

區塊鏈的共識機制具備「少數服從多數」以及「人人平等」的特點,其中「少數服從多數」並不完全指節點個數,也可以是計算能力、股權數或者其他的計算機可以比較的特徵量。「人人平等」是當節點滿足條件時,所有節點都有權優先提出共識結果、直接被其他節點認同後並最後有可能成為最終共識結果。

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

在保險公司的日常業務中,雖然交易不像銀行和證券行業那樣頻繁,但是對可信數據的依賴是有增無減。因此,筆者認為利用區塊鏈技術,從數據管理的角度切入,能夠有效地幫助保險公司提高風險管理能力。具體來講主要分投保人風險管理和保險公司的風險監督。

區塊鏈-網路

⑺ 什麼是區塊鏈技術區塊鏈是什麼通俗解釋

區塊鏈 自從10月底以來,就一直處於風口浪尖。

什麼是區塊鏈技術

雖然說區塊鏈問世已經有十幾年了,但是很多人對於這個技術還不是很了解。

區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。從應用視角來看,區塊鏈是一個分布式賬本。

那麼,為什麼區塊鏈叫區塊鏈呢?

因為區塊鏈本身就是一串區塊鏈接而成,在這些區塊上,都寫滿了交易記錄,區塊很像資料庫的記錄,每次寫入數據,就是創建一個區塊。而隨著信息交流的擴大,一個區塊與一個區塊相繼續,形成的結果就叫區塊鏈。

區塊鏈技術具有哪些特點呢

簡單來說,區塊鏈具有去中心化、開放性、不可篡改、匿名性等特點。

1、去中心化:

在區塊鏈系統中,是沒有一個中心的。

在區塊鏈模式中,是分布式核算和存儲,各節點自我驗證、傳遞、管理信息,各個節點都是中心,也就是去中心化。

2、開放性:

區塊鏈系統具有開放性的特點,數據是開放的,任何人都可以通過公開的介面查詢區塊鏈數據和開發相關應用。

3、信息無法篡改:

區塊鏈系統中,數據一旦寫入,就無法撤銷篡改,除非掌控全部數據節點的51%,才有可能偽造出一條不存在的記錄。所以,區塊鏈技術具備一定的安全性。

4、隱私匿名性:

區塊鏈裡面的密碼學技術,能夠很好地實現身份隱匿。

各節點的身份信息不需要公開或驗證,信息傳遞可以匿名進行。只有在數據擁有者授權的情況下才能訪問到,從而保證了數據的安全和個人的隱私。

小李向小王借出了10000元,小李找了兩個人共同的還有小白來作證明。這種記賬模式,就是中心化記賬模式,小白就是中心。

然而,一年之後,小李想要回這筆錢的時候,小王適口否認自己借過他錢,原來小王給小白的女朋友在他的公司介紹了一份工作。

這就是中心化記賬的弊端。

小李吃一塹長一智,以後有人再找他 借錢 ,他就在村裡的微信說,我借給誰誰誰多少多少錢,這樣,全村人都知道小李借給誰多少錢。

這樣以後小李再要債的時候,對方就不會否認這個問題,因為村裡的人腦海里已經建立了一個共識機制:你確實在小李那裡借了多少多少錢。

這就是去中心化記賬的優勢。

因為畢竟有很多人來作證這筆交易,如果像作假的話,除非把全村一半以上的人都收買了,然而這個代價是很大的。

實際上,區塊鏈具備的這些特點都是為了解決「信任」這個問題,區塊鏈豐富的應用場景,也都基於區塊鏈能解決信息不對稱問題,同時區塊鏈也有助於實現多個主體之間的協作信任與一致行動。

區塊鏈的應用有哪些

除了數字貨幣,區塊鏈的應用場景還有很多。

1、醫學領域

區塊鏈幫助實現智慧醫療,比如去醫院看病,通過區塊鏈模式,患者的就診情況、病例、治療情況等都清晰可見,節省大量醫療資源。

2、版權領域

區塊鏈可以證明作品版權的真實性和唯一性,從音頻、視頻、圖片、文字等作品的誕生到轉讓,都能被追蹤和記錄,並且形成不可篡改的信息。

3、物流領域

在物流領域應用了區塊鏈之後,商品從生產到消費都有跡可循。

4、食品安全

區塊鏈用於食品安全?通過區塊鏈的可追溯性,可以輕松地從追蹤他們食物的前世今生。

5、證券交易

比如傳統的證券交易,需要經過多個機構的協調工作,才能完成,而區塊鏈系統就可以獨立地完成一條龍式服務可以讓證券交易的時候更簡單,效率更快。

不過,很多人對於區塊鏈存在著很大的誤解,其中最大的誤解就是:區塊鏈= 比特幣

實際上,區塊鏈和比特幣並不是一回事兒,區塊鏈是比特幣的底層技術,比特幣是區塊鏈的第一個應用。

⑻ 【深度知識】區塊鏈之加密原理圖示(加密,簽名)

先放一張以太坊的架構圖:

在學習的過程中主要是採用單個模塊了學習了解的,包括P2P,密碼學,網路,協議等。直接開始總結:

秘鑰分配問題也就是秘鑰的傳輸問題,如果對稱秘鑰,那麼只能在線下進行秘鑰的交換。如果在線上傳輸秘鑰,那就有可能被攔截。所以採用非對稱加密,兩把鑰匙,一把私鑰自留,一把公鑰公開。公鑰可以在網上傳輸。不用線下交易。保證數據的安全性。

如上圖,A節點發送數據到B節點,此時採用公鑰加密。A節點從自己的公鑰中獲取到B節點的公鑰對明文數據加密,得到密文發送給B節點。而B節點採用自己的私鑰解密。

2、無法解決消息篡改。

如上圖,A節點採用B的公鑰進行加密,然後將密文傳輸給B節點。B節點拿A節點的公鑰將密文解密。

1、由於A的公鑰是公開的,一旦網上黑客攔截消息,密文形同虛設。說白了,這種加密方式,只要攔截消息,就都能解開。

2、同樣存在無法確定消息來源的問題,和消息篡改的問題。

如上圖,A節點在發送數據前,先用B的公鑰加密,得到密文1,再用A的私鑰對密文1加密得到密文2。而B節點得到密文後,先用A的公鑰解密,得到密文1,之後用B的私鑰解密得到明文。

1、當網路上攔截到數據密文2時, 由於A的公鑰是公開的,故可以用A的公鑰對密文2解密,就得到了密文1。所以這樣看起來是雙重加密,其實最後一層的私鑰簽名是無效的。一般來講,我們都希望簽名是簽在最原始的數據上。如果簽名放在後面,由於公鑰是公開的,簽名就缺乏安全性。

2、存在性能問題,非對稱加密本身效率就很低下,還進行了兩次加密過程。

如上圖,A節點先用A的私鑰加密,之後用B的公鑰加密。B節點收到消息後,先採用B的私鑰解密,然後再利用A的公鑰解密。

1、當密文數據2被黑客攔截後,由於密文2隻能採用B的私鑰解密,而B的私鑰只有B節點有,其他人無法機密。故安全性最高。
2、當B節點解密得到密文1後, 只能採用A的公鑰來解密。而只有經過A的私鑰加密的數據才能用A的公鑰解密成功,A的私鑰只有A節點有,所以可以確定數據是由A節點傳輸過來的。

經兩次非對稱加密,性能問題比較嚴重。

基於以上篡改數據的問題,我們引入了消息認證。經過消息認證後的加密流程如下:

當A節點發送消息前,先對明文數據做一次散列計算。得到一個摘要, 之後將照耀與原始數據同時發送給B節點。當B節點接收到消息後,對消息解密。解析出其中的散列摘要和原始數據,然後再對原始數據進行一次同樣的散列計算得到摘要1, 比較摘要與摘要1。如果相同則未被篡改,如果不同則表示已經被篡改。

在傳輸過程中,密文2隻要被篡改,最後導致的hash與hash1就會產生不同。

無法解決簽名問題,也就是雙方相互攻擊。A對於自己發送的消息始終不承認。比如A對B發送了一條錯誤消息,導致B有損失。但A抵賴不是自己發送的。

在(三)的過程中,沒有辦法解決交互雙方相互攻擊。什麼意思呢? 有可能是因為A發送的消息,對A節點不利,後來A就抵賴這消息不是它發送的。

為了解決這個問題,故引入了簽名。這里我們將(二)-4中的加密方式,與消息簽名合並設計在一起。

在上圖中,我們利用A節點的私鑰對其發送的摘要信息進行簽名,然後將簽名+原文,再利用B的公鑰進行加密。而B得到密文後,先用B的私鑰解密,然後 對摘要再用A的公鑰解密,只有比較兩次摘要的內容是否相同。這既避免了防篡改問題,有規避了雙方攻擊問題。因為A對信息進行了簽名,故是無法抵賴的。

為了解決非對稱加密數據時的性能問題,故往往採用混合加密。這里就需要引入對稱加密,如下圖:

在對數據加密時,我們採用了雙方共享的對稱秘鑰來加密。而對稱秘鑰盡量不要在網路上傳輸,以免丟失。這里的共享對稱秘鑰是根據自己的私鑰和對方的公鑰計算出的,然後適用對稱秘鑰對數據加密。而對方接收到數據時,也計算出對稱秘鑰然後對密文解密。

以上這種對稱秘鑰是不安全的,因為A的私鑰和B的公鑰一般短期內固定,所以共享對稱秘鑰也是固定不變的。為了增強安全性,最好的方式是每次交互都生成一個臨時的共享對稱秘鑰。那麼如何才能在每次交互過程中生成一個隨機的對稱秘鑰,且不需要傳輸呢?

那麼如何生成隨機的共享秘鑰進行加密呢?

對於發送方A節點,在每次發送時,都生成一個臨時非對稱秘鑰對,然後根據B節點的公鑰 和 臨時的非對稱私鑰 可以計算出一個對稱秘鑰(KA演算法-Key Agreement)。然後利用該對稱秘鑰對數據進行加密,針對共享秘鑰這里的流程如下:

對於B節點,當接收到傳輸過來的數據時,解析出其中A節點的隨機公鑰,之後利用A節點的隨機公鑰 與 B節點自身的私鑰 計算出對稱秘鑰(KA演算法)。之後利用對稱秘鑰機密數據。

對於以上加密方式,其實仍然存在很多問題,比如如何避免重放攻擊(在消息中加入 Nonce ),再比如彩虹表(參考 KDF機制解決 )之類的問題。由於時間及能力有限,故暫時忽略。

那麼究竟應該採用何種加密呢?

主要還是基於要傳輸的數據的安全等級來考量。不重要的數據其實做好認證和簽名就可以,但是很重要的數據就需要採用安全等級比較高的加密方案了。

密碼套件 是一個網路協議的概念。其中主要包括身份認證、加密、消息認證(MAC)、秘鑰交換的演算法組成。

在整個網路的傳輸過程中,根據密碼套件主要分如下幾大類演算法:

秘鑰交換演算法:比如ECDHE、RSA。主要用於客戶端和服務端握手時如何進行身份驗證。

消息認證演算法:比如SHA1、SHA2、SHA3。主要用於消息摘要。

批量加密演算法:比如AES, 主要用於加密信息流。

偽隨機數演算法:例如TLS 1.2的偽隨機函數使用MAC演算法的散列函數來創建一個 主密鑰 ——連接雙方共享的一個48位元組的私鑰。主密鑰在創建會話密鑰(例如創建MAC)時作為一個熵來源。

在網路中,一次消息的傳輸一般需要在如下4個階段分別進行加密,才能保證消息安全、可靠的傳輸。

握手/網路協商階段:

在雙方進行握手階段,需要進行鏈接的協商。主要的加密演算法包括RSA、DH、ECDH等

身份認證階段:

身份認證階段,需要確定發送的消息的來源來源。主要採用的加密方式包括RSA、DSA、ECDSA(ECC加密,DSA簽名)等。

消息加密階段:

消息加密指對發送的信息流進行加密。主要採用的加密方式包括DES、RC4、AES等。

消息身份認證階段/防篡改階段:

主要是保證消息在傳輸過程中確保沒有被篡改過。主要的加密方式包括MD5、SHA1、SHA2、SHA3等。

ECC :Elliptic Curves Cryptography,橢圓曲線密碼編碼學。是一種根據橢圓上點倍積生成 公鑰、私鑰的演算法。用於生成公私秘鑰。

ECDSA :用於數字簽名,是一種數字簽名演算法。一種有效的數字簽名使接收者有理由相信消息是由已知的發送者創建的,從而發送者不能否認已經發送了消息(身份驗證和不可否認),並且消息在運輸過程中沒有改變。ECDSA簽名演算法是ECC與DSA的結合,整個簽名過程與DSA類似,所不一樣的是簽名中採取的演算法為ECC,最後簽名出來的值也是分為r,s。 主要用於身份認證階段

ECDH :也是基於ECC演算法的霍夫曼樹秘鑰,通過ECDH,雙方可以在不共享任何秘密的前提下協商出一個共享秘密,並且是這種共享秘鑰是為當前的通信暫時性的隨機生成的,通信一旦中斷秘鑰就消失。 主要用於握手磋商階段。

ECIES: 是一種集成加密方案,也可稱為一種混合加密方案,它提供了對所選擇的明文和選擇的密碼文本攻擊的語義安全性。ECIES可以使用不同類型的函數:秘鑰協商函數(KA),秘鑰推導函數(KDF),對稱加密方案(ENC),哈希函數(HASH), H-MAC函數(MAC)。

ECC 是橢圓加密演算法,主要講述了按照公私鑰怎麼在橢圓上產生,並且不可逆。 ECDSA 則主要是採用ECC演算法怎麼來做簽名, ECDH 則是採用ECC演算法怎麼生成對稱秘鑰。以上三者都是對ECC加密演算法的應用。而現實場景中,我們往往會採用混合加密(對稱加密,非對稱加密結合使用,簽名技術等一起使用)。 ECIES 就是底層利用ECC演算法提供的一套集成(混合)加密方案。其中包括了非對稱加密,對稱加密和簽名的功能。

<meta charset="utf-8">

這個先訂條件是為了保證曲線不包含奇點。

所以,隨著曲線參數a和b的不斷變化,曲線也呈現出了不同的形狀。比如:

所有的非對稱加密的基本原理基本都是基於一個公式 K = k G。其中K代表公鑰,k代表私鑰,G代表某一個選取的基點。非對稱加密的演算法 就是要保證 該公式 不可進行逆運算( 也就是說G/K是無法計算的 )。 *

ECC是如何計算出公私鑰呢?這里我按照我自己的理解來描述。

我理解,ECC的核心思想就是:選擇曲線上的一個基點G,之後隨機在ECC曲線上取一個點k(作為私鑰),然後根據k G計算出我們的公鑰K。並且保證公鑰K也要在曲線上。*

那麼k G怎麼計算呢?如何計算k G才能保證最後的結果不可逆呢?這就是ECC演算法要解決的。

首先,我們先隨便選擇一條ECC曲線,a = -3, b = 7 得到如下曲線:

在這個曲線上,我隨機選取兩個點,這兩個點的乘法怎麼算呢?我們可以簡化下問題,乘法是都可以用加法表示的,比如2 2 = 2+2,3 5 = 5+5+5。 那麼我們只要能在曲線上計算出加法,理論上就能算乘法。所以,只要能在這個曲線上進行加法計算,理論上就可以來計算乘法,理論上也就可以計算k*G這種表達式的值。

曲線上兩點的加法又怎麼算呢?這里ECC為了保證不可逆性,在曲線上自定義了加法體系。

現實中,1+1=2,2+2=4,但在ECC演算法里,我們理解的這種加法體系是不可能。故需要自定義一套適用於該曲線的加法體系。

ECC定義,在圖形中隨機找一條直線,與ECC曲線相交於三個點(也有可能是兩個點),這三點分別是P、Q、R。

那麼P+Q+R = 0。其中0 不是坐標軸上的0點,而是ECC中的無窮遠點。也就是說定義了無窮遠點為0點。

同樣,我們就能得出 P+Q = -R。 由於R 與-R是關於X軸對稱的,所以我們就能在曲線上找到其坐標。

P+R+Q = 0, 故P+R = -Q , 如上圖。

以上就描述了ECC曲線的世界裡是如何進行加法運算的。

從上圖可看出,直線與曲線只有兩個交點,也就是說 直線是曲線的切線。此時P,R 重合了。

也就是P = R, 根據上述ECC的加法體系,P+R+Q = 0, 就可以得出 P+R+Q = 2P+Q = 2R+Q=0

於是乎得到 2 P = -Q (是不是與我們非對稱演算法的公式 K = k G 越來越近了)。

於是我們得出一個結論,可以算乘法,不過只有在切點的時候才能算乘法,而且只能算2的乘法。

假若 2 可以變成任意個數進行想乘,那麼就能代表在ECC曲線里可以進行乘法運算,那麼ECC演算法就能滿足非對稱加密演算法的要求了。

那麼我們是不是可以隨機任何一個數的乘法都可以算呢? 答案是肯定的。 也就是點倍積 計算方式。

選一個隨機數 k, 那麼k * P等於多少呢?

我們知道在計算機的世界裡,所有的都是二進制的,ECC既然能算2的乘法,那麼我們可以將隨機數k描 述成二進制然後計算。假若k = 151 = 10010111

由於2 P = -Q 所以 這樣就計算出了k P。 這就是點倍積演算法 。所以在ECC的曲線體系下是可以來計算乘法,那麼以為這非對稱加密的方式是可行的。

至於為什麼這樣計算 是不可逆的。這需要大量的推演,我也不了解。但是我覺得可以這樣理解:

我們的手錶上,一般都有時間刻度。現在如果把1990年01月01日0點0分0秒作為起始點,如果告訴你至起始點為止時間流逝了 整1年,那麼我們是可以計算出現在的時間的,也就是能在手錶上將時分秒指針應該指向00:00:00。但是反過來,我說現在手錶上的時分秒指針指向了00:00:00,你能告訴我至起始點算過了有幾年了么?

ECDSA簽名演算法和其他DSA、RSA基本相似,都是採用私鑰簽名,公鑰驗證。只不過演算法體系採用的是ECC的演算法。交互的雙方要採用同一套參數體系。簽名原理如下:

在曲線上選取一個無窮遠點為基點 G = (x,y)。隨機在曲線上取一點k 作為私鑰, K = k*G 計算出公鑰。

簽名過程:

生成隨機數R, 計算出RG.

根據隨機數R,消息M的HASH值H,以及私鑰k, 計算出簽名S = (H+kx)/R.

將消息M,RG,S發送給接收方。

簽名驗證過程:

接收到消息M, RG,S

根據消息計算出HASH值H

根據發送方的公鑰K,計算 HG/S + xK/S, 將計算的結果與 RG比較。如果相等則驗證成功。

公式推論:

HG/S + xK/S = HG/S + x(kG)/S = (H+xk)/GS = RG

在介紹原理前,說明一下ECC是滿足結合律和交換律的,也就是說A+B+C = A+C+B = (A+C)+B。

這里舉一個WIKI上的例子說明如何生成共享秘鑰,也可以參考 Alice And Bob 的例子。

Alice 與Bob 要進行通信,雙方前提都是基於 同一參數體系的ECC生成的 公鑰和私鑰。所以有ECC有共同的基點G。

生成秘鑰階段:

Alice 採用公鑰演算法 KA = ka * G ,生成了公鑰KA和私鑰ka, 並公開公鑰KA。

Bob 採用公鑰演算法 KB = kb * G ,生成了公鑰KB和私鑰 kb, 並公開公鑰KB。

計算ECDH階段:

Alice 利用計算公式 Q = ka * KB 計算出一個秘鑰Q。

Bob 利用計算公式 Q' = kb * KA 計算出一個秘鑰Q'。

共享秘鑰驗證:

Q = ka KB = ka * kb * G = ka * G * kb = KA * kb = kb * KA = Q'

故 雙方分別計算出的共享秘鑰不需要進行公開就可採用Q進行加密。我們將Q稱為共享秘鑰。

在以太坊中,採用的ECIEC的加密套件中的其他內容:

1、其中HASH演算法採用的是最安全的SHA3演算法 Keccak 。

2、簽名演算法採用的是 ECDSA

3、認證方式採用的是 H-MAC

4、ECC的參數體系採用了secp256k1, 其他參數體系 參考這里

H-MAC 全程叫做 Hash-based Message Authentication Code. 其模型如下:

以太坊 的 UDP通信時(RPC通信加密方式不同),則採用了以上的實現方式,並擴展化了。

首先,以太坊的UDP通信的結構如下:

其中,sig是 經過 私鑰加密的簽名信息。mac是可以理解為整個消息的摘要, ptype是消息的事件類型,data則是經過RLP編碼後的傳輸數據。

其UDP的整個的加密,認證,簽名模型如下:

熱點內容
長沙USDT跑分系統軟體開發 發布:2024-04-30 18:03:01 瀏覽:62
李威聲關於區塊鏈的金元 發布:2024-04-30 17:58:56 瀏覽:820
數字貨幣RFC 發布:2024-04-30 17:52:32 瀏覽:47
幣圈的名字可以隨便改嗎 發布:2024-04-30 17:46:12 瀏覽:946
區塊鏈對程序員的影響 發布:2024-04-30 17:45:27 瀏覽:932
比特幣未來交易所 發布:2024-04-30 17:43:48 瀏覽:327
區塊鏈撲克軟體 發布:2024-04-30 17:33:16 瀏覽:451
海南支持數字貨幣 發布:2024-04-30 16:48:32 瀏覽:4
比特幣的通證有哪些 發布:2024-04-30 16:47:39 瀏覽:55
挖礦超頻計算錯誤 發布:2024-04-30 16:33:55 瀏覽:664