如果說商業上可行了,那么在技術上,OKLink推出LTC瀏覽器則是因為UTXO模型有著延續性和融合性。
UTXO的英文全稱是Unspent Transaction Output,簡單理解為:未消費的交易輸出。
比特幣本質上是虛擬貨幣,反應到具象事物上就是一串代碼,而UTXO就是記錄比特幣交易的賬戶模型,中本聰在構建比特幣時初創并引用了它。
通常來說,談到UTXO總會首先聯想到比特幣,但需要額外指出的是:UTXO不是比特幣所獨有的。例如LTC、BCH、BSV等“比特系”幣種,都使用了UTXO模型,而
以太坊則使用的是Account 模型。
這也是OKLink
區塊鏈瀏覽器為何在
btc瀏覽器上線后優先推出LTC瀏覽器,是OKLink的打法之一。因為除了歷史節點的重要性之外,LTC在幣種特性上也和BTC有著一致性,這將在很大一部分程度上節省開發周期,快速豐富瀏覽器的“數據庫”,為之后鏈上數據實時分析提供必要的基礎條件。
“在OKLinkBTC瀏覽器上線一個多月后,我們就接著上線了LTC瀏覽器,說明UTXO幣種是有淵源的,而BCH、BSV的瀏覽器我們也會很快會同時上線。”OKLink產品副總裁張超透露。
我們可以把UTXO理解為交易過程中的一個數據結構。未花費的交易輸出UTXO是一個包含交易數據和執行代碼的數據結構,可以通俗的解釋為某地址已經收到,但尚未花費出去的加密
數字貨幣。基于區塊鏈的加密數字貨幣使用UTXO來驗證一個地址是否擁有未使用過的加密數字貨幣用于支付。
現在的銀行支付系統、證券交易系統,包括互聯網第三方支付系統(比如支付寶、微信),其核心都是基于賬戶(account based)的設計,底層數據都是由關系型數據庫支撐。在加密數字貨幣領域,比特幣的賬戶模型就是基于UTXO數據結構。由此在業內有這樣的說法:”其實并沒有什么比特幣,有的只是UTXO。”
在實際的交易場景中,一筆UTXO交易的組成是這樣的:
(1)A給B支付6個比特幣;(2)A又給B支付2個比特幣;(3)C給B支付1個比特幣;(4)B給其他人轉出支付4.5個比特幣,B錢包此前的比特幣數為0。
B的錢包里的比特幣(UTXO)變化結果如下:
(1)之后,B錢包里有一筆大小為6的UTXO收入交易記錄,凈UTXO為6;(2)之后,B錢包里有兩筆UTXO收入交易記錄,一筆大小為6的和一筆大小為2的,凈UTXO為8;(3)之后,B錢包里有三筆UTXO交易記錄,一筆大小為6的,一筆大小為2的和一筆大小為1的,凈UTXO為9。
注意:
(4)之后,B的錢包里基于(3)的基礎,新增一筆支出為6個UTXO,然后新增一筆大小為1.5的收入交易記錄。凈UTXO為3-->4.5(終態)。
出現這種操作的原因是:
在UTXO模型中,交易處理的基本單位是一個交易記錄,任何一個交易的輸入都是某一個交易的輸出。上述的三筆為1,2,6個大小的UTXO可以視為三個面額為1,2,6的硬幣,硬幣無法掰開花,只能拿出合適的一個全花出去,然后接受對方找零。在比特幣交易系統中,“找零”的過程是系統自動操作,UTXO接收方(目標地址)感知不到。
總結起來UTXO有三大原則:
1、所有交易始于Coinbase(即始于挖礦獎勵所得);2、除了Coinbase交易之外,所有的交易輸入都必須來自于前面一個或者幾個交易的UTXO輸出;3、每一筆的交易支出總額和交易收入總額相等。
從理論基礎上來看,UTXO模型的維護難度相比以太坊的Account 模型更高。主要是由于UTXO模型側重于賬戶的概念,而Account更側重于協議的概念。因此UTXO模型對于復雜邏輯,或者需要狀態保存的合約,實現難度大,維護起來也更加麻煩。
而Account通過使用協議編寫智能合約的方式,能夠讓合約以代碼形式保存在 Account 中,增加了靈活性和可編程性,批量操作的成本也更低。
對于OKLink團隊而言,優先選擇對UTXO模型的幣種進行區塊鏈瀏覽器的開發,實際上是選擇了從比特幣的設計邏輯去理解“鏈的交易世界”,從最原始的地方出發,去理解比特幣所帶來的真實價值和幣種迭代的技術含義。
盡管這帶來了不少的麻煩,但對每一個尊崇”去中心化“理念的人來說,是一次對技術的朝圣。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。