比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads

比特幣:區塊鏈百科:比特幣的UTXO模型_btc錢包官網

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。

假新聞鑒別軟件WordProof獲歐盟區塊鏈主題競賽100萬歐元獎金:總部位于阿姆斯特丹的假新聞鑒別軟件WordProof在歐盟委員會(European Commission)發起的Blockchain For Social Good競賽中贏得了100萬歐元獎金。

這家荷蘭初創公司于2019年成立,創始人是Sebastiaan van der Lans和Frank van Dalen,該公司的使命是恢復人們對互聯網的信任。根據CIGI-Ipsos的調查,由于欺詐、假新聞和隱私問題等原因,人們對互聯網的信心正在下降。Sebastiaan表示:“我們正在建立一個通用時間戳生態系統,為消費者提供了一種驗證互聯網內容可靠性的方法。”[2020/6/30]

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,即未消費的交易輸出,每一筆比特幣的交易都會有輸入和輸出。

動態 | 由安永開發的葡萄酒市場在以太坊區塊鏈上啟動:金色財經報道,11月14日,安永(EY)開發的TATTOO葡萄酒市場在以太坊公共區塊鏈網絡上啟動,相關技術利用了安永(EY)推出的EY OpsChain平臺,實現了可追溯性。消費者可以通過公司網站以常規方式訪問該服務。該計劃是新加坡初創公司Blockchain Wine的創意。Blockchain Wine的創始人表示,“在TATTOO葡萄酒市場上,每瓶酒都可以追溯到從起源到直接交付再到消費者的整個過程。”(Ledgerinsights)[2019/11/14]

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

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

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

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

政策 | 中山市將啟用“區塊鏈”社區矯正監管系統:據中山日報消息,中山市將于9月正式全面啟用“區塊鏈”社區矯正監管系統。該系統打破了區域和時間的限制,可隨時隨地、不間斷接收社區服刑人員的監管信息,創造性地使用科技手段實施“技防”模式,打造“智慧監管”的社區矯正模式。

中山市司法局相關負責人介紹,在“區塊鏈”的監管模式中,相關工作人員在平臺上發布的信息其他人都可看到,監管從“單一化”變“全方位化”,起到了互相監督的作用,從而提升了社區矯正工作的效率。[2018/9/6]

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是轉賬的金額。

“場景+區塊鏈”才能真正引爆市場:據火幣區塊鏈研究院發布的2018年上半年全球區塊鏈產業全景與趨勢報告顯示,由于區塊鏈底層的不完善,目前大部分區塊鏈應用,仍是“區塊鏈+場景”,只有“場景+區塊鏈”,即從現有針對大眾的場景、應用出發,自上而下,通過疊加區塊鏈技術,優化應用生態和體驗的模式,才能引爆市場。雖然區塊鏈技術還不成熟,短期之內較難實現“場景+區塊鏈”,但是,仍有一部分低頻場景,可進行區塊鏈化,亦或可優先將一部分急需透明化、共識的內容上鏈,實現落地。[2018/5/30]

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

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

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

04.曠工對UTXO進行校驗

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

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

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

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

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

上海證券報:從硬件到應用,我國區塊鏈產業集群已成形:今日,上海證券報發表文章《從硬件到應用 我國區塊鏈產業集群已成形》。文章表示,據《2018年中國區塊鏈產業白皮書》,我國區塊鏈產業鏈條已經形成,從上游的硬件制造、平臺服務、安全服務,到下游的產業技術應用服務,到保障產業發展的行業投融資、媒體、人才服務等,各領域的公司已經基本完備。[2018/5/22]

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

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

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

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

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

火幣APP下載
比特幣:專家預測比特幣2018年價格下跌80%,而今說BTC進入新的暴漲趨勢_USD價格

一位資深交易員稱,2018年價格跌至4,000美元以下,現在已經出現并表示比特幣可能正在進入新的拋物線階段。PeterBrandt在商品領域已經有超過30年的交易員經驗.

1900/1/1 0:00:00
比特幣:比特幣小白-2019炒幣攻略篇_區塊鏈

所有的無奈,無非不是窮就是因為不努力---致2019年的自己 無論是炒幣還是炒股,還是去購買其他的理財產品,可能背后都需要一套完整的理論,哪些突然暴富的人最終還是會變的貧窮.

1900/1/1 0:00:00
比特幣:以太坊Vitalik Buterin:以太坊是比特幣功能限制的解決方案_區塊鏈技術發展現狀和趨勢

以太坊的共同創始人VitalikButerin近日在一段采訪中表示,創建以太坊的目的是試圖解決比特幣有限的功能.

1900/1/1 0:00:00
比特幣:紐約證券交易所是否會上線兩只比特幣ETF?_SEC幣是什么幣

比特幣ETF被認為是吸引機構投資者的圣杯。目前看來,這種ETF很快就不會推出了,但是我們有比特幣期貨讓我們在這段時間忙碌起來.

1900/1/1 0:00:00
ETH:被忽略的以太坊:勝利幾乎是注定的,只是時間會決定這一切_區塊鏈技術發展現狀和趨勢

全文要點: 在區塊鏈行業內,馬太效應依然適用,智能合約平臺由于功能性和應用領域的同質化,將會進一步促進「強者恒強」的競爭趨勢.

1900/1/1 0:00:00
比特幣:比特幣 2023:為增長做好準備_40億比特幣能提現嗎

2022年對于包括比特幣在內的數字貨幣來說是充滿挑戰的一年,由于其在網絡資產市場中的特殊地位,傳統上認為比特幣是其中最穩定的.

1900/1/1 0:00:00
ads