最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

肖臻區(qū)塊鏈b站網(wǎng)課筆記——06-10

2022-09-18 22:50 作者:苦茶今天斷更了嗎  | 我要投稿

視頻鏈接:【北京大學(xué)肖臻老師《區(qū)塊鏈技術(shù)與應(yīng)用》公開課】 https://www.bilibili.com/video/BV1Vt411X7JF?p=6&;;share_source=copy_web&vd_source=33abd457d9415a4317112e8206e5360e

【筆記的內(nèi)容也結(jié)合了評論區(qū)里其他同學(xué)的筆記】?


06-BTC-網(wǎng)絡(luò)

Application?layer(應(yīng)用層):運行Bitcoin?Block?Chain

Network?layer(底層):運行P2P?Overlay?Network(P2P覆蓋網(wǎng)絡(luò))

?

比特幣系統(tǒng)中所有節(jié)點完全平等,不像一些其他網(wǎng)絡(luò)存在超級節(jié)點(super node)。要加入網(wǎng)絡(luò),至少需要知道一個種子節(jié)點,通過種子節(jié)點告知自己它所知道的節(jié)點。節(jié)點之間的通信采用了TCP協(xié)議,便于穿透防火墻。當(dāng)節(jié)點離開時,只需要自行退出即可,其他節(jié)點在一定時間后仍然沒有收到該節(jié)點消息,便會將其刪掉。

?

比特幣網(wǎng)絡(luò)設(shè)計原則:simple,robust?but?not?efficient,flooding。

每個節(jié)點維護一個鄰居節(jié)點集合,消息傳播在網(wǎng)絡(luò)中采用洪泛法,某個節(jié)點在收到一條消息會將其發(fā)送給所有鄰居節(jié)點并標(biāo)記,下次再收到便不會再發(fā)送該消息。鄰居節(jié)點選取隨機,未考慮網(wǎng)絡(luò)底層拓撲結(jié)構(gòu),也與現(xiàn)實世界物理地址無關(guān)。該網(wǎng)絡(luò)具有極強魯棒性,但犧牲了網(wǎng)絡(luò)效率。

?

比特幣系統(tǒng)中,每個節(jié)點要維護一個等待上鏈的交易集合。第一次聽到交易,若是合法交易,則將其加入該交易集合并轉(zhuǎn)發(fā)給鄰居節(jié)點,以后再收到該交易就不再轉(zhuǎn)發(fā)(避免網(wǎng)絡(luò)上交易無線傳輸)。假如網(wǎng)絡(luò)中存在兩個沖突交易,具體接收哪個取決于節(jié)點先接收到哪個交易,之后收到另一個交易會將其放棄。

新發(fā)布區(qū)塊在網(wǎng)絡(luò)中傳播方式與新發(fā)布交易傳播方式類似,每個節(jié)點除檢查該區(qū)塊內(nèi)容是否合法,還要檢查是否位于最長合法鏈上。區(qū)塊越大,則網(wǎng)絡(luò)上傳輸越慢。

比特幣網(wǎng)絡(luò)傳播屬于?Best effort(盡力而為) ,不能保證一定傳輸成功。以一個交易發(fā)布到網(wǎng)絡(luò)上,未必所有節(jié)點都能收到,也未必所有節(jié)點收到交易順序都一致。

?

?

07-BTC-挖礦難度調(diào)整算法

挖礦本質(zhì)上就是不斷調(diào)整block header中的nonce值,使H(block header)<=target.(target是目標(biāo)閾值,target越小,目標(biāo)難度就越大,挖礦越難)。挖礦難度的調(diào)整,可以視為調(diào)整目標(biāo)空間在整個輸出空間中所占比例大小。

?

比特幣系統(tǒng)采用的哈希算法為SHA-256,整個輸出空間大小為2^256,調(diào)整目標(biāo)空間所占比例,簡單的說需要目標(biāo)值前需要多少個0。

挖礦難度和目標(biāo)閾值成反比, difficulty_1_target是挖礦難度為1時候的target,即最小挖礦難度。

問題:

1.如果不調(diào)整挖礦難度會怎么樣?

系統(tǒng)總算力越來越強,若挖礦難度保持不變,則出塊時間會越來越短。

?

2.出塊時間越來越短是好事嗎?

好處:交易可很快被寫入?yún)^(qū)塊鏈,提高系統(tǒng)響應(yīng)時間,增加區(qū)塊鏈系統(tǒng)效率。

壞處:區(qū)塊在網(wǎng)絡(luò)上傳播具有時延,使得系統(tǒng)中節(jié)點經(jīng)常性處于不一致的狀態(tài),增加了系統(tǒng)不穩(wěn)定性;系統(tǒng)經(jīng)常性位于分叉狀態(tài)。分叉過多,不利于系統(tǒng)達成共識,會造成算力分散,使得黑客攻擊成本大大降低(不再需要整個系統(tǒng)51%的算力)。

?

3.10min的出塊間隔是最優(yōu)嗎?

不是,但系統(tǒng)出塊時間需要維持在一個定值附近。以太坊平均出塊時間為15秒左右,15s的時間明顯會產(chǎn)生經(jīng)常性的分叉,以太坊設(shè)計了新的共識協(xié)議Ghost。

對于一個交易系統(tǒng)來說,10min這樣一個交易時間是比較長的。對于跨國交易來說,這個時間反而大大縮短了交易時間,減少了相應(yīng)成本。

?

4.BTC系統(tǒng)如何調(diào)整挖礦難度:

BTC協(xié)議中規(guī)定,每隔2016個區(qū)塊需要調(diào)整一次難度。

實際實際比較長,target會比較大,相應(yīng)的挖礦難度會降低。

上調(diào)和下調(diào)都是有4倍的限制。例如:(正常2個星期),實際最近2016個區(qū)塊出塊時間>8個星期,按8個星期計算;<0.5個星期,按0.5個星期計算。防止網(wǎng)絡(luò)中出現(xiàn)黑天鵝事件。

?

5.如何讓所有礦工都愿意調(diào)整這個挖礦難度呢?

調(diào)整算法已寫入代碼,若有惡意節(jié)點故意不調(diào),其產(chǎn)生的區(qū)塊不會承認。

在block header中有一個nbits的域,它是對target的編碼存儲(target為256位,nbits為32位,block header并未直接存儲target),其他節(jié)點在進行合法性驗證時候會驗證nbits域是否合法,不合法則對該區(qū)塊不予以承認。


比特幣系統(tǒng)中的實際情況:



08-BTC-挖礦

在挖礦過程中,如果監(jiān)聽到別人已經(jīng)挖出區(qū)塊延申了最長合法鏈,應(yīng)立刻放棄當(dāng)前區(qū)塊,在本地重新組裝一個指向最后這個新合法區(qū)塊的候選區(qū)塊,重新開始挖礦。挖礦本身具有無記憶性,前面無論挖多久,對后續(xù)繼續(xù)挖礦沒有影響。

?

比特幣系統(tǒng)如何安全性?

密碼學(xué):沒有私鑰,無法偽造簽名,無法轉(zhuǎn)走賬戶上BTC。(前提:系統(tǒng)中大多數(shù)算力掌握在好人手中)

共識機制:保證了惡意交易不被系統(tǒng)承認。


挖礦設(shè)備:

經(jīng)歷了三個過程,總體趨勢從通用到越來越專用。

普通CPU ?GPU ?ASIC芯片(application?specific?indergrated?circuit)(挖礦專用礦機)

?

CPU:挖礦本身就是計算,挖礦過程中大多數(shù)內(nèi)存、硬盤、CPU中大多數(shù)部件(用到指令較少)等都是閑置的。隨著挖礦難度提高,用通用計算機挖礦很快變得無利可圖。


第二代——GPU(主要用于大規(guī)模并行計算,如:深度學(xué)習(xí))。仍有浪費(如:挖礦過程只使用整數(shù)操作,根本不會用到浮點數(shù)運算部件)。

GPU價格上漲,僅僅是深度學(xué)習(xí)火熱導(dǎo)致的嗎?實際上,很多GPU被用于了挖礦。

?

第三代設(shè)備:ASIC芯片,專門為挖礦設(shè)計,只能用于特定幣種的挖礦。

但ASIC芯片設(shè)計、流片流程很長,假如BTC價格劇烈變化,前期投入很可能會血本無歸。所以,ASIC芯片需要提前預(yù)訂。假如BTC系統(tǒng)中,算力突然很猛烈增加,一般是一個大的廠商生產(chǎn)出新的ASIC礦機。

ASIC芯片只能用于挖礦,一旦其過時,便完全作廢。

?

思考:ASIC芯片的出現(xiàn)是好事嗎?

ASIC芯片并不是普通人可以參與的,一定程度上提升了挖礦的門檻,違背了比特幣系統(tǒng)去中心化的初衷。后續(xù)有一些貨幣便考慮到了這個問題,設(shè)計了抗ASIC芯片化的解決方案紹。

如果大家都用ASIC礦機挖礦,有人想要顛覆BTC系統(tǒng),必然會導(dǎo)致BTC價格跳水, ASIC礦機作廢,投入成本血本無歸。所以,很多人反倒認為ASIC芯片出現(xiàn),一定程度上并不是壞事。

?

大型礦池:

單個礦工的算力在整個系統(tǒng)中只占據(jù)很少一部分,有利可圖,但收入很不穩(wěn)定。還要承擔(dān)全節(jié)點其他責(zé)任,造成了算力的消耗。

?

礦池,通常是一個全節(jié)點驅(qū)動多臺礦機。礦工只需要不停計算哈希值,而全節(jié)點其他職責(zé)由礦主來承擔(dān)。ASIC芯片只能計算哈希值,不能實現(xiàn)全節(jié)點其他功能。

當(dāng)獲得收益后,所有礦工對收益進行分配,從而保證了收益的穩(wěn)定性。

礦池一般具有兩種組織形式:

類似大型數(shù)據(jù)中心(同一機構(gòu)),集中成千上萬礦機進行哈希計算。

分布式。礦工與礦主不認識(不同機構(gòu)),礦工與礦主聯(lián)系,自愿加入其礦池,礦主分配任務(wù),礦工進行計算,獲得收益后整個礦池中所有礦工進行利益分配。

?

礦池利益分配方法:

平均分配:

需要進行按勞分配,需要一個工作量證明的方案。如何證明每個礦工所作的工作量呢?

?

降低挖礦難度(可行方案):

假設(shè)原本挖礦難度要求,計算所得126位的哈希值前70位都必須為0,現(xiàn)在降低要求,只需要前60位為0。當(dāng)然,這個哈希是不會被區(qū)塊鏈所承認的,我們將其稱為一個share,或almost valid share。礦工每挖到一個share,將其提交給礦主,礦主對其進行記錄,作為礦工工作量的證明。等到某個礦工真正挖到符合要求的的區(qū)塊后,根據(jù)所有礦工提交的share數(shù)量進行分配。

因為每個礦工嘗試的nonce越多,挖到礦的可能性越大,所能得到的share也會越多,所以這種方案作為工作量證明方案是可行的。

?

?

思考:某個礦工平時正常提交share,但真正挖到區(qū)塊后,自己偷偷發(fā)布出去?

不可能的。因為每個礦工挖礦任務(wù)是礦主分配的。礦主組裝區(qū)塊,交給礦工計算,而區(qū)塊中鑄幣交易的收款人地址是礦主,如果礦工修改該地址,計算的nonce值也會作廢。

?

礦池之間存在競爭關(guān)系。打擊競爭對手,派出礦機加入競爭對手礦池挖礦,搞破壞。只參與其他礦工挖礦分紅,自己挖到的區(qū)塊卻丟掉不給他人分。

?

礦池本身對BTC系統(tǒng)帶來了較大威脅。某個惡意用戶如果想發(fā)動攻擊,只需要作為礦主,夠吸引到足夠多的不明真相的礦工,便可以用較低成本實現(xiàn)51攻擊。

礦主經(jīng)驗管理礦池,也需要收取一定比例(出塊獎勵、交易費)作為管理費用。如果惡意者想要攻擊系統(tǒng),會將管理費降低甚至賠本吸引足夠多礦工加入。這便使得發(fā)動51%攻擊變得容易了起來。

?

51%算力礦池可以發(fā)動哪些攻擊

分叉攻擊 forking?attack

對已經(jīng)過6次確認的交易分叉,利用51%算力將交易記錄回滾。

礦工只能計算哈希值,并不知道區(qū)塊包含哪些交易,區(qū)塊鏈狀況是什么,容易被利用。

51%攻擊只是一個概率問題,并非達到51%算力就能發(fā)動攻擊,不能達到就無法發(fā)動攻擊。礦池本身算力也是在不斷變化的。

?

封鎖交易Boycott

假如攻擊者不想讓A的交易上區(qū)塊鏈,在監(jiān)聽到有其他人將A的交易發(fā)布到區(qū)塊鏈上時,立刻發(fā)動分叉攻擊,使A所在鏈無法成為”最長合法鏈“。便實現(xiàn)了對A賬戶的封鎖。

?

盜幣(將他人賬戶BTC轉(zhuǎn)走)

不可能,因為沒有他人賬戶私鑰。強行發(fā)布,也不會被認可。

?

礦池出現(xiàn)的優(yōu)劣:

優(yōu)點:解決了礦工收入不穩(wěn)定的問題,減輕了礦工的負擔(dān)。

缺點:威脅到了區(qū)塊鏈系統(tǒng)的安全,使得51%攻擊變得容易起來。

?

09-BTC-腳本

比特幣系統(tǒng)中使用的語言很簡單,唯一可以訪問的內(nèi)存空間只有,被稱為“基于棧的語言”

如果存在一個交易有多個輸入,那么每個輸入都要說明幣的來源并給出簽名(BTC中一個交易可能需要多個簽名)



B→C的交易中的txid和vout是指向A→B這個交易。

圖為腳本執(zhí)行流程。先執(zhí)行input script,若無出錯,再執(zhí)行output script。

若腳本能順利執(zhí)行,棧頂結(jié)果為非零值(true),則驗證通過,交易合法;否則交易非法。

如果一個交易有多個輸入腳本,則每個輸入腳本都要和對應(yīng)的輸出腳本匹配執(zhí)行,全部驗證通過才能說明該交易合法。

?

?

輸入輸出腳本的形式:

1. P2PK(Pay to Public Key)

(1)腳本內(nèi)容

特點:輸出腳本中直接給出收款人的公鑰。

(2)腳本執(zhí)行

(3)實例

助理解【自編】:



2. P2PKH(Pay to Public Key Hash【最常用】

(1)腳本內(nèi)容

輸出腳本給出公鑰的哈希值,輸出腳本中其他還有一些為了驗證簽名正確性的操作。

輸入腳本給出簽名、公鑰。

?(2)腳本執(zhí)行

助理解【自編】:


3.P2SH(Pay to Script Hash)

(1)腳本內(nèi)容

最復(fù)雜。輸出腳本給出的是收款人提供的贖回腳本(Redeem Script)的哈希。相應(yīng)交易的輸入腳本要給出贖回腳本的具體內(nèi)容,和能讓贖回腳本能正確運行所需要的簽名

input script要給出一些數(shù)目不定的簽名及一段序列化的Redeem Script(贖回腳本)。驗證分兩步:

?驗證redeemScript和redeemScriptHash是否匹配

?將贖回腳本的內(nèi)容當(dāng)作操作指令執(zhí)行,看能否順利執(zhí)行。

?

(2)?用P2SH實現(xiàn)P2PK的功能

執(zhí)行過程:

把輸入腳本和輸出腳本拼接到一起,前兩行來自輸入腳本,后面三行來自于輸出腳本。

將第一階段輸入腳本中提供的序列化的贖回腳本進行反序列化,這個反序列操作,在代碼部分沒有展現(xiàn)出來,這個是每個節(jié)點需要自己完成的,然后再執(zhí)行贖回腳本。


助理解【自編】:


多重簽名

該方法通過CHECKMULTISIG來實現(xiàn),其中輸入腳本提供M個簽名,輸出腳本給出N個公鑰和閾值M,表示N個人至少有M個簽名即可實現(xiàn)轉(zhuǎn)賬(N>=M)。輸入腳本只需要提供N個公鑰中M個合法簽名即可?!窘o出的M個簽名順序要和N個公鑰中相對順序一致】

X,是CHECKMULTISIG的實現(xiàn)存在一個bug,執(zhí)行時會從堆棧上多彈出一個元素。這個bug現(xiàn)在已經(jīng)無法修改(去中心化系統(tǒng)中軟件升級代價極大,需要硬分叉修改)。實際采用的方案是往棧中多壓入一個無用元素。


一個特殊的腳本

該方法是銷毀比特幣的一種方法。

Q:為什么要銷毀比特幣?

①部分小幣種(AltCoin)要求銷毀部分比特幣才能得到。

②往區(qū)塊鏈中寫入內(nèi)容。區(qū)塊鏈?zhǔn)遣豢纱鄹牡馁~本,有人(任何人)便利用該特性往其中添加想要永久保存的內(nèi)容。例如:股票預(yù)測情況的哈希、知識產(chǎn)權(quán)保護——知識產(chǎn)權(quán)的哈希值。

?

Q:在鑄幣交易中,有一個CoinBase域,其中便可以寫入任何內(nèi)容。那么為什么不使用這種方法呢,不需要銷毀BTC,可以直接寫入。

因為這種方法只有獲得記賬權(quán)的節(jié)點才可以寫入內(nèi)容?!?strong>發(fā)布交易不需要有記賬權(quán),發(fā)布區(qū)塊需要有記賬權(quán)】

任何用戶都可以使用這種方法,通過銷毀很小一部分比特幣,換取向區(qū)塊鏈中寫入數(shù)據(jù)的機會。實際上,很多交易并未銷毀BTC,而是支付了交易費。

例如下圖為一個鑄幣交易,其包含兩個交易,第二個交易便是僅僅想要往其中寫入內(nèi)容。



10-BTC-分叉

硬分叉hard fork:必須系統(tǒng)中所有節(jié)點新軟件,系統(tǒng)才不會產(chǎn)生永久性分叉

對比特幣協(xié)議增加新協(xié)議,擴展新功能,未升級軟件的舊節(jié)點會不認可這些修改,會認為這些特性是非法的。這也就是對比特幣協(xié)議內(nèi)容產(chǎn)生分歧,從而導(dǎo)致分叉。

在BTC系統(tǒng)中,區(qū)塊大小最大為1MB,可以包含的交易最大數(shù)量為4000筆左右。而一個區(qū)塊產(chǎn)生大概需要10min左右。平均每10分鐘最多只能處理4000筆交易(平均每秒7筆交易),嚴(yán)重影響吞吐率和交易處理(上鏈)時間(交易太多,無法寫入只能等待下一個區(qū)塊)。


假設(shè)系統(tǒng)中大多數(shù)節(jié)點更新了軟件,少數(shù)節(jié)點仍然遵從1MB限制的協(xié)議(注意,這里大多數(shù)和少數(shù)是按照算力來區(qū)分的,和賬戶數(shù)量無關(guān))。即:新節(jié)點認為區(qū)塊大小最大4MB,舊節(jié)點認為區(qū)塊大小最大1MB,且新節(jié)點占據(jù)大多數(shù)。

設(shè)1為當(dāng)前區(qū)塊鏈,有一個新節(jié)點挖出了一個區(qū)塊如2。舊節(jié)點認為該區(qū)塊為一個非法區(qū)塊,不會認可,仍然從其前一個區(qū)塊開始挖礦,如3。舊節(jié)點挖出的區(qū)塊,新節(jié)點是認可的(并未超過4MB限制),所以對舊節(jié)點來說,3下面的鏈才是合法鏈,而對新節(jié)點來說,這兩條鏈都是合法的鏈。因為新節(jié)點算力強,所以出現(xiàn)4中情況可能性大。對于新節(jié)點來說,上面的為最長合法鏈,新節(jié)點便都會沿著上面的鏈繼續(xù)挖;舊節(jié)點就會沿著下面的鏈繼續(xù)挖礦。

由于新節(jié)點算力足夠強,所以形成兩條永遠都在延伸且平行的鏈??梢?,這種分叉是持久性的。只要這部分舊節(jié)點永遠不更新軟件,下面的鏈便永遠不會消失。

?

①BTC社區(qū)中有些人很保守,不愿意加大區(qū)塊大小

②區(qū)塊大小并非越大越好,比特幣網(wǎng)絡(luò)傳輸為"盡力而為",區(qū)塊加大會造成傳輸變慢等問題。

③單純增加區(qū)塊大小,對交易數(shù)量的增加遠不能達到數(shù)量級的提升。

?

目前看到的以太坊ETH已經(jīng)不是最初的ETH了,以太坊在歷史上發(fā)生過硬分叉,另一個鏈稱為ETC。ETC才是以太坊設(shè)計原本的協(xié)議,而ETH是黑客攻擊ETH上一個智能合約THE DAO后進行回滾的協(xié)議鏈(將黑客攻擊偷取的以太幣采用硬分叉方式回滾回到另一智能合約,然后退還給真正擁有者)。

但是這次硬分叉的后果,由于有人不愿意這么做,造成了以太坊社區(qū)的分裂。實際上,雖然ETC不如ETH有名,但實際它也是目前一種主流貨幣。

分叉之初,由于兩個鏈分叉造成了互相影響,產(chǎn)生了很多麻煩。比如:在ETH鏈上有一筆轉(zhuǎn)賬B->C,有人便在ETC鏈上回放,將ETC鏈上的貨幣也轉(zhuǎn)給了C(C收到兩筆錢)。 后來,對兩條鏈各添加了一個chainID,將兩個鏈區(qū)分開,才使得這兩條鏈真正分開。

?

?

?

軟分叉soft fork:只要系統(tǒng)中擁有半數(shù)以上算力節(jié)點更新軟件,系統(tǒng)就不會產(chǎn)生永久性分叉

如果對BTC協(xié)議添加限制,使得原本合法交易在新交易中不合法,便會形成軟分叉。


假設(shè)將區(qū)塊大小從1MB減小至0.5MB(實際中,1MB已經(jīng)足夠小,不會調(diào)小了).

由于參數(shù)修改方式不同,有可能會是硬分叉,也有可能是軟分叉。

假設(shè)系統(tǒng)中大多數(shù)節(jié)點更新了軟件,少數(shù)節(jié)點仍然遵從1MB限制的協(xié)議。即:新節(jié)點認為區(qū)塊大小最大0.5MB,舊節(jié)點認為區(qū)塊大小最大1MB,且新節(jié)點占據(jù)大多數(shù)。

設(shè)1為當(dāng)前區(qū)塊鏈,此時軟件更新,有一個新節(jié)點挖出了一個區(qū)塊如2。但對于舊節(jié)點來說,該區(qū)塊符合1MB大小限制,舊節(jié)點對其認可,從而舊節(jié)點會沿著該新的小區(qū)塊開始挖礦,如3但是新節(jié)點會認為該舊節(jié)點挖出區(qū)塊超過0.5MB限制,為一個非法區(qū)塊,不會認可該區(qū)塊,會從其前一個小區(qū)塊開始挖礦。如4所示。而舊節(jié)點認可新區(qū)塊,最終會造成5中的效果(綠色大節(jié)點為舊節(jié)點),舊節(jié)點挖出的區(qū)塊一直被拋棄,無法得到出塊獎勵(不在最長合法鏈上)。這就倒逼舊節(jié)點升級軟件,最終會實現(xiàn)區(qū)塊鏈上的所有礦工共同認可新協(xié)議,實現(xiàn)軟件協(xié)議的升級。

舊節(jié)點如果不升級軟件,挖出的區(qū)塊可能就白挖了(大于0.5MB),但對于系統(tǒng)來說,不會存在永久性分叉


系統(tǒng)中可能出現(xiàn)軟分叉的情況及其實例

給某些目前協(xié)議中未規(guī)定的域賦予新的含義或規(guī)則。

鑄幣交易中CoinBase域。在CoinBase域中寫入任何內(nèi)容都可以。挖礦本質(zhì)是調(diào)整block header中的nonce,但其只有4個字節(jié),搜索空間太小。所以實際使用中,將CoinBase域前8個字節(jié)作為另一個extra nonce,此時搜索空間從原本2^32 增長到2^96,對于目前挖礦難度來說已經(jīng)足夠。

但CoinBase中并不是只有8個字節(jié),還剩下很多空間。有人便提出將其作為UTXO集合的根哈希值。目前UTXO是全節(jié)點自己在本地為了方便查詢自行維護的,但UTXO內(nèi)容并未寫入?yún)^(qū)塊鏈(還記得Merkle proof嗎?Merkle proof用于驗證某個交易是否在區(qū)塊中,Merkle proof的交易信息是寫入?yún)^(qū)塊鏈的。)

由于UTXO存在本地,如果查詢某賬戶余額,輕節(jié)點便需要詢問全節(jié)點,全節(jié)點根據(jù)UTXO中信息可以計算得到賬戶余額,但如何確保全節(jié)點給的數(shù)據(jù)可信?由于直接修改block header會造成硬分叉,有人便提出了以上的方案(該域剛好無人用)。

可以看到,舊節(jié)點認可新節(jié)點的區(qū)塊,但新節(jié)點對于舊節(jié)點CoinBase域檢查時候,發(fā)現(xiàn)沒有這個UTXO的根哈希值,不會認可其發(fā)布的區(qū)塊,所以這是軟分叉。

?

P2SH:Pay to Script Hash

最初比特幣版本中沒有該功能,后來通過軟分叉方法加入了進去。

?


肖臻區(qū)塊鏈b站網(wǎng)課筆記——06-10的評論 (共 條)

使用qq登录你需要登录后才可以评论。
嘉定区| 封丘县| 长海县| 宜君县| 鞍山市| 麻城市| 玛沁县| 屯门区| 云南省| 肥西县| 大理市| 抚远县| 鄂州市| 大田县| 浏阳市| 新晃| 尖扎县| 义马市| 澄迈县| 南平市| 汝阳县| 杭锦后旗| 上饶县| 黑龙江省| 札达县| 房山区| 江川县| 汕头市| 莱州市| 柘城县| 嘉鱼县| 宾川县| 嘉定区| 蛟河市| 商水县| 扬州市| 靖西县| 九龙城区| 天水市| 白水县| 兖州市|