幣的交易驗證順序 - 數位貨幣

Daniel avatar
By Daniel
at 2019-02-27T03:08

Table of Contents

※ 引述《waakye (明天的太陽)》之銘言:
: 剛入比特幣不久,一開始自己轉來轉去交了不少手續費(學費)
: 後來發現一個問題,如果我轉錢給兩個不同的錢包
: 後轉的會要前面先確認過才能確認嗎?
: 還是各自不影響?
: 剛才稍微爬文不過不知道關鍵字怎麼下沒找到

加密貨幣主要就兩種交易系統,一種像是BTC, BCH, LTC, DOGE這類的

他們是UTXO系統,一筆交易可以有多個input,多個output。

https://i.imgur.com/FrHTSM5.png

另外一個是account交易系統,智能合約平台幾乎都這樣設計,方便VM實作。

譬如ETH, ETC, EOS

交易就只會有一個source address和一個destination address。

除非用專用智能合約地址,才有可能多個私鑰共同發出一筆交易。

先講account制系統,因為比較簡易,大家比較容易懂。

它的操作幾乎就跟銀行帳戶一樣直觀。一個錢包基本上就一個私鑰、一個接收地址。

所有操作都會重複利用本來的"account"的私鑰和地址

所有發出的交易基本上是EVM的操作,藉由nonce值讓網路能確認操作的順序。

所以不會發生後面的交易先被確認,但前面的交易還沒被確認。

在EVM的架構下,要在同一個區塊內確認是可行的,

只要區塊內的交易是按照順序排列,沒有nonce被跳過

比如說你短時間依序發出了三筆交易,A, B, C。

那是可以達到A, B, C在同一個區塊內被確認。(感謝Ayukawayen說明)

而且ETH 15秒產生一個區塊,所以一般使用上並不會有太大的延遲感覺。

但假如你交易A的gas price給的太低,就有可能造成後面的交易B和C卡住pending。

因為ETH平台被設計成是一個圖靈完備的虛擬機,有相依性指令一定要循序執行。

同時也避免了雙花情形的發生。

https://kb.myetherwallet.com/transactions/what-is-nonce.html



再來回到中本聰設計UTXO交易模型。

講實在的,我覺得中本聰設計的UTXO模型就是金流區塊鏈最棒的模型了。

無論在隱私、擴容上都有顧到。

首先一筆交易會由一個以上的input和output組成。

input就是某一個私鑰擁有操控權未花出比特幣。

output則是要送給某一個接收者的比特幣輸出。

https://i.imgur.com/OrAX3PE.png

所以比特幣是可以達成一筆交易,從多個地址進來的比特幣,再轉給多個比特幣接收者。

這對於一些需要大量同時交易的應用非常方便 (Core: No no no 比特幣是黃金.....)

同時也方便於混幣,提升隱私性。

因為從input和output就已經構成了交易的順序,所以也不需要額外的nonce去確認。

而比特幣也沒有什麼相依性智能合約要執行,

所以UTXO類型的比特幣也可以達成同時確認多筆的未確認交易,

譬如你短時間依序發出了三筆交易,A, B, C

A的input → A的output接收者a

B的input → B的output接收者b

C的input→C的output接收者c

假如A的change output就是B的input,B的change output就是C的input

那麼這三筆交易仍然可以在被同一個區塊內確認。

不過也是有個上限值,我記得是一百筆用同一個input的串列交易可以被同一個區塊確認。

當然依照input和output相依順序,後面的交易無法先於前面的交易被確認。

所以交易A的手續費假如付太少,仍然會卡住後面B和C的交易。

但是假如這三筆交易沒有用到有相依性的input就有可能互相獨立。

A的inputs集合 → A的output接收者a

B的inputs集合 → B的output接收者b

C的inputs集合 → C的output接收者c

譬如說你的錢包都是收小額捐款,所以有非常多的小額input。

那就可能會有這樣的狀況發生:後發的交易C假如手續費較高可能還會先被確認。

在這種狀態下也不會有一百筆同時確認的限制值,可以同一個確認區塊塞到上限為止。

若要實驗的話可以用BCH,手續費便宜多了,也不會塞車。

--
simpleledger:qzsn8qeupph6pf8kyn2x79afff7pygzfvqlf9hzmu9
http://tinyurl.com/y3f9r3wo
Bitcoin: 1GxtyprMfcxE366BDUsg1skQyuAnxktZjc
http://tinyurl.com/y6gtg5zn
Bitcoin Cash: bitcoincash:qzsn8qeupph6pf8kyn2x79afff7pygzfvqnjwvhmzm
http://tinyurl.com/y2wgj642
Ethereum: 0x4A2B1e35eb64141bbad4C58cB7D79692bC5Dbbc2
http://tinyurl.com/y5kdt5tc
--

All Comments

Christine avatar
By Christine
at 2019-03-03T04:02
推優文
Hardy avatar
By Hardy
at 2019-03-05T16:44
先推再看
Una avatar
By Una
at 2019-03-07T16:27
Carolina Franco avatar
By Carolina Franco
at 2019-03-11T15:13
先推
Annie avatar
By Annie
at 2019-03-13T17:53
Oscar avatar
By Oscar
at 2019-03-14T00:23
Caroline avatar
By Caroline
at 2019-03-16T17:31
Odelette avatar
By Odelette
at 2019-03-18T11:01
優質文
Doris avatar
By Doris
at 2019-03-20T23:27

不過我覺得UTXO模型下一樣可以有智能合約架構
Victoria avatar
By Victoria
at 2019-03-25T22:48
就讓每個合約有自己的UTXO(或說一UTXO可能是某個合約的)
Ivy avatar
By Ivy
at 2019-03-28T21:14
Mason avatar
By Mason
at 2019-04-01T14:15
認真推
George avatar
By George
at 2019-04-04T12:56
謝謝回覆 我在多看看了解
Anthony avatar
By Anthony
at 2019-04-08T23:34
原來!
Connor avatar
By Connor
at 2019-04-11T13:50
推優文
Tracy avatar
By Tracy
at 2019-04-12T19:52
ETH區塊内的Tx是有序的 同帳戶多筆Tx進同一區塊是可以
Dinah avatar
By Dinah
at 2019-04-14T11:06
的 只要在區塊內沒有違反順序就好(例:A,B都在區塊1000
William avatar
By William
at 2019-04-16T19:35
,且A在B前,這樣是可以的)
Queena avatar
By Queena
at 2019-04-21T03:28
參見: https://etherscan.io/txs?block=7272917
William avatar
By William
at 2019-04-26T02:08
感謝樓上補正,因為我有自己實際測試
Robert avatar
By Robert
at 2019-04-30T08:25
之前測試都會多一個區塊,可能是我發交易速度不夠快
Vanessa avatar
By Vanessa
at 2019-05-03T12:50
而且我還故意第一筆交易給很低的gas price來卡交易
Zanna avatar
By Zanna
at 2019-05-07T03:04
Mason avatar
By Mason
at 2019-05-07T17:10
Jessica avatar
By Jessica
at 2019-05-11T07:42
TRON的ACCOUNT系統好像不支持nonce保證前後順序
Franklin avatar
By Franklin
at 2019-05-15T12:18
我查了一下TRON好像是UTXO和account混和制
待強者補充
Hazel avatar
By Hazel
at 2019-05-15T20:55
看起來TRON的基礎仍然使用UTXO機制
Edith avatar
By Edith
at 2019-05-18T00:41
解說推。雖然原理看不懂。
Leila avatar
By Leila
at 2019-05-18T22:07
Cara avatar
By Cara
at 2019-05-19T22:13
感謝板大回應~我之前研究過qtum白皮書,我說的作法就跟他
的滿像的:
Blockchain state除了有當前utxo set,也有現存的所有合約
。一個合約可以擁有多個utxo,而一個utxo只能屬於一個合約
,或是不屬於任何合約但像原本比特幣一樣可以被script解鎖
。合約要轉錢出去的時候,vm會動用該合約的utxo(刪除花掉
的utxo並根據轉錢目的地產生新的utxo)。合約的utxo只能被v
m動到,使用者發的交易的input如果有引用到合約的utxo就會
被拒絕。
我猜所謂帳戶和utxo混用,應該跟這種作法是一樣意思:最底
層是utxo,往上一層是帳戶;一個帳戶擁有多個utxo,而一個u
txo可以屬於某個帳戶也可以獨立使用(用script解鎖)。
Emma avatar
By Emma
at 2019-05-21T04:46
這樣混用的優缺點就是同時繼承兩者的優缺點。
優勢:直觀的帳戶體系(反正使用者只要知道每個帳戶有多少
餘額,這些餘額如何由utxo組成不重要)以及UTXO的優勢(要
隱私就不要特地開一個帳戶,照原本比特幣那樣用就好)
Joe avatar
By Joe
at 2019-05-23T12:36
看起來qtum和tron都是用同樣的方法實現智能合約平台
Selena avatar
By Selena
at 2019-05-26T19:02
這樣的確可以整合兩者優點,提高UX、隱私和擴容性
Kumar avatar
By Kumar
at 2019-05-30T16:46
劣勢:其中一個就是blockchain state變頗複雜,utxo set和a
ccount set都要維護,還要互相指來指去。
Audriana avatar
By Audriana
at 2019-06-03T21:07
感謝補充優缺點,可以來好好研究
Ida avatar
By Ida
at 2019-06-07T11:54
快推,才不會被人發現我看不懂
Odelette avatar
By Odelette
at 2019-06-10T13:12
推個

幣的交易驗證順序

Edith avatar
By Edith
at 2019-02-27T01:30
剛入比特幣不久,一開始自己轉來轉去交了不少手續費(學費) 後來發現一個問題,如果我轉錢給兩個不同的錢包 後轉的會要前面先確認過才能確認嗎? 還是各自不影響? 剛才稍微爬文不過不知道關鍵字怎麼下沒找到 - ...

ENJ撿到槍嗎?

Noah avatar
By Noah
at 2019-02-26T22:15
※ 引述《baby79080000 (Michael Chiang)》之銘言: : 請問發生什麼大事嗎? : 原本都快下交易所,現在暴漲一倍 : 有人有去研究嗎? 借標題問一下 有人知道RDN怎麼了嗎? 突然一下上來40多% 嚇數上周剛剛清空的我 ----- Sent from JPTT on my iPh ...

售價21,900,HTC EXODUS開放台幣門市購買

Edith avatar
By Edith
at 2019-02-26T19:50
新聞來源連結:動區動趨 http://bit.ly/2BU7C0R 新聞本文: 「售價 21,900 新台幣」——HTC 的區塊鏈手機「EXODUS 1」開放台幣購買,並受幣安幣 (BNB)支付 由台灣手機廠宏達電(HTC)旗下推出的區塊鏈手機 EXODUS 1 現在開放新台幣等法幣購 買,計劃推展至 ...

談加密貨幣 股神巴菲特:「基本上就是一

Andrew avatar
By Andrew
at 2019-02-26T16:06
談加密貨幣 股神巴菲特:「基本上就是一種妄想」 波克夏海瑟威公司(Berkshire Hathaway)董事長巴菲特(Warren Buffett)25日接受美 國媒體CNBC訪問時提到,「比特幣根本就沒有獨特的價值,基本上就是一種妄想。」 巴菲特在訪問中表示,他很同情那些妄想透過購買加密貨幣而改變自 ...

PEOS幣?這是什麼東西?

Oliver avatar
By Oliver
at 2019-02-26T15:19
話說今天突然在EOS錢包發現了一個新的代幣PEOS, 問題是我從沒進過這名字相關的dapp, 上網稍稍查詢根本沒任何相關資訊, 不知道有沒有人知道這是啥呀? ---話說ETH錢包雖然也常莫名的跳出一堆鬼代幣 但EOS的“ 莫名”出現還真少見... - ...