加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > 區塊鏈 > Info

區塊鏈百科:比特幣的UTXO模型_比特幣:區塊鏈存證怎么弄

Author:

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

我們都知道支付寶的轉賬流程:打開APP、輸入轉賬地址或者掃二維碼、輸入轉賬金額、點擊確認并輸入密碼。

比特幣的轉賬流程也是一樣的。但是比特幣和支付寶背后的轉賬原理其實是千差萬別的。

支付寶采用的是賬戶余額模型,比如大白支付寶賬戶有100元,給小黑轉賬80元,大白的賬戶余額會減少80元,變成20元,小黑的賬戶余額由0變成80元,大白和小黑的賬戶都會直接顯示一個余額,這就是賬戶余額模型。

01.UTXO模型簡介

比特幣系統是一個點對點的電子現金系統,UTXO模型和我們的現金支付模型有很多的共同點。大白有兩張面值50元的現金紙幣,想要給小黑80元,需要把這兩張50元的現金給小黑,小黑再找給大白20元,大白和小黑錢包里還有多少錢不會像支付寶那樣直接顯示一個余額,而是需要自己去數一下:錢包里有幾張紙幣以及每張的面額,然后進行加總。我們可以把現金的支付方式看做是UTXO模式的簡化版本。

UTXO模型和現金支付模型的共同點:

①每條UTXO都有對應的面值,就像每張紙幣會有一個面值一樣。

②一條UTXO在交易中必須作為整體被消耗,就像紙幣一樣不可以撕開來使用。

如下圖:左邊的地址是比特幣交易的發起地址,右邊是2個接收地址,其中1個地址跟左邊的發起地址是一樣的,這筆交易的轉賬金額是0.26682745BTC,其中接收者拿到了0.1732608BTC,回到原轉賬地址的是0.09356665BTC。

③UTXO和現金一樣都有最小面值,UTXO最小面值單位是聰,1個BTC=10的8次方聰,也就是1億聰,1聰=0.00000001個BTC。

省廣集團:區塊鏈業務尚處于起步階段:省廣集團(002400.SZ)在深交所-互動易上回答投資者表示,公司涉及的區塊鏈業務尚處于起步階段,未來將視情況進行拓展和研究;公司開展的互聯網數據中心業務,有利于為客戶提供安全可靠的營銷私有云服務,促進大數據項目的商業化運營。[2020/4/23]

UTXO模型和現金支付模型的不同點:

①現金支付:找零是收款人做的;

比特幣系統:找零是發起者自己進行設置的。

②現金的面值是固定的,UTXO的面值不固定,而是在發生交易的過程中也隨之改變。

比特幣的UTXO面值是不固定的,如下圖,這是史上第一筆比特幣交易,中本聰轉給哈爾·芬尼10個BTC,這里花費了一條面值為50BTC的UTXO,找零之后得到了面值為40BTC的UTXO。

原本一個面值50的UTXO變成了兩個面值分別為10BTC和40BTC的UTXO,如果中本聰給轉給哈爾·芬尼的是15個BTC,那么面值為50BTC的UTXO就會變成兩個面值分別為35BTC和15BTC的UTXO。

下圖是一個比特幣UTXO集的數據圖,從2009年到2019年這10年之間,UTXO集的數據整體是一個增長的趨勢。

③現金是不可能被雙花的,比特幣有可能雙花。

同一筆比特幣被花費兩次甚至多次的情況就叫做雙花。比特幣它作為一種虛擬貨幣是沒有實體的,它的本質是數據,有可能把一筆同樣的比特幣花費兩次。

UTXO是UnspendTransactionOutput,即未消費的交易輸出,每一筆比特幣的交易都會有輸入和輸出。

當大白轉賬80元給小黑的時候,這80元對大白來說是一筆交易的輸出,叫transactionoutput,對于小黑來講這是一筆交易收入transactioninput,如果后面某個時候小黑把這80元又花出去了,那么這80元對于小黑來講也變成了交易輸出,而在小黑還沒有把這錢花出去之前,它就是一筆還沒有被花費掉的交易輸出,transaction的縮寫是tx,所以UnspendTransactionOutput就是UTXO。

行情 | 區塊鏈概念股集體大漲:昨日比特幣一度突破4000美元關口,區塊鏈概念股目前集體大漲。其中,Riot Blockchain漲幅高達53.85%,Marathon Patent漲幅達43.93%,迅雷漲幅達17.72%,Overstock.com漲幅達11.4%。[2019/2/20]

我們看一下鏈上數據是什么樣的?如下圖:

其中右上方的confirmation就是確認的意思,它這里顯示6+,也就是說這筆交易被確認的交易區塊數已經超過了6個,通常一筆交易它被確認的區塊數超過6個的時候,就認為這筆交易已經是一個完成的狀態,并且不可逆了。

什么意思呢?先來解釋一下這個確認的區塊數,當一筆交易被放進一個區塊里面,增加到區塊鏈上最新的那個塊的時候,這個時候的區塊確認數是1,然后后面不斷的會有新的區塊增加上來,得到的區塊確認數就會變成2、3、4、5、6......這樣子不斷的去增加,當它后面跟著的區塊是5個,也就是說這筆交易得到的區塊確認數是6的時候,我們就認為這筆交易不可能再逆轉了。6+的旁邊還有個鎖的標志,當這個區塊的確認數達到6以及以上的時候,這個鎖就會變成鎖上的樣子。

02.找零機制

中本聰有一個面值為50的UTXO,轉給哈爾·芬尼10個BTC,除了要寫哈爾·芬尼這個收款人的地址,還要寫找零地址,說明多出來的40個BTC想放到哪個比特幣地址,可以是原來發起轉賬的地址,也可以是其他的比特幣地址,必須得寫一個找零地址,告訴礦工:剩下的40個BTC是想放在哪里的?

因此右邊的交易收款方的地址有兩個,一個是哈爾·芬尼的地址,一個就是中本聰的地址,中本聰設置的找零地址就是發起交易的這個地址,但是通常呢找零地址是不會和原交易發起地址相同的,這是出于隱私保護的考慮。

我們知道比特幣是一個公開的大賬本,所以如果總是用單一的地址進行交易的話,就容易有隱私泄露的危險,比如說別人一查這個地址,就可以看到地址上所有的比特幣余額,知道你的具體資產有多少。因此呢,出于隱私保護的考慮,建議大家在使用比特幣進行交易的時候,一定每一次都要使用新的地址。這樣別人無法看到你擁有的其他比特幣地址里面有多少錢,以及你用它們做了什么交易。

動態 | 加州大學伯克利分校建成區塊鏈加速器 支持區塊鏈初創公司:據ethnews消息,加州大學伯克利分校最近宣布,它已經形成了一個區塊鏈聚焦加速器,叫做伯克利區塊鏈Xcelerator。這款新加速器是由加州大學伯克利分校(Berkeley)的Sutardja創業與區塊鏈技術中心和哈斯商學院聯合推出,旨在為區塊鏈項目的早期階段提供資源,并將其與行業專家聯系起來。項目參與者將有機會以導師和顧問的身份接觸伯克利龐大的企業家、投資者和其他人網絡。[2019/1/31]

上圖中的比特幣就是中本聰的一個地址,它里面一共發生了45筆交易,大約還有18個比特幣,但是這只是他其中一個地址,他手里究竟有多少比特幣,我們是沒有一個精確的數據的。據說中本聰擁有100萬個比特幣,也是通過其他的一些信息模模糊糊推斷出來的,并不能完全肯定,因為中本聰不可能總是使用同一個比特幣地址。

大家看上圖的上面部分,這三個地址沒有一個是一樣的,那當找零地址與發起交易地址不同的時候,收款方這兩個地址哪個才是找零地址呢?答案是:不知道,你沒有辦法知道,他是轉賬了0.29個BTC,找零37.208506個BTC,還是轉賬了37.208506個BTC,找零0.29個BTC。在blockchain這個瀏覽器上,你可以看到它對這筆交易中到底哪個才是轉賬的比特幣做了一個預計,叫做estimatedbtctransacted,估計0.29個BTC是轉賬的金額。

如果交易的時候不寫找零地址,剩下的錢會被系統默認為全部歸屬于礦工,全部給礦工當成是幫你打包交易的手續費。如下圖:

上圖中這筆交易的發起者,不知道是因為搞錯了還是什么,我們可以看到這個交易,只有一個收款地址沒有找零地址,所以除了收款地址收到的0.001個BTC之外,剩下的291.2409個BTC全部都變成了礦工的手續費了。

但是現在的加密貨幣錢包軟件都是非常人性化的,照顧到了一些總是忘記或者壓根就不知道需要設置找零地址的人,會自動幫用戶去生成1個找零地址和手續費,如果你覺得錢包自動設置的手續費太高了,也可以進行下調,或者如果你想要交易被盡快確認的話也可以調高手續費。

金色相對論丨何永:每個領域的AI算法都有可能和區塊鏈結合:在本期金色相對論上,在談到區塊鏈和AI如何融合時,深腦鏈CEO何永表示,兩個大邏輯:是用區塊鏈解決AI行業問題,還是用AI解決區塊鏈行業問題,第一個邏輯,從AI三要素為切入點,算力、算法、數據,從算力角度區塊鏈可以讓計算節點分布式管理,從而形成分布式AI算力,從算法角度:這個結合點就非常多了,每個領域的AI算法都有可能和區塊鏈結合,從數據角度:區塊鏈可以幫助產生數據、保護數據隱私。第二個邏輯,目前看來結合的機會有限。[2018/7/17]

04.曠工對UTXO進行校驗

作為礦工,打包前要考慮3個問題:

1、發起交易者的地址里是否有足夠的UTXO

也就是說是否有足夠的比特幣,礦工會查看交易者的UTXO集,曠工可以從這個集合里面去查詢發起者交易的地址當中是否有足夠的余額,如果余額不足,交易無效。

2、發起者的這筆交易使用的比特幣是否是雙花

礦工去查詢區塊鏈賬本上的數據,檢驗這筆交易發起者之前是否已經用這筆比特幣買過其他的東西,如果使用的UTXO已經支付過給別人了,存在雙花的問題,那么這筆交易就不能通過礦工的交易校驗。

3、發起者能否提供合法的私鑰簽名

合法的私鑰簽名用來證實發起者對這個比特幣地址是有控制權的,如果不能提供私鑰簽名,那么礦工就會判定他發行的這筆交易是非法的,不能通過檢驗。

腳本語言在區塊鏈中是一個比較抽象的概念,但也是一個非常重要的功能,我們經常會說比特幣系統是圖靈不完備的,以太坊是圖靈完備的,這其實是在說他們的腳本是否圖靈完備,圖靈完備是對計算機能力的描述,指可以實現所有可編程計算機能夠執行的計算邏輯。

一個圖靈完備的腳本語言可以發揮計算機所有的能力,反之一個圖靈不完備的語言是不能發揮計算機的所有能力的。比如在比特幣系統當中,它的腳本是不圖靈完備的,只能進行比特幣的接收和發送,而以太坊的腳本是圖靈完備的,或者嚴格說起來其實是半圖靈完備的,它除了可以進行以太幣的發送和接收,還可以部署智能合約,實現更多的功能。比特幣的腳本是智能合約的雛形,但它不是圖靈完備的,可是這里要說明一點:不圖靈完備并不意味著就是一個缺陷,因為圖靈完備涉及到的技術非常復雜,容易引發安全漏洞。

優權天成車克達:曾在2016年給阿里、菜鳥體系兩個區塊鏈方面的建議:優權天成的創始人車克達今天下午在全球區塊鏈(杭州)高峰論壇上發言提到:“2016年給阿里巴巴菜鳥物流提供的咨詢,當時菜鳥找到我們希望了解區塊鏈技術在菜鳥體系、阿里體系怎樣使用,我們給出了兩個重要方向:第一,實物資產,對于供應鏈整個物品進行了追蹤;第二,對于淘寶上的數字資產,通過區塊鏈進行追蹤判定以及防止刷信用等等。”[2018/3/26]

比特幣的設計初衷只是想做一個現實生活中的支付貨幣,貨幣的交易和流通安全是第1位的,他想簡簡單單一點,以太坊的創始人“V神”曾經和比特幣的核心開發團隊建議,把腳本變得更豐富一點,但是被拒絕了,所以他之后就創造了腳本語言更加豐富的以太坊。

比特幣的腳本系統是一個先進后出的堆棧模型,什么是堆棧?堆棧也是一個計算機科學里經常使用到的比較抽象的數據類型,堆棧的物體有一個特性,最后一個放進堆棧的物體總是會被最先拿出來。我們可以把堆棧想象成一個箱子,你往箱子里面先是放了一本書,然后放了一個帽子,最后放了一把剪刀,如果要拿出來,順序是剪刀、帽子、書本。

所以最先進入箱子的東西是最后拿出來的,這就是一個先進后出的堆棧模型,或者后進先出的堆棧模型,堆棧中兩個最重要的操作是push和pop,push操作是加入一個元素,pop操作剛好相反,是移走一個元素。

如上圖:大家先看inputscripts輸入腳本,輸入腳本也叫做解鎖腳本。

第1條指令是pushdata,pushdata意思就是說把數據推入堆棧,71是指這條數據大小是71個字節,它是用16進制的格式來表示的。

第2條指令是pushdata,也就是把這33個字節長的數據也推入堆棧。

那么推進去的這些數據到底是什么數字呢?第1條指令推入的數據是私鑰簽名,第2條指令推入的數據是公鑰。現在這個堆棧里面有2層數據,第1層是發起方的私鑰簽名,第2層是發起方的公鑰。

outputscripts

然后我們再來看看outputscripts輸出腳本,輸出腳本也叫做鎖定腳本。

第1條指令是dup,dup是duplicate的縮寫,dup就是把棧頂的數據復制一份。

第2條指令是hash160,也就是把發起方的公鑰進行hash160運算得到公鑰哈希。

第3條指令是pushdata,將后面這20個字節的數據即公鑰哈希值推入堆棧。

驗證交易

到這里所有驗證交易是否合法的信息都已經推入到堆棧了,接下來就可以進行驗證了。

第1步是equalverify,equalverify就是驗證判斷兩樣東西是否相等,在這里也就是需要判斷比較棧頂的兩個數據是否相等。

為什么要做這一步呢?堆棧里面它的第3層的公鑰哈希值是從輸入腳本inputscript里推導出來的,而第4層的公鑰哈希值是從outputscript輸出腳本里面拿出來的,輸出腳本也叫鎖定腳本,鎖定腳本這個公鑰哈希值是地址,是區塊鏈上大家都能查到的,但是輸入腳本的公鑰哈希值是只有擁有對應公鑰的人才可以算得出來的。

前面我們講過,非對稱加密的私鑰和公鑰,私鑰是要自己保存好的,公鑰可以去分享給別人,私鑰到公鑰是一個單向的推導過程,不能反推,但是因為量子計算機的出現,它是一個非常強大的計算機,有可能做到從公鑰反推出來私鑰。

一開始設計的時候,中本聰是直接拿公鑰作為地址的,這是非常不安全的,后來程序員們把公鑰的哈希值進行編碼作為地址,而量子計算機目前還沒有辦法做到直接從地址反推出來私鑰。

因此現在比特幣區塊鏈上,私鑰和公鑰都是大家輕易不會拿出來分享的,如果你想要使用一個地址里的比特幣進行轉賬的話,那么你首先得先提供對應的公鑰,讓曠工可以檢查,你是這個地址的擁有者,因為你有相應的公鑰。第1步的檢查就是把發起者輸入腳本里的哈希值和輸出腳本里的哈希值進行對應,看是否是相同的,如果是相同的,就先通過了第1道檢驗。

接著是第2步檢驗叫checksig,就是利用發起者的公鑰對簽名進行檢查,檢查通過后可以確認這筆交易是本人發起的。

以上就是比特幣的UTXO模型校驗的過程。

04.量子計算機

量子加密是加密技術第7代密碼學技術,它的上一代是RSA加密系統,RSA是現在應用范圍最廣泛的加密手段。比特幣采用的是橢圓曲線ECC算法,單位安全強度是要強于RSA算法的。但無論是ECC還是RSA,這兩種加密算法在量子計算機面前都還不夠強大,很容易會被破解,量子計算機一旦成功,對目前網絡、通訊、通信和銀行上的RSA加密算法會構成威脅。

比特幣系統中的加密算法一共是兩種,一個是橢圓曲線算法,一個是哈希算法,橢圓曲線算法是用于私鑰到公鑰,哈希算法是用于公鑰到地址。私鑰到公鑰的推倒過程原本是不可逆的單向的,公鑰不可能反向推導出私鑰,因為公鑰反推私鑰的工作量非常的大,目前的計算機是無法勝任如此大的工作量的。而最新的量子計算機被認為是可以做到從公鑰反推私鑰的,甚至有人說量子計算機投入使用的時候就是比特幣的終結之日。

最近有很多媒體都在報道谷歌研發的量子計算機取得了不小的進步,谷歌的研究人員表示,谷歌的處理器可以在3分20秒之內完成目前全球排名第一的超級計算機需要1萬年才能完成的計算,按照一位普利茅斯大學教授的估計,量子計算機可以在幾分鐘之內就從公鑰反推出私鑰是什么,而在知道所有私鑰之后就可以擁有對應地址的比特幣的轉賬權利了。

所以比特幣系統沒有直接拿公鑰來作為地址,而是拿公鑰哈希值進行編碼之后作為地址,公鑰到地址之間多的這一步哈希處理就是為了在量子計算機面前多放一個障礙,有了這個哈希函數,目前的量子計算機還無法有效的破解比特幣的私鑰,直接從一個地址去反推私鑰,這是目前量子計算機還無法做到的。

但是UTXO模型里,我們看到了當你在一個地址里面發起一筆轉賬的時候,你的腳本里面就暴露了這個地址對應的公鑰。所以我們在使用比特幣地址的時候,還是建議大家只使用一次性的地址,也就是說這個地址一旦發生過向外的轉賬,你后面就不要再去用它了,你進行轉賬的時候就把你們的錢全部轉出,因為在轉賬的時候,這個公鑰已經暴露在區塊鏈上了,量子計算機已經足夠強大了,它可以做到在幾分鐘之內從公鑰反推私鑰,所以如果一個地址反復的去用,公鑰已經在網絡上暴露了,它是非常的不安全的,我們可以把這些比特幣轉到一個新的還沒有使用過的地址里面,那這個地址它的公鑰是沒有暴露的,暫時還是安全的。

Tags:比特幣BTC區塊鏈比特幣中國官網聯系方式40億比特幣能提現嗎比特幣最新價格行情走勢BTCs是不是黃了btc錢包官網btc短線交易騙局區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現

區塊鏈
44,800,000,000 狗狗幣 (DOGE) 現已掌握在長期持有者手中_DOGE:DOGE幣DOG價格

一家領先的分析公司表示,計劃長期持有加密資產的投資者現在擁有數百億狗狗幣(DOGE)。IntoTheBlock顯示,持幣者或持有加密資產超過一年的實體現在控制著44,800,000,000DOG.

1900/1/1 0:00:00
世界銀行報道,2018印度匯款800億美元來自國外,加密的巨大潛力_區塊鏈:比特幣最新價格行情走勢EFT幣

世界銀行在其最新報告中透露,印度在2o18的匯款數量最多,其中800億美元來自國外。與此同時,用戶支付了40億美元的支付服務費用。 中間人友好型號 目前格式的匯款有一個太多的檢查站.

1900/1/1 0:00:00
20年代十一大預測:加密貨幣會發生什么?比特幣會到100萬一個_加密貨幣:ENT加密貨幣是什么意思啊

沒有人可以非常準確地預測未來,但是加密社區正忙于發明它。 我相信在下一個十年中,到20年代末,可擴展的私有區塊鏈將達到約10億用戶,而在本世紀初則為約5000萬.

1900/1/1 0:00:00
幣圈晚報:比特幣價格突破9900美元,壓力位一萬難以突破,回調嗎_比特幣:40億比特幣能提現嗎

幣圈晚報消息一覽 近日,《金融分布式賬本技術安全規范》金融行業標準由中國人民銀行正式發布。標準規定了金融分布式賬本技術的安全體系,包括基礎硬件、基礎軟件、密碼算法、節點通信、賬本數據、共識協議、.

1900/1/1 0:00:00
幣聰訊,期權交易商對今年比特幣價格到10,000美元的信心不大_比特幣:40億比特幣能提現嗎

據跟蹤比特幣期貨和期權數據的分析公司Skew的數據顯示,到目前為止,加密貨幣交易商似乎對比特幣沒有信心,今年又回升至10,000美元.

1900/1/1 0:00:00
比特幣價格在不到10分鐘的時間內振幅超過近4%,是走還是留?_比特幣:加密貨幣市場還有未來嗎知乎

CoinDesk的數據顯示,比特幣幣在北京時間時間00:15左右開始升值,在不到10分鐘的北京時間00:21左右從8,787.11美元漲至日內高點9,123.34美元.

1900/1/1 0:00:00
ads