區塊鏈10原理圖
㈠ 【深度知識】區塊鏈之加密原理圖示(加密,簽名)
先放一張以太坊的架構圖:
在學習的過程中主要是採用單個模塊了學習了解的,包括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的整個的加密,認證,簽名模型如下:
㈡ 如何通俗解釋區塊鏈
區塊鏈就是一種去中心化的分布式賬本資料庫,這種分布式賬本的好處就是,買家和賣家可直接交易,不需要任何中介。人人都有備份,哪怕你這份丟失了,也不受影響。
(2)區塊鏈10原理圖擴展閱讀:
區塊鏈應用領域
1、金融領域
區塊鏈在國際匯兌、信用證、股權登記和證券交易所等金融領域有著潛在的巨大應用價值。將區塊鏈技術應用在金融行業中,能夠省去第三方中介環節,實現點對點的直接對接,從而在大大降低成本的同時,快速完成交易支付。
2、物聯網和物流領域
區塊鏈在物聯網和物流領域也可以天然結合。通過區塊鏈可以降低物流成本,追溯物品的生產和運送過程,並且提高供應鏈管理的效率。該領域被認為是區塊鏈一個很有前景的應用方向。
3、公益領域
區塊鏈上存儲的數據,高可靠且不可篡改,天然適合用在社會公益場景。公益流程中的相關信息,如捐贈項目、募集明細、資金流向、受助人反饋等,均可以存放於區塊鏈上,並且有條件地進行透明公開公示,方便社會監督。
4、保險領域
在保險理賠方面,保險機構負責資金歸集、投資、理賠,往往管理和運營成本較高。通過智能合約的應用,既無需投保人申請,也無需保險公司批准,只要觸發理賠條件,實現保單自動理賠。
㈢ 區塊鏈技術開發到底是什麼原理
狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構, 並以密旦槐寬碼學方式保證的不可篡改和不可偽造的分布式賬本。
廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算方式。
工作原理
區塊鏈系統由數據層、網路層、共識層、激勵層、合約層和應用層組成。 其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等基礎明芹數據和基本演算法;網路層則包括分布式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網路節點的各類共識演算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、演算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各種應用場景和案例。該模型中,基於時間戳的鏈式區塊結構、分布式節點的共識機制、基於共識算力的經濟激勵和靈活可編程的智能合模亮約是區塊鏈技術最具代表性的創新點。
㈣ 有沒有大佬告訴我 區塊鏈游戲的運作原理 用最簡潔明了的語言描述區塊鏈游戲。
區塊鏈游戲,主要是指Dapp中屬於游戲類的區塊鏈應用,需要和各種區塊鏈公鏈有一定程度上的交互。區塊鏈游戲從17年11月開始逐漸興起,發展歷史極為短暫,與成熟游戲相比,目前的玩法也相當簡單。在業界人士看來,很多游戲甚至只是個裹著游戲外衣的資金盤。
根據Cryptogames的分類,目前上線的區塊鏈游戲中,hot potato、收藏交易、菠菜和ponzi是最主要的游戲玩法。數量最多的要屬於hot potato類游戲,包括近期火爆的兩款游戲都是這個類型的 - CryptoCelebrities(加密名人)和 CryptoCountries(加密世界)。收藏交易類有35款,居第二,主要代表作為CryptoKitties(加密貓)。菠菜和ponzi類共17款,居第三,明星產品分別為EtherRoll和Etheremon。
區塊鏈游戲所使用的主題也是五花八門,從貓、狗、龍、豬等各種動物,到人、車、國家、球隊等等各種各樣的題材。
區塊鏈游戲1.0時代
時間:2017年11月到12月
主要玩法:收藏+交易
代表作:CryptoKitties、CryptoPunks
區塊鏈技術給玩家的數字資產賦予了唯一性。這便逐漸了產生了NFT(non-fungible tokens,不可替代的令牌)概念,人們在區塊鏈游戲中的資產唯一性和稀缺性不會隨游戲本身而改變。最先應用這個概念的是LarvaLabs在17年6月推出的CryptoPunks。系統隨機生成一萬張朋克頭像,通過智能合約放在以太坊上,免費發放給玩家後供玩家交易。
當Axiom Zen工作室在NFT的基礎上增加屬性、繁殖和拍賣功能後,Cryptokitties爆款便誕生了。人們可以購買不同屬性的小貓,與別的貓「繁衍後代「,或者將自己的貓通過荷蘭式拍賣賣出。擁有稀缺獨特基因的小貓被人們瘋狂追捧,獲得了相當高的溢價。
人們在Cryptokitties的基礎上繼續開發,添加了飾品和戰斗功能,也增加了掘金、喂養、奪寶等玩法。
區塊鏈游戲2.0時代
時間:2017年12月到2018年1月
主要玩法:類Ponzi
代表作:Etheremon
剛開始時,Etheremon的玩法一開始非常簡單粗暴,在玩家買了某個寵物之後,後面只要有人購買相同的寵物,玩家就可以獲得一小部分eth獎勵。游戲團隊在一周內迅速獲得了2000ETH左右的利潤。然後徹底改變玩法,成功轉型為收藏+戰斗的游戲。這種類Ponzi的玩法迅速被其他廠家所效仿,出現了以太車、ethertanks等眾多模仿者。
區塊鏈游戲3.0時代
時間:2018年1月
主要玩法:固定售價、強制漲價的hot potato模式
代表作:CryptoCelebrities, CryptoCountries
玩家購買加密名人(中本聰,馬斯克等)和加密國家(日本,美國等),由於資產的唯一性,後續玩家只能用更高的價格從資產擁有者中購買,價格強制漲價,平台賺取一部分差價。目前最高價格的國家是日本,大約700多ETH,最貴的名人是Elon Musk,」身價「大約200ETH。
區塊鏈游戲4.0時代
時間:2018年2月
主要玩法:多種機制結合
代表作:World.Mycollect,Cryptocities
游戲中採用了多級銷售和分成,玩家探索(隨機性),抽獎,資源獨特性等多種玩法。比如在Cryptocities中,玩家可以購買國家、大洲和世界來進行「征服」。征服了世界的玩家可以獲得大洲和國家交易額的1%稅收,征服大洲的玩家可以獲得國家交易額1%的稅收。而征服國家的玩家在未來可以獲得其下屬城市的交易額1%稅收。玩家在探索新城市的時候,有幾率探索出寶石,獲得寶石即可獲得ETH獎勵。
同時期興起的,還有菠菜類游戲。區塊鏈的高透明度讓它們更容易獲得投資者信任。比較有名的有Etheroll和Vdice,玩法簡單粗暴,玩家花費一定的ETH投注某個數字,當系統隨機生成的數字小於該數字時,就可以獲得收益。
除此之外,還有RPG(EtherCraft),戰斗游戲(Etherbots)和二次元(以太萌王)等。
2
區塊鏈游戲的優勢和劣勢
縱觀這些成功的案例,我們發現區塊鏈游戲確實有著獨特的優勢:
較高的信任度:通過開源合約快速建立信任,使用過程完全透明,信息完全對稱。公正性:可以做到數據無法篡改、規則永遠不變。資產屬於玩家個人:玩家資產不會隨游戲的衰落而流失。具有極強的社區屬性:區塊鏈本身具有較強的交易和社區屬性。
當然,目前區塊鏈游戲也處於萌芽時期,有著明顯的缺點:
無法及時交互:區塊鏈交易存在著不確定的等待時間和擁堵的可能,很難在玩家之間形成及時交互。發送指令費用較高:每次發送指令都需要消耗GAS,而ETH的價格仍然使得GAS費用顯得比較高昂。開發環境不成熟:目前以太坊的虛擬機和編程語言solidity已經是眾多公鏈中開發環境最為成熟的一個了。但是其和其他熱門語言比起來還非常的不成熟。
3
游戲化將助推區塊鏈落地
在傳統的桌面網路游戲中,廠商不斷激勵新進玩家導致了通貨膨脹,一個游戲賬號所有資產的實際價值往往遠低於玩家的投入。手游出現後,道具綁定賬號,賬號綁定身份證的模式很快得到了普及。這也使得一旦玩家決定離開某個游戲,就必須放棄所有在游戲中的虛擬資產。區塊鏈技術的出現和不斷成熟,將使得游戲規則去中心化制定和虛擬資產去中心化儲存從技術層面變得可行。而虛擬資產上鏈的便捷性,也使區塊鏈在游戲場景中更容易落地。
Cryptogames認為,區塊鏈游戲的發展方向,或者說是經典游戲(就像籃球、足球和棋類一樣,一經確定規則,便經久不衰)的發展方向,一定是「去中心化」的:
規則是由玩家協商確定玩家之間互相監督保證游戲按照規則來進行游戲中所用的所有道具都由各個玩家自己所有有人破壞規則或者玩的不爽可以直接走人游戲本身不存在一個中心化的組織者
CryptoKitties的風靡極大地推廣了私人錢包,區塊鏈游戲作為早期落地的區塊鏈應用,迅速推動了區塊鏈的普及。同樣,利用游戲開發經驗和游戲設計理念開發出
㈤ 到底什麼是區塊鏈
先說一些基本概念。
網路稱,區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的一種新使用模式。它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術,它是由密碼學產生的一系列數據塊。
我們試圖將「區塊鏈是什麼」翻譯成「人類語言」。
該定義提到了區塊鏈3354「分散資料庫」的本質。這與傳統的「集中式資料庫」在存儲、更新和操作上有很大的不同。
集中式資料庫可以被認為是這樣的形狀:
比如我要用支付寶給淘寶賣家付款,從我賺錢到他收到錢的所有數據請求都會由支付寶集中處理。這種數據結構的好處是,只要支付寶對系統的高效安全運行負責,其他人就可以無條件相信,不用擔心;壞處是,如果支付寶出了問題,比如被黑,伺服器被燒,出現內奸,公司跑路(當然以上可能性極低),我們支付寶里的余額明細等信息都會混亂。
然後有人認為這種小概率事件可以用任何技術手段來規避單個風險,把數據不僅僅交給一個中心化的機構。例如,每個人都可以存儲和處理數據。
資料庫結構可能如下所示:
這張圖是「分布式資料庫」的結構示意圖。每個點都是一個伺服器,他們都有同等的權利記錄和計算數據,信息點對點傳播。乍一看確實可以抵禦某個節點崩潰帶來的風險,但直觀上也非常混亂低效。我的信息誰來處理,結果誰說了算?
這時,區塊鏈定義中的「共識機制」就發揮作用了。共識機制主要「規定」以下事情:收到一個數據請求,由誰來處理(需要什麼資格);誰來驗證結果(看他有沒有處理好);如何防止加工者和檢驗者相互勾結等。
當一個「規則」被制定出來時,有些人可能喜歡被質疑。為了形成更強的共識,除了讓規則更合理之外,也要更有吸引力,讓人們有興趣和動力參與到數據處理的工作中來。這就涉及到公鏈的激勵機制。當我們稍後討論區塊鏈的分類和數字貨幣的作用時,我們將再次開始。
當我們把一筆交易交給一個分布式網路的時候,還有一個「心理門檻」:能處理信息的節點那麼多,我一個都不認識(不像支付寶,萬一傷害到我,我可以去找它打官司)。他們都有我的數據,我憑什麼相信他們?
這時,加密演算法(區塊鏈定義中的最後一個描述性詞語)登場了。
在區塊鏈網路中,我們發出的數據請求會根據密碼學原理被加密成接收方根本無法理解的一串字元。這種加密方返豎式的背後是哈希演算法的支持。
哈希演算法可以快速將任何類型的數據轉化為哈希值。這種變化是單向不可逆的、確定的、隨機的、防碰撞的。由於這些特點,處理我的數據請求的人可以幫我記錄信息,但他們不知道我是誰,也不知道我在做什麼。
至此,介紹了分散式網路的工作原理。但是我們似乎忽略了一個細節。前面的示意圖是一張網。滑輪和鏈條在哪裡?為什麼我們稱它為區塊鏈?
要理解這件事,我們需要先理清幾個知識點:
前面這張圖其實是一個「宏觀」的資料庫透視圖,展示了區塊鏈系統處理信息的基本規則和流程。而具體到「微觀」的數據日誌層面,我們會發現賬本被打包、壓縮、胡世核分塊存儲,並按時間順序串在一起,形成一個「鏈式結構」,像這樣:
圖中的每一個圓環都可以看作是一塊積木,許多鏈環扣在一起形成一個區塊鏈。塊存儲數據,這與普通的數據存儲不同:在區塊鏈上,後一個塊中的數據包含前一個塊中的數據。
為了從學術上解釋塊中數據的每個部分的欄位,我們試圖用一本書來比喻什麼是區塊鏈數據結構。
通常,我們看書,看完第一頁,然後看第二頁和第三頁.書脊是一種物理存在,它固定了每一頁的順序。即使書散了,也能確定標有頁碼的每一頁的順序。
在區塊鏈內部,每個塊都標有頁碼,第二頁的內容包含第一頁的內容,第三頁的內容包含第一頁和第二頁的內容.第十頁包含前九頁的內容。
就是這樣一個嵌套的鏈條,可以追溯到最褲掘原始的數據。
這就引出了區塊鏈的一個重要屬性:可追溯性。
當區塊鏈中的數據需要更新時,即按順序生成新的塊時,「共識演算法」再次發揮作用。這個演算法規定,一個新的塊只有得到全網51%以上節點的認可才能形成。說白了就是投票,半數以上的人同意就可以產生。這使得區塊鏈上的數據很難被篡改。如果我要強行改變,要賄賂的人太多,成本太高,不值得。
這就是人們常說的區塊鏈的「不可篡改」特性。
區塊鏈給人信任感的另一個原因是有「智能合約」。
智能合同是由計算機程序定義並自動執行的承諾協議。它是一套由代碼執行的交易規則,類似於目前信用卡的自動還款功能。如果開啟這個功能,你什麼都不用擔心,到期銀行會自動扣你欠的錢。
當你的朋友向你借錢,但不記得還了,或者找借口不還了,智能合約可以防止違約。一旦觸發了合同里的條款,比如什麼時候該還錢了,或者他的賬戶里有了額度,代碼就會自動執行,他欠你的錢不管他要不要都會自動轉回來。
我們來簡單總結一下。區塊鏈技術主要是去中心化,不易篡改,可追蹤,代表了更多的安全和去信任。但也帶來了新的問題:冗餘和低效,需要很多節點認同規則,積極參與。
「烘乾」部分到此結束。接下來,我們來談談野史,區塊鏈的正史。
一項新技術經常被用來為某項任務服務。
或目標而生。那麼區塊鏈最初是被用在哪裡,又是誰先想出來的呢?
讓我們把時間拉回2008年。
9月21日,華爾街投行接連倒下,美聯儲宣布:把僅存的兩家投資銀行(高盛集團和摩根士丹利)改為商業銀行;希望可以靠吸儲渡過金融危機。10月3日,布希政府簽署了7000億美元的金融救市方案。
28天之後,也就是2008年的11月1日,一個密碼學郵件組里出現了一個新帖子:「我正在開發一種新的電子貨幣系統,採用完全點對點的形式,而且無需第三方信託機構。」帖子的正文是一篇名為《Bitcoin: A Peer-to-Peer Electronic Cash System》的論文,署名Satoshi Nakamoto(中本聰)。
論文以較為嚴謹的邏輯闡述了這套點對點電子現金系統的設計,先是討論了金融機構受制於「trust based」(基於信用)的問題,再一步步說明如何實現「無需第三方機構」,並精巧地解決掉前人遺留下來的技術問題。
兩個月後,中本聰發布了開源的第一版比特幣客戶端,並首次挖出50個比特幣。產生第一批比特幣的區塊被稱為「Genesis block」(創世區塊),創始區塊被編譯為0區塊,沒有上鏈。中本聰用了6天時間挖出這個塊。這也在bitcointalk論壇中引發討論,比特幣的「信徒」們聯想到了聖經中,「神用六天創造天地萬物,便在第七日歇工安息了」。
雖然論文中並未出現decentralized(去中心化)、token(通證)、economy(經濟)等概念,但中本聰詳細解釋了區塊(Block)和鏈(Chain)在網路中的工作原理。於是,便有了區塊鏈(Block Chain)。
這篇論文,後來成為了「比特神教」的「聖經」,技術成為信仰的基石,開發者文檔成了「漢謨拉比法典」。
之後,比特幣通過交換披薩實現首次現實場景的支付、被美國政府封鎖賬戶的維基解密依靠比特幣奇跡般地生還、中本聰的「放權」與退隱、真真假假的現身和辟謠等等一系列傳說,融合了後人的期許、想像和投機,成為了「聖經故事」。
也有人並不滿意「舊約」中描繪的世界,另起教派,將教義寫入白皮書,在比特幣之後的十年中,講述著他們的信仰故事。就像66卷聖經的寫作跨越了1500年,又經過2000年的解讀,基督教分化出33000個枝丫。
CoinMarketCap顯示,數字貨幣種類已超過4900種,數字貨幣整體市場規模近1.4億元。比特幣仍以66%的市佔率領跑整個數字貨幣市場,近期價格在7200美元/枚附近徘徊。
這么多的幣種有著不盡相同的功用,又被分成不同的類別:以比特幣為代表的數字貨幣定位在「數字黃金」,有一定的儲值、避險特性;以以太坊為代表的數字貨幣,成為了其網路系統中的「運行燃料」;以USDT、Libra為代表的穩定幣,因其低波動,有著良好的支付性;以DCEP為代表的央行發行數字貨幣,一定程度上取代M0,讓商業機構和普通百姓們在沒現金又斷網的時候,也不耽誤收付款。
可見,區塊鏈技術發展10年,最初和最「大」的使用就是數字貨幣。
數字貨幣也成為了參與者們維護公鏈的誘人獎勵。
那麼在數字貨幣之外,區塊鏈技術還可以被用在哪裡呢?
讓我們再回憶下什麼是區塊鏈的本質——去中心化的資料庫,和相應的一些特點:可追溯、公開、匿名、防篡改。那麼理論上,傳統的、用得到中心化資料庫的場景,都可以試著用區塊鏈來改造下,看看是否合適。
下面,我們來聊幾個成功落地了區塊鏈的行業和場景:
區塊鏈可以通過哈希時間戳證明某個文件或者數字內容在特定時間的存在,為司法鑒證、身份證明、產權保護、防偽溯源等提供了完美解決方案
在防偽溯源領域,通過供應鏈跟蹤區塊鏈技術可以被廣泛使用於食品醫葯、農產品、酒類、奢侈品等各領域。
舉兩個例子。
區塊鏈可以讓政務數據跑起來,大大精簡辦事流程
區塊鏈的分布式技術可以讓政府部門集中到一個鏈上,所有辦事流程交付智能合約,辦事人只要在一個部門通過身份認證以及電子簽章,智能合約就可以自動處理並流轉,順序完成後續所有審批和簽章。
區塊鏈發票是國內區塊鏈技術最早落地的使用。稅務部門推出區塊鏈電子發票「稅鏈」平台,稅務部門、開票方、受票方通過獨一無二的數字身份加入「稅鏈」網路,真正實現「交易即開票」「開票即報銷」——秒級開票、分鍾級報銷入賬,大幅降低了稅收征管成本,有效解決數據篡改、一票多報、偷稅漏稅等問題。
扶貧是區塊鏈技術的另一個落地使用。利用區塊鏈技術的公開透明、可溯源、不可篡改等特性,實現扶貧資金的透明使用、精準投放和高效管理。
也舉兩個例子。
由公安部第三研究所指導的 eID 網路身份運營機構正與公易聯共同研發「數字身份鏈」,以公民身份號碼為根,基於密碼學演算法簽發給中國公民。投入運行以來,eID 數字身份體系已服務 1 億張 eID 的全生命周期管理,有效緩解了個人身份信息被冒用濫用和隱私泄露的問題。
Odaily星球日報整理的在網信辦備案的5個身份鏈項目
區塊鏈技術天然具有金融屬性
支付結算方面,在區塊鏈分布式賬本體系下,市場多個參與者共同維護並實時同步一份「總賬」,短短幾分鍾內就可以完成現在兩三天才能完成的支付、清算、結算任務,降低了跨行跨境交易的復雜性和成本。同時,區塊鏈的底層加密技術保證了參與者無法篡改賬本,確保交易記錄透明安全,監管部門方便地追蹤鏈上交易,快速定位高風險資金流向。
證券發行交易方面,傳統股票發行流程長、成本高、環節復雜,區塊鏈技術能夠弱化承銷機構作用,幫助各方建立快速准確的信息交互共享通道,發行人通過智能合約自行辦理發行,監管部門統一審查核對,投資者也可以繞過中介機構進行直接操作。
數字票據和供應鏈金融方面,區塊鏈技術可以有效解決中小企業融資難問題。目前的供應鏈金融很難惠及產業鏈上游的中小企業,因為他們跟核心企業往往沒有直接貿易往來,金融機構難以評估其信用資質。基於區塊鏈技術,我們可以建立一種聯盟鏈網路,涵蓋核心企業、上下游供應商、金融機構等,核心企業發放應收賬款憑證給其供應商,票據數字化上鏈後可在供應商之間流轉,每一級供應商可憑數字票據證明實現對應額度的融資。
舉個例子。
由工行、郵儲銀行、11家央企等聯合發起的中企雲鏈,自2017年成立至今,已覆蓋4.8萬企業,鏈上確權金額達到1000億元,保理融資570億元,累計交易達3000億元。金融機構收到貸款申請後,可在鏈上驗證合同的真實性、合同有無多次驗證(多頭借貸);智能合約自動清結算,降本增效;同時,核心企業的應付賬款可擁有對應憑證,並由一級供應商進行拆分,交至同在鏈上的二、三??級供應商,助其融資;而核心企業也可藉此了解全鏈條的運轉是否正常,免除緊急兌付壓力。
區塊鏈技術將大大優化現有的大數據使用,在數據流通和共享上發揮巨大作用
前面提到的是我們相對熟悉的領域。隨著更多新技術的發展,區塊鏈或許都可以與之結合,在意想不到的交叉領域和現在還無法預料的新場景下發揮作用。
未來互聯網、人工智慧、物聯網都將產生海量數據,現有中心化數據存儲(計算模式)將面臨巨大挑戰,基於區塊鏈技術的邊緣存儲(計算)有望成為未來解決方案。再者,區塊鏈對數據的不可篡改和可追溯機制保證了數據的真實性和高質量,這成為大數據、深度學習、人工智慧等一切數據使用的基礎。
最後,區塊鏈可以在保護數據隱私的前提下實現多方協作的數據計算,有望解決「數據壟斷」和「數據孤島」問題,實現數據流通價值。
針對當前的區塊鏈發展階段,為了滿足一般商業用戶區塊鏈開發和使用需求,眾多傳統雲服務商開始部署自己的BaaS(「區塊鏈即服務」)解決方案。區塊鏈與雲計算的結合將有效降低企業區塊鏈部署成本,推動區塊鏈使用場景落地。未來區塊鏈技術還會在慈善公益、保險、能源、物流、物聯網等諸多領域發揮重要作用。
在這場從傳統技術到區塊鏈的試驗過程中,我們發現,當某些場景對可追溯、防篡改、去中心的需求更強,又對區塊鏈的弱項(比如性能),要求並不高,這樣的領域就蠻適合結合區塊鏈。
同時,區塊鏈在演進的過程中,也從人人皆可訪問、高度去中心化的公有鏈,發展出了設有不同許可權、由多個中心維護的聯盟鏈,一定程度上平衡了兩種體系的優缺點。
聯盟鏈的典型案例有:微眾銀行牽頭金鏈盟開源工作組共同研發的FISCO BCOS、IBM主要貢獻的Fabric、以及螞蟻區塊鏈主導的螞蟻聯盟鏈等等。
這些去信任的系統代表了更安全的數據認證和存儲機制,其中的數據是被有效認證的和被保護的。企業或個人可以以數字方式交換或簽訂合同,其中這些合同嵌入在代碼中,並存儲在透明的、共享的資料庫中,在這些資料庫中,它們不會被刪除、篡改和修訂。
大膽預測,未來世界的合同、審核、任務、支付都將被具有唯一性和安全性的簽名數字化,數字簽名將被永久地識別、認證、法律化和存儲,並且無法篡改。不需要中介方來為自己的每一筆交易做擔保了,在不了解對方基本信息的情況下就可以進行交易。在提高信息安全性的同時,有效降低交易成本,提高交易效率。
總的來講,相比於兩年前,區塊鏈的落地已有不少進展。
有不少改進是在系統底層,用戶沒法直接看出用了區塊鏈,實已受惠於它;也有部分使用仍處試點,用戶還未能體驗。未來,區塊鏈有望得到大規模使用,成為互聯網基礎設施之一。
希望看到這里的你,已經大致了解了什麼是區塊鏈,以及區塊鏈能做什麼。
相關問答:區塊鏈是什麼
區塊鏈其實就相當於一個去中介化的資料庫,是由一串數據塊組成的。它的每一個數據塊當中都包含了一次比特幣網路交易的信息,而這些都是用於驗證其信息的有效性和生成下一個區塊的。
狹義的來講,區塊鏈是就是一種按照時間順序來將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。
而從廣義來講,區塊鏈其實是一種分布式基礎架構與計算方式,它是用於保證數據傳輸和訪問的安全的。
區塊鏈的基礎架構:
區塊鏈是由數據層、網路層、共識層、激勵層、合約層和使用層這六個基礎架構組成的。
㈥ 區塊鏈游戲如何實現上鏈加速技術原理是什麼
區塊鏈消息,比特幣之於區塊鏈如同電子郵件之於互聯網。眾所周知,電子郵件在人類信息傳播和交流史上首次實現了及時、免費、可驗證地把數據發送給世界上其他任何人這一功能,發送者和接收者雙方都能夠保存電子郵件中發送的數據副本。然而,雙方保留的電子郵件數據副本也成為在線價值轉移的固有缺陷,因為雙方都擁有其價值。因此,必須確保價值不被雙重支付授信的第三方機構存在,例如,銀行、證券交易所、清算中心或公證機構。而比特幣作為互聯網協議,交易雙方可以即時、安全地相互轉移價值,而不需要授信第三方等中介組織的存在,從而減少了交易成本並提高了交易效率。小編現在為大家整理區塊鏈技術原理示意圖,以及相關技術原理。
從字面上看,區塊鏈是由一連串使用密碼學方法產生的數據塊組成的分布式賬簿系統,每個數據塊都包含大量的交易信息,用於驗證其信息的有效性並生成下一個區塊。這些區塊按生成順序前後排列,同時,每個區塊都是一個節點。
區塊鏈的顯著特點是沒有作為中央伺服器的第三方監管,區塊中的交易信息不能被更改。區塊中包含的信息可以是金融交易,也可以是其它任何數字交易,包括文檔。而長期以來支配人類社會商業世界的互聯網商業模式,其成功依賴於作為處理和調解電子交易的授信第三方金融機構,授信第三方的作用是驗證、保護並保存交易記錄。
盡管如此,欺詐性在線交易仍大量存在,需要授信第三方居間調解,從而導致較高的交易成本。而基於區塊鏈技術的比特幣使用加密證明,而非通過授信第三方,使願意交易的各方均可以通過互聯網實現在線交易。
每一次交易都可通過數字簽名進行保護,並發送至使用發送者的「私鑰」進行數字簽名的接收者的「公鑰」。比特幣,即加密貨幣的所有者需要證明其「私鑰」的所有權才能在線消費、交易。接收數字貨幣的一方使用發送者的「公鑰」在交易上驗證數字簽名,即,對方的「私鑰」所有權。
每一項交易都被廣播到比特幣網路中的每個節點,並在驗證後記錄在公共賬本中。而且在每一項交易被記錄在公共賬本前,都需要對其進行有效性驗證,因此,驗證節點需要在記錄每一項交易前確保兩件事情:即,
(1)消費者擁有對其加密電子貨幣的簽名認證;
(2)消費者賬戶中有充足的加密電子貨幣。
圖1展示了基於區塊鏈技術的交易過程和原理。
希望這個回答對你有幫助
㈦ 剛剛了解,誰能告訴我區塊鏈是什麼通俗解釋一下區塊鏈技術的方法
大家共同記賬的方式,也被稱為「分布式」或「去中心化」,因為人人都記賬,且賬本的准確性由程式演算法決定,而非某個權威機構。
這就是區塊鏈,核心講完了,區塊鏈就這么簡單,一個共同記賬的賬本
區塊鏈技術六大核心演算法:
區塊鏈核心演算法一:拜占庭協定
拜占庭的故事大概是這么說的:拜占庭帝國擁有巨大的財富,周圍10個鄰邦垂誕已久,但拜占庭高牆聳立,固若金湯,沒有一個單獨的鄰邦能夠成功入侵。任何單個鄰邦入侵的都會失敗,同時也有可能自身被其他9個鄰邦入侵。拜占庭帝國防禦能力如此之強,至少要有十個鄰邦中的一半以上同時進攻,才有可能攻破。然而,如果其中的一個或者幾個鄰邦本身答應好一起進攻,但實際過程出現背叛,那麼入侵者可能都會被殲滅。於是每一方都小心行事,不敢輕易相信鄰國。這就是拜占庭將軍問題。
區塊鏈核心演算法二:非對稱加密技術
在上述拜占庭協定中,如果10個將軍中的幾個同時發起消息,勢必會造成系統的混亂,造成各說各的攻擊時間方案,行動難以一致。誰都可以發起進攻的信息,但由誰來發出呢?其實這只要加入一個成本就可以了,即:一段時間內只有一個節點可以傳播信息。當某個節點發出統一進攻的消息後,各個節點收到發起者的消息必須簽名蓋章,確認各自的身份。
區塊鏈核心演算法三:容錯問題
我們假設在此網路中,消息可能會丟失、損壞、延遲、重復發送,並且接受的順序與發送的順序不一致。此外,節點的行為可以是任意的:可以隨時加入、退出網路,可以丟棄消息、偽造消息、停止工作等,還可能發生各種人為或非人為的故障。我們的演算法對由共識節點組成的共識系統,提供的容錯能力,這種容錯能力同時包含安全性和可用性,並適用於任何網路環境。
區塊鏈核心演算法四:Paxos 演算法(一致性演算法)
Paxos演算法解決的問題是一個分布式系統如何就某個值(決議)達成一致。一個典型的場景是,在一個分布式資料庫系統中,如果各節點的初始狀態一致,每個節點都執行相同的操作序列,那麼他們最後能得到一個一致的狀態。為保證每個節點執行相同的命令序列,需要在每一條指令上執行一個「一致性演算法」以保證每個節點看到的指令一致。一個通用的一致性演算法可以應用在許多場景中,是分布式計算中的重要問題。 節點通信存在兩種模型:共享內存和消息傳遞。Paxos演算法就是一種基於消息傳遞模型的一致性演算法。
區塊鏈核心演算法五:共識機制
區塊鏈共識演算法主要是工作量證明和權益證明。拿比特幣來說,其實從技術角度來看可以把PoW看成重復使用的Hashcash,生成工作量證明在概率上來說是一個隨機的過程。開采新的機密貨幣,生成區塊時,必須得到所有參與者的同意,那礦工必須得到區塊中所有數據的PoW工作證明。與此同時礦工還要時時觀察調整這項工作的難度,因為對網路要求是平均每10分鍾生成一個區塊。
區塊鏈核心演算法六:分布式存儲是一種數據存儲技術,通過網路使用每台機器上的磁碟空間,並將這些分散的存儲資源構成一個虛擬的存儲設備,數據分散的存儲在網路中的各個角落。所以,分布式存儲技術並不是每台電腦都存放完整的數據,而是把數據切割後存放在不同的電腦里。就像存放100個雞蛋,不是放在同一個籃子里,而是分開放在不同的地方,加起來的總和是100個。想了解更多可以多利用網路搜索,網路搜索結果-小知識
㈧ 區塊鏈原理
區塊鏈是一種技術,但它不是一種單一的技術,而是由多種技術整合的結果,包括密碼學、數學、經濟學、網路科學等。你可以把它看做是一個分布式共享記賬技術,也可以看做是一個資料庫,只不過這個資料庫是由在這個鏈上的所有節點共同維護,每個節點都有一份賬本,因為所有節點的賬本一致,不同節點之間可以互相信任,對數據沒有疑問,所以大家都說區塊鏈從技術上實現了信任。詳細的專業技術可以咨詢一些專業的技術公司,例:金博科技,專注開發區塊鏈相關產品,專業研發團隊和完善的售後服務,可以電話咨詢。