組會(huì)ppt文檔內(nèi)容——密碼學(xué)發(fā)展+密碼朋克+區(qū)塊鏈分類(lèi)
【筆記草稿,很混亂】
1.區(qū)塊鏈的發(fā)端與源起
1.1.1記賬技術(shù)的更迭

單式記賬:流水式記賬

缺點(diǎn):不方便統(tǒng)計(jì)支出。
例如,想知道在“飲食上”消費(fèi)多少,需要一條條記錄查找,再匯總??梢詥为?dú)加一列“食品”解決問(wèn)題,但是指出的種類(lèi)太多,不切實(shí)際。
復(fù)式記賬:凡事皆賬戶(hù),錢(qián)從一個(gè)賬戶(hù)轉(zhuǎn)移到另一個(gè)賬戶(hù),有增必有減,且增減金額相等。

錢(qián)總是在賬戶(hù)之間跑來(lái)跑去。比如買(mǎi)巧克力就是有 30 元錢(qián)從超市卡跑到了食品,買(mǎi)香皂就是 5 元錢(qián)從現(xiàn)金跑到了生活用品。
優(yōu)點(diǎn):一筆交易可以涉及多個(gè)賬戶(hù)的變動(dòng),只要增加和減少的總額為零即可,可以解決合并支付的問(wèn)題。
區(qū)塊鏈技術(shù)也稱(chēng)為分布式記賬技術(shù)?!乱淮挠涃~技術(shù)
區(qū)塊鏈系統(tǒng)可以被視為帶密鑰的分布式和自動(dòng)式記賬賬本,其核心是系統(tǒng)中每個(gè)節(jié)點(diǎn)都有一份一模一樣的賬本,這些賬本記錄了系統(tǒng)所有發(fā)生的交易,并且能自動(dòng)將新的交易數(shù)據(jù)添加到每個(gè)節(jié)點(diǎn)的賬本中。
和復(fù)式記賬方式相比,區(qū)塊鏈賬本是多點(diǎn)同時(shí)記賬,依靠共識(shí)機(jī)制確認(rèn),單個(gè)節(jié)點(diǎn)難以篡改賬本記錄。
分布式記賬優(yōu)勢(shì):
(1)通過(guò)多方記賬的方式,增強(qiáng)數(shù)據(jù)安全性,防止單點(diǎn)故障
(2)減少不同數(shù)據(jù)庫(kù)之間的對(duì)賬工作,提高效率和透明度
?
1.1.2密碼學(xué)的發(fā)展
密碼學(xué)最初是研究如何在敵方存在的情況下進(jìn)行安全通信的一門(mén)科學(xué)。
目的是分析和構(gòu)建協(xié)議,使得通信雙方在按照協(xié)議進(jìn)行通信的過(guò)程中,能夠防止第三方竊取通信內(nèi)容。

塞塔式密碼(滾筒密碼)
把長(zhǎng)條紙螺旋形地斜繞在一個(gè)多棱棒上,將文字沿棒的水平方向從左到右書(shū)寫(xiě),寫(xiě)一個(gè)字旋轉(zhuǎn)一下,寫(xiě)完一行再另起一行從左到右寫(xiě),直到寫(xiě)完。解下來(lái)后,紙條上的文字消息雜亂無(wú)章,這就是密文,但將它繞在另一個(gè)同等尺寸的棒子上后,就能看到原始的消息。

圓盤(pán)密碼:(單表置換的原理)
一個(gè)裝置,由兩個(gè)同心的圓盤(pán)相疊組成,較小的盤(pán)子可在較大的盤(pán)子上轉(zhuǎn)動(dòng)。

一次性密碼本加密技術(shù):用一次就扔,隨機(jī),不可破。
?
“恩尼格瑪”(Enigma ):過(guò)渡到了機(jī)械密碼。
Enigma上一般裝有至少3個(gè)轉(zhuǎn)輪。當(dāng)按動(dòng)鍵盤(pán)上的單鍵時(shí),最右邊的轉(zhuǎn)輪就會(huì)轉(zhuǎn)動(dòng)一次,每轉(zhuǎn)動(dòng)26次就會(huì)發(fā)生進(jìn)位,帶動(dòng)下一個(gè)輪轉(zhuǎn)動(dòng),這猶如鐘表上的指針。每當(dāng)轉(zhuǎn)輪轉(zhuǎn)動(dòng)暫停下來(lái),轉(zhuǎn)輪的觸頭就會(huì)和下一個(gè)轉(zhuǎn)輪的觸點(diǎn)重新接觸,構(gòu)成通路,按動(dòng)單鍵產(chǎn)生的電信號(hào)就會(huì)經(jīng)過(guò)三個(gè)轉(zhuǎn)輪。從最后一個(gè)轉(zhuǎn)輪出來(lái)的電信號(hào)會(huì)經(jīng)過(guò)反射板,反射板會(huì)對(duì)信號(hào)再次進(jìn)行置換,接著反射回去,讓其再次通過(guò)三個(gè)轉(zhuǎn)輪,隨后輸出。
機(jī)械系統(tǒng)這樣運(yùn)行的原因是要產(chǎn)生不同的電流通路,字母的加密由機(jī)器自動(dòng)完成。

由于其巨大的密鑰空間(共有158962555217826360000種字母替換方式),所以你幾乎不用擔(dān)心它被窮舉攻擊攻破。
它的安全性?xún)H僅依賴(lài)于巨大的密鑰空間,它本質(zhì)上只是一個(gè)較為復(fù)雜的替換密碼,與凱撒密碼等替換密碼并沒(méi)有本質(zhì)上的差異。
?
數(shù)據(jù)加密標(biāo)準(zhǔn)(DES):對(duì)稱(chēng)密碼
原理:先將明文分成64bit的分組,首先進(jìn)行初始置換,然后在64bit主密鑰產(chǎn)生的16個(gè)子密鑰控制下進(jìn)行16 輪乘積變換,再進(jìn)行逆置換,得到64位已加密的密文。流程如下:

?DES一共16輪,每一輪進(jìn)行替換與變換,主要步驟:
(1)首先將64位明文塊送入初始置換函數(shù),對(duì)明文進(jìn)行初始置換。
(2)初始置換產(chǎn)生轉(zhuǎn)換塊的兩半,設(shè)為左明文(LPT)和右明文(RPT)。
(3)每個(gè)左明文與右明文經(jīng)過(guò)16輪加密過(guò)程,各有各的密鑰。
(4)最后,將左明文和右明文重新連接起來(lái),對(duì)組成的塊進(jìn)行最終置換。
(5)這個(gè)過(guò)程的結(jié)果得到64位密文。
DES是個(gè)塊加密法,按64位塊長(zhǎng)加密數(shù)據(jù)。

輸入初始種子密鑰為64bit,第8、16、24、32、40、48、56、64為奇偶校驗(yàn)位(保證密鑰中不包含任何錯(cuò)誤),實(shí)際的密鑰長(zhǎng)為56bit。
?
初始置換:
只發(fā)生一次,是在第一輪之前進(jìn)行的,把明文塊的進(jìn)行移位。將64位二進(jìn)制數(shù)按照初始置換表上的順序重新排序組成一個(gè)新的二進(jìn)制數(shù)字。
第一個(gè)格子中是58,意味著將64位二進(jìn)制碼中第58位的值,放到第 一個(gè)格子的位置中。

得到的64位置換文本塊分成兩半,各32位,稱(chēng)為左明文(LPT)、右明文(RPT)。
?
DES的每一輪包括如下圖所示的所有步驟:

?(Key)密鑰交換:最初的64位密鑰通過(guò)放棄每個(gè)第8位而得到的56位密鑰。56位密鑰分成兩半,各為28位,循環(huán)左移(第1、2、9、16輪循環(huán)移動(dòng)一位,其他的移動(dòng)兩位)。相應(yīng)移位后,選擇56位中的48位。
(這里提醒:密鑰每次循環(huán)最后的結(jié)果都是要用的,而明文每次循環(huán)的結(jié)果只是下一次循環(huán)的輸入。而且明文每一輪循環(huán)的用到的密文都不相同,對(duì)應(yīng)著密文每一次循環(huán)輸出的結(jié)果。)
?
擴(kuò)展置換:擴(kuò)展置換將左、右明文的32位擴(kuò)展到48位。同時(shí),也進(jìn)行置換。

XOR 異或運(yùn)算:將輸入的兩個(gè)二進(jìn)制數(shù)字進(jìn)行按位對(duì)比,若兩數(shù)字相同則輸出0,否則輸出1;每一輪用到兩次異或運(yùn)算。
①將擴(kuò)展置換后的48位結(jié)果與第i輪第密鑰ki進(jìn)行XOR(異或)操作。
②將P盒置換后的32位與左明文進(jìn)行XOR(異或)操作。
?
S盒替換:48位輸入塊分成8個(gè)字塊(各有6位),每個(gè)子塊制定一個(gè)S盒(每個(gè)對(duì)應(yīng)一張4行16列的表格)。S盒將6為輸入變成4位輸出。

每個(gè)s-box壓縮的本質(zhì)是什么?取原始數(shù)據(jù)的第一位和最后一位二進(jìn)制數(shù)組成一個(gè)新的二進(jìn)制數(shù),并且將其轉(zhuǎn)化為10進(jìn)制數(shù),這個(gè)數(shù)即為加密數(shù)所在的行數(shù);中間四位二進(jìn)制組成的十進(jìn)制數(shù),即為加密數(shù)所在的列數(shù),根據(jù)行數(shù)和列數(shù)在壓縮表中找到對(duì)應(yīng)的壓縮數(shù),再把該壓縮數(shù)轉(zhuǎn)為二進(jìn)制輸出,完成了6位到4位的壓縮。

P盒置換:按P表指定把一位換成另一位。
最終置換:經(jīng)過(guò)很多輪之后,將 L16 與 R16 交換左右之后,再進(jìn)行一個(gè)?逆初始置換
初始置換和終止置換的表排列是互逆的,也就是說(shuō)對(duì)一個(gè)64位二進(jìn)制數(shù)經(jīng)過(guò)一次初始置換和終止置換,這個(gè)數(shù)就還原了。

5.DES解密
DES加密算法也適用于解密,各個(gè)表的值和操作及其順序是經(jīng)過(guò)精心選擇的,使得這個(gè)算法可逆。加密與解密過(guò)程的唯一差別是密鑰部分倒過(guò)來(lái)了。
?
為什么淘汰DES呢?
1、優(yōu)點(diǎn):簡(jiǎn)單,容易實(shí)現(xiàn),運(yùn)行效率高。
2、缺點(diǎn):容易被暴力破解,密鑰難管理,不好分配(密鑰交換問(wèn)題--如何安全的將密鑰傳輸給解密方),無(wú)簽名認(rèn)證功能。
?
公鑰密碼學(xué)概念:
運(yùn)行條件
1、用同一個(gè)算法進(jìn)行加密和解密,而密鑰有一對(duì),其中一個(gè)用于加密,另一個(gè)用于解密
2、發(fā)送方和接收方各自擁有一對(duì)相互匹配的密鑰中的一個(gè)
安全條件
1、兩個(gè)密鑰中的一個(gè)必須保密
2、如果不掌握其他信息,要想解密密文是不可能或者至少是計(jì)算上不可行的
3、知道所用算法、公鑰以及密文不足以確定對(duì)應(yīng)的私鑰
運(yùn)算速度慢,適合加密少量數(shù)據(jù)。如:用公鑰密碼加密傳送分組密碼的密鑰
?
非對(duì)稱(chēng)的公鑰加密技術(shù)RSA
對(duì)稱(chēng)加密的優(yōu)勢(shì)是:加密速度快。
對(duì)稱(chēng)加密的缺陷是:需提前共享密鑰,容易造成密鑰的泄露,或被第三方暴力破解。被他人盜取密鑰,可以冒充發(fā)送密文或者對(duì)密文解密。
?
非對(duì)稱(chēng):加、解密使用不同的密鑰。
加密:公鑰加密,私鑰解密。任何公鑰持有者都可以將想要發(fā)送給私鑰持有者的信息進(jìn)行加密后發(fā)送,而這個(gè)信息只有私鑰持有者才能解密。
簽名:私鑰加密,公鑰解密。所以任何持有公鑰的人都能解密私鑰加密過(guò)的密文,保證消息來(lái)源的準(zhǔn)確性和不可否認(rèn)性。證明這段密文一定是由私鑰持有者發(fā)布的。
?
RSA算法是第一個(gè)比較完善的公開(kāi)密鑰算法,它既能用于加密,也能用于數(shù)字簽名,只要使用足夠長(zhǎng)的密鑰長(zhǎng)度,經(jīng)過(guò)RSA算法加密后的信息基本上被認(rèn)為是無(wú)法被破解的。
對(duì)極大整數(shù)做因數(shù)分解的難度決定了RSA算法的可靠性。今天只有短的RSA鑰匙才可能被強(qiáng)力方式解破。到目前為止,世界上還沒(méi)有任何可靠的攻擊RSA算法的方式。只要其鑰匙的長(zhǎng)度足夠長(zhǎng),用RSA加密的信息實(shí)際上是不能被解破的。
思想:
比如A寫(xiě)下的是123 (需加密內(nèi)容),計(jì)算出123 * 91 (B的公鑰加密)等于11193,并把結(jié)果的末三位193(加密結(jié)果)告訴B ;
B把193再乘以11 (B的私鑰)等于2123,末三位123(解密結(jié)果)就是A寫(xiě)下的數(shù)字。
因?yàn)?1乘以11等于1001,而任何一個(gè)三位數(shù)乘以1001后,末三位顯然都不變。
同理擴(kuò)大定義域和值域:任意一個(gè)數(shù)乘以400000001后,末8位都不變,而400000001 = 19801 * 20201。
RSA算法使用的是指數(shù)和取模運(yùn)算,本質(zhì)上就是上面這套思想。
?
RSA公鑰私鑰的產(chǎn)生和加解密:
1、隨意選擇兩個(gè)大的質(zhì)數(shù) p和 q,p≠q,N=pq
2、根據(jù)歐拉函數(shù)?φ(n)是小于或等于n的正整數(shù)中與n互質(zhì)的數(shù)的數(shù)目。
求得 r = φ(N) = φ(p)φ(q) = (p-1)(q-1)
3、選擇一個(gè)小于r并與r互質(zhì)的整數(shù)e,求得e關(guān)于r的模反元素d,ed ≡ 1(mod r) ;
4、銷(xiāo)毀p和q,此時(shí)?(N , e)是公鑰,(N, d)為私鑰;
5、加密:c ≡ n^e (mod N),即(c^-1 * n^e)%N = 1
6、解密:n ≡ c^d (mod N),即(n^-1 * c^d)%N = 1
?
?
密碼朋克(cypherpunk)
20 世紀(jì) 90 年代發(fā)展出“密碼朋克”(“Cypherpunk'”)的概念。
密碼朋克從狹義上來(lái)說(shuō)就是一套加密的電子郵件系統(tǒng)。
密碼朋克們預(yù)見(jiàn)性地意識(shí)到,隨著網(wǎng)速的提升,全球?qū)?huì)逐步進(jìn)入網(wǎng)絡(luò)時(shí)代。然而,對(duì)不精通網(wǎng)絡(luò)技術(shù)的普通人來(lái)說(shuō),進(jìn)入網(wǎng)絡(luò)時(shí)代也將導(dǎo)致他們?cè)庥鲭[私泄漏以及其并發(fā)的風(fēng)險(xiǎn)。 這些朋克們經(jīng)過(guò)思考,認(rèn)為必須利用密碼學(xué)技術(shù)來(lái)保證個(gè)人在網(wǎng)絡(luò)上的匿名。通過(guò)掌握強(qiáng)加密技術(shù)并提供給普通網(wǎng)絡(luò)用戶(hù)的方式,建立網(wǎng)絡(luò)匿名交易系統(tǒng)。
?
?
1980年,拜占庭將軍問(wèn)題:(描述分布式系統(tǒng)一致性問(wèn)題)
派出10支軍隊(duì)去包圍敵人。敵人能抵御5支軍隊(duì)的同時(shí)襲擊。這10支軍隊(duì)在分開(kāi)的包圍狀態(tài)下同時(shí)攻擊。除非有至少6支軍隊(duì)(一半以上)同時(shí)襲擊才能攻下敵國(guó)。他們分散在敵國(guó)的四周,依靠通信兵騎馬相互通信來(lái)協(xié)商進(jìn)攻意向及進(jìn)攻時(shí)間。在這種狀態(tài)下,怎么保證有多于6支軍隊(duì)在同一時(shí)間一起發(fā)起進(jìn)攻,從而贏(yíng)取戰(zhàn)斗?
?
拜占庭將軍問(wèn)題中并不考慮通信兵是否會(huì)被截獲或無(wú)法傳達(dá)信息等問(wèn)題,即消息傳遞的信道絕無(wú)問(wèn)題。Lamport已經(jīng)證明了在消息可能丟失的不可靠信道上試圖通過(guò)消息傳遞的方式達(dá)到一致性是不可能的。
問(wèn)題:
①因?yàn)闀r(shí)間差異,多個(gè)將軍發(fā)出不同提議,難以實(shí)現(xiàn)一個(gè)提議收到半數(shù)以上的同意。
②有叛徒發(fā)送前后不一致的進(jìn)攻提議,被稱(chēng)為“拜占庭錯(cuò)誤”。
?
解決辦法:
中本聰在比特幣中創(chuàng)造性的引入了“工作量證明(POW : Proof of Work)”。
通過(guò)工作量證明就增加了發(fā)送信息的成本,降低節(jié)點(diǎn)發(fā)送消息速率,保證在一個(gè)時(shí)間只有一個(gè)節(jié)點(diǎn)(或很少)在進(jìn)行廣播,同時(shí)在廣播時(shí)會(huì)附上自己的簽名。
?
以上就是比特幣網(wǎng)絡(luò)中是單個(gè)區(qū)塊(賬本)達(dá)成共識(shí)的方法(取得一致性)。
?
我們稍微把將軍問(wèn)題改一下:假設(shè)攻下一個(gè)城堡需要多次的進(jìn)攻,每次進(jìn)攻的提議必須基于之前最多次數(shù)的勝利進(jìn)攻下提出的(只有這樣敵方已有損失最大,我方進(jìn)攻勝利的可能性就更大),這樣約定之后,將軍A在收到進(jìn)攻提議時(shí),就會(huì)檢查一下這個(gè)提議是不是基于最多的勝利提出的,如果是的,將軍A就會(huì)把這次提議記下來(lái)。
這就是比特幣網(wǎng)絡(luò)最長(zhǎng)鏈選擇。
?
拜占庭將軍問(wèn)題(Byzantine Generals Problem),把軍中各地軍隊(duì)彼此取得共識(shí)、決定是否出兵的過(guò)程,延伸至運(yùn)算領(lǐng)域,設(shè)法建立具容錯(cuò)性的分散式系統(tǒng),即使部分節(jié)點(diǎn)失效仍可確保系統(tǒng)正常運(yùn)行,可讓多個(gè)基于零信任基礎(chǔ)的節(jié)點(diǎn)達(dá)成共識(shí),并確保資訊傳遞的一致性,而2008年出現(xiàn)的比特幣區(qū)塊鏈便解決了此問(wèn)題。
?
?
?
盲簽名技術(shù)(基于RSA算法):簽名者對(duì)發(fā)送者的消息進(jìn)行簽名,卻不能知道簽名者消息的具體內(nèi)容。
電子現(xiàn)金像真實(shí)現(xiàn)金一樣,用戶(hù)不希望別人知道自己購(gòu)買(mǎi)過(guò)什么樣的商品。為了保護(hù)用戶(hù)購(gòu)買(mǎi)商品、服務(wù)時(shí)的隱私,接收方不應(yīng)獲得支付方的任何身份信息。
盲簽名可以實(shí)現(xiàn)銀行向合法用戶(hù)發(fā)放有效的電子現(xiàn)金,使用戶(hù)可以使用有效的電子現(xiàn)金進(jìn)行交易,銀行本身也無(wú)法通過(guò)電子現(xiàn)金追蹤到該電子現(xiàn)金是屬于哪個(gè)用戶(hù)的。
?
一個(gè)盲簽名方案一般包括四個(gè)過(guò)程:
系統(tǒng)初始化:產(chǎn)生盲簽名方案中的所有系統(tǒng)參數(shù);
密鑰對(duì)生成:產(chǎn)生用戶(hù)的私鑰和公鑰;
?
簽名:用戶(hù)利用簽名算法對(duì)消息簽名,簽名過(guò)程可以公開(kāi)也可以不公開(kāi),但一定包含僅簽名者才擁有的私鑰:
盲化:用戶(hù)將盲化因子注入待簽名的消息
盲簽名:簽名者對(duì)盲化過(guò)的消息進(jìn)行簽名
去盲:用戶(hù)從盲化簽名(對(duì)盲化過(guò)的消息)去除盲化因子,獲得去盲后的簽名(待簽名消息)
驗(yàn)證:驗(yàn)證者利用公開(kāi)的系統(tǒng)參數(shù)、驗(yàn)證方法和簽名者的公鑰對(duì)給定消息的簽名進(jìn)行驗(yàn)證。
?
盲簽是一種特殊類(lèi)型的數(shù)字簽名。一般數(shù)字簽名中,簽名者知道所簽署的消息內(nèi)容。而在盲簽中,簽名者是他人(接收者)發(fā)來(lái)的信息進(jìn)行簽名,接收者首先對(duì)原始信息進(jìn)行盲化,然后發(fā)送給簽名者;簽名者對(duì)盲化后的信息進(jìn)行簽名;接收者可以對(duì)這個(gè)簽名后的數(shù)據(jù)去盲化,最終得到簽名者關(guān)于原始信息的正確簽名。
?
?
1985年,橢圓曲線(xiàn)算法ECC??
RSA的解決分解整數(shù)問(wèn)題需要亞指數(shù)時(shí)間復(fù)雜度的算法,而目前已知計(jì)算橢圓曲線(xiàn)離散對(duì)數(shù)問(wèn)題(ECDLP)的最好方法都需要全指數(shù)時(shí)間復(fù)雜度。這意味著在橢圓曲線(xiàn)系統(tǒng)中我們只需要使用相對(duì)于RSA 短得多的密鑰就可以達(dá)到與其相同的安全強(qiáng)度。

Ecash(電子現(xiàn)金)
電子現(xiàn)金(Ecash)是一種以電子形式存在的現(xiàn)金貨幣,又稱(chēng)為數(shù)字現(xiàn)金。它把現(xiàn)金數(shù)值轉(zhuǎn)換成為一系列的加密序列數(shù),通過(guò)這些序列數(shù)來(lái)表示現(xiàn)實(shí)中各種金額的幣值。
?
優(yōu)點(diǎn):
①匿名性。除了商家以外,沒(méi)有人知道客戶(hù)的身份或交易細(xì)節(jié)。如果客戶(hù)使用了一個(gè)很復(fù)雜的假名系統(tǒng),甚至連商家也不知道客戶(hù)的身份。
②不可跟蹤性。電子現(xiàn)金是以打包和加密的方法為基礎(chǔ)。除了雙方的個(gè)人記錄之外,沒(méi)有任何關(guān)于交易已經(jīng)發(fā)生的記錄。
③節(jié)省交易費(fèi)用和傳輸費(fèi)用。電子現(xiàn)金是利用已有的Internet和用戶(hù)的計(jì)算機(jī),所以消耗比較小,尤其是小額交易更加合算。而普通銀行為了流通貨幣,就需要許多分支機(jī)構(gòu)。通常,現(xiàn)金的傳輸費(fèi)用比較高。
④持有風(fēng)險(xiǎn)小。安全和防偽造。電子現(xiàn)金由于采用安全的加密技術(shù),不容易被復(fù)制和篡改。
?
問(wèn)題:
①稅收和洗錢(qián)??鐕?guó)交易,如何稅收?因不可跟蹤性,很可能被不法分子用以逃稅。
②外匯匯率的不穩(wěn)定性。電子現(xiàn)金也是總貨幣供應(yīng)量的一個(gè)組成部分,可以隨時(shí)兌換成普通現(xiàn)金,電子現(xiàn)金也有外匯兌換問(wèn)題,其涉及的外匯兌換也要有匯率,這就需要在Internet上設(shè)立一個(gè)外匯交易市場(chǎng)。
③貨幣供應(yīng)的干擾。因?yàn)殡娮蝇F(xiàn)金可以隨時(shí)與普通貨幣兌換,故電子現(xiàn)金量的變化也會(huì)影響真實(shí)世界的貨幣供應(yīng)量。
⑤惡意破壞與盜用。電子現(xiàn)金存儲(chǔ)在計(jì)算機(jī)里,其最大的特點(diǎn)之一就是易復(fù)制。
⑥成本、安全與風(fēng)險(xiǎn)。電子現(xiàn)金對(duì)于硬件和軟件的技術(shù)要求都較高,需要一個(gè)龐大的中心數(shù)據(jù)庫(kù),用來(lái)記錄使用過(guò)的電子現(xiàn)金序列號(hào),以解決其發(fā)行、管理。消費(fèi)者硬盤(pán)一旦損壞,電子現(xiàn)金丟失,錢(qián)就無(wú)法恢復(fù),電子偽鈔一旦獲得成功,那么,發(fā)行人及其一些客戶(hù)所要付出的代價(jià)則可能是毀滅性的。
?
電子現(xiàn)金支付特點(diǎn)如下:
1)商家和銀行之間應(yīng)該有協(xié)議和授權(quán)關(guān)系。
2)電子現(xiàn)金對(duì)軟件具有依賴(lài)性。客戶(hù)、商家和電子現(xiàn)金的發(fā)行銀行都需要電子現(xiàn)金軟件。
3)用于小額交易。
4)身份驗(yàn)證是由電子現(xiàn)金本身完成的。電子現(xiàn)金的發(fā)行銀行在發(fā)放電子現(xiàn)金時(shí)使用電子簽名;商家在每次交易中,將電子現(xiàn)金傳送給銀行,由銀行驗(yàn)證電子現(xiàn)金的有效性(偽造或使用過(guò)等)。
5)電子現(xiàn)金的發(fā)行者負(fù)責(zé)用戶(hù)和商家之間實(shí)際資金的轉(zhuǎn)移。
6)電子現(xiàn)金具有普通現(xiàn)金特點(diǎn),可以存、取、轉(zhuǎn)讓?zhuān)粯訒?huì)丟失。
?
?
發(fā)表論文《如何為電子文件添加時(shí)間戳》
時(shí)間戳服務(wù)器與權(quán)威的國(guó)家授時(shí)中心對(duì)接,通過(guò)與數(shù)字簽名的有效結(jié)合,可為互聯(lián)網(wǎng)活動(dòng)任何電子文件或網(wǎng)上交易所產(chǎn)生的電子數(shù)據(jù)提供保密性、完整性、防抵賴(lài)等功能,通過(guò)數(shù)字簽名保證內(nèi)容和簽發(fā)人的不可抵賴(lài)性,通過(guò)時(shí)間戳提供準(zhǔn)確的、權(quán)威的、不可篡改的時(shí)間證明和內(nèi)容完整性證明。時(shí)間戳已成為網(wǎng)絡(luò)數(shù)據(jù)安全不可或缺的一部分。
時(shí)間戳在比特幣網(wǎng)絡(luò)里被用來(lái)標(biāo)記比特幣每個(gè)區(qū)塊的誕生時(shí)間。
時(shí)間戳是指從格林威治時(shí)間(北京時(shí)間1970年01月01日08時(shí)0分0秒)起至現(xiàn)在的總秒數(shù)。
時(shí)間戳不能改動(dòng),這就使得文件被篡改的可能性為零。
這些數(shù)據(jù)通常以一致的格式呈現(xiàn),以便于比較兩種不同的記錄和跟蹤一段時(shí)間的進(jìn)展情況。
?
通過(guò)哈希算法對(duì)區(qū)塊中的交易信息進(jìn)行加密,生成一個(gè)哈希值;
發(fā)出時(shí)間戳請(qǐng)求,時(shí)間戳服務(wù)器從項(xiàng)目區(qū)塊中提取哈希值;
時(shí)間戳服務(wù)器對(duì)提取到的哈希值和時(shí)間記錄進(jìn)行簽名,生成時(shí)間戳;
生成的時(shí)間戳數(shù)據(jù)和交易信息綁定之后再返回系統(tǒng),加入到區(qū)塊中。
?
?
“優(yōu)良保密協(xié)議”P(pán)GP,Pretty Good Privacy
PGP-Pretty Good Privacy,是一個(gè)基于RSA公鑰和對(duì)稱(chēng)加密相結(jié)合的郵件加密軟件。
PGP是個(gè)混合加密算法,它由一個(gè)對(duì)稱(chēng)加密算法(IDEA)、一個(gè)非對(duì)稱(chēng)加密算法(RSA)、與單向散列算法(MD5)以及一個(gè)隨機(jī)數(shù)產(chǎn)生器(從用戶(hù)擊鍵頻率產(chǎn)生偽隨機(jī)數(shù)序列的種子)組成的。
它提供數(shù)據(jù)加密和數(shù)字簽名兩種服務(wù),采用RSA公鑰證書(shū)進(jìn)行身份認(rèn)證,使用IDEA(128位密鑰)進(jìn)行數(shù)據(jù)加密,使用MD5進(jìn)行數(shù)據(jù)完整性驗(yàn)證。
特點(diǎn):高度結(jié)合RSA和傳統(tǒng)對(duì)稱(chēng)加密算法;在數(shù)字簽名和密鑰管理方面有獨(dú)特的設(shè)計(jì),用于數(shù)字簽名的郵件散列算法;源碼開(kāi)源。
?
PGP的密鑰管理:???
密鑰生成:用戶(hù)輸入口令,使用MD5算法生成口令摘錄,作為IDEA的密鑰加密隱蔽密鑰的秘密信息,并把加密結(jié)果放在隱蔽密鑰報(bào)文中。
密鑰使用:用戶(hù)輸入口令,重新生成IDEA密鑰,解出秘密信息,得到具體的隱蔽密鑰。
?
PGP通過(guò)對(duì)密鑰簽名來(lái)表示該密鑰的擔(dān)保;
PGP使用了秘密密鑰環(huán)(私鑰環(huán))和公鑰環(huán)的數(shù)據(jù)結(jié)構(gòu)。
秘密密鑰環(huán)(私鑰環(huán))——用于存儲(chǔ)自己的密鑰對(duì);
公鑰環(huán)——用于存儲(chǔ)該用戶(hù)所知道的其他用戶(hù)公開(kāi)密鑰。
給每個(gè)公鑰都指定一個(gè)唯一的標(biāo)識(shí)符,稱(chēng)為密鑰ID。密鑰ID與每個(gè)公鑰相關(guān)聯(lián),并由公鑰的最低64比特組成。發(fā)送方用接收方的哪個(gè)公鑰就將這個(gè)公鑰的ID發(fā)給接收方。
?
PGP使用了4種類(lèi)型的密鑰:

PGP加解密的步驟:
1、發(fā)送方(加密過(guò)程):公鑰K1使用RSA算法加密會(huì)話(huà)密鑰K,會(huì)話(huà)密鑰K使用IDEA算法加密信息;???????????
①生成消息并為該消息生成一個(gè)隨機(jī)數(shù)作為會(huì)話(huà)密鑰(K);
②用公鑰K1?加密 會(huì)話(huà)密鑰(K);
③壓縮消息;???????????
④用會(huì)話(huà)密鑰(K)加密消息; ???????????
⑤將加密的會(huì)話(huà)密鑰、經(jīng)過(guò)壓縮和加密的消息結(jié)合,轉(zhuǎn)換為文本數(shù)據(jù)-報(bào)文數(shù)據(jù)。
公鑰K1(RSA)→ 會(huì)話(huà)密鑰K(IDEA)→ 信息
2、接收方(解密過(guò)程):口令 → 密鑰K2 → 私鑰K3 → 密鑰K → 信息 ???????????
①輸入解密的口令;
②求口令的散列值,生成用于解密私鑰的密鑰K2;
③將鑰匙串中經(jīng)過(guò)加密的私鑰進(jìn)行解密,得到接收者的私鑰K3;
這里鑰匙串是接收者自己的密鑰環(huán)
④將報(bào)文數(shù)據(jù)(文本數(shù)據(jù))轉(zhuǎn)換成二進(jìn)制數(shù)據(jù);
⑤將二進(jìn)制數(shù)據(jù)分解成兩部分:加密的會(huì)話(huà)密鑰、經(jīng)過(guò)壓縮和加密的消息;
⑥接收者的私鑰解密會(huì)話(huà)密鑰K;
⑦對(duì)經(jīng)過(guò)壓縮和加密的消息用會(huì)話(huà)密鑰進(jìn)行解密;
⑧對(duì)經(jīng)過(guò)壓縮的的消息進(jìn)行解壓,得到原始消息。
?
PGP在多處需要使用口令,它主要起保護(hù)私鑰的作用。由于私鑰太長(zhǎng)且無(wú)規(guī)律,難以記憶。PGP把它用口令加密后存入密鑰環(huán),這樣用戶(hù)可以用易記的口令間接使用私鑰。
?
PGP主要在以下3處需要用戶(hù)輸入: ?????
需要解開(kāi)收到的加密信息時(shí),需要輸入口令,取出私鑰解密信息; ?????
當(dāng)用戶(hù)需要為文件或信息進(jìn)行傳統(tǒng)加密時(shí),輸入口令,取出私鑰加密; ?????
對(duì)磁盤(pán)上的文件進(jìn)行傳統(tǒng)加密時(shí),需要輸入口令。
?
PGP實(shí)際上用來(lái)加密的是傳統(tǒng)加密算法IDEA,IDEA加解密的速度比RSA快很多。
PGP隨機(jī)生成一個(gè)密鑰,用IDEA算法對(duì)明文加密,然后用RSA算法對(duì)密鑰加密。
收件人同樣是用RSA解出隨機(jī)密鑰,再用IDEA解出原文。
這樣的鏈?zhǔn)郊用芗扔蠷SA算法的保密性和認(rèn)證性,又保持了IDEA算法速度快的優(yōu)勢(shì)。
?
這里回顧一下DES,RSA算法:
(美國(guó)數(shù)據(jù)加密標(biāo)準(zhǔn))DES算法為對(duì)稱(chēng)密碼體制。明文按64位進(jìn)行分組,?密鑰長(zhǎng)64位,事實(shí)上是56位參與DES運(yùn)算(第8、16、24、32、40、48、56、64位是校驗(yàn)位, 使得每個(gè)密鑰都有奇數(shù)個(gè)1)分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。
?
RSA加密算法是最常用的非對(duì)稱(chēng)加密算法,
RSA是第一個(gè)比較完善的公開(kāi)密鑰算法,它既能用于加密,也能用于數(shù)字簽名。
RSA的安全基于大數(shù)分解的難度。其公鑰和私鑰是一對(duì)大素?cái)?shù)(100到200位十進(jìn)制數(shù)或更大)的函數(shù)。從一個(gè)公鑰和密文恢復(fù)出明文的難度,等價(jià)于分解兩個(gè)大素?cái)?shù)之積(這是公認(rèn)的數(shù)學(xué)難題)。?
?
?
1997年,哈?,F(xiàn)金HashCash算法
哈希現(xiàn)金是一種工作量證明機(jī)制,用于抵抗郵件的拒絕服務(wù)攻擊及垃圾郵件網(wǎng)關(guān)濫用。
HashCash的主要思路是,通過(guò)要求在郵件發(fā)送之前,必須進(jìn)行計(jì)算。
譬如每發(fā)送一封郵件,計(jì)算機(jī)需要花費(fèi)幾秒鐘來(lái)得到一個(gè)滿(mǎn)足條件的散列值。
發(fā)送方準(zhǔn)備標(biāo)題頭并附加上初始化為隨機(jī)數(shù)的計(jì)數(shù)器值(counter)。**然后它計(jì)算頭的160位SHA-1哈希值。如果散列的前20位(即5個(gè)最高有效十六進(jìn)制數(shù)字)都是零,那么這是可接受的標(biāo)題頭。**如果不是,則發(fā)送方遞增計(jì)數(shù)器并再次嘗試散列。
普通用戶(hù)不會(huì)因生成Hashcash字符串所需的處理時(shí)間而感到明顯的問(wèn)題。但是,垃圾郵件發(fā)送者因?yàn)榘l(fā)送大量垃圾郵件,會(huì)大大減慢速度。
戴偉的B-money、尼克·薩博的比特金(Bit-Gold)這些比特幣的先行者,都是在哈?,F(xiàn)金的框架下進(jìn)行挖礦的。
?
接收者的操作:
①檢查前20位,不全為0,則散列無(wú)效。
②檢查標(biāo)題中的日期,不在當(dāng)前日期的兩天內(nèi),則無(wú)效。(兩天的窗口可以補(bǔ)償不同系統(tǒng)之間的時(shí)鐘偏差和網(wǎng)絡(luò)路由時(shí)間。)
③檢查哈希字符串的電子郵件地址是否與收件人注冊(cè)的任何有效電子郵件地址匹配,或者與收件人訂閱的任何郵件列表匹配。如果未找到匹配項(xiàng),則哈希字符串無(wú)效。
④收件人的計(jì)算機(jī)將哈希字符串插入數(shù)據(jù)庫(kù)。如果字符串已經(jīng)在數(shù)據(jù)庫(kù)中(表示發(fā)送方正在嘗試重新使用哈希字符串),則該字符串無(wú)效。
?
?
?
1998年,比特金B(yǎng)itGold
Bit Gold 是獨(dú)立密碼學(xué)貨幣的第一個(gè)模型,它包含了工作量證明機(jī)制,讓參與者能夠(用成本的方式)證明自己創(chuàng)造出來(lái)、純粹用作數(shù)字形式的貨幣的東西,是有價(jià)值的。而且,它也需要工作量證明來(lái)形成一種分布式的時(shí)間戳,并使用節(jié)點(diǎn)網(wǎng)絡(luò)來(lái)維護(hù)一套賬戶(hù)和 Bit Gold 余額的賬本;兩者的結(jié)合形成了一套產(chǎn)權(quán)系統(tǒng) ,讓用戶(hù)能持有、跟蹤和轉(zhuǎn)移他們的貨幣。
Bit Gold的弱點(diǎn):如果沒(méi)有一個(gè)負(fù)責(zé)管理的第三方,Bit Gold market就非常難實(shí)現(xiàn);另外,點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)無(wú)法應(yīng)對(duì) 33%的串謀攻擊。
?
1998年,加密貨幣系統(tǒng)B-money
B-money 的設(shè)計(jì)目標(biāo)是一個(gè)匿名,分布式電子現(xiàn)金系統(tǒng)。
這一方案不僅有密碼學(xué)貨幣,還加入了一些基本形式的智能合約。
B-Money (相對(duì)BitGold)加入了托管代理人,讓網(wǎng)絡(luò)參與者想締結(jié)智能合約的時(shí)候,交易能得到保障。
缺點(diǎn):缺乏方案不同部分的實(shí)現(xiàn)細(xì)節(jié);維護(hù)分布式賬本的節(jié)點(diǎn)網(wǎng)絡(luò)無(wú)法容忍超過(guò) 33% 的拜占庭錯(cuò)誤。
?
?
2004年,RPOW可重用的工作量證明機(jī)制
參與者各自創(chuàng)建工作量證明(同Bit Gold),但他們會(huì)通過(guò)一個(gè)消息系統(tǒng)來(lái)直接向另一個(gè)用戶(hù)轉(zhuǎn)移這些證明,而不會(huì)使用一個(gè)點(diǎn)對(duì)點(diǎn)的節(jié)點(diǎn)網(wǎng)絡(luò)來(lái)維護(hù)一個(gè)賬本。
其核心是一個(gè)驗(yàn)證服務(wù)器,因?yàn)閰⑴c者會(huì)向其他人轉(zhuǎn)移 PROW,新的交易就需要新的工作量證明,而中心服務(wù)器只需要驗(yàn)證這些證明是真實(shí)的。
但它的弱點(diǎn)就在那個(gè)中心化的驗(yàn)證服務(wù)器上,即使可以用一組相互獨(dú)立的驗(yàn)證器來(lái)管理,仍然有中心化的風(fēng)險(xiǎn),因?yàn)橛脩?hù)必須信任這些驗(yàn)證器。
?
?
劃時(shí)代的比特幣:
2009年,比特幣出世,中本聰引入了一個(gè)充滿(mǎn)智慧的創(chuàng)新,使之成為了革命性的技術(shù)。
在中本聰共識(shí)中,點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都將新的事務(wù)(transaction)轉(zhuǎn)發(fā)給所有其他節(jié)點(diǎn);然后,所有節(jié)點(diǎn)都以這些事務(wù),加上前一個(gè)區(qū)塊的信息以及一個(gè)時(shí)間戳,作為下一個(gè)工作量證明的謎題;謎題的解有最低的難度門(mén)檻;任何一個(gè)節(jié)點(diǎn)只要找到了符合這個(gè)門(mén)檻的結(jié)果,他就把結(jié)果廣播給所有其他節(jié)點(diǎn);節(jié)點(diǎn)收到工作量證明之后,基于系統(tǒng)的算法和他們已經(jīng)掌握的工作量證明鏈條,各自驗(yàn)證所收到的工作量證明的有效性;通過(guò)驗(yàn)證之后,所有的節(jié)點(diǎn)就為那個(gè)最先解決難題的家伙的賬戶(hù)增加余額;增加的數(shù)額,也是根據(jù)比特幣的貨幣政策預(yù)先約定好的。
工作量也是解決上述點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò) 33% 拜占庭難題的關(guān)鍵。比特幣算法要求的最低難度門(mén)檻,暗示著所有節(jié)點(diǎn)必須(平均)花費(fèi) 10 分鐘來(lái)解決一個(gè)難題,當(dāng)某個(gè)節(jié)點(diǎn)發(fā)現(xiàn)并發(fā)出結(jié)果之時(shí),由它所花費(fèi)的時(shí)間(長(zhǎng)于或短于 10 分鐘),就向網(wǎng)絡(luò)中的其他人保證了所有其他參與者也都在共同解決這個(gè)難題 。(如果某些人不再參與解決這條鏈的難題,而去解決另一條鏈的難題,那這條鏈的難題就沒(méi)法在 10 分鐘內(nèi)解決了。工作量證明就是認(rèn)同的證明。)
中本聰共識(shí)的提升是,它將共識(shí)的安全性門(mén)檻從 33% 提高到了50%。
?
比特幣:
2008年11月1日,中本聰發(fā)表了《比特幣:一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)》,闡述了一個(gè)以點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)、分布式記賬、工作量證明(PoW)共識(shí)機(jī)制、加密技術(shù)等為基礎(chǔ)構(gòu)建的電子現(xiàn)金支付系統(tǒng)。
2009年1月3日,中本聰通過(guò)運(yùn)行這個(gè)版本產(chǎn)生了比特幣的第一個(gè)區(qū)塊(創(chuàng)世區(qū)塊)。
?
比特幣系統(tǒng)的發(fā)明是為了解決傳統(tǒng)的銀行轉(zhuǎn)賬過(guò)程中碰到的一些問(wèn)題:
賬戶(hù)和賬戶(hù)之間的轉(zhuǎn)賬交易成本高昂;
存在利用信用卡撤銷(xiāo)交易進(jìn)行欺詐的行為;
銀行系統(tǒng)為了處理可能發(fā)生的糾紛會(huì)過(guò)度索取交易雙方的個(gè)人隱私信息等。
?
區(qū)塊鏈:
區(qū)塊鏈技術(shù)本質(zhì)上是一個(gè)分布式共享交易賬本,由區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點(diǎn)在共識(shí)協(xié)議約束下共同維護(hù)。
區(qū)塊鏈系統(tǒng)可以被視為帶密鑰的分布式和自動(dòng)式記賬賬本,其核心是系統(tǒng)中每個(gè)節(jié)點(diǎn)都有一份一模一樣的賬本,這些賬本記錄了系統(tǒng)所有發(fā)生的交易,并且能自動(dòng)將新的交易數(shù)據(jù)添加到每個(gè)節(jié)點(diǎn)的賬本中。
?
分布式記賬優(yōu)勢(shì):
(1)通過(guò)多方記賬的方式,增強(qiáng)數(shù)據(jù)安全性,防止單點(diǎn)故障(篡改)
(2)減少不同數(shù)據(jù)庫(kù)之間的對(duì)賬工作,提高效率和透明度
?
區(qū)塊鏈的技術(shù)特點(diǎn):
①公開(kāi)透明:所有區(qū)塊包含的交易信息都是公開(kāi)、透明的。
②難以篡改:每個(gè)區(qū)塊通過(guò)父區(qū)塊哈希值“鏈接”起來(lái),某個(gè)數(shù)據(jù)被篡改,哈希值會(huì)變化,導(dǎo)致前一個(gè)區(qū)塊的哈希值與該區(qū)塊的哈希指針不匹配。
③可以追溯:源于鏈?zhǔn)浇Y(jié)構(gòu)的特殊性。
④集體維護(hù):每一個(gè)區(qū)塊鏈都會(huì)有一套“共識(shí)機(jī)制”,使眾多互不相識(shí)的節(jié)點(diǎn)達(dá)成一致。
⑤去中介化/弱中介化:系統(tǒng)中每個(gè)全節(jié)點(diǎn)既是服務(wù)器也是客戶(hù)端,在系統(tǒng)中的權(quán)利和義務(wù)都是對(duì)等的。任意一個(gè)節(jié)點(diǎn)宕機(jī)或者失效都不會(huì)影響整個(gè)系統(tǒng)的運(yùn)作。
?
區(qū)塊鏈瀏覽器是一種區(qū)塊鏈搜索工具。區(qū)塊鏈瀏覽器的運(yùn)營(yíng)方本身已經(jīng)下載好了完整的賬本數(shù)據(jù)。用戶(hù)在區(qū)塊鏈瀏覽器中輸入相關(guān)字段,可以查到區(qū)塊或交易的詳細(xì)信息。典型的區(qū)塊鏈公鏈系統(tǒng),比如比特幣和以太坊等都有許多區(qū)塊鏈瀏覽器,這些瀏覽器通常是由開(kāi)源軟件團(tuán)隊(duì)自發(fā)開(kāi)發(fā)的。
?
分布式系統(tǒng)的概念
分布式系統(tǒng)是由若干獨(dú)立的計(jì)算機(jī)節(jié)點(diǎn)組成的系統(tǒng),通過(guò)網(wǎng)絡(luò)進(jìn)行連接并在一定范圍內(nèi)有效共享資源,節(jié)點(diǎn)之間通過(guò)傳遞消息進(jìn)行協(xié)調(diào)工作,共同完成系統(tǒng)內(nèi)的工作任務(wù)。獨(dú)立機(jī)器的故障不會(huì)影響整個(gè)系統(tǒng)的正常運(yùn)行。
?
分布式系統(tǒng)的特征(優(yōu)點(diǎn))
①分布性:分布式系統(tǒng)內(nèi)計(jì)算機(jī)節(jié)點(diǎn)可以分布在不同的位置。
分布式系統(tǒng)的低延遲是通過(guò)在不同的物理位置部署不同的機(jī)器,通過(guò)就近獲取的原則降低訪(fǎng)問(wèn)的延遲時(shí)間。
②可擴(kuò)展性:分布式系統(tǒng)內(nèi)節(jié)點(diǎn)數(shù)量可以動(dòng)態(tài)増減,服務(wù)器也可以動(dòng)態(tài)部署。
分布式系統(tǒng)最大的好處就是能夠橫向擴(kuò)展。
橫向擴(kuò)展是指通過(guò)增加更多的機(jī)器來(lái)提升整個(gè)系統(tǒng)的性能,而不是靠升級(jí)單臺(tái)計(jì)算機(jī)的硬件。
橫向擴(kuò)展沒(méi)有上限,理論上可達(dá)到無(wú)限大的工作負(fù)載支持。
?
③對(duì)等性:組成分布式系統(tǒng)的所有計(jì)算機(jī)節(jié)點(diǎn)都是對(duì)等的;當(dāng)某一個(gè)節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)丟失時(shí),可以從副本上讀取該數(shù)據(jù)。使得系統(tǒng)容錯(cuò)性好。
④并發(fā)性:分布式系統(tǒng)中的多個(gè)計(jì)算機(jī)節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)進(jìn)行連接并在一定范圍內(nèi)有效共享資源,某一時(shí)刻這些計(jì)算機(jī)節(jié)點(diǎn)可能會(huì)并發(fā)地操作一些共享的資源。
缺點(diǎn):
1. 在分布式系統(tǒng)中很難提供足夠的安全,因?yàn)楣?jié)點(diǎn)以及連接都需要安全。
2. 一些消息和數(shù)據(jù)在從一個(gè)節(jié)點(diǎn)轉(zhuǎn)移到另一個(gè)節(jié)點(diǎn)時(shí),可能會(huì)在網(wǎng)絡(luò)中丟失。
3. 與單用戶(hù)系統(tǒng)相比,連接到分布式系統(tǒng)的數(shù)據(jù)庫(kù)是相當(dāng)復(fù)雜和難以處理的。
4. 如果分布式系統(tǒng)的所有節(jié)點(diǎn)都試圖同時(shí)發(fā)送數(shù)據(jù),網(wǎng)絡(luò)中可能會(huì)出現(xiàn)過(guò)載現(xiàn)象。
?
?
FLP和CAP定理
FLP原理:
在異步通信場(chǎng)景,不存在可以實(shí)現(xiàn)分布式系統(tǒng)的一致性的算法。
在實(shí)際異步通信的分布式系統(tǒng)環(huán)境下,可能存在通信故障、延遲或者節(jié)點(diǎn)本身出現(xiàn)失效的情況,異步系統(tǒng)無(wú)法確保在有限時(shí)間內(nèi)完成一致性。
?
CAP原理:
CAP 原理定義了分布式計(jì)算系統(tǒng)的三大特性:
(1)一致性(Consistency):共享數(shù)據(jù)副本之間呈現(xiàn)出統(tǒng)一且實(shí)時(shí)的數(shù)據(jù)內(nèi)容;
(2) 可用性(Availability):所有的數(shù)據(jù)操作總會(huì)在一定時(shí)間內(nèi)得到響應(yīng);
(3)分區(qū)容錯(cuò)性(Partition):通常由于網(wǎng)絡(luò)間連接中斷而導(dǎo)致網(wǎng)絡(luò)中的節(jié)點(diǎn)相互隔離無(wú)法訪(fǎng)問(wèn)時(shí),被隔離的節(jié)點(diǎn)仍可正常運(yùn)行。
CAP原則指的是,這三個(gè)要素最多只能同時(shí)實(shí)現(xiàn)兩點(diǎn),不可能三者兼顧。
分區(qū)容忍是一個(gè)給定的條件,如果沒(méi)有這一點(diǎn),就不可能做到一致性和可用性。
實(shí)踐表明大多數(shù)應(yīng)用程序更看重可用性。主要原因是在不得不同步機(jī)器里實(shí)現(xiàn)強(qiáng)于一致性是時(shí),網(wǎng)絡(luò)延遲會(huì)成為一個(gè)問(wèn)題。
?
?
區(qū)塊鏈的分類(lèi)
公有鏈
公有鏈對(duì)所有人開(kāi)放,任何人都可以自由訪(fǎng)問(wèn)公有鏈的數(shù)據(jù),參與公有鏈的共識(shí),并在公有鏈上創(chuàng)建應(yīng)用。
公有鏈的應(yīng)用非常廣泛,例如資產(chǎn)證券化、數(shù)字資產(chǎn)的跨鏈流通等等,現(xiàn)在市場(chǎng)上的主流區(qū)塊鏈項(xiàng)目比特幣、以太坊、EOS等都是公有鏈項(xiàng)目。
?
優(yōu)點(diǎn):
1)所有交易數(shù)據(jù)公開(kāi)、透明。
2)無(wú)法篡改。公有鏈?zhǔn)歉叨热ブ行幕姆植际劫~本,篡改交易數(shù)據(jù)幾乎不可能實(shí)現(xiàn),除非篡改者控制了全網(wǎng)51%的算力。
?
缺點(diǎn):
1)低吞吐量(TPS)。比特幣每秒只能處理約7筆交易,高峰期能處理的交易筆數(shù)就更低了。
2)交易速度緩慢。低吞吐量的必然帶來(lái)緩慢的交易速度。比特幣網(wǎng)絡(luò)極度擁堵,有時(shí)一筆交易需要幾天才能處理完畢,還需要繳納幾百塊轉(zhuǎn)賬費(fèi)。
?
公有鏈?zhǔn)钦嬲饬x上的完全去中心化的區(qū)塊鏈,它通過(guò)密碼學(xué)保證交易不可篡改,同時(shí)也利用密碼學(xué)驗(yàn)證以及經(jīng)濟(jì)上的激勵(lì),在互為陌生的網(wǎng)絡(luò)環(huán)境中建立共識(shí),從而形成去中心化的信用機(jī)制。
?
比特幣就是公有鏈的典型:
比特幣的節(jié)點(diǎn)遍布于世界各地,所有人共同參與記賬、維護(hù)區(qū)塊鏈上的所有交易數(shù)據(jù)。比特幣能夠穩(wěn)定運(yùn)行,是依賴(lài)工作量證明(PoW),其中Token(代幣)能夠激勵(lì)所有參與節(jié)點(diǎn)“愿意主動(dòng)合作”,共同維護(hù)鏈上數(shù)據(jù)的安全性。因此,公有鏈的運(yùn)行離不開(kāi)代幣。
?
公有鏈由于其具有?。?/strong>不可篡改的特性,在某些場(chǎng)景的應(yīng)用時(shí),會(huì)出現(xiàn)一些問(wèn)題,比如人為失誤后造成了不良影響卻不可挽回。
?
私有鏈
私有鏈?zhǔn)侵钙鋵?xiě)入權(quán)限由某個(gè)組織和機(jī)構(gòu)控制的區(qū)塊鏈,參與節(jié)點(diǎn)的資格會(huì)被嚴(yán)格限制,這些軟件被中心化機(jī)構(gòu)控制。私有鏈?zhǔn)怯稍撈髽I(yè)、組織或個(gè)人進(jìn)行管理的區(qū)塊鏈。
與聯(lián)盟鏈不同的是,私有鏈節(jié)點(diǎn)均屬于同一企業(yè)或組織,節(jié)點(diǎn)之間信任程度更高,并且私有鏈共識(shí)范圍更加狹窄,甚至可以僅由單高性能節(jié)點(diǎn)進(jìn)行記賬。
優(yōu)點(diǎn):
1、交易效率高
其速度可超過(guò)任何其他的區(qū)塊鏈,甚至接近了常規(guī)數(shù)據(jù)庫(kù)(非區(qū)塊鏈數(shù)據(jù)庫(kù))。因?yàn)榧词故巧倭康墓?jié)點(diǎn),其也具有高信任度,所以交易的進(jìn)程不需要每一個(gè)節(jié)點(diǎn)都來(lái)驗(yàn)證。
2、保障隱私
3、成本低
私有鏈上完成的交易通常十分廉價(jià)或免費(fèi)。這是因?yàn)樗接墟溕系慕灰姿俣仁种?,各個(gè)節(jié)點(diǎn)間不需要完全的協(xié)議,以至于它們不會(huì)為任意一個(gè)交易而工作,如此一來(lái)大大降低了交易成本。
4、保護(hù)目前產(chǎn)品不被破壞
私有鏈可以保護(hù)機(jī)構(gòu)目前的產(chǎn)品不被破壞,正是這一點(diǎn)使得銀行等金融機(jī)構(gòu)能在目前的環(huán)境中欣然接受私有鏈,銀行和政府在看管他們的產(chǎn)品上擁有既得利益。
?
而公有鏈的直接應(yīng)用是保護(hù)像比特幣這樣新型的非國(guó)家性質(zhì)的貨幣,對(duì)核心利潤(rùn)流或組織構(gòu)成了破壞性的威脅,這些實(shí)體機(jī)構(gòu)應(yīng)該會(huì)不惜一切代價(jià)去避免損害。?????
?
5、部分去中心化
私有鏈?zhǔn)菣C(jī)構(gòu)或者組織為各種應(yīng)用開(kāi)發(fā)分布式分類(lèi)賬和其他區(qū)塊鏈啟發(fā)的軟件,這些軟件被中心化機(jī)構(gòu)控制,所以不具有區(qū)塊鏈完全去中心化的屬性。
?
相比中心化數(shù)據(jù)庫(kù),私有鏈能夠防止機(jī)構(gòu)內(nèi)單節(jié)點(diǎn)故意隱瞞或篡改數(shù)據(jù)。即使發(fā)生錯(cuò)誤,也能夠很快就發(fā)現(xiàn)來(lái)源,因此許多大型金融企業(yè)更傾向于使用私有鏈技術(shù)。
?
私有鏈可以在不顛覆傳統(tǒng)金融模式的前提下,日積月累的來(lái)改善存在于傳統(tǒng)金融模式里的一些詬病,例如金融機(jī)構(gòu)的工作效率問(wèn)題、金融敲詐問(wèn)題等。而公有鏈?zhǔn)峭ㄟ^(guò)軟件來(lái)顛覆傳統(tǒng)金融模式大部分功能的一種方法,這與私有鏈形成鮮明對(duì)比。
?
聯(lián)盟鏈
聯(lián)盟鏈?zhǔn)侵赣腥舾蓚€(gè)組織或者機(jī)構(gòu)共同參與管理的區(qū)塊鏈,每個(gè)機(jī)構(gòu)都運(yùn)行著一個(gè)或多個(gè)節(jié)點(diǎn),其中的數(shù)據(jù)只允許系統(tǒng)內(nèi)不同的機(jī)構(gòu)進(jìn)行讀寫(xiě)和發(fā)送交易,并且共同來(lái)記錄交易數(shù)據(jù)。
特點(diǎn):
1.交易速度非???/p>
聯(lián)盟鏈本質(zhì)上還是私有鏈,由于其節(jié)點(diǎn)不多,就算少量的節(jié)點(diǎn)也都具有很高的信任度,并不需要每個(gè)節(jié)點(diǎn)來(lái)驗(yàn)證一個(gè)交易,達(dá)成共識(shí)容易,交易速度自然也就快很多。
2.部分去中心化
與公有鏈不一樣,聯(lián)盟鏈在某種程度上只屬于聯(lián)盟內(nèi)部的成員所有,且很容易達(dá)成共識(shí),因?yàn)楫吘孤?lián)盟鏈的節(jié)點(diǎn)數(shù)是非常有限的,所以只是部分去中心化。
3.可控性較強(qiáng)
聯(lián)盟鏈,只要所有機(jī)構(gòu)中的大部分達(dá)成共識(shí),即可將區(qū)塊數(shù)據(jù)進(jìn)行更改;
4.數(shù)據(jù)不會(huì)默認(rèn)公開(kāi)
5、交易成本很低
與私有鏈一樣,可以進(jìn)行完全免費(fèi)或者至少說(shuō)是非常廉價(jià)的交易。如果一個(gè)實(shí)體機(jī)構(gòu)控制和處理所有的交易,就省掉了區(qū)塊鏈網(wǎng)絡(luò)中常見(jiàn)的“礦工費(fèi)”,這就不需要花費(fèi)額外的費(fèi)用。
?
Token:????
它在區(qū)塊鏈中代表的是一種權(quán)益證明。token本質(zhì)上代表任何權(quán)益都可以自由流通的一個(gè)經(jīng)濟(jì)系統(tǒng)。token能讓大家把各種權(quán)益證明,比如門(mén)票、積分、合同、證書(shū)、點(diǎn)卡、資質(zhì)、房產(chǎn)等等全部拿出來(lái)數(shù)字化、通證化(tokenization),放到區(qū)塊鏈上流轉(zhuǎn),放到市場(chǎng)上交易,讓市場(chǎng)發(fā)掘其價(jià)格,同時(shí)在現(xiàn)實(shí)經(jīng)濟(jì)生活中可以消費(fèi)、可以驗(yàn)證。
?
區(qū)塊鏈中的token有三個(gè)要素:
一是數(shù)字權(quán)益證明,通證必須是以數(shù)字形式存在的權(quán)益憑證,代表一種權(quán)利、一種固有和內(nèi)在的價(jià)值。
二是加密,通證的真實(shí)性、防篡改性、保護(hù)隱私等能力由密碼學(xué)予以保障。
三是能夠在一個(gè)網(wǎng)絡(luò)中流動(dòng),從而隨時(shí)隨地可以驗(yàn)證。
?