自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

區(qū)塊鏈技術(shù)的7層架構(gòu)

區(qū)塊鏈
區(qū)塊鏈技術(shù)架構(gòu)可以分為七層,從底層往上依次是加密層、數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層,而每一層都運(yùn)用了一些技術(shù)來(lái)保證整個(gè)區(qū)塊鏈系統(tǒng)的正常運(yùn)作。

中本聰提出了去中心化賬本的構(gòu)想,目的是在沒(méi)有一個(gè)可信中心的環(huán)境建立一個(gè)全民賬本,這個(gè)賬本主要原理是大家一起記賬,每筆賬目都需要所有記賬人共識(shí),并且每個(gè)人都存在這樣一份相同的賬本,這樣就不用擔(dān)心有個(gè)別記賬員造假、丟失的問(wèn)題了。一是個(gè)人造假的賬本不會(huì)得到大家的認(rèn)可,二是個(gè)人丟失賬本可以通過(guò)其他人重新獲取這個(gè)賬本來(lái)恢復(fù)所有的歷史交易記錄。不過(guò)這種分布式賬本會(huì)有一些問(wèn)題需要解決:

  • 第一個(gè)問(wèn)題:賬本一致問(wèn)題,因?yàn)樗腥硕紖⑴c記賬,每個(gè)人賬本如何保持一致是最關(guān)鍵的一個(gè)問(wèn)題;
  • 第二個(gè)問(wèn)題:每個(gè)人都有這樣的賬本,意味著所有人的交易都是公開(kāi)的,很可能所有人的余額也是公開(kāi)的,能否做到對(duì)交易匿名處理,就是把所有人資產(chǎn)信息隱藏起來(lái);
  • 第三個(gè)問(wèn)題:交易怎么鑒別真?zhèn)?即如何防止別人冒充你花你的錢?
  • 第四個(gè)問(wèn)題:大家都記賬,記賬肯定有消耗,需要消耗存儲(chǔ)、消耗精力,如何讓記賬員長(zhǎng)期維持下去?

針對(duì)這幾個(gè)問(wèn)題,中本聰提出一些關(guān)鍵技術(shù)來(lái)解決這些問(wèn)題,我們后面會(huì)一一講解。

區(qū)塊鏈技術(shù)架構(gòu)可以分為七層,從底層往上依次是加密層、數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層,而每一層都運(yùn)用了一些技術(shù)來(lái)保證整個(gè)區(qū)塊鏈系統(tǒng)的正常運(yùn)作。

[[249786]]

一、加密層

1. 哈希函數(shù);

也叫散列函數(shù),是把一段數(shù)據(jù)壓縮成一個(gè)摘要,這個(gè)摘要相比原始信息更小,但有一些比較特別的性質(zhì),首先是確定性,如果相同的輸入數(shù)據(jù)得到的輸出是相同的。

基本是不可逆的,給定一個(gè)輸出,無(wú)法直接推算出輸入,雖然我們知道有無(wú)數(shù)個(gè)輸入會(huì)輸出同一個(gè)哈希值,但如果知道哈希值的話,很難計(jì)算出任何一個(gè)輸入。

“雪崩”效應(yīng),輸入信息只要修改一小部分,哪怕是一個(gè)單詞,一個(gè)字母,甚至1bit值,輸出的哈希值就會(huì)產(chǎn)生翻天覆地的變化,這一點(diǎn)保證它是不可逆的。

哈希函數(shù)有什么用?

在分布式賬本里,為了保證數(shù)據(jù)完整性,會(huì)采用哈希值進(jìn)行校驗(yàn)。如,一筆交易、一頁(yè)賬本(也就是區(qū)塊的概念),用了哈希之后生成摘要,意味著整個(gè)區(qū)塊交易信息無(wú)法進(jìn)行篡改(即無(wú)法在篡改數(shù)據(jù)之后保持摘要不變)。

區(qū)塊鏈原始的定義或狹義的理解就是區(qū)塊+鏈的形式,這個(gè)鏈?zhǔn)峭ㄟ^(guò)哈希鏈接起來(lái),每一個(gè)區(qū)塊可能都有很多交易,整個(gè)區(qū)塊又可以通過(guò)哈希函數(shù)產(chǎn)生摘要信息,然后規(guī)定每一個(gè)區(qū)塊都需要記錄上一個(gè)區(qū)塊的摘要信息,這樣一來(lái)所有區(qū)塊都可以連成一條鏈。

如果改了歷史中某一個(gè)區(qū)塊的數(shù)據(jù),意味著這個(gè)區(qū)塊摘要值(即哈希值)會(huì)改變,那么下一個(gè)區(qū)塊中記錄的上一個(gè)區(qū)塊的哈希也得做相應(yīng)的修改,以此類推,也就是說(shuō)如果要修改歷史記錄的話,要從那一個(gè)點(diǎn)開(kāi)始往后所有記錄都要修改才能保證賬本的合法性,哈希函數(shù)就提高了賬本篡改的難度。

2. 采用非對(duì)稱加密技術(shù)。

這是相對(duì)對(duì)稱加密而言的,對(duì)稱加密中加密和解密過(guò)程用的是同一把鑰匙,而非對(duì)稱加密是加密和解密過(guò)程用的是一對(duì)密鑰,這對(duì)密鑰分別稱為“公鑰”和“私鑰”,公鑰是可以公開(kāi)的,私鑰是個(gè)人存儲(chǔ)、個(gè)人維護(hù)的。

公鑰加密的數(shù)據(jù)只能用配對(duì)的私鑰來(lái)解密,私鑰加密的數(shù)據(jù)同樣也只能用配對(duì)的公鑰來(lái)解密。用非對(duì)稱加密就可以產(chǎn)生數(shù)字簽名。

假設(shè)有一筆交易,我給你轉(zhuǎn)10元,這個(gè)消息或這筆交易有固定的數(shù)據(jù)格式,通過(guò)哈希函數(shù)算出這個(gè)交易的哈希值(即消息摘要),通過(guò)使用私鑰加密,得到一個(gè)數(shù)字簽名,然后可以把數(shù)字簽名以及這個(gè)消息同時(shí)發(fā)送給其他人。

其他人拿到這個(gè)消息和數(shù)字簽名后,首先可以把這個(gè)消息的消息摘要算出來(lái),然后就可以用公鑰驗(yàn)證這個(gè)簽名是否真的是由這個(gè)消息摘要算出來(lái)的,進(jìn)而判斷這個(gè)消息是否由我簽署并且沒(méi)有被篡改。

這就是數(shù)字簽名的效果,它的作用:一是可以確認(rèn)消息歸屬,即檢驗(yàn)消息是否真的由私鑰擁有者發(fā)出的,只要拿對(duì)應(yīng)的公鑰驗(yàn)證去簽名,驗(yàn)證通過(guò)就可以證明消息是由私鑰擁有者發(fā)出的;二是確保消息完整,如果消息被篡改,那么哈希值就發(fā)生了變化,用同樣的數(shù)字簽名就無(wú)法驗(yàn)證通過(guò)。

非對(duì)稱加密和數(shù)據(jù)簽名解決了“比特村”的兩個(gè)問(wèn)題:第一,交易可以鑒別真?zhèn)?第二,可以保證交易進(jìn)行匿名化。

現(xiàn)在不需要實(shí)名認(rèn)證每個(gè)人有多少錢,只需要用公鑰作為錢包的地址,要花公鑰錢包里的錢只需要用對(duì)應(yīng)私鑰對(duì)一筆交易簽名,即可證明你是錢包的所有者,這筆交易別人無(wú)法篡改和偽造。

而且公私鑰可以在線下自己生成,并不需要在賬本里進(jìn)行實(shí)名注冊(cè),如果沒(méi)有賬本外的額外信息,任何人都不知道某個(gè)公鑰錢包到底屬于誰(shuí)的,這就達(dá)到了交易匿名的目的。

二、數(shù)據(jù)層

剛才說(shuō)到區(qū)塊的概念,可以理解為賬本中的一頁(yè)記賬紙,里面記錄了若干筆交易,除此以外,區(qū)塊里需要包含哪些信息?

首先有一個(gè)區(qū)塊高度,可以理解為賬本的頁(yè)碼;包含上一個(gè)區(qū)塊摘要信息,這個(gè)是為了保證整個(gè)區(qū)塊鏈鏈?zhǔn)劫~本不可篡改性;包含本區(qū)塊里所有數(shù)據(jù)交易哈希摘要值。

三、網(wǎng)絡(luò)層

網(wǎng)絡(luò)層是用P2P網(wǎng)絡(luò)來(lái)進(jìn)行消息的傳播,P2P網(wǎng)絡(luò)是對(duì)等式網(wǎng)絡(luò),也可以稱為是無(wú)中心的自組織網(wǎng)絡(luò),特點(diǎn)是沒(méi)有中心化的服務(wù)器,任何節(jié)點(diǎn)在這個(gè)網(wǎng)絡(luò)中既是服務(wù)器,也是客戶端。

消息的發(fā)送、網(wǎng)絡(luò)的組織都是自發(fā)的,整個(gè)網(wǎng)絡(luò)可以無(wú)限擴(kuò)展,任何節(jié)點(diǎn)可以隨時(shí)加入、隨時(shí)退出。網(wǎng)絡(luò)層規(guī)定了區(qū)塊鏈系統(tǒng)中交易是怎么傳輸?shù)?,以及每一?yè)賬本(即區(qū)塊)是怎么傳輸?shù)摹?/p>

四、共識(shí)層

就是要讓全網(wǎng)所有記賬員賬本保持一致,也就是說(shuō)對(duì)所有交易有一個(gè)先后順序,達(dá)成完全一致。具體而言,共識(shí)機(jī)制主要需要解決以下三個(gè)問(wèn)題:

  • What,下一個(gè)區(qū)塊包含哪些交易;
  • Who,下一個(gè)區(qū)塊由誰(shuí)產(chǎn)生;
  • When,下一個(gè)區(qū)塊在什么時(shí)候產(chǎn)生;

區(qū)塊鏈共識(shí)算法用的最多的是PoW,字面意思是工作量證明,即證明你做了一定量的工作。

工作量證明官方定義是要求用戶進(jìn)行一些比較耗時(shí)的復(fù)雜運(yùn)算,然后得出這個(gè)答案能夠被其他人快速驗(yàn)證,用工作期間耗用的時(shí)間、設(shè)備、能源作為擔(dān)保成本,來(lái)確保資源是被真正需求方所使用。

PoW最早是在反垃圾郵件中使用,在發(fā)送一個(gè)郵件之前,需要在本地進(jìn)行平均幾秒的PoW計(jì)算,目的是為了增加黑客群發(fā)一些垃圾郵件的成本,對(duì)于正常用戶來(lái)說(shuō)發(fā)送一封郵件是低頻操作,每次等待幾秒完全可以接受;但對(duì)于制造垃圾郵件的人,就大幅增加了成本。

PoW一般用哈希函數(shù)實(shí)現(xiàn),哈希函數(shù)特點(diǎn)是結(jié)果確定,但不可逆,知道一個(gè)哈希值或哈希值特征,很難推算出輸入,如何使用哈希函數(shù)實(shí)現(xiàn)PoW呢?假設(shè)現(xiàn)在有一條消息,哈希值是確定的,如果規(guī)定允許在這個(gè)消息后面加上一個(gè)隨機(jī)數(shù)(我們稱為nonce值),然后再計(jì)算哈希,那么這個(gè)哈希就可以隨著nonce值的改變而改變,我們不斷地嘗試不同的nonce值,就可以得到不同的哈希值。

當(dāng)?shù)玫焦V捣夏骋粋€(gè)特征,比如前三位為0或者小于某個(gè)特定的數(shù),那么就接受該nonce值作為一個(gè)符合要求的答案。這個(gè)過(guò)程中需要計(jì)算方嘗試很多次才能得到符合條件的答案,條件越苛刻,需要計(jì)算的次數(shù)就越多,而這個(gè)答案在驗(yàn)算方這邊只需要進(jìn)行一步哈希計(jì)算,就可以知道這個(gè)nonce值是否是符合條件的答案。PoW通過(guò)使用哈希函數(shù)保證了難計(jì)算、易驗(yàn)證的特點(diǎn)。

[[249787]]

PoW運(yùn)用在比特幣這邊,區(qū)塊頭部有一個(gè)nonce值,每一個(gè)礦工需要不斷調(diào)整區(qū)塊的Nonce值,使得整個(gè)區(qū)塊的哈希值小于某一個(gè)目標(biāo)哈希(這個(gè)目標(biāo)哈希值由難度值確定,難度值越高,目標(biāo)哈希值越小),這樣一個(gè)區(qū)塊才是合法的區(qū)塊,誰(shuí)先算出這個(gè)合法的區(qū)塊,廣播到網(wǎng)絡(luò)中,這個(gè)合法的區(qū)塊就會(huì)被其他人接受。

POW的優(yōu)點(diǎn)是工程上非常簡(jiǎn)單可靠,容易實(shí)現(xiàn),容錯(cuò)率可以達(dá)到50%,控制全網(wǎng)算力沒(méi)有達(dá)到50%,基本上不可能篡改歷史記錄,這在中本聰一篇論文里有嚴(yán)格的數(shù)據(jù)論證,是比較公平的機(jī)制,投入越多算力,獲得記賬權(quán)概率越大,越有可能產(chǎn)生新的區(qū)塊。

缺點(diǎn)則是效率低,對(duì)于算力和能源浪費(fèi)非常嚴(yán)重,有人統(tǒng)計(jì)過(guò)現(xiàn)在整個(gè)區(qū)塊鏈網(wǎng)絡(luò)電力消耗超過(guò)一個(gè)小型國(guó)家全國(guó)的電力消耗。

同時(shí)POW會(huì)有分叉,可能有若干個(gè)礦工,同時(shí)算出下一個(gè)區(qū)塊,因?yàn)樗愎V凳请S機(jī)的,可能有人在相近時(shí)間內(nèi)算出來(lái)了,因?yàn)榫W(wǎng)絡(luò)有延遲,不同礦工接受不同的區(qū)塊,然后就產(chǎn)生了分叉,分叉可能需要等待多個(gè)區(qū)塊來(lái)確認(rèn),這個(gè)交易的確認(rèn)時(shí)間也是不確定的。

目前階段算力越來(lái)越集中,因?yàn)橐粋€(gè)獨(dú)立的礦工想要挖下一個(gè)區(qū)塊的話,以你的算力可能在全網(wǎng)比例非常低,挖到下一個(gè)區(qū)塊的概率非常低,以至于一輩子可能都挖不上一個(gè)區(qū)塊。

這時(shí)候最好的選擇就是加入某一個(gè)礦池,貢獻(xiàn)你的算力,按照算力份額分成,比如整個(gè)礦池挖出下一個(gè)區(qū)塊,把下一個(gè)區(qū)塊獎(jiǎng)勵(lì)平均分給整個(gè)礦池里面算力的,這樣加入礦池就可以獲得比較穩(wěn)定的獎(jiǎng)勵(lì),也導(dǎo)致算力越來(lái)越集中在礦池手里。

共識(shí)層除了POW,還有其他算法,比如POS權(quán)益證明,就是占有的比例越多,獲得下一個(gè)區(qū)塊發(fā)布權(quán)的概率越大。POW簡(jiǎn)單理解就是按勞分配,多勞多得,POS就是按錢分配,持有越多,獲得的收益也就越大。

早期的POS也是跟POW一樣,結(jié)合POW,通過(guò)計(jì)算當(dāng)前持有的權(quán)益所占比例來(lái)決定這個(gè)節(jié)點(diǎn)的難度,可能持有越多,需要計(jì)算的難度值越低,就越有可能算出下一個(gè)區(qū)塊,這是早期的POS。

之后有人提出純POS想法,完全由節(jié)點(diǎn)權(quán)益決定區(qū)塊形成,這時(shí)候不需要計(jì)算POW進(jìn)行挖礦,但是現(xiàn)在工業(yè)界沒(méi)有一個(gè)公認(rèn)安全可靠的純POS項(xiàng)目,但在學(xué)術(shù)界有一些論文,也提出一些解決方案,對(duì)安全性有比較嚴(yán)格的數(shù)據(jù)論證,但他們的工程化難度非常高。

POS的優(yōu)點(diǎn)是資源消耗少;共識(shí)效率高;權(quán)益平等。缺點(diǎn)是實(shí)現(xiàn)復(fù)雜,安全性有待驗(yàn)證,容易導(dǎo)致馬太效應(yīng),富者越富,權(quán)益會(huì)越來(lái)越集中,跟POW有差不多的特點(diǎn)。

前面講了加密層、數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層,基本上一筆交易的流程就可以確定下來(lái)了:

新交易創(chuàng)建之后,通過(guò)P2P網(wǎng)絡(luò)廣播到全網(wǎng)所有的礦工,礦工把這個(gè)交易驗(yàn)證通過(guò)之后,打包進(jìn)一個(gè)區(qū)塊中,接著開(kāi)始計(jì)算PoW,當(dāng)?shù)玫侥硞€(gè)nonce值使得這個(gè)區(qū)塊的哈希值符合條件之后,再通過(guò)P2P網(wǎng)絡(luò)把這個(gè)區(qū)塊廣播給所有的礦工,其他礦工驗(yàn)證這個(gè)區(qū)塊合法之后,就會(huì)將這個(gè)區(qū)塊添加到自己的賬本中,這樣一個(gè)交易就在全網(wǎng)范圍內(nèi)完成了寫入。

五、激勵(lì)層

這樣一個(gè)分布式賬本系統(tǒng),需要所有礦工消耗CPU、存儲(chǔ)、帶寬等資源誠(chéng)實(shí)地記賬,如果完全沒(méi)有激勵(lì)的話,這些礦工可能就沒(méi)有動(dòng)力去維護(hù)這個(gè)系統(tǒng)了。

比特幣的激勵(lì)機(jī)制是如果一個(gè)礦工計(jì)算出了一個(gè)新的區(qū)塊,這個(gè)區(qū)塊會(huì)產(chǎn)生一些新的比特幣,連同區(qū)塊里所有交易的手續(xù)費(fèi)都可以歸這個(gè)礦工所有,這些比特幣是對(duì)一個(gè)誠(chéng)實(shí)礦工的獎(jiǎng)勵(lì)。

如果一個(gè)礦工試圖修改歷史記錄或者將不合法的交易打包到新的區(qū)塊,那么這個(gè)礦工將白白浪費(fèi)算力,而不能使其他礦工同步自己的賬本,這部分浪費(fèi)的算力可以理解為是對(duì)不誠(chéng)實(shí)礦工的懲罰。

激勵(lì)機(jī)制在公有鏈中是必需的。在聯(lián)盟鏈中,所有節(jié)點(diǎn)都是已經(jīng)經(jīng)過(guò)組織認(rèn)證的節(jié)點(diǎn),不需要額外的激勵(lì),這些節(jié)點(diǎn)也會(huì)自發(fā)地維護(hù)整個(gè)系統(tǒng)的安全和穩(wěn)定。

但在公有鏈中,節(jié)點(diǎn)不需要進(jìn)行認(rèn)證,可以隨時(shí)加入、隨時(shí)退出這個(gè)網(wǎng)絡(luò),記賬需要消耗CPU、存儲(chǔ)、帶寬等資源,所以需要有一定的激勵(lì)機(jī)制來(lái)確保礦工在記賬的過(guò)程中能有收益,以此來(lái)保證整個(gè)區(qū)塊鏈系統(tǒng)朝著良性循環(huán)的方向發(fā)展。

六、合約層

合約層是區(qū)塊鏈可編程特性的基礎(chǔ),區(qū)塊鏈可以理解為是去中心化不可篡改的賬本,程序代碼也是數(shù)據(jù),也可以存到賬本里。智能合約是存儲(chǔ)在區(qū)塊鏈中的一段不可篡改的程序,可以自動(dòng)化的執(zhí)行一些預(yù)先定義好的規(guī)則和條款,響應(yīng)接收到的信息。合約發(fā)布之后,其運(yùn)行和維護(hù)就交給全網(wǎng)的礦工去達(dá)成共識(shí),合約的開(kāi)發(fā)者定義了合約運(yùn)行的規(guī)則,這個(gè)規(guī)則發(fā)布之后就是公開(kāi)透明且不可篡改的。

七、應(yīng)用層

運(yùn)行在合約層之上,通過(guò)使用合約層的腳本和代碼構(gòu)建去中心化的應(yīng)用?,F(xiàn)在比較火的應(yīng)用有眾籌類的WeiFund,游戲類的加密貓,博彩類的Fomo3D等。

總結(jié)

  • 加密層,區(qū)塊鏈技術(shù)的基石,提供了整個(gè)區(qū)塊鏈系統(tǒng)的安全性、匿名性保證。
  • 數(shù)據(jù)層,采用偏序的數(shù)據(jù)結(jié)構(gòu),又采用了消息摘要的形式,使得歷史數(shù)據(jù)難以篡改,數(shù)據(jù)的完整性得以保證。
  • 網(wǎng)絡(luò)層規(guī)定了整個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)里的通信機(jī)制,可以實(shí)現(xiàn)沒(méi)有中心服務(wù)器的數(shù)據(jù)共享。
  • 共識(shí)層,通過(guò)POW、POS等共識(shí)算法來(lái)保證全網(wǎng)數(shù)據(jù)的一致性,是區(qū)塊鏈技術(shù)里的關(guān)鍵。
  • 激勵(lì)層,是通過(guò)經(jīng)濟(jì)激勵(lì)機(jī)制,使得整個(gè)區(qū)塊鏈系統(tǒng)可以朝著良性循環(huán)方向發(fā)展。
  • 合約層,提供區(qū)塊鏈系統(tǒng)的可編程性。
  • 應(yīng)用層,可以開(kāi)發(fā)分布式應(yīng)用,來(lái)豐富整個(gè)區(qū)塊鏈的生態(tài)。
  • 區(qū)塊鏈整個(gè)發(fā)展歷程可以分為區(qū)塊鏈1.0,即比特幣,是可信的分布式賬本,更多是在數(shù)字加密貨幣領(lǐng)域的應(yīng)用;
  • 區(qū)塊鏈2.0,即以太坊為代表,在可信的分布式賬本基礎(chǔ)上,加上了圖靈完備的智能合約,基本所有程序邏輯都可以用智能合約的形式寫出來(lái),區(qū)塊鏈2.0擴(kuò)大了區(qū)塊鏈應(yīng)用場(chǎng)景;
  • 區(qū)塊鏈3.0,目前還沒(méi)有公認(rèn)的區(qū)塊鏈3.0項(xiàng)目,未來(lái)可能在可擴(kuò)展性或者區(qū)塊鏈應(yīng)用上有更大的突破。
責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2022-10-26 08:42:28

2021-04-09 06:25:41

區(qū)塊鏈區(qū)塊鏈技術(shù)

2018-03-27 09:52:30

區(qū)塊鏈數(shù)字貨幣比特幣

2020-02-14 11:16:00

區(qū)塊鏈的醫(yī)學(xué)應(yīng)用

2018-02-06 05:03:00

2021-02-20 22:39:42

區(qū)塊鏈數(shù)字貨幣安全

2019-07-29 15:11:04

區(qū)塊鏈網(wǎng)絡(luò)存儲(chǔ)

2018-02-08 17:20:47

2020-12-02 10:53:39

區(qū)塊鏈技術(shù)

2018-03-05 15:17:01

區(qū)塊鏈支付寶數(shù)字貨幣

2022-01-24 14:44:06

區(qū)塊鏈跨鏈技術(shù)

2018-01-16 10:49:52

區(qū)塊鏈核心技術(shù)

2020-01-07 13:09:39

區(qū)塊鏈比特幣技術(shù)

2018-03-12 15:21:20

2020-01-11 17:49:03

區(qū)塊鏈數(shù)字貨幣比特幣

2022-03-25 13:39:40

區(qū)塊鏈技術(shù)房地產(chǎn)

2021-11-30 23:04:14

區(qū)塊鏈數(shù)據(jù)技術(shù)

2023-09-01 15:37:56

2022-01-10 10:56:37

區(qū)塊鏈技術(shù)比特幣

2020-11-23 07:20:49

區(qū)塊鏈區(qū)塊鏈技術(shù)外匯
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)