恬默?曉明7星評(píng)價(jià)
2020-10-30 11:19:52
比特幣交易是一個(gè)經(jīng)過簽名的數(shù)據(jù),它被廣播到網(wǎng)絡(luò)上,如果有效,最終會(huì)進(jìn)入?yún)^(qū)塊鏈的一個(gè)區(qū)塊。比特幣交易的目的是將一定數(shù)量的比特幣的所有權(quán)轉(zhuǎn)移到比特幣地址,現(xiàn)如今,區(qū)塊鏈已經(jīng)成為全民關(guān)注的領(lǐng)域,不少企業(yè)也早已深入其中研究該技術(shù)的落地情況。談到區(qū)塊鏈,必然先想到比特幣。從技術(shù)角度來看,比特幣的系統(tǒng)包括三層:底層技術(shù)——區(qū)塊鏈;中層鏈接——協(xié)議;上層——貨幣。
貨幣指的就是比特幣;協(xié)議就是基于區(qū)塊鏈的資金轉(zhuǎn)賬系統(tǒng);底層技術(shù)就是區(qū)塊鏈,即去中心化、分布式記錄的公開透明的交易記錄總賬,其交易數(shù)據(jù)全網(wǎng)節(jié)點(diǎn)共享。礦工負(fù)責(zé)記錄,全網(wǎng)監(jiān)督。
當(dāng)比特幣用戶向其他人轉(zhuǎn)賬的時(shí)候,從創(chuàng)建一筆交易,到這筆交易最終被確認(rèn)有效,實(shí)際上經(jīng)歷了以下的步驟:
既然是交易就得有發(fā)起者和接收者,通常來說交易都是由發(fā)起者創(chuàng)建的,比特幣也不例外,發(fā)起者通過自己的錢包軟件創(chuàng)建一筆包含一定數(shù)量比特幣的交易,并用自己的私鑰進(jìn)行加密簽名,簽名是為了標(biāo)識(shí)這筆比特幣的所有權(quán),其他人只要通過發(fā)起者的地址就可以輕松校驗(yàn)真實(shí)性了。
交易創(chuàng)建完成后,就需要被廣播到比特幣網(wǎng)絡(luò)中,讓更多的人知道這筆交易,比特幣的網(wǎng)絡(luò)是一個(gè)點(diǎn)對(duì)點(diǎn)的去中心化網(wǎng)絡(luò),也就是沒有一個(gè)中心節(jié)點(diǎn)統(tǒng)一處理所有的交易。在比特幣網(wǎng)絡(luò)中,每一個(gè)節(jié)點(diǎn)都會(huì)驗(yàn)證交易的合法性,并將交易在網(wǎng)絡(luò)中進(jìn)行廣播,直到這筆交易被網(wǎng)絡(luò)中大多數(shù)節(jié)點(diǎn)接收。
最終,比特幣交易被一個(gè)挖礦節(jié)點(diǎn)驗(yàn)證,并被添加到區(qū)塊鏈上一個(gè)記錄著許多比特幣交易的區(qū)塊中。關(guān)于挖礦其實(shí)就是將很多筆交易統(tǒng)一打包統(tǒng)一驗(yàn)證,存入總賬簿中,同時(shí)挖礦的人會(huì)得到一定的獎(jiǎng)勵(lì)。因?yàn)橛歇?jiǎng)勵(lì),所以礦工會(huì)有很強(qiáng)的動(dòng)力維護(hù)交易的順利完成。
一筆比特幣交易一旦被記錄到區(qū)塊鏈上并被足夠多的后續(xù)區(qū)塊確認(rèn),便成為比特幣總賬簿的一部分,并被所有比特幣交易參與者認(rèn)可為有效交易。于是,這筆比特幣就隸屬于新的所有者了,可以拿來放心使用了。
比特幣交易如何完成的總結(jié)
各種收到的金額不會(huì)像在實(shí)體錢包中那樣混合。相反,在我們花費(fèi)比特幣時(shí),收到的金額(UTXO)被單獨(dú)使用(或組合使用)。在創(chuàng)建支出交易時(shí),我們的錢包選擇UTXO(具有足夠的價(jià)值以滿足我們想要發(fā)送的金額)并且通常創(chuàng)建兩個(gè)新輸出:一個(gè)用于接收器,一個(gè)用于我們收到的更改到錢包。更改成為我們錢包中的全新UTXO,我們發(fā)送的金額成為鎖定到收件人地址的UTXO——可能與錢包相關(guān)聯(lián),也可能不與錢包相關(guān)聯(lián),例如冷存儲(chǔ)。用作支出交易的輸入的原始UTXO將“花費(fèi)”并永久銷毀。
易鋮科技范9星評(píng)價(jià)
2020-08-04 17:17:54
比特幣全網(wǎng)的運(yùn)行都是為了同一個(gè)目的:比特幣交易,比特幣交易是比特幣系統(tǒng)中最重要的部分。比特幣交易的本質(zhì)是數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)中含有比特幣交易參與者價(jià)值轉(zhuǎn)移的相關(guān)信息。
比特幣交易比特幣系統(tǒng)中任何部分都是為確保比特幣交易可以被生成、能在比特幣網(wǎng)絡(luò)中傳播、驗(yàn)證,并最終添加入全球比特幣交易總賬簿(比特幣區(qū)塊鏈)。
交易類型
交易有三種常見類型:產(chǎn)出交易(Generation),合成地址交易( Hash),通用地址交易(Pubkey Hash)。
Generation TX:每個(gè)Block都對(duì)應(yīng)一個(gè)產(chǎn)量交易(Generation TX),該類交易是沒有輸入交易的,挖出的新幣是所有幣的源頭。
Hash TX:多重簽名交易,地址以3開頭,三對(duì)公私鑰,可以生成一個(gè)合成地址。在生成過程時(shí)指定n of 3中的n,n范圍是[1, 3],若n=1,則僅需一個(gè)私鑰簽名即可花費(fèi)該地址的幣,若n=3,則需要三把私鑰依次簽名才可以。
Pubkey Hash TX:該類是最常見的交易類型,由N個(gè)輸入、M個(gè)輸出構(gòu)成。
交易流程
比特幣交易創(chuàng)建后,會(huì)被一個(gè)或者多個(gè)簽名加密,即獲得這筆比特幣資金的使用許可。接下來交易被廣播到比特幣網(wǎng)絡(luò)中。在比特幣網(wǎng)絡(luò)中,每一個(gè)節(jié)點(diǎn)驗(yàn)證、并將交易在網(wǎng)絡(luò)中進(jìn)行廣播,直到這筆交易被網(wǎng)絡(luò)中大多數(shù)節(jié)點(diǎn)接收。交易被某個(gè)挖礦節(jié)點(diǎn)驗(yàn)證后被添加到區(qū)塊鏈上。
實(shí)際交易
?特幣交易建?和簽名時(shí)不?連接?特幣?絡(luò)。只有在執(zhí)?交易時(shí)才需要將交易發(fā)送到?絡(luò)。用戶在交易比特幣時(shí),只需要設(shè)置交易的目的地址和金額,其他的由錢包程序完成。比特幣還可以使用延時(shí)發(fā)送交易的功能。
交易結(jié)構(gòu)
一筆比特幣交易是一個(gè)含有Tx_in(交易輸入)和Tx_out(交易輸出)的數(shù)據(jù)結(jié)構(gòu),每筆交易TX包含有若干個(gè)Tx_in和若干個(gè)Tx_out。除創(chuàng)世區(qū)塊(genesis block)中的交易外,每筆交易必有來源:一種是挖礦獎(jiǎng)勵(lì)(幣基),在每個(gè)區(qū)塊的第一筆交易中;另一種是先前交易中未被使用的某個(gè)交易輸出,即UTXO。支出方用私鑰簽名證明自己的所有權(quán),而比特幣系統(tǒng)則要驗(yàn)證其是否未被花費(fèi)及其所有權(quán)。
交易結(jié)構(gòu)
大小字段數(shù)據(jù)類型描述4字節(jié)version版本 uint32_t數(shù)據(jù)結(jié)構(gòu)版本號(hào),明確這筆交易參照的規(guī)則1-9字節(jié)tx_in count輸入數(shù)量var_int輸入地址的數(shù)量41+字節(jié)tx_out count輸入tx_in[]一個(gè)或多個(gè)交易輸入地址,每個(gè)輸入>=41字節(jié)1-9字節(jié)tx_out count輸出數(shù)量var_int輸出地址的數(shù)量9+字節(jié)tx_out輸出tx_out[]一個(gè)或多個(gè)交易輸出地址,每個(gè)輸入>=9字節(jié)4字節(jié)lock_time鎖定時(shí)間uint32_t一個(gè)UNIX時(shí)間戳或區(qū)塊號(hào)lock_time是一個(gè)多意字段,表示在某個(gè)高度的Block之前或某個(gè)時(shí)間點(diǎn)之前該交易處于鎖定態(tài),無法收錄進(jìn)Block。
值含義0立即生效< 500000000含義為Block高度,處于該Block之前為鎖定(不生效)>= 500000000含義為Unix時(shí)間戳,處于該時(shí)刻之前為鎖定(不生效)若該筆交易的所有輸入交易的sequence字段,均為INT32最大值(0xffffffff),則忽略lock_time字段。否則,該交易在未達(dá)到Block高度或達(dá)到某個(gè)時(shí)刻之前,是不會(huì)被收錄進(jìn)Block中的。