比特幣中utxo的作用
Ⅰ 各區塊鏈架構的橫向比較
各區塊鏈架構的橫向比較
時常聽人們談起區塊鏈,從 2009 年比特幣誕生至今,各式各樣的區塊鏈系統或基於區塊鏈的應用不斷被開發出來,並被應用到大量的場景中,而區塊鏈技術本身也在不停地變化和改進。
區塊鏈又被稱為分布式賬本,與之對應的則是中心化賬本,比如銀行。與中心化賬本不同的是,分布式賬本依靠的是將賬本數據冗餘存儲在所有參與節點中,來保證賬本的安全性。簡單地說,區塊鏈會用到三種底層技術:點對點網路技術、密碼學技術和分布式一致性演算法。而通常,區塊鏈系統還會「免費附贈」一種被稱為智能合約的功能。智能合約雖然不是區塊鏈系統的必要組成部分,但由於區塊鏈天生所具備的去中心化特點,使它可以很好地為智能合約提供可信的計算環境。
為了適應不同場景的需求,區塊鏈系統在實際應用的過程中往往會需要進行各種改造,以滿足特定業務的要求,比如身份認證、共識機制、密鑰管理、交易頻次、響應時間、隱私保護、監管要求等。而實際應用區塊鏈系統的公司往往沒有進行這種改造的能力,於是市場上慢慢出現了一些用於定製專用區塊鏈系統的框架,採用這些框架就可以很方便地定製出適用於企業自身業務的區塊鏈系統。
本文將對目前市場上幾個典型的區塊鏈框架進行橫向對比,看看它們都有哪些特點,以及它們之間到底有哪些區別。為了保持對比的公正性,本文將只針對開源的區塊鏈框架進行討論。
各區塊鏈架構的簡單介紹
1、比特幣
比特幣(bitcoin)源自一名叫做中本聰(Satoshi Nakamoto)的人在 2008 年發表的一篇名為《比特幣:一種點對點的電子現金系統》(Bitcoin: A Peer-to-PeerElectronic Cash System)的論文,文中描述了一種被他稱為「比特幣」的電子貨幣及其演算法。在之後的幾年裡,比特幣不斷成長和成熟,而它的底層技術也逐漸被人們認識並抽象出來,這就是區塊鏈技術。比特幣作為區塊鏈的鼻祖,在區塊鏈的大家族中具有舉足輕重的地位,基於比特幣技術開發出的山寨幣(altcoins)的數量有如天上繁星,數不勝數。
從論文中可以得知,中本聰設計比特幣的目的,就是希望能夠實現一種完全基於點對點網路的電子現金系統,使得在線支付能夠直接由一方發起並支付給另外一方,中間不需要通過任何的中介機構。總結來說,他希望比特幣的設計能夠實現以下這些目標:
● 不需要中央機構就可以發行貨幣
● 不需要中介機構就可以支付
● 保持使用者的匿名性
● 交易無法被撤銷
從電子現金系統的角度來看,以上這些目標在比特幣中基本都得到了實現,但是依然有一些技術問題有待解決,比如延展性攻擊、區塊容量限制、區塊分叉、擴展性等。
在應用場景方面,目前大量的數字貨幣項目都是基於比特幣架構來設計的,此外還有一些比較實際的應用案例,比如彩色幣、t? 等。
彩色幣(coloredcoin),通過仔細跟蹤一些特定比特幣的來龍去脈,可以將它們與其他的比特幣區分開來,這些特定的比特幣就叫作彩色幣。它們具有一些特殊的屬性,從而具有與比特幣面值無關的價值,利用彩色幣的這種特性,使得開發者可以在比特幣網路上創建其它的數字資產。彩色幣本身就是比特幣,存儲和轉移不需要第三方,可以利用已經存在的比特幣的基礎。
t? 是比特幣區塊鏈在金融領域的應用,是美國在線零售商 Overstock 推出的基於區塊鏈的私有和公有股權交易平台。
2、以太坊
以太坊(ethereum) 的目標是提供一個帶有圖靈完備語言的區塊鏈,用這種語言可以創建合約來編寫任意狀態轉換功能,用戶只要簡單地用幾行代碼來實現邏輯,就能夠創建一個基於區塊鏈的應用程序,並應用於貨幣以外的場景。
以太坊的設計思想是不直接「支持」任何應用,但圖靈完備的編程語言意味著理論上任意的合約邏輯和任何類型的應用都可以被創建出來。總結來說,以太坊在比特幣的設計目標之外,還需要實現以下幾個目標:
● 圖靈完備的合約語言
● 內置的持久化狀態存儲
目前基於以太坊的合約項目已達到數百個,比較有名的有 Augur、TheDAO、Digix、FirstBlood 等。
Augur 是一個去中心化的預測市場平台,基於以太坊區塊鏈技術。用戶可以用數字貨幣進行預測和下注,依靠群眾的智慧來預判事件的發展結果,可以有效地消除對手方風險和伺服器的中心化風險。
限於篇幅,基於以太坊智能合約平台的項目就不多介紹了。基於以太坊的代碼進行改造的區塊鏈項目也有不少,但幾乎都是閉源項目,只能依靠一些公開的特性來推斷,所以就不在本文展開討論了。
3、Fabric
Fabric 是由 IBM 和 DAH 主導開發的一個區塊鏈框架,是超級帳本的項目成員之一。它的功能與以太坊類似,也是一個分布式的智能合約平台。但與以太坊和比特幣不同的是,它從一開始就是一個框架,而不是一個公有鏈,也沒有內置的代幣(token)。
超級賬本(hyperledger)是 Linux 基金會於 2015 年發起的推進區塊鏈技術和標準的開源項目,加入成員包括:荷蘭銀行(ABN AMRO)、埃森哲(Accenture)等十幾個不同利益體,目標是讓成員共同合作,共建開放平台,滿足來自多個不同行業各種用戶案例,並簡化業務流程。
作為一個區塊鏈框架,Fabric 採用了松耦合的設計,將共識機制、身份驗證等組件模塊化,使之在應用過程中可以方便地替換成自定義的模塊。除此之外,Fabric 還採用了容器技術,將智能合約代碼(chaincode)放在 docker 中運行,從而使得智能合約可以用幾乎任意的高級語言來編寫。
以下是 Fabric 的一些設計目標:
● 模塊化設計,組件可替換
● 運行於 docker 的智能合約
目前已經有不少採用 Fabric 架構進行開發的概念驗證(POC)項目在實施過程中,其中不乏一些金融機構做出的嘗試,不過由於項目剛剛起步,還沒有比較成熟的落地應用。
4、DNA
DNA(Distributed Networks Architecture,分布式網路架構),是由總部位於上海的區塊鏈創業公司「分布科技」開發的區塊鏈架構,可以同時支持公有鏈、聯盟鏈、私有鏈等不同應用類型和場景,並快速與業務系統集成。
與以太坊、Fabric不同的是,DNA 在系統底層實現了對多種數字資產的支持,用戶可以直接在鏈上創建自己的資產類型,並用智能合約來控制它的發行邏輯。對於絕大部分的區塊鏈應用場景,數字資產是必不可少的,而為每一種數字資產都開發一套基於智能合約的轉賬、發行邏輯是非常浪費且低效的。因此,由區塊鏈底層提供直接的數字資產功能是十分必要的。而對於那些完全不需要數字資產的應用場景,同樣可以基於 DNA 提供的智能合約架構來編寫任意的自定義邏輯來實現。
DNA 的設計目標主要有以下幾點:
● 多種數字資產的底層支持
● 圖靈完備的智能合約和狀態持久化
● 跨鏈互操作性
● 交易的最終性
目前已有不少金融機構採用 DNA 架構來進行區塊鏈概念驗證產品的開發。除此之外,還有一些已經落地的區塊鏈項目,如小蟻區塊鏈、法鏈等。
小蟻(antshares)是一個定位於資產數字化的公有鏈,將實體世界的資產和權益進行數字化,通過點對點網路進行登記發行、轉讓交易、清算交割等金融業務的去中心化網路協議。它採用社區化開發的模式,在架構上與 DNA 保持一致,從而可以與任何基於DNA 的區塊鏈系統發生跨鏈互操作。
法鏈是全球第一個大規模商用的法律存證區塊鏈,一個底層基於 DNA區塊鏈技術,並由多個機構參與建立和運營的證據記錄和保存系統。該系統沒有中心控制點,且數據一旦錄入,單個機構或節點無法篡改,從而滿足司法存證的要求。
5、Corda
Corda 是由一家總部位於紐約的區塊鏈創業公司 R3CEV 開發的,由其發起的 R3區塊鏈聯盟,至今已吸引了數十家巨頭銀行的參與,其中包括富國銀行、美國銀行、紐約梅隆銀行、花旗銀行、德國商業銀行、德意志銀行、匯豐銀行、三菱 UFJ 金融集團、摩根士丹利、澳大利亞國民銀行、加拿大皇家銀行、瑞典北歐斯安銀行(SEB)、法國興業銀行等。
從 R3 成員的組成上也可以看出,Corda 是一款專門用於銀行與銀行間業務的區塊鏈架構。盡管 R3 自己聲稱 Corda 不是區塊鏈,但從各項特徵來看,它具備區塊鏈的一些特性。
技術對比
1、數字資產
接下來,將對前文中提到的這些區塊鏈框架進行一系列的技術對比,並從多個維度展開介紹它們的區別與相似之處。
區塊鏈的內置代幣通常是一種經濟激勵模型和防止垃圾交易的手段。比特幣天生就有且只有一種內置代幣,所以在比特幣系統中所有的「交易」本質上都是轉賬行為,除非通過外部的協議層來給比特幣增加額外的數字資產。
以太坊和 DNA 具有內置代幣,它們的作用除了以上提到的經濟激勵和防止垃圾交易之外,還具有為系統內置功能提供一個收費的渠道。比如以太坊的智能合約運行需要消耗 GAS,而 DNA 的數字資產創建也需要消耗一定的代幣。
以太坊和 Fabric 沒有內置的多種數字資產支持,而是通過智能合約來實現相應的功能。這種方式的好處在於,系統設計可以做到非常簡潔,而且資產的行為可以任意指定,自由度極高。然而這樣的設計也會帶來一系列的負面影響,比如所有的資產創建者不得不自己編寫重復的業務邏輯,而用戶也沒有辦法通過統一的方式去操作自己的資產。
相比之下,DNA 和 Corda 採用了在底層支持多種數字資產的方式,讓資產創建者可以方便地創建自己的資產類型,而用戶也可以在同一個客戶端中管理所有的資產。對於邏輯更加復雜一點的業務場景來說,他們同樣可以利用智能合約來強化資產的功能,或者創建一種與資產無關的業務邏輯。
2、賬戶系統
UTXO(Unspent Transaction Output)是這樣一種機制:每一枚數字貨幣都會被登記在一個賬戶的所有權之下,一枚數字貨幣有兩種狀態,即要麼還沒有被花費,要麼已經被花費。當需要使用一枚數字貨幣的時候,就將它的狀態標記為已經花費,並創造一枚新的與之等額的數字貨幣,將它的所有權登記到新的賬戶之下。在這個過程中,被標記為已花費的數字貨幣就被稱為交易的輸入,而創造出來的新的數字貨幣被稱為交易的輸出,在一筆交易中,可以包含多個輸入和多個輸出,但是輸入之和與輸出之和必須相等。要計算一個賬戶的余額時,只要將所有登記在該賬戶下的數字貨幣的面額相加即可得出。
比特幣和 Corda 就採用了 UTXO 這樣一種賬戶機制,而以太坊則採用了更加直觀的余額機制:每個賬戶有一個狀態,狀態中直接記錄了賬戶當前的余額,轉賬的邏輯就是從一個賬戶中減去一部分余額,並在另一個賬戶中加上相應的余額,減去的部分和加上的部分必須相等。DNA 在賬戶機制上同時兼容這兩種模式。
那麼 UTXO 模式和余額模式,究竟有什麼優缺點呢?UTXO 最大的好處就是,基於 UTXO 的交易可以並行驗證且任意排序,因為所有的 UTXO 之間都是沒有關聯的,這對區塊鏈未來的伸縮性是有很大幫助的,而基於余額的設計就沒有這個優勢了;反過來,余額設計的優點是設計思想非常簡潔和直覺化,便於程序實現,特別是在智能合約中,要處理 UTXO 的狀態是非常困難的。這也是為什麼以智能合約為主要功能的以太坊選擇余額設計的原因,而比特幣、OnchainDNA、Corda 這些以數字資產為核心的架構則更傾向於 UTXO 設計。
關於身份認證,比特幣和以太坊基本沒有身份認證的設計,原因很簡單,因為這兩者的設計思想都是強調隱私和匿名,而反對監管和中心化,而身份認證就勢必要引入一些中心或者弱化的中心機構。Fabric、DNA 和 Corda 不約而同地選擇了採用數字證書來對用戶身份進行認證,原因在於這三者都有應用於現有金融系統的設計目標,而金融系統必然要考慮合規化並接受監管,此外現有的金融系統已經大范圍地採用數字證書方案,這樣便可以和區塊鏈系統快速集成。
Ⅱ 雙花理論是什麼概念
在學習區塊鏈的過程中,大家一定對會聽到「雙花」這個詞,意思就是雙重支付,或者更直白點就是一筆資金被花費了兩次。這篇文章我們來簡單的分析一下為什麼會有雙花,比特幣是如何避免雙花的。
在傳統的交易中,因為有銀行這樣的中心化機構,所以是不會存在雙花問題的:每一筆支付都將從你的銀行賬戶中扣除相應的資金,所有的明細在銀行都有記錄。但是在比特幣中,因為沒有賬戶的概念,而是引入了UTXO即未花費交易輸出。因為沒有銀行這樣的中心化機構的保證,當發生一筆交易時就可能存在著雙花的危險:比方說A有一個比特幣,然後他同時構造兩筆交易T1和T2來花費這1個比特幣,其中一個給了B,從B那裡買件衣服,一個給了C,從C那裡買雙鞋。如果不引入某種機制來避免這種情況,那作為數字貨幣的比特幣將沒有任何存在的意義。接下來就來分析一下比特幣是如何做到防止這種「雙花」攻擊的。
(1) 正常情況
首先我們來看看正常情況,說白了就是絕大多數時候,區塊鏈的共識機制就能將雙花消滅在萌芽狀態。我們還是以上面提到的例子來做說明:
假設A構造了兩筆交易T1和T2,將自己價值1btc的UTXO分別轉給了B和C,妄圖同時從B和C那裡獲得好處。然後A幾乎在同一時間將構造好的這兩筆交易廣播至網路。
假設網路中的礦工節點先收到了交易T1,發現這筆交易的資金來源確實沒有被花費過,於是將T1加入到自己的內存交易池中等待打包進區塊。
大部分情況下,這個礦工節點會在不久後又收到交易T2,此時因為T2所指向的交易輸入與已經加入交易池的T1相同,於是礦工節點會拒絕處理該交易。網路中其他的礦工節點都類似,因此A試圖雙花的嘗試胎死腹中。
(2) 分叉情況
上面說的是正常的情況,但是也有非正常的情況要考慮:假設礦工節點M1和M2幾乎在同一時間挖出了區塊,並且很不幸M1挖到區塊時只收到了交易T1,而M2挖到的區塊時只收到了交易T2,這樣交易T1和T2被分別打包進兩個區塊。因為這兩個區塊是差不多同一時間被挖出,於是造成了區塊鏈的分叉:
網路中某些節點(可能是離M1近的)先收到了M1打包的區塊BLK1,於是用該區塊延長自己的區塊鏈,而另外一些節點(鄰近M2的)則先收到M2打包的區塊BLK2,用該區塊延長自己的區塊鏈,於是整個區塊鏈網路
Ⅲ 比特幣現金UTXO集在和BSV分裂以後增長了多少
與鏈上交易相比,BCH網路的UTXO集也在增長。UTXO的增長隨著採用率而增加,目前UTXO的規模自2018年9月以來大幅飆升。
UTXO 是 Unspent Transaction Output 的縮寫,Transaction act發音簡寫為X。UTXO是中本聰最早在比特幣中採用的一個具體的技術方案。在比特幣的設計中,並沒有賬戶概念
Ⅳ 數字貨幣里的UTXO什麼意思
UTXO的中文意思叫作:未花費的交易輸出。
UTXO是數字貨幣中的賬戶模型,這個模型和我們現在銀行的賬戶模型是不一樣的。
拿轉賬來說,現在的情況是:
我要給依依轉2000塊錢,我要從我的招商銀行卡裡面給她轉賬,我的卡裡面有5000 塊錢,轉給她2000塊錢以後,我的招商銀行賬戶就被扣除了2000塊錢,還剩下3000塊錢。
那麼如果是基於比特幣的UTXO,情況是這樣的:
我有5000比特幣,我給依依轉2000比特幣,2000比特幣消耗掉了對不對?注意!這2000不是從我這5000總數裡面扣除的,而是:我的比特幣總額會分成兩份(一份
2000,一份3000),這就是所謂「生成兩個新的UTXO」:依依收下2000比特幣,我自己收下3000比特幣,3000算是給我的找零。
轉賬成功以後,我給依依的2000比特幣目前已經使用過了,被消耗掉了,就不能再叫UTXO了,而找零給我的3000比特幣目前我還沒有使用,所以它還能稱作UTXO ,也就是未花費的交易輸出。那麼,如果我總共有5000比特幣,我全部轉給依依,那麼就只需要生成一個新的
UTXO給依依就可以了,不需要找零了。
基於UTXO,每筆交易出現,都要確認比特幣之前的情況,檢驗比特幣是不是存在於我的UTXO中,如果不存在,那麼系統就會拒絕你的交易行為。
這樣一來,每筆交易的輸入和輸出都是有關系的,可以通過UTXO不斷向前追溯,一直追溯到比特幣誕生的時候,也就是挖礦的源頭。
如果我想用同一筆UTXO發送給兩個人,那麼系統只確認先接受到的那一筆,一旦確認UTXO已經被消耗了,那麼你就不可以再把它轉給下一個人,這樣就避免了雙重支付的問題。
既然系統只確認先接受到的那一筆,那麼問題來了,系統怎麼知道誰先誰後呢?系統當然知道,因為系統有一個叫「時間戳」的東西。
Ⅳ 我有1個比特幣怎樣辨真假
一、交易渠道:現在我們買比特幣的基本上是兩個通道:一個是場外交易、一個是交易所。場外交易是要有第三方擔保,對方收到款後,都會釋放到你提供的一個地址上,這個地址可以是交易所地址,可以是錢包地址。交易所交易是在交易所內幣幣交易比特幣,你掛買賣單,很快就成交了,速度非常快;其實交易所在這里也只是起到了一個記賬的作用,可以簡單的理解為在你的賬本上增加了一筆,另外一方減少了一筆,所以說交易過程是非常快的,這個過程區塊鏈上沒有任何交易記錄的,只是交易所從中記賬而已,可以用證券交易所類比。所以說第一先找一個靠譜的交易所或者場外交易渠道是非常重要的!
二、提取交易所的比特幣或者場外交易的時候直接讓對方轉到錢包的地址;為什麼要轉到錢包才能確認那?比特幣中有一個非常重要的數據結構utxo(utxo結構就是將貨幣從誕生到花費的所有記錄都連接起來),也就是平時說的可以追溯;也正是utxo結構保證了比特幣不可以偽造的問題。
【拓展資料】
比特幣(Bitcoin)的概念最初由中本聰在2008年11月1日提出,並於2009年1月3日正式誕生。
根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。比特幣的交易記錄公開透明。點對點的傳輸意味著一個去中心化的支付系統。
與大多數貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。P2P的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值。基於密碼學的設計可以使比特幣只能被真實的擁有者轉移或支付。這同樣確保了貨幣所有權與流通交易的匿名性。比特幣其總數量有限,該貨幣系統曾在4年內只有不超過1050萬個,之後的總數量將被永久限制在2100萬個。
2021年6月,薩爾瓦多通過了比特幣在該國成為法定貨幣的《薩爾瓦多比特幣法》法案。9月7日,比特幣正式成為了薩爾瓦多的法定貨幣,成為世界上第一個賦予數字貨幣法定地位的國家。
2021年9月24日,中國人民銀行發布進一步防範和處置虛擬貨幣交易炒作風險的通知。通知指出,虛擬貨幣不具有與法定貨幣等同的法律地位。
2021年11月10日,比特幣價格再創歷史新高,首次逼近6.9萬美元/枚。
2022年1月,比特幣繼續下跌,跌破42000美元,觸及去年9月以來未見水平。
Ⅵ 比特幣中國賬戶余額
比特幣不屬於任何一個國家的。
曾經和盈富財經學院的老師們聊過,他們講解過一些關於這方面的信息。在比特幣交易中,UTXO通常被作為基本單位,一旦被創建後就不能進行分割,只能在下一次的交易中被花費掉,進而產生新的UTXO。所以比特幣的賬戶余額,就是通過該用戶的UTXO而計算得來。
Ⅶ 比特幣區塊鏈是1個比特幣就有一個區塊鏈嗎每個節點都有完整的區塊鏈數據嗎
比特幣區塊鏈是1個比特幣就有一個區塊鏈嗎? 不是,區塊保存交易的,前期你成功建立一個區塊會得到一個幣,後期只能得到交易所付出的費用。一枚貨幣是一串數字簽名,是上一個擁有的人發給接受者的數字簽名,所有人都可以從交易中看出誰擁有這枚貨幣。
每個節點都有完整的區塊鏈數據嗎? 你說的節點指的是一個用戶節點? 一個用戶節點需要保留最長的工作量證明鏈條的區塊頭的拷貝,所以是知道所有區塊頭的數據的可以向前推進知道所有區塊鏈上的數據,但是沒有全部保存下來。一個區塊頭是很小隻有80位元組,是完全能夠保存下來的,因為節點的生成是很慢的。就算隨著時間遷移現在來看量也不是太大的。
Ⅷ 比特幣核心錢包導入後沒余額
由於各種原因不小心觸發條件,那麼你的資產就真的可能歸零。
導入錢包和創建錢包是兩個完全不同的動作,可能有的人會問這也能搞錯嗎,世界之大,無奇不有,在與imToken客服小組交流的時候發現,用戶反饋導入錢包資產歸零時,絕大多數情況都是因為明明是要導入錢包,而用戶選擇的卻是創建錢包,創建出來的新地址自然是沒有任何資產的。
曾經和盈富財經學院的老師們聊過,他們講解過一些關於這方面的信息,在比特幣交易中,UTXO通常被作為基本單位,一旦被創建後就不能進行分割,只能在下一次的交易中被花費掉,進而產生新的UTXO。
Ⅸ 比特幣錢包中的賬戶余額指的是什麼
曾經和盈富財經學院的老師們聊過,他們講解過一些關於這方面的信息。在比特幣交易中,UTXO通常被作為基本單位,一旦被創建後就不能進行分割,只能在下一次的交易中被花費掉,進而產生新的UTXO。
所以比特幣的賬戶余額,就是通過該用戶的UTXO而計算得來。
Ⅹ 比特幣一個UTXO交易為什麼要經過6個區塊確認才被認為更改不可逆(或者說幾乎不可逆)
你說的是對的,的確會回滾, 如果的交易不幸被打包到分叉上面了,這個交易很有可能會在主鏈被同步後被取消掉。
至於為什麼要6個確認是因為加大蒙出最優解難度(防止單節點造假)。 一個塊可能還能蒙出一個最優解,6個塊一起蒙出基本上不可能。 跟分叉關系不大