比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > ETH > Info

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

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合法性的。

過去12小時爆倉1.55億美元,BTC爆倉4692.10萬美元:金色財經報道,據coinglass數據顯示,過去12小時爆倉1.55億美元,其中,多單爆倉9888.95萬美元,空單爆倉5628.68萬美元。BTC爆倉4692.10萬美元,多單爆倉3478.38萬美元,空單爆倉1213.73萬美元。ETH爆倉2615.98萬美元,BCH爆倉1234.91萬美元。[2023/7/1 22:11:40]

腳本執行過程如圖所示,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——后中本聰時代的重大創新

2023年Q1 Filecoin上的活躍存儲交易環比增長75%:4月18日消息,據Messari報告,Filecoin 上的存儲使用在 2023 年第一季度經歷了加速增長,活躍的存儲交易環比增長了 75%。雖然存儲容量環比下降 13%,但存儲利用率增長了 105%。同時,在新存儲交易環比增長 14% 的推動下,FIL 費用收入在 23 年第一季度增長了 5%(以美元計算增長了 21%)。

此外,于 2023 年 3 月 14 日發布的Filecoin虛擬機 (FVM) 為 Filecoin 帶來了以太坊式的智能合約。截至 2023 年 3 月 31 日,超過 440 個獨特的合同已部署,產生近 44,000 筆交易。[2023/4/18 14:11:36]

中本聰設計了一個這么強大的腳本系統,只用來構造轉賬交易似乎太浪費了,我們試試用其他指令構造一些特別的鎖定腳本,并使用其他方式來解鎖。例如我們可以構造一個用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開啟保險箱的鑰匙形狀雖然可以被復制,但是這把鑰匙內置了芯片,芯片中可以包含各種高級約束條件,保證鑰匙不會被越權濫用。保險箱會在校驗完形狀后,會執行鑰匙芯片內的程序查有效性,只有兩個檢查都通過才能開啟保險箱。被鎖死的幣是否有挽回可能

基于Cosmos的e-Money停止使用歐元支持的穩定幣EEUR:1月10日消息,基于 Cosmos 的電子支付系統 e-Money 以熊市為由停止發行其歐元支持的穩定幣 EEUR 。e-Money表示,它將在 3 月 6 日之前兌現 EEUR 穩定幣的贖回。[2023/1/10 11:04:55]

再回到開頭的那個問題,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包裹技術,并且最大限度地利用區塊容量。對三個問題的回復

數據:昨日BitfinexETH空頭持倉量減持超1.6萬枚,跌幅達56%:金色財經報道,數據顯示,當前Bitfinex ETH空頭持倉量已減少至8月以來低位,為13482.24 ETH。其持倉量在昨日出現大幅減持,累計減持16554.16ETH,減幅達56.19%。據歷史數據,這是自5月中旬以來最大的單日減持量。[2022/9/17 7:03:34]

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

.bit已被列入OpenSea的Domain Names合輯中:金色財經報道,跨鏈Web3身份協議.bit在官方推特表示,.bit已被列入OpenSea的Domain Names合輯中。[2022/9/14 13:28:43]

Tags:比特幣HASHASHBOB比特幣最新價格美元英為財經Hash Bridge OracleSlash ProtocolOBOB價格

ETH
什么是 EOS 的超級節點?它為什么需要競爭?| 區塊鏈課堂第 61 問_LIBRA

編者按:本文來自哈希派,作者:不碎,星球日報經授權轉載。EOS采用的是DPOS委托權益共識機制,它通過被社區推選出來的可信賬戶來創建區塊.

1900/1/1 0:00:00
“代幣發行融資”被列入互聯網金融舉報范圍_Celsius

8月28日,中國互聯網金融舉報信息平臺發布互聯網金融舉報范圍,并將“代幣發行融資”列入其中。關于其具體的舉報內容,包括如下6條:\t從事法定貨幣與代幣、“虛擬貨幣”相互之間的兌換業務;買賣或作為.

1900/1/1 0:00:00
區塊鏈+打車:破解“”角獸之惡?_TOKEN

編者按:本文來自哈希未來,作者:曹黎軍,星球日報經授權發布。“”角獸之惡8月24日,樂清市一名20歲的女孩在乘坐滴滴順風車后遇害。這是滴滴在三個月內第二次因為惡性案件遭到全國一致的輿論批評.

1900/1/1 0:00:00
DoraHacks 宋婷:我們要連接 1000 萬的 Hacker,解決價值 10000 億美元的問題 | 區塊鏈P.O.D大會_HAC

如果說區塊鏈是一場革命,那么極客絕對是那群改變世界的先行者。9月5日,在由Odaily星球日報主辦、36Kr集團戰略協辦的P.O.D大會上,去中心化極客社區DoraHacks全球負責人宋婷分享了.

1900/1/1 0:00:00
隨著國內數字貨幣禁令頒布,津巴布韋唯一一臺的比特幣ATM機正在走向消亡_比特幣

4月初,當Golix交易所的比特幣ATM首次在津巴布韋首都哈拉雷推出時,它的重要性不言而喻。2009年津巴布韋幣退出流通,當前,津巴布韋國內允許流通美元、南非蘭特、歐元、英鎊、人民幣、日元等9種.

1900/1/1 0:00:00
主鏈和側鏈有什么關系?| 區塊鏈課堂第 29 問_區塊鏈

編者按:本文來自 哈希派 ,作者:LucyCheng,星球日報經授權轉載。!webp\"data-img-size-val=\"720,322\"\u002F\\>火幣全球站現已恢復XTZ主鏈的.

1900/1/1 0:00:00
ads