精品欧美无遮挡一区二区三区在线观看,中文字幕一区二区日韩欧美,久久久久国色αv免费观看,亚洲熟女乱综合一区二区三区

        ? 首頁 ? 百科知識 ?簡化支付驗證節(jié)點

        簡化支付驗證節(jié)點

        時間:2023-07-17 百科知識 版權(quán)反饋
        【摘要】:不是所有節(jié)點都有能力存儲完整區(qū)塊鏈。SPV節(jié)點使用一套稍有不同的方法驗證交易,這種方法依賴對等節(jié)點按需提供相關(guān)區(qū)塊鏈的局部視圖。完全區(qū)塊鏈節(jié)點通過檢查區(qū)塊鏈中交易所在區(qū)塊以下的所有區(qū)塊來驗證交易,確保UTXO尚未被使用,SPV節(jié)點則通過計算交易所在區(qū)塊之上的區(qū)塊數(shù)量,來檢查交易被埋了多深。

        不是所有節(jié)點都有能力存儲完整區(qū)塊鏈。很多比特幣客戶端是用來在空間、性能均有限的設(shè)備上運行的,比如在智能電話、平板電腦或嵌入式系統(tǒng)上運行。對于這些設(shè)備來說,SPV方法可以保證它們在不保存全量區(qū)塊鏈的情況下也能正常運行。這些類型的客戶端被稱為SPV客戶端或者輕量級客戶端。隨著比特幣的應(yīng)用越來越廣泛,SPV節(jié)點已逐漸成為比特幣節(jié)點的最常見形式,尤其是比特幣錢包。

        SPV節(jié)點只需要下載區(qū)塊頭,而不用下載每個區(qū)塊中的交易。這種不帶交易的區(qū)塊鏈,其大小要比完全區(qū)塊鏈小1000倍。SPV節(jié)點不能全景展示所有可花費UTXO的完整視圖,因為它們并不了解網(wǎng)絡(luò)上的所有交易。SPV節(jié)點使用一套稍有不同的方法驗證交易,這種方法依賴對等節(jié)點按需提供相關(guān)區(qū)塊鏈的局部視圖。

        作為類比,完全節(jié)點就像一個處在陌生城市但帶了一張包含所有街道、所有地址的詳細地圖的游客,而SPV節(jié)點就像另一個同在陌生城市的游客,但他只知道一條主干道,通過隨機詢問陌生人來進行路線規(guī)劃。雖然兩個游客都能通過實地考察驗證街道是否存在,但沒有地圖的游客不知道每條小巷中有些什么,也不知道附近還有其他什么街道。站在教堂街23號前,沒有地圖的游客無法知道這個城市是否還有其他“教堂街23號”的地址,也不知道這個地方是不是就是自己要找的那個。對于沒有地圖的游客來說,最好的辦法就是詢問足夠多的人,并希望不會遭到搶劫。

        簡化支付驗證通過引用交易在區(qū)塊鏈中的深度(depth)而不是它們的高度(height)來驗證交易。完全區(qū)塊鏈節(jié)點則創(chuàng)建一條完整的、驗證過的區(qū)塊鏈,這條鏈由區(qū)塊和交易組成,并按時間倒序一直延伸到創(chuàng)世區(qū)塊。一個SPV節(jié)點會驗證所有區(qū)塊的鏈(但不是所有的交易),并且把鏈和有關(guān)感興趣的交易進行關(guān)聯(lián)。

        比如,當檢查區(qū)塊300000中的某個交易時,完全節(jié)點將300000個區(qū)塊連接在一起,直到創(chuàng)世區(qū)塊,由此構(gòu)建了一個完整的UTXO數(shù)據(jù)庫,通過驗證UTXO未被花費,來確定交易的有效性。SPV節(jié)點無法確定UTXO是否已被花費,不能直接判斷UTXO的有效性,因此SPV節(jié)點采用的驗證方法不同。首先,利用墨克爾路徑(merkle path)(參見第7章中“默克爾樹”)建立交易和包含這筆交易的區(qū)塊間的關(guān)聯(lián)關(guān)系。然后,SPV節(jié)點一直等到序號從300001到300006的6個區(qū)塊堆疊在該交易所在的區(qū)塊之上,并通過確定交易的深度是在第300006區(qū)塊到第300001區(qū)塊之下,來驗證交易的有效性。事實上,網(wǎng)絡(luò)上的其他節(jié)點接受了區(qū)塊300000,并在其上創(chuàng)建了額外的6個區(qū)塊,根據(jù)代理協(xié)議,就可以證明交易不是一個雙重支付交易。

        當交易不存在時,SPV節(jié)點不會誤認為交易在區(qū)塊中存在。它通過請求默克爾路徑證明,驗證區(qū)塊鏈中的工作量證明來確保交易存在于區(qū)塊中。但是,交易存在性可以對SPV節(jié)點進行“隱藏”。SPV節(jié)點可以明確證明交易的存在性,但無法驗證一個交易(比如同一個UTXO的雙重支付交易)是不存在的,因為這類節(jié)點沒有保存全部交易的記錄。這個弱點可被用于針對SPV節(jié)點的拒絕服務(wù)攻擊或雙重支付攻擊。為了防范這類攻擊,SPV節(jié)點需要隨機連接幾個節(jié)點,以確保至少與一個誠實節(jié)點保持聯(lián)系。這種隨機連接需求意味著,當SPV節(jié)點只到虛假節(jié)點或虛假網(wǎng)絡(luò)的連接,而沒有到誠實節(jié)點或真實比特幣網(wǎng)絡(luò)的連接時,它們?nèi)匀皇蔷W(wǎng)絡(luò)分區(qū)攻擊或女巫攻擊的脆弱環(huán)節(jié)。

        對于大多數(shù)實際應(yīng)用來說,只要能確保與網(wǎng)絡(luò)保持良好連接,SPV節(jié)點就是足夠安全的,這很好地平衡了資源、實用性和安全性的需求。若需要保證絕對安全性,那就只能選用完全區(qū)塊鏈節(jié)點,完全節(jié)點相比SPV節(jié)點要更加安全。

        1完全區(qū)塊鏈節(jié)點通過檢查區(qū)塊鏈中交易所在區(qū)塊以下的所有區(qū)塊來驗證交易,確保UTXO尚未被使用,SPV節(jié)點則通過計算交易所在區(qū)塊之上的區(qū)塊數(shù)量,來檢查交易被埋了多深。

        為了獲取區(qū)塊頭,SPV節(jié)點使用getheaders請求消息來取代getblocks消息。收到請求的對等節(jié)點使用headers消息發(fā)送區(qū)塊頭,一次最多發(fā)送2000個區(qū)塊頭。這與完全節(jié)點獲取完全區(qū)塊的過程是一樣的。SPV節(jié)點在與對等節(jié)點連接的鏈路上設(shè)置一個過濾器,過濾對等節(jié)點發(fā)送來的區(qū)塊和交易數(shù)據(jù)流。對于感興趣的交易,則使用getdata請求進行獲取。對等節(jié)點生成一個包含交易的tx消息作為應(yīng)答。圖6.7展示了區(qū)塊頭的同步過程。

        圖6.7 SPV節(jié)點同步區(qū)塊頭

        因為SPV節(jié)點需要獲取特定的交易以有選擇地驗證交易,這就給隱私帶來了威脅。不像完全區(qū)塊鏈節(jié)點收集每個區(qū)塊中的所有交易,SPV節(jié)點對特定數(shù)據(jù)的請求,會無意中泄露它們錢包中的地址。比如,第三方通過持續(xù)監(jiān)視網(wǎng)絡(luò),就可以跟蹤一個SPV節(jié)點錢包發(fā)送的所有交易請求,從而將這些請求與用戶錢包的比特幣地址進行關(guān)聯(lián),達到侵犯用戶隱私的目的。

        SPV節(jié)點被引入不久,開發(fā)者又新增了一個叫作布隆過濾器(bloom filters)的功能,用以處理SPV節(jié)點的隱私問題。布隆過濾器通過概率而不是固定匹配模式的機制,使SPV節(jié)點可以接收交易子集而不用暴露確切的感興趣地址。

        免責聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。

        我要反饋