以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > LTC > Info

BOB:是誰控制了比特幣,是你?還是錢包?BTC地址與交易原理大剖析

Author:

Time:1900/1/1 0:00:00

編者按:本文來自安比實驗室,作者:安比實驗室,星球日報經授權發布。回到這一節的問題:為什么說比特幣從未實現真正意義上的轉賬功能。答案很簡單,因為比特幣系統中根本就不存在賬戶的概念,賬戶之間的轉賬也無從談起。一個人能在未來打開多少個保險箱,也是未知數。通過上面的解釋,我們可知:當pywallet開源庫誤將1-地址識別為3-地址時,就好像將原本的1-類保險箱改造成了3-類保險箱,而賬戶持有者還是拿著1-類保險箱的鑰匙去解鎖,那么自然無法打開保險箱。那么之前zer0to0ne發現的被誤鎖住的OmniLayer數字資產是否能恢復?是否存在一種可能性,采用1-地址的鑰匙去開啟3-保險箱?zer0to0ne接著向我們詳細解釋了兩個重要概念P2PKH與P2SH的來龍去脈。這兩個名詞分別代表了兩種不同的比特幣交易類型。下面是zer0to0ne的精彩技術細節分析P2PKH——中本聰的偉大發明

PaytoPublicKeyHash顧名思義,是將比特幣放入一個保險箱,鑰匙孔為公鑰Hash。我們最常見到的1-地址本質上就是PublicKeyHash的一種編碼。1-地址的生成過程也很簡單,將公鑰經過Hash160運算得到PublicKeyHash,在PublicKeyHash頭部補上前綴0x00,Hash尾部補上校驗和,經過Base58便得到了1開頭的比特幣地址。Base58(0x00+<PublicKeyHash>+Checksum)我們來看看P2PKH交易類型的保險箱構造過程,Alice發送比特幣給Bob為例:付款方Alice在構造保險箱的時候需要設置一個鎖定腳本:OP_DUPOP_HASH160(Bob收款地址蘊含的PublicKeyHash)OP_EQUALVERIFYOP_CHECKSIG注:我們可以把這一步理解為Alice為Bob定制了一個保險箱,把比特幣放入保險箱并用Bob的公鑰PubKeyHash上鎖。現在這把鎖除了持有私鑰的Bob,誰都無法打開。當Bob需要花費Alice給他的比特幣時,需要提供必要的參數:交易簽名+公鑰來開啟保險箱,使得鎖定腳本執行后返回True,這一步通常由錢包自動完成。我們來看看比特幣節點是如何校驗scriptSig合法性的。

數據:幣安總資產并無明顯減少,主要因加密貨幣價格下跌導致過去一周減少約13%:6月11日消息,據 Lookonchain 監測,根據幣安公開地址,總資產并沒有明顯減少。過去一周,幣安總資產減少約 13%,這主要是由于加密貨幣價格下跌導致的。大多數資產在過去 7 天下跌了 6% 至 38%。0x66b8 基金在過去 14 小時一直從幣安存入并提取穩定幣,似乎在從事某種套利活動,總共交易 1.13 億美元穩定幣。[2023/6/11 21:29:20]

腳本執行過程如圖所示,Bob將交易簽名后得到的數據,真正的scriptSig應該為<siglen><sig><pubKeylen><pubKey>,比特幣腳本執行器從PUSH數據開始,PUSH操作會讀取第一個字節獲取將要入棧的數據長度信息,然后持續執行比特幣腳本,直到最后執行完畢檢查執行結果。首先入棧的是<sig>,然后將<PubK>入棧,一次DUP操作將在棧頂復制一份<PubK>,HASH160彈出棧頂的并計算Hash,將結果壓回棧中,之后使用EQUALVERIFY彈出Hash對比是否合相等,如果相等則返回True,不相等便標記交易為無效。執行到這一步,暴露了公鑰,確保了簽名者的身份的正確性,但是黑客或礦工可以通過暴露的公鑰構造出一個新的交易替換原始交易,無法保證安全,那么便需要下一步來保證交易無法偽造。此時棧上還有<PubK>和<sig>,執行CHECKSIG,將校驗數字簽名的正確性,確保了簽名者擁有地址對應的私鑰。數字簽名除了持有私鑰的人,誰也無法偽造,執行至此,一筆比特幣P2PKH交易已經安全地完成了。再解釋一遍:當Bob要花費Alice給他的比特幣時,Bob只有用正確的鑰匙才能打開Alice留給他的保險箱,把錢放入Bob新構造的一個保險箱里。這時候一些聰明的讀者會注意到一個細節:如果Bob取出鑰匙,在還未打開保險箱的時刻,區塊鏈上的任何礦工都能看得見這把鑰匙的形狀,理論上他們是可以立即復制一把鑰匙,把Alice留給Bob的保險箱打開并花掉。真的可以這樣做嗎?顯然中本聰考慮了這個問題,這把鑰匙中的交易簽名是Bob發起的交易的完整簽名。假設Bob要將Alice構造的保險箱中的比特幣裝入一個新的保險箱,這時候Bob出示的鑰匙包含了Charlie的公鑰Hash,礦工雖然可以復制Bob的鑰匙,但是這把鑰匙已經隱藏了下一個新保險箱的關鍵信息,因此礦工無法使用這個復制鑰匙來完成別的動作。P2SH——后中本聰時代的重大創新

YGG、Magic Eden等四家公司成立Web3 Games Collective以支持鏈游發展:金色財經報道,Yield Guild Games(YGG)、Game7、Magic Eden 和 Fenix Games 成立Web3 Games Collective以推動鏈游發展,并在投資、開發、生態合作等方面給予支持。[2023/3/24 13:25:14]

中本聰設計了一個這么強大的腳本系統,只用來構造轉賬交易似乎太浪費了,我們試試用其他指令構造一些特別的鎖定腳本,并使用其他方式來解鎖。例如我們可以構造一個用Hash原象來解鎖交易的腳本:OP_HASH160<Hash>OP_EQUAL這個腳本的含義是:當滿足Hash160(Pre-image)==<Hash>這個條件時,便可成功將腳本解鎖。我們繼續通過保險箱的例子來解釋,并給這類保險箱起名為3-類保險箱。現在Alice給Bob的比特幣鎖定在一個由上述Hash160保護的保險箱里,我們姑且稱之為哈希鎖吧。這把鎖依然需要正確的形狀才能開啟,但是安全性卻弱很多,缺少數字簽名機制導致鑰匙隱藏的關鍵信息不會隨著Bob新建的保險箱而變化。任何礦工都能在Bob亮出鑰匙的一瞬間復制出一摸一樣的鑰匙,搶著去開Alice留給Bob的保險箱,將幣轉給另一個人Eve,于是原本屬于Bob的比特幣會被洗劫一空。雖然這個腳本非常不安全,但是它卻有兩個非常神奇的功能:1.交易構造的輸出足夠短,意味著比特幣節點維護的UTXO緩存占用空間將會大大減小2.Pre-image總是在交易被花費時作為input來引用,不會在交易的output側出現,UTXO依然保持精簡,同時可以把手續費負擔轉嫁給接收方。既然所述的輸出腳本好處很多,那我們是否有辦法讓這種交易方式變得安全呢?這就需要講講什么是P2SH了。比特幣核心開發者GavinAdresen提出了一種叫做PaytoScriptHash(P2SH)的技術。P2SH的交易輸出依然是判斷Hash160(Script)==<ScriptHash>,這里Script就是上文中提到的Pre-image但是在判斷完畢后又增加了一個步驟:使用比特幣腳本執行器再次運行Script本身。比特幣開發者為這類交易創建了特殊的地址,用3作為開頭,地址生成規則為:Base58(0x05+<ScriptHash>+Checksum)這樣事情就變得有趣了,在前P2SH時代Script僅僅作為Hash160的原象存在,但是一旦激活了P2SH,Script必須要求是一段有意義、可執行的比特幣腳本。我們可以在Script中加入數字簽名檢查的指令,或者多重簽名檢查功能,甚至智能合約都可以在P2SH的基礎上進行開發,既使用了強大的比特幣腳本,又能讓交易保持精簡。并且由于P2SH交易地址中只存有ScriptHash,相當于保險箱上只有Hash。在交易被成功花費之前,任何人都無法知曉Script內容,很好的保護了隱私。P2SH在2012年4月1日激活,開啟了比特幣的P2SH時代現在全世界的3-類保險箱經過了升級,再也不怕鑰匙被復制了,因為保險箱的鑰匙會內置芯片。升級后的保險箱除了能夠校驗鑰匙形狀,更能讀取鑰匙中內置的芯片的數據,芯片中的內容會影響鑰匙的形狀。Bob制作了一個能夠校驗鑰匙芯片中數字簽名的保險箱,讓Alice把錢放進這個保險箱然后鎖起來。Bob開啟保險箱的鑰匙形狀雖然可以被復制,但是這把鑰匙內置了芯片,芯片中可以包含各種高級約束條件,保證鑰匙不會被越權濫用。保險箱會在校驗完形狀后,會執行鑰匙芯片內的程序查有效性,只有兩個檢查都通過才能開啟保險箱。被鎖死的幣是否有挽回可能

Tether在波場網絡上新增10億枚USDT(已授權未發行):9月15日消息,據Whale Alert數據,Tether在波場網絡上新增印鈔10億枚USDT。

對此,Tether首席技術官Paolo Ardoino表示,波場網絡補充了10億枚USDT的庫存。這是一筆已授權但未發行的交易,意味著該金額將用作下一次發行請求和鏈互換的庫存。[2022/9/15 6:59:29]

再回到開頭的那個問題,zer0to0ne遇到的錢包錯誤鎖死資產的事故,能否采用1-地址的鑰匙去開啟3-保險箱,挽救保險箱中的資產呢?這個問題可以解釋為:Alice按照Bob的要求制作了一個3-類保險箱,但是這個保險箱是被pywallet錯誤修改的,實際上Bob的本意是需要一個1-類保險箱,因為Bob手里只有一個1-類保險箱的鑰匙。當Bob請求Alice把比特幣鎖定到3-類保險箱時,這個保險箱就需要同時校驗鑰匙形狀和鑰匙芯片內容了,但是Bob的1-類保險箱的鑰匙形狀是PublicKey決定的,在保險箱誤變為3-類保險箱后,鑰匙形狀校驗卻沒有改變,也沒有相應的鑰匙芯片內容。Bob嘗試在鑰匙芯片中寫入PublicKey,使得鑰匙形狀和鎖匹配,但是芯片中的PublicKey卻無法被保險箱正確執行,所以Bob可能再也無法將他的比特幣從保險箱中解鎖了。SegWit——全新時代來臨

比特幣開核心發者EricLombrozo,JohnsonLau,PieterWuille提出來了一種全新的概念,隔離見證。這是一種有效緩解比特幣區塊擁堵的技術,并且徹底解決了交易延展性問題。在SegWit升級之前,每一個用完的鑰匙都插在保險箱上,鑰匙占據了一定的體積導致倉庫無法密集堆積這些用完的保險箱,總是要為了露在外面一大截的鑰匙騰空間。那我們想想能不能把鑰匙體積減小,并且用足夠廉價的材料來制作,節約成本。于是便有了隔離見證,它干脆直接把鎖從保險箱上移走,變成一個遠程無線校驗的保險箱,用戶可以把鑰匙統一插在遠離保險箱的地方來遠程開啟對應的保險箱。2017年08月24日,SegWit軟分叉被正式激活,結束了曠日持久的礦工開發者對峙為了兼容3-類保險箱,比特幣開發者使用了一種叫做P2SH-P2WPKH的技術,即通過P2SH來包裹P2WPKH交易,讓P2WPKH交易可以騙過不支持SegWit的老舊節點。還有一種類似P2SH包裹的P2WSH技術,在此不多做介紹。我們先來解釋一下P2WPKH是什么:P2WPKH全稱PaytoWitnessPublicKeyHash,相較于P2PKH,P2WPKH把scriptSig移動到交易外部,節省了占用的區塊空間。為了向前兼容未及時升級的比特幣節點,這個P2SH需要如何構造呢?Bob首先產生一個P2PKH地址,從地址中解析出PubKeyHash,然后構造一個這樣的腳本:Script=0x0014+<PubkeyHash>然后計算Script的Hash160得到ScriptHash,構造出一個3地址:Base58(0x05+<ScriptHash>+Checksum)當Alice把幣鎖定到Bob提供的<ScriptHash>中,意味著Bob需要提供正確的Script才能解鎖。Bob通過構造有效的Script通過了Hash160檢查,即成功的通過了鑰匙形狀檢查,并且鑰匙里的程序也能被保險箱正確解析并執行。細心的讀者應該又發現了問題,這個鑰匙卻少了相關安全性約束,很容易被復制,礦工有機會將交易篡改,把幣轉給Eve。但是升級了SegWit之后,支持SegWit的比特幣節點會在校驗P2SH后再額外地校驗Bob的簽名是否正確,數字簽名作為獨立于交易之外的安全約束,不再占用寶貴的區塊空間。zer0to0ne:SegWit為比特幣擴容做出了貢獻的同時,也同時在保持向前兼容性上面付出了一些代價。在原生SegWit交易被廣泛采用之前,使用了混亂的P2SH兼容技術。如果未來比特幣全部統一到bc1-地址,那么就可以徹底避免使用P2SH包裹技術,并且最大限度地利用區塊容量。對三個問題的回復

Curve Finance:已解決網站漏洞,將指導用戶撤銷近期合約:金色財經報道,自動化做市商 Curve Finance 在 Twitter 上警告用戶其網站存在漏洞,不過 curve.exchange 交易所似乎沒有受到攻擊的影響,因為它使用了不同的域名系統 (DNS) 提供商。

Curve指出,DNS 服務器提供商 Iwantmyname 很可能被黑客入侵并補充說他們已經更改了其域名服務器,目前該問題已得到解決,將指導用戶撤銷近期合約。(cointelegraph)[2022/8/10 12:14:34]

比特幣地址有1打頭地址,也有3打頭的地址,你知道這兩者有什么區別嗎?1-地址是用做P2PKH交易的目標地址,而3-地址是用作P2SH,SegWit交易的目標地址。在哪種情況下,地址上的比特幣會被鎖死?假設一個比特幣地址為3-地址,如果世界上沒有人能夠提供一個可以通過Hash160校驗并有效可執行的腳本,那么這個地址上的比特幣會被鎖死。到底是誰擁有比特幣的控制權,是你?還是你在使用的錢包?如果一個比特幣地址為1-地址,那么該地址上的比特幣被鎖在一個1-類保險箱中,擁有私鑰的用戶擁有該地址上的比特幣。這里請注意“擁有私鑰”有兩層含義:自己牢記私鑰,其他人無從知曉。如果一個比特幣地址為3-地址,那么在某個用戶披露一個“解鎖腳本”之前,沒人知道該地址上的比特幣歸屬。因為腳本由錢包來生成的,而用戶只“擁有私鑰”,如果你不知道地址對應的腳本,就相當于交出了地址控制權。腳本的內容才真正決定了比特幣的歸屬。

區塊鏈跨境結算網絡開發商Velo Labs宣布與DeFi平臺EvryNet戰略合并:5月27日消息,基于區塊鏈的跨境結算網絡開發商Velo Labs宣布與DeFi平臺EvryNet戰略合并,溝通打造CeDeFi的未來。據悉,Velo Labs正在開發一個基于區塊鏈、合規優先的全球結算網絡,為個人和企業提供快速、安全和低成本的跨境支付。EvryNet的去中心化應用程序為投資者開啟了一個充滿新資產、投資機會和創新策略的世界。(prnewswire)[2022/5/27 3:44:57]

Tags:比特幣HASHASHBOB比特幣行情最新價格美元匯率xHashtagdashcashBOBA價格

LTC
OIN:星球首發 | “去中心化投行”CoinAlpha 獲貝恩資本領投 350 萬美元種子輪融資

Odaily星球日報獲悉,“去中心化投行”CoinAlpha近日完成由貝恩資本領投的350萬美元種子輪融資.

1900/1/1 0:00:00
DAX:火幣高管刷屏告別 Hadax,升級為創業板,與火幣全球站合并

9月10日,火幣COO朱嘉偉、火幣高級商務總監魯邁等火幣高管在其朋友圈中發布拆掉“HADAX”牌子的照片,稱要告別HADAX,此舉一度引發了強烈的市場關注.

1900/1/1 0:00:00
區塊鏈:百度首發《百度區塊鏈白皮書》,這些要點你得知道 | 附全文

9月26日,百度區塊鏈實驗室發布《百度區塊鏈白皮書V1.0》,該白皮書一共48頁,重點介紹了百度超級鏈的架構方式和實現模式.

1900/1/1 0:00:00
DAX:朋友,別再用“去中心化”描述區塊鏈了

編者按:本文來自:橙皮書,作者:TonySheng,譯者:白狗@鏈金術,星球日報經授權轉載。前言:當我們說起“去中心化”的時候,我們到底在說什么?用一個含糊不清的詞來描述一個新出現的事物,對我們.

1900/1/1 0:00:00
以太坊:英偉達將結束 9 個月的數字貨幣淘金熱

之前Odaily星球日報曾報道過,Blockstream的CSOSamsonMow曾發推特表示,比特大陸融資快以及在財報中只披露2018年Q1業績的原因,是因為比特大陸有12.4億美元的庫存.

1900/1/1 0:00:00
區塊鏈:長遠角度:加密市場崩潰的原因是什么?

對于加密貨幣市場來說,最近都是冷清陰郁的日子。今年1月份,還不容易看到百萬富翁們對他們的新財富感到沮喪,市場上也出現“加密貨幣是永不流行的泡沫”之類的短語,隨之市場開始變緩,最終快速下滑.

1900/1/1 0:00:00
ads