導航:首頁 > 比特幣區 > 比特幣中未花費的交易輸出是

比特幣中未花費的交易輸出是

發布時間:2024-09-16 22:19:54

1. UTXO到底是什麼什麼是coinbase 交易

UTXO,即Unspent Transaction Outputs,代表未花費交易輸出,是比特幣交易的基本構成單元。一筆交易由輸入和輸出組成,UTXO在這之中扮演著核心角色。比特幣使用UTXO模型表示價值,而非傳統的賬戶-余額模式。

比特幣的創世交易是特殊的輸出交易,無輸入,僅產出,為系統創造了比特幣。這獎勵給礦工,是他們「爆塊」工作的補償。通過Tokenview比特幣區塊瀏覽器,可以查看到第一筆創世交易。普通交易則有輸入與輸出,一個UTXO創建後不可分割,只能通過花費而產生新的UTXO,實現價值轉移。

UTXO模型確保了每筆交易的輸入總和等於輸出總和,除非是礦工獎勵的比特幣。這種模型有效防止了雙花,即雙重花費數字資產的情況。全網的礦工通過UTXO規則和簽名演算法,驗證新交易的合法性。

對於獲取未花費交易數據,Tokenview提供了未花費交易API,支持多條鏈,包括BTC、BCH、LTC、DOGE等。此API介面方便查詢各類鏈上交易信息。

UTXO模型的實質是確保比特幣的價值轉移遵循一套明確、一致的規則,這一模型在比特幣網路中發揮著核心作用,不僅保證了交易的正確性和安全性,也為區塊鏈技術提供了堅實的理論基礎。

2. 鍖哄潡閾句腑鐨刄TXO鏄浠涔堟剰鎬濇湁浠涔堢敤

UTXO錛堣嫳鏂囧叏縐頒負Unspent Transaction Outputs錛夋寚鐨勫氨鏄鏈鑺辮垂鐨勪氦鏄撹緭鍑猴紝瀹冩槸姣旂壒甯佷氦鏄撶敓鎴愬強楠岃瘉鐨勪竴涓鏍稿績姒傚康銆備氦鏄撴瀯鎴愪簡涓緇勯摼寮忕粨鏋勶紝鍏ㄩ儴鍚堟硶鐨勬瘮鐗瑰竵浜ゆ槗閮借兘榪芥函鍒板墠鍚戜竴涓鎴栧氫釜浜ゆ槗鐨勮緭鍑猴紝榪欎簺閾炬潯鐨勬簮澶撮兘鏄鎸栫熆濂栧姳錛屾湯灝懼氨鏄鐜板湪榪樻病鏈夎姳璐圭殑浜ゆ槗杈撳嚭銆傚叏閮ㄦ病鏈夎姳璐圭殑杈撳嚭涔熷氨鏄鏁翠釜姣旂壒甯佺綉緇滅殑UTXO銆傛瘮鐗瑰竵瑙勫畾姣忎竴絎旀柊鐨勪氦鏄撶殑杈撳叆涓瀹氳佹槸鏌愮瑪浜ゆ槗鏈鑺辮垂鐨勮緭鍑猴紝姣忎竴絎旇緭鍏ョ殑鏃跺欎篃瑕佹湁涓婁竴絎旇緭鍑烘墍瀵瑰簲鐨勭侀掗榪涜岀懼悕錛屽苟涓旀瘡涓姣旂壒甯佺殑鑺傜偣閮戒細瀛樺偍褰撳墠鏁翠釜鍖哄潡閾句笂鐨刄TXO錛屾暣涓緗戠粶涓婄殑鑺傜偣閫氳繃UTXO鍙婄懼悕綆楁硶鏉ラ獙璇佹柊浜ゆ槗鐨勫悎娉曟с傝繖鏍蜂竴鏉ワ紝鑺傜偣涓嶇敤榪芥函鍘嗗彶灝辮兘楠岃瘉鏂頒氦鏄撶殑鍚堟硶鎬
鎴戜滑閫氳繃浠ヤ笂鍏充簬鍖哄潡閾句腑鐨刄TXO鏄浠涔堟剰鎬濇湁浠涔堢敤鍐呭逛粙緇嶅悗,鐩鎬俊澶у朵細瀵瑰尯鍧楅摼涓鐨刄TXO鏄浠涔堟剰鎬濇湁浠涔堢敤鏈変竴瀹氱殑浜嗚В,鏇村笇鏈涘彲浠ュ逛綘鏈夋墍甯鍔┿

3. 比特幣機制研究

現今世界的電子支付系統已經十分發達,我們平時的各種消費基本上在支付寶和微信上都可以輕松解決。但是無論是支付寶、微信,其實本質上都依賴於一個中心化的金融系統,即使在大多數情況這個系統運行得很好,但是由於信任模型的存在,還是會存在著仲裁糾紛,有仲裁糾紛就意味著不存在 不可撤銷的交易 ,這樣對於 不可撤銷的服務 來說,一定比例的欺詐是不可避免的。在比特幣出來之前,不存在一個 不引入中心化的可信任方 就能解決在通信通道上支付的方案。
比特幣的強大之處就在於:它是一個基於密碼學原理而不是依賴於中心化機構的電子支付系統,它能夠允許任何有交易意願的雙方能直接交易而不需要一個可信任的第三方。交易在數學計算上的不可撤銷將保護 提供不可撤銷服務 的商家不被欺詐,而用來保護買家的 程序化合約機制 也比較容易實現。

假設網路中有A, B ,C三個人。
A付給B 1比特幣 ,B付給C 2比特幣 ,C付給A 3比特幣
如下圖所示:

為了刺激比特幣系統中的用戶進行記賬,記賬是有獎勵的。獎勵來源主要有兩方面:

比特幣中每一筆交易都會有手續費,手續費會給記賬者

記賬會有打包區塊的獎勵,中本聰在08年設計的方案是: 每10分鍾打一個包,每打一個包獎勵50個比特幣,每4年單次打包的獎勵數減半,即4年後每打一個包獎勵25個比特幣,再過四年後就獎勵12.5個比特幣... 這樣我們其實可以算出比特幣的總量:

要說明打包的記錄以誰為準的問題,我們需要引入一個知名的 拜占庭將軍問題 (Byzantine failures)。拜占庭將軍問題是由萊斯利·蘭伯特提出的點對點通信中的基本問題。含義是在存在消息丟失的不可靠信道上試圖通過消息傳遞的方式達到一致性是不可能的。

假設有9個互相遠離的將軍包圍了拜占庭帝國,除非有5個及以上的將軍一起攻打,拜占庭帝國才能被打下來。而這9個將軍之間是互不信任的,他們並不知道這其中是否有叛徒,那麼如何通過遠距離協商來讓他們贏取戰斗呢?

口頭協議有3個默認規則:
1.每個信息都能夠被准確接收
2.接收者知道是誰發送給他的
3.誰沒有發送消息大家都知道
4.接受者不知道轉發信息的轉發者是誰
將軍們遵循口頭規則的話,那就是下面的場景:將軍1對其他8個將軍發送了信息,然後將軍2~9將消息進行轉達(廣播),每個將軍都是消息的接受者和轉發者,這樣一輪下來,總共就會有9×8=72次發送。這樣將軍就可以根據自己手中的信息,選擇多數人的投票結果行動即可,這個時候即便有間諜,因為少數服從多數的原則,只要大部分將軍同意攻打拜占庭,自己就去行動。
這個方案有很多缺點:
1.首先是發送量大,9個將軍之間要發送72次,隨著節點數的增加,工作量呈現幾何增長。
2.再者是無法找出誰是叛徒,因為是口頭協議,接受者不知道轉發信息的轉發者是誰,每個將軍手裡的數據僅僅只是一個數量的對比:

這里我們假設有3個叛徒,在一種最極端的情況下即叛徒轉發信息時總是篡改為「不進攻」,那麼我們最壞的結果就如上圖所示。將軍1根據手裡的信息可以推出要進攻的結論,卻無法獲知將軍裡面誰是叛徒。
這樣我們就有了方案二:書面協議。

書面協議即將軍在接受到信息後可以進行簽字,並且大家都能夠識別出這個簽字是否是本人,換種說法就是如果有人篡改簽字大家可以知道。書面協議相對比口頭協議就是增加了一個認證機制,所有的消息都有記錄。一旦發現有人所給出的信息不一致,就是追查間諜。
有了書面協議,那麼將軍1手裡的信息就是這樣的:

可以很明顯得看出,在最壞的一種情況——叛徒總是轉發「不進攻」的消息之下,將軍7、8、9是團隊里的叛徒。
這個方案解決了口頭協議里歷史信息不可追溯的問題,但是在發送量方面並沒有做到任何改進。

在我們的示例中,比特幣系統里的每個用戶發起了一筆交易,都會通過自己的私鑰進行簽名,用數學公式表示就是:

所以之前的區塊就變成了這樣:

這樣每一筆交易都由交易發起者通過私鑰進行數字簽名,由於私鑰是不公開的,所以交易信息也就無法被偽造了。

如書面協議末尾所說的那樣,書面協議未能解決信息交流過多的問題。當比特幣系統中存在上千萬節點的時候,如果要互相廣播驗證,請求響應的次數那將是一個非常龐大的數字,顯然勢必會造成網路擁堵、節點處理變慢。為了解決這個問題,中本聰乾脆讓整個10分鍾出一個區塊,這個區塊由誰來打包發出呢?這里就採用了工作量證明機制(PoW)。工作量證明,說白了就是解一個數學題,誰先解出來數學題,誰就能有打包區塊的權力。換在拜占庭將軍的例子中就是,誰先做出數學題,誰就成為將軍們裡面的總司令,其他將軍聽從他發號的命令。

首先,礦工會將區塊頭所佔用的128位元組的字元串進行兩次sha256求值,即:

這樣求得一個值Hash,將其與目標值相比對,如果符合條件,則視為工作量證明成功。
工作量證明成功的條件寫在了區塊鏈頭部的 難度數 欄位,它要求了最後進行兩次sha256運算的Hash值必須小於定下的目標值;如果不是的話,那就改變區塊頭的 隨機數 (nonce),通過一次次地重復計算檢驗,直到符合條件為止。

此外, 比特幣有自己的一套難度控制系統,使得比特幣系統要在全網不同的算力條件下,都保持10分鍾生成一個區塊的速率。這也就意味著:難度值必須根據全網算力的變化進行調整。難度調整的策略是由最新2016個區塊的花費時長與期望時長(期望時長為20160分鍾即兩周,是按每10分鍾一個區塊的產生速率計算出的總時長)比較得出的,根據實際時長與期望時長的比值,進行相應調整(或變難或變易)。也就是說,如果區塊產生的速率比10分鍾快則增加難度,比10分鍾慢則降低難度。

PoW其實在比特幣中是做了以下的三件事情。

這樣可以防止一台高性能機器同時跑上萬個節點,因為每完成一個工作都要有足夠的算力。

有經濟獎勵就會加速整個系統的去中心化,也鼓勵大家不要去作惡,要積極地按照協議本來的執行方式去執行。(所以說,無幣區塊鏈其實是不可行的,無幣區塊鏈一定導致中心化。)

也就是說,每個節點都不能以自身硬體條件去控制出快速度。現在的比特幣上平均10分鍾出一個塊,性能再好的機器也無法打破這個規則,這就能夠保證 區塊鏈是可以收斂到共同的主鏈上的 ,也就是我們所說的共識。

綜上,共識只是PoW三個作用中的一點,事實上PoW設計的作用有點至少有這么三種。

默克爾樹的概念其實很簡單,如圖所示

這樣,我們區塊的結構就大致完整了,這里分成了區塊頭和區塊體兩部分。

區塊鏈的每個節點,都保存著區塊鏈從創世到現在的每一區塊,即每一筆交易都被保存在節點上,現在已經有幾百個GB了。
每當比特幣系統中有一筆新的交易生成,就會將新交易廣播到所有的節點。每個節點都把新交易收集起來,並生成對應的默克爾根,拼接完區塊頭後,就開始調整區塊頭里的隨機數值,然後就開始算數學題

將算出的result和網路中的目標值進行比對,如果是結果是小於的話,就全網廣播答案。其他礦工收到了這個信息後,就會立馬放下手裡的運算,開始下一個區塊的計算。
舉個例子,當前A節點在挖38936個區塊,A挖礦節點一旦完成計算,立刻將這個區塊發給它的所有相鄰節點。這些節點在接收並驗證這個新區塊後,也會繼續傳播此區塊。當這個新區塊在網路中擴散時,每個節點都會將它作為第38936個區塊(前一個區塊為38935)加到自身節點的區塊鏈副本中。當挖礦節點收到並驗證了這個新區塊後,它們會放棄之前對構建這個相同高度區塊的計算,並立即開始計算區塊鏈中下一個區塊的工作。
整個流程就像下一張圖所展示的這樣:

簡單來說,雙花問題是一筆錢重復花了兩次。具體來講,雙花問題可分為兩種情況:
1.同一筆錢被多次使用;
2.一筆錢只被使用過一次,但是通過黑客攻擊或造假等方式,將這筆錢復制了一份,再次使用。
在我們生活的數字系統中,由於數據的可復制性,使得系統可能存在同一筆數字資產因不當操作被重復使用的情況,為了解決雙花問題,日常生活中是依賴於第三方的信任機構的。這類機構對數據進行中心化管理,並通過實時修改賬戶余額的方法來防止雙重支付的出現。而作為去中心化的點對點價值傳輸系統,比特幣通過UTXO、時間戳等技術的整合來解決雙花問題。

UTXO的英文全稱是 unspent transaction outputs ,意為 未使用的交易輸出 。UTXO是一種有別於傳統記賬方式的新的記賬模型。
銀行里傳統的記賬方式是基於賬戶的,主要是記錄某個用戶的賬戶余額。而UTXO的交易方式,是基於交易本身的,甚至沒有賬戶的概念。在UTXO的記賬機制里,除了貨幣發行外,所有的資金來源都必須來自於前面某一個或幾個交易。任何一筆的交易總量必須等於交易輸出總量。UTXO的記賬機制使得比特幣網路中的每一筆轉賬,都能夠追溯到它前面一筆交易。
比特幣的挖礦節點獲得新區塊的挖礦獎勵,比如 12.5 個比特幣,這時,它的錢包地址得到的就是一個 UTXO,即這個新區塊的幣基交易(也稱創幣交易)的輸出。幣基交易是一個特殊的交易,它沒有輸入,只有輸出。
當甲要把一筆比特幣轉給乙時,這個過程是把甲的錢包地址中之前的一個 UTXO,用私鑰進行簽名,發送到乙的地址。這個過程是一個新的交易,而乙得到的是一個新的 UTXO。
這就是為什麼有人說在這個世界上根本沒有比特幣,只有 UTXO,你的地址中的比特幣是指沒花掉的交易輸出。
以Alice向Bob進行轉賬的過程舉例的話:

UTXO 與我們熟悉的賬戶概念的差別很大。我們日常接觸最多的是賬戶,比如,我在銀行開設一個賬戶,賬戶里的余額就是我的錢。
但在比特幣網路中沒有賬戶的概念,你可以有多個錢包地址,每個錢包地址中都有著多個 UTXO,你的錢是所有這些地址中的 UTXO 加起來的總和。
中本聰發明比特幣的目標是創建一個點對點的電子現金,UTXO 的設計正可以看成是借鑒了現金的思路:我們可能在這個口袋裡裝點現金,在那個櫃子角落裡放點現金,在這種情況下不存在一個賬戶,你放在各處的現金加起來就是你所有的錢。
採用 UTXO 設計還有一個技術上的理由,這種特別的數據結構可以讓雙重花費更容易驗證。對比一下:

4. 數字貨幣里的UTXO什麼意思

UTXO的中文意思叫作:未花費的交易輸出。
UTXO是數字貨幣中的賬戶模型,這個模型和我們現在銀行的賬戶模型是不一樣的。
拿轉賬來說,現在的情況是:
我要給依依轉2000塊錢,我要從我的招商銀行卡裡面給她轉賬,我的卡裡面有5000 塊錢,轉給她2000塊錢以後,我的招商銀行賬戶就被扣除了2000塊錢,還剩下3000塊錢。
那麼如果是基於比特幣的UTXO,情況是這樣的:
我有5000比特幣,我給依依轉2000比特幣,2000比特幣消耗掉了對不對?注意!這2000不是從我這5000總數裡面扣除的,而是:我的比特幣總額會分成兩份(一份
2000,一份3000),這就是所謂「生成兩個新的UTXO」:依依收下2000比特幣,我自己收下3000比特幣,3000算是給我的找零。
轉賬成功以後,我給依依的2000比特幣目前已經使用過了,被消耗掉了,就不能再叫UTXO了,而找零給我的3000比特幣目前我還沒有使用,所以它還能稱作UTXO ,也就是未花費的交易輸出。那麼,如果我總共有5000比特幣,我全部轉給依依,那麼就只需要生成一個新的
UTXO給依依就可以了,不需要找零了。
基於UTXO,每筆交易出現,都要確認比特幣之前的情況,檢驗比特幣是不是存在於我的UTXO中,如果不存在,那麼系統就會拒絕你的交易行為。
這樣一來,每筆交易的輸入和輸出都是有關系的,可以通過UTXO不斷向前追溯,一直追溯到比特幣誕生的時候,也就是挖礦的源頭。
如果我想用同一筆UTXO發送給兩個人,那麼系統只確認先接受到的那一筆,一旦確認UTXO已經被消耗了,那麼你就不可以再把它轉給下一個人,這樣就避免了雙重支付的問題。
既然系統只確認先接受到的那一筆,那麼問題來了,系統怎麼知道誰先誰後呢?系統當然知道,因為系統有一個叫「時間戳」的東西。

閱讀全文

與比特幣中未花費的交易輸出是相關的資料

熱點內容
以太坊去瀏覽器 瀏覽:943
萊特幣發展模式 瀏覽:914
以太坊s10 瀏覽:198
比特幣第一筆披薩 瀏覽:581
區塊鏈共識機制挖礦 瀏覽:928
知名區塊鏈白皮書 瀏覽:663
目前國內擁有區塊鏈的硬體產品 瀏覽:655
比特幣持用比例 瀏覽:638
區塊鏈在實體企業的應用 瀏覽:109
以太坊投資app 瀏覽:776
區塊鏈的挖礦機是合法的嗎 瀏覽:95
比特幣椰子 瀏覽:53
區塊鏈金融2020 瀏覽:55
區塊鏈醫療信息共享案例 瀏覽:572
以太坊天使輪主頁 瀏覽:215
以太坊代幣轉出介面 瀏覽:844
重聚礦石鎮挖礦陷阱 瀏覽:306
ns挖礦 瀏覽:828
gac數字貨幣合法嗎 瀏覽:637
看護比特幣礦機違法嗎 瀏覽:359