以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads

比特幣:區塊鏈百科:比特幣的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。

Aspro Digtial亞太區總裁藍少:將會為用戶持續帶來有價值的功能,為區塊鏈行業建設添磚加瓦:據官方消息,11月10日,Asproex(阿波羅)受邀參加成都區塊鏈教育投資峰會,并順利舉辦阿波羅天府之夜私享晚宴,諸多區塊鏈行業專家,金融領域精英人士受邀出席。

晚宴現場Aspro Digtial亞太區總裁藍少表示:近年以來,成都在區塊鏈技術領域探索進程逐步加快,對區塊鏈技術發展有突出貢獻。對Asproex(阿波羅)作為首家離岸銀行控股持牌交易平臺能夠參與該過程感到十分榮幸。阿波羅一直秉承著安全合規的理念,積極推動合約市場的安全與穩定,近段時間以來上線的合約逐倉險、月亮金服等功能意在積極維護行業穩定,未來也將會為用戶持續帶來有價值的功能,為區塊鏈行業建設添磚加瓦。

Asproex(阿波羅)作為一家離岸銀行控股持牌交易平臺,涵蓋CTO企業通證上市、合約跟單、ETT指數通證、數字礦業、Digital Bank板塊并持有5國合法牌照,致力于為全球中小微企業提供數字化上市一站式服務。[2020/11/10 12:14:41]

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集的數據整體是一個增長的趨勢。

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

四川省行動方案:重點聚焦區塊鏈等領域,加快規模化部署和集約建設:近日,四川省政府辦公廳印發《四川省加快推進新型基礎設施建設行動方案(2020-2022年)》(以下簡稱《行動方案》),明確將實施9大工程22項重大任務,其中之一是謀劃打造新型衛星互聯網。這是全國范圍內,首次將衛星互聯網納入新基建范圍。省經信廳副廳長皮亦鳴介紹,為確保《行動方案》落地落實,四川省正重點聚焦5G網絡、衛星互聯網、工業互聯網、人工智能、區塊鏈、數據中心等領域,加快規模化部署和集約建設。(中國新聞網)[2020/10/28]

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

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

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

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

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

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

動態 | 委內瑞拉團隊正開發允許通過遠程無線電波連接到比特幣區塊鏈的項目:金色財經報道,委內瑞拉團隊正在開發Locha,即一種不依賴互聯網的與比特幣進行交易的去中心化網狀網絡。該系統基于無線電波,是為響應委內瑞拉頻繁中斷的電力和互聯網而誕生的。該開源項目是由委內瑞拉比特幣組織成員Randy Brito領導的。該項目正在開發兩種設備,名為Turpial和Harpia,將允許任何人使用遠程無線電波連接到比特幣區塊鏈。[2020/1/22]

02.找零機制

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

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

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

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

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

動態 | 近7日“區塊鏈”搜索熱度同比下跌32%:據百度搜索熱度數據,近7日(12月22日-12月28日)“區塊鏈”的搜索熱度整體日均值為4718,整體同比下跌32%,環比下跌35%。近7日“比特幣”搜索熱度整體日均值為21495,整體同比下跌63%,環比下跌36%。[2018/12/30]

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

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

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

04.曠工對UTXO進行校驗

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

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

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

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

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

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

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

動態 | 巴西聯邦稅務局明年將參加斯坦福區塊鏈會議:據Criptomoedasfacil消息,巴西聯邦稅務局將組織代表參加斯坦福大學于2019年1月30日-2月1日舉辦的斯坦福區塊鏈會議,致力于豐富其對比特幣和區塊鏈領域的認知,此次活動的主題有關于區塊鏈協議中的安全性和系統性風險,致力于促進區塊鏈協議、分布式系統、加密貨幣、計算機安全和風險管理方面的從業者和研究人員之間的多學科合作。[2018/12/25]

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

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

比特幣的設計初衷只是想做一個現實生活中的支付貨幣,貨幣的交易和流通安全是第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短線交易騙局區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現

火幣下載
USDT:比特小白新手:靠譜平臺推薦加怎么不用買USDT還能買自己想買的幣

靠譜平臺中文國內外 OK海外https://www.okex.com/火幣海外https://www.huobi.pro/幣安網海外https://www.binance.

1900/1/1 0:00:00
數字貨幣:SegWit鎖定后,比特幣價格距離5,000美元還需要多久

此前,Cointelegraph報道,RT主機和金融分析師MaxKeizer預測比特幣的價格將在短期內“達到”5,000美元.

1900/1/1 0:00:00
數字資產:研究報告:比特幣、以太幣等幣與金、鋁、銅誰花更多電產出1美元

一名為「NatureSustainability」的科學雜志于11月5日發表的一項研究表明,以產生相同的市場價值為基準做比較的話,加密挖礦比傳統礦產開采消耗的能量更多.

1900/1/1 0:00:00
加密貨幣:投資平臺eToro 宣布推出加密貨幣錢包,將支持比特幣等主流貨幣

目前宣稱已有1000萬注冊用戶的綜合性投資平臺eToro宣布,將推出其專有的加密貨幣錢包。據11月6日發布的新聞稿,用戶可以透過GooglePlay以及AppleStore的?應用程式商城下載這.

1900/1/1 0:00:00
比特幣:2月6日早間比特幣行情分析,多頭發力進攻9700大關

今日行情分析 今日凌晨兩度突破9600位置,行情一路上漲突破9700關口,最高9730附近,現價回落9580附近.

1900/1/1 0:00:00
ETH:半小時比特幣全網總計爆倉2530.18萬美元,比特幣離一萬更遠了

動態 | 半小時內OKEx期貨爆倉超800萬USDT:據幣coin數據,OKEx期貨半小時爆倉801萬USD,其中EOS爆倉269萬USDT,XRP爆倉230萬USDT.

1900/1/1 0:00:00
ads