區塊鏈採用對稱加密
㈠ 什麼是區塊鏈加密演算法
區塊鏈加密演算法(EncryptionAlgorithm)
非對稱加密演算法是一個函數,通過使用一個加密鑰匙,將原來的明文文件或數據轉化成一串不可讀的密文代碼。加密流程是不可逆的,只有持有對應的解密鑰匙才能將該加密信息解密成可閱讀的明文。加密使得私密數據可以在低風險的情況下,通過公共網路進行傳輸,並保護數據不被第三方竊取、閱讀。
區塊鏈技術的核心優勢是去中心化,能夠通過運用數據加密、時間戳、分布式共識和經濟激勵等手段,在節點無需互相信任的分布式系統中實現基於去中心化信用的點對點交易、協調與協作,從而為解決中心化機構普遍存在的高成本、低效率和數據存儲不安全等問題提供了解決方案。
區塊鏈的應用領域有數字貨幣、通證、金融、防偽溯源、隱私保護、供應鏈、娛樂等等,區塊鏈、比特幣的火爆,不少相關的top域名都被注冊,對域名行業產生了比較大的影響。
㈡ 區塊鏈技術中的哈希演算法是什麼
1.1. 簡介
計算機行業從業者對哈希這個詞應該非常熟悉,哈希能夠實現數據從一個維度向另一個維度的映射,通常使用哈希函數實現這種映射。通常業界使用y = hash(x)的方式進行表示,該哈希函數實現對x進行運算計算出一個哈希值y。
區塊鏈中哈希函數特性:
函數參數為string類型;
固定大小輸出;
計算高效;
collision-free 即沖突概率小:x != y => hash(x) != hash(y)
隱藏原始信息:例如區塊鏈中各個節點之間對交易的驗證只需要驗證交易的信息熵,而不需要對原始信息進行比對,節點間不需要傳輸交易的原始數據只傳輸交易的哈希即可,常見演算法有SHA系列和MD5等演算法
1.2. 哈希的用法
哈希在區塊鏈中用處廣泛,其一我們稱之為哈希指針(Hash Pointer)
哈希指針是指該變數的值是通過實際數據計算出來的且指向實際的數據所在位置,即其既可以表示實際數據內容又可以表示實際數據的存儲位置。下圖為Hash Pointer的示意圖

㈢ 區塊鏈 source是什麼意思都明白嗎
簡要的說,區塊鏈可以這樣定義:
1,區塊鏈是一個放在非安全環境中的分布式資料庫(系統)。
2,區塊鏈採用密碼學的方法來保證已有數據不可能被篡改。
3,區塊鏈採用共識演算法來對於新增數據達成共識。
具有以上三個性質的系統,就是區塊鏈。
1,區塊鏈是一個放在非安全環境中的分布式資料庫(系統)。
這里的要點有兩個:(1)分布式,(2)非安全環境。首先,這是一個分布式的,去中心化的系統。所以,有一個中心伺服器或者節點的,不是區塊鏈。節點都是安全的,無惡意的,那這不是區塊鏈。同理,從應用的角度講,如果你的應用必須要使用中心節點(例如要用超級計算機做深度學習)或者沒必要考慮節點不安全的情況(例如某個安全的工廠里的感測器),那麼並不需要考慮區塊鏈技術。
2,區塊鏈採用密碼學的方法來保證已有數據不可能被篡改。
這個部分的兩個核心要點是:(1)密碼學哈希函數,(2)非對稱加密。密碼學哈希函數,主要用於驗證信息完整性——在一個信息後面放上這個信息的哈希值,這個值很小。例如256bit,而且計算方便。收到信息之後收信人再算一遍哈希值,對比兩者就知道這條信息是否被篡改過了。如果被篡改過,哪怕只有一bit,整個哈希值也會截然不同。而根據哈希函數的性質,沒有人能夠偽造出另一個消息具有同樣的哈希值,也就是說篡改過的數據完全不可能通過哈希校驗。
非對稱加密:這很好理解——對稱加密就是有個密鑰,可以理解成保險箱鑰匙,你把消息加密變成密文,沒有人能看懂這是什麼,然後同一把鑰匙解密成原來的消息。非對稱加密就是有兩把鑰匙,一把叫公鑰,一把叫私鑰,用其中一把加密的話,只能用另一把解密,反之亦然。另一個重要的性質是,給你密文,明文和其中一把鑰匙,你還是解不出來另一把鑰匙是什麼。
3,區塊鏈採用共識演算法來對於新增數據達成共識。共識演算法的目的,就是讓所有節點對於新增區塊達成共識,也就是說,所有人都要認可新增的區塊。
㈣ 區塊鏈特性
區塊鏈的特性:
1、匿名性/ Anonymous
由於區塊鏈各節點之間的數據交換遵循固定且預知的演算法,因此區塊鏈網路是無須信任的,可以基於地址而非個人身份進行數據交換。
2、自治性/ Autonomous
區塊鏈採用基於協商一致的機制,使整個系統中的所有節點能在去信任的環境自由安全地交換數據、記錄數據、更新數據,任何人為的干預都不起作用。
3、開放性/ Openness
區塊鏈系統是開放的,任何節點都能夠擁有全網的總賬本,除了數據直接相關各方的私有信息通過非對稱加密技術被加密外,區塊鏈的數據對所有節點公開,因此整個系統信息高度透明。
4、可編程/ Programmable
分布式賬本的數字性質意味著區塊鏈交易可以關聯到計算邏輯,並且本質上是可編程的。因此,用戶可以設置自動觸發節點之間交易的演算法和規則。
5、可追溯/ Traceability
區塊鏈通過區塊數據結構存儲了創世區塊後的所有歷史數據,區塊鏈上的任意一條數據皆可通過鏈式結構追溯其本源。
6、不可篡改/ Tamper Proof
區塊鏈的信息通過共識並添加至區塊鏈後,就被所有節點共同記錄,並通過密碼學保證前後互相關聯,篡改的難度與成本非常高。
7、集體維護/ Collectively Maintain
區塊鏈系統是由其中所有具有維護功能的節點共同維護,所有節點都可以通過公開的介面查詢區塊鏈數據和開發相關應用。
8、無需許可/ Permissionless
無需許可表示所有節點都可以請求將任何交易添加到區塊鏈中,但只有在所有用戶都認為合法的情況下才可進行交易。
㈤ 區塊鏈使用安全如何來保證呢
區塊鏈本身解決的就是陌生人之間大規模協作問題,即陌生人在不需要彼此信任的情況下就可以相互協作。那麼如何保證陌生人之間的信任來實現彼此的共識機制呢?中心化的系統利用的是可信的第三方背書,比如銀行,銀行在老百姓看來是可靠的值得信任的機構,老百姓可以信賴銀行,由銀行解決現實中的糾紛問題。但是,去中心化的區塊鏈是如何保證信任的呢?
實際上,區塊鏈是利用現代密碼學的基礎原理來確保其安全機制的。密碼學和安全領域所涉及的知識體系十分繁雜,我這里只介紹與區塊鏈相關的密碼學基礎知識,包括Hash演算法、加密演算法、信息摘要和數字簽名、零知識證明、量子密碼學等。您可以通過這節課來了解運用密碼學技術下的區塊鏈如何保證其機密性、完整性、認證性和不可抵賴性。
基礎課程第七課 區塊鏈安全基礎知識
一、哈希演算法(Hash演算法)
哈希函數(Hash),又稱為散列函數。哈希函數:Hash(原始信息) = 摘要信息,哈希函數能將任意長度的二進制明文串映射為較短的(一般是固定長度的)二進制串(Hash值)。
一個好的哈希演算法具備以下4個特點:
1、 一一對應:同樣的明文輸入和哈希演算法,總能得到相同的摘要信息輸出。
2、 輸入敏感:明文輸入哪怕發生任何最微小的變化,新產生的摘要信息都會發生較大變化,與原來的輸出差異巨大。
3、 易於驗證:明文輸入和哈希演算法都是公開的,任何人都可以自行計算,輸出的哈希值是否正確。
4、 不可逆:如果只有輸出的哈希值,由哈希演算法是絕對無法反推出明文的。
5、 沖突避免:很難找到兩段內容不同的明文,而它們的Hash值一致(發生碰撞)。
舉例說明:
Hash(張三借給李四10萬,借期6個月) = 123456789012
賬本上記錄了123456789012這樣一條記錄。
可以看出哈希函數有4個作用:
簡化信息
很好理解,哈希後的信息變短了。
標識信息
可以使用123456789012來標識原始信息,摘要信息也稱為原始信息的id。
隱匿信息
賬本是123456789012這樣一條記錄,原始信息被隱匿。
驗證信息
假如李四在還款時欺騙說,張三隻借給李四5萬,雙方可以用哈希取值後與之前記錄的哈希值123456789012來驗證原始信息
Hash(張三借給李四5萬,借期6個月)=987654321098
987654321098與123456789012完全不同,則證明李四說謊了,則成功的保證了信息的不可篡改性。
常見的Hash演算法包括MD4、MD5、SHA系列演算法,現在主流領域使用的基本都是SHA系列演算法。SHA(Secure Hash Algorithm)並非一個演算法,而是一組hash演算法。最初是SHA-1系列,現在主流應用的是SHA-224、SHA-256、SHA-384、SHA-512演算法(通稱SHA-2),最近也提出了SHA-3相關演算法,如以太坊所使用的KECCAK-256就是屬於這種演算法。
MD5是一個非常經典的Hash演算法,不過可惜的是它和SHA-1演算法都已經被破解,被業內認為其安全性不足以應用於商業場景,一般推薦至少是SHA2-256或者更安全的演算法。
哈希演算法在區塊鏈中得到廣泛使用,例如區塊中,後一個區塊均會包含前一個區塊的哈希值,並且以後一個區塊的內容+前一個區塊的哈希值共同計算後一個區塊的哈希值,保證了鏈的連續性和不可篡改性。
二、加解密演算法
加解密演算法是密碼學的核心技術,從設計理念上可以分為兩大基礎類型:對稱加密演算法與非對稱加密演算法。根據加解密過程中所使用的密鑰是否相同來加以區分,兩種模式適用於不同的需求,恰好形成互補關系,有時也可以組合使用,形成混合加密機制。
對稱加密演算法(symmetric cryptography,又稱公共密鑰加密,common-key cryptography),加解密的密鑰都是相同的,其優勢是計算效率高,加密強度高;其缺點是需要提前共享密鑰,容易泄露丟失密鑰。常見的演算法有DES、3DES、AES等。
非對稱加密演算法(asymmetric cryptography,又稱公鑰加密,public-key cryptography),與加解密的密鑰是不同的,其優勢是無需提前共享密鑰;其缺點在於計算效率低,只能加密篇幅較短的內容。常見的演算法有RSA、SM2、ElGamal和橢圓曲線系列演算法等。 對稱加密演算法,適用於大量數據的加解密過程;不能用於簽名場景:並且往往需要提前分發好密鑰。非對稱加密演算法一般適用於簽名場景或密鑰協商,但是不適於大量數據的加解密。
三、信息摘要和數字簽名
顧名思義,信息摘要是對信息內容進行Hash運算,獲取唯一的摘要值來替代原始完整的信息內容。信息摘要是Hash演算法最重要的一個用途。利用Hash函數的抗碰撞性特點,信息摘要可以解決內容未被篡改過的問題。
數字簽名與在紙質合同上簽名確認合同內容和證明身份類似,數字簽名基於非對稱加密,既可以用於證明某數字內容的完整性,同時又可以確認來源(或不可抵賴)。
我們對數字簽名有兩個特性要求,使其與我們對手寫簽名的預期一致。第一,只有你自己可以製作本人的簽名,但是任何看到它的人都可以驗證其有效性;第二,我們希望簽名只與某一特定文件有關,而不支持其他文件。這些都可以通過我們上面的非對稱加密演算法來實現數字簽名。
在實踐中,我們一般都是對信息的哈希值進行簽名,而不是對信息本身進行簽名,這是由非對稱加密演算法的效率所決定的。相對應於區塊鏈中,則是對哈希指針進行簽名,如果用這種方式,前面的是整個結構,而非僅僅哈希指針本身。
四 、零知識證明(Zero Knowledge proof)
零知識證明是指證明者在不向驗證者提供任何額外信息的前提下,使驗證者相信某個論斷是正確的。
零知識證明一般滿足三個條件:
1、 完整性(Complteness):真實的證明可以讓驗證者成功驗證;
2、 可靠性(Soundness):虛假的證明無法讓驗證者通過驗證;
3、 零知識(Zero-Knowledge):如果得到證明,無法從證明過程中獲知證明信息之外的任何信息。
五、量子密碼學(Quantum cryptography)
隨著量子計算和量子通信的研究受到越來越多的關注,未來量子密碼學將對密碼學信息安全產生巨大沖擊。
量子計算的核心原理就是利用量子比特可以同時處於多個相干疊加態,理論上可以通過少量量子比特來表達大量信息,同時進行處理,大大提高計算速度。
這樣的話,目前的大量加密演算法,從理論上來說都是不可靠的,是可被破解的,那麼使得加密演算法不得不升級換代,否則就會被量子計算所攻破。
眾所周知,量子計算現在還僅停留在理論階段,距離大規模商用還有較遠的距離。不過新一代的加密演算法,都要考慮到這種情況存在的可能性。
㈥ 區塊鏈中點對點分布式技術是指什麼
「一種基於網路的計算機處理技術,與集中式相對應。由於個人計算機的性能得到極大的提高及其使用的普及,使處理能力分布到網路上的所有計算機成為可能。分布式計算是和集中式計算相對立的概念,分布式計算的數據可以分布在很大區域。」
㈦ 區塊鏈技術包含的幾種基礎技術是什麼
區塊鏈1.0時代即是數字貨幣的時代,技術基礎為:
1. 以區塊為單位的連庄數據塊結構
2. 全網共享賬本
3. 非對稱加密
4. 源代碼開源
區塊鏈2.0時代技術基礎:
1. 智能合約;是區塊鏈系統中的應用,是以編碼的可自動運行的的業務邏輯,通常有自己代幣和專用開發語言;
2. DAPP:包含用戶接賣弄的應用,包括但不限於各種加密貨幣,如以太坊錢包;
3. 虛擬機:用於執行智能合約編譯後的代碼,虛擬機是圖靈完備的。
隨著區塊鏈技術的應用和不斷深入,區塊鏈3.0時代已經來臨,從各行各業的運轉背後都可以看到區塊鏈協作運轉的模式,因此區塊鏈必將廣泛而深刻的改變人類的生活方式,因此整個生活服務將進入區塊鏈時代。在這個互聯網發展過程當中,區塊鏈+實體行業、區塊鏈電商、區塊鏈社群運營都可以運用到區塊鏈技術。
當然3.0伴隨著現代密碼學發展才產生的,現今應用的密碼學是20年前的的密碼學成果,因此要將區塊鏈技術應用於更多參與場景,特別是應用於互聯網經濟等方面,現有的加密技術是否滿足需求還需要更多的驗證,需要更深入的整合密碼學前沿技術,不斷創新。
㈧ 區塊鏈技術的機密性是如何實現的
因為區塊鏈技術對實現智能合約存在天然的優勢。
比特幣、瑞泰幣、萊特幣、以太坊等數字加密貨幣都使用了區塊鏈技術。
區塊鏈(Blockchain)是比特幣的一個重要概念,本質上是一個去中心化的資料庫,同時作為比特幣的底層技術。區塊鏈是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。
㈨ 區塊鏈的基本要素包括
1-包含一個分布式資料庫
2-分布式資料庫是區塊鏈的物理載體,區塊鏈是交易的邏輯載體,所有核心節點都應包含該條區塊鏈數據的全副本
3-區塊鏈按時間序列化區塊,且區塊鏈是整個網路交易數據的唯一主體
4-區塊鏈只對添加有效,對其他操作無效
5-基於非對稱加密的公私鑰驗證
6-記賬節點要求拜占庭將軍問題可解/避免
7-共識過程(consensus progress)是演化穩定的,即面對一定量的不同節點的矛盾數據不會崩潰。
8-共識過程能夠解決double-spending問題。
區塊鏈的五個特點:
去中心化
由於使用分布式核算和存儲,不存在中心化的硬體或管理機構,任意節點的權利和義務都是均等的,系統中的數據塊由整個系統中具有維護功能的節點來共同維護。
得益於區塊鏈的去中心化特徵,比特幣也擁有去中心化的特徵 [6] 。
開放性
系統是開放的,除了交易各方的私有信息被加密外,區塊鏈的數據對所有人公開,任何人都可以通過公開的介面查詢區塊鏈數據和開發相關應用,因此整個系統信息高度透明。
自治性
區塊鏈採用基於協商一致的規范和協議(比如一套公開透明的演算法)使得整個系統中的所有節點能夠在去信任的環境自由安全的交換數據,使得對「人」的信任改成了對機器的信任,任何人為的干預不起作用。
信息不可篡改
一旦信息經過驗證並添加至區塊鏈,就會永久的存儲起來,除非能夠同時控制住系統中超過51%的節點,否則單個節點上對資料庫的修改是無效的,因此區塊鏈的數據穩定性和可靠性極高。
匿名性
由於節點之間的交換遵循固定的演算法,其數據交互是無需信任的(區塊鏈中的程序規則會自行判斷活動是否有效),因此交易對手無須通過公開身份的方式讓對方自己產生信任,對信用的累積非常有幫助。
㈩ 區塊鏈的六層模型是什麼
區塊鏈總共有六個層級結構,這六個層級結構自下而上是:數據層、網路層、共識層、激勵層、合約層、應用層。
一、數據層
數據層是區塊鏈六個層級結構裡面的最底層。數據層我們可以理解成資料庫,只不過對於區塊鏈來講,這個資料庫是不可篡改的、分布式的資料庫,也就是我們所謂的「分布式賬本」。
在數據層上,也就是在這個「分布式賬本」上,存放著區塊鏈上的數據信息,封裝著區塊的塊鏈式結構、非對稱加密技術、哈希演算法等技術手段,來保證數據在全網公開的情況下的安全性問題。具體的做法是:
在區塊鏈網路上,節點採用共識演算法來維持數據層(也就是這個分布式資料庫)的數據的一致性,採用密碼學中的非對稱加密和哈希演算法,來確保這個分布式資料庫的不可篡改和可追溯。
這就構成了區塊鏈技術中最底層的數據結構。但是,光有分布式資料庫還不夠,還需要讓資料庫裡面的數據信息可以共享交流,下面我們介紹數據層的上一層——網路層。
二、網路層
區塊鏈的網路系統,本質上是一個P2P(點對點)網路,點對點意味著不需要一個中間環節或者中心化伺服器來操控這個系統,網路中的所有資源和服務都是分配在各個節點手中的,信息的傳輸也是兩個節點之間直接往來就可以了。不過,需要注意的是,P2P
(點對點)並不是中本聰發明的,區塊鏈只是融合了這一技術而已。
所以,區塊鏈的網路層實際上就是一個特別強大的點對點網路系統。在這個系統上,每一個節點既可以生產信息,也可以接收信息,就好比發郵件,你既可以編寫自己的郵件,也可以收到別人給你發送的郵件。
在區塊鏈網路上,節點之間需要共同維護這條區塊鏈系統,每當一個節點創造出新的區塊後,他需要以廣播的形式通知其他節點,其他節點收到信息後對該區塊進行驗證,然後在該區塊的基礎上去創建新的區塊。這樣一來,全網便可以共同維護更新區塊鏈系統這個總賬本了。
但是,全網要依據什麼規則來維護更新區塊鏈系統這個總賬本呢,這就涉及到了所謂的「法律法規」(規則),也就是我們接下來要介紹的:共識層。
三、共識層
在區塊鏈的世界裡,共識,簡單來講就是全網要依據一個統一的、大家一致同意的規則來維護更新區塊鏈系統這個總賬本,類似於更新數據的規則。讓高度分散的節點在去中心化的區塊鏈網路中高效達成共識,是區塊鏈的核心技術之一,也是區塊鏈社區的治理機制。
目前主流的共識機制演算法有:比特幣的工作量證明(POW)、以太坊的權益證明
(POS)、EOS的委託權益證明(DPOS)等等。
我們現在介紹了數據層、網路層、共識層,這三層保證了區塊鏈上有數據、有網路,有在網路上更新數據的規則,但是天下沒有免費的午餐,如何讓節點們能夠積極踴躍地參與區塊鏈系統維護呢,這里就涉及到了激勵,也就是我們下面要介紹的:激勵層。
四、激勵層
激勵層就是所謂的挖礦機制,挖礦機制其實可以理解成激勵機制:你為區塊鏈系統做了多少貢獻,你就可以得到多少獎勵。用這種激勵機制,能夠鼓勵全網節點參與區塊鏈上的數據記錄與維護工作。
挖礦機制和共識機制其實是一個道理,共識機制我們可以理解為公司的總規章制度,而挖礦機制可以理解成,在這個總的規章制度之中,你做好了什麼能夠得到什麼獎勵,這種獎勵規則。
就好比比特幣的共識機制PoW,它的規定是多勞多得,誰能夠第一個找到正確哈希值誰就可以得到一定數量的比特幣獎勵;
而以太坊的PoS則規定了誰持幣年齡越久,誰能得到獎勵的概率就越大。
需要注意的是,激勵層一般只有公有鏈才具備,因為公有鏈必須依賴全網節點共同維護數據,所以必須有一套這樣的激勵機制,才能激勵全網節點參與區塊鏈系統的建設維護,進而保證區塊鏈系統的安全性和可靠性。
區塊鏈安全可靠了,還不夠智能對不對,下面我們將要介紹的合約層,可以讓區塊鏈系統變得更加智能。
五.合約層
合約層主要包括各種腳本、代碼、演算法機制及智能合約,是區塊鏈可編程的基礎。我們說的「智能合約」便屬於合約層這個層級上。
如果說比特幣系統不夠智能,那麼以太坊提出的「智能合約」則能夠滿足許多應用場景。合約層的原理主要是將代碼嵌入到區塊鏈系統上,用這種方式來實現能夠自定義的智能合約。這樣一來,在區塊鏈系統上,一旦觸發了智能合約的條款,系統就能夠自動執行命令。
六、應用層
最後就是應用層。應用層很簡單,顧名思義,就是區塊鏈的各種應用場景和案例,我們現在說的「區塊鏈+」就是所謂的應用層。目前已經落地的區塊鏈應用主要是搭建在
ETH、EOS等公鏈上的各類區塊鏈應用,博彩、游戲類的應用比較多,真正實用的應用還沒有出現。