天天看點

北大沙龍 | 技術大咖為大家講解什麼是UTXO

2019年3月15日,第十期北大軟微-八分量協同實驗室學術沙龍活動如期展開,也是新年過後的第一期。本次技術沙龍讨論的主題是UTXO及相關知識,由Trias核心開發陳凱為主講。北京大學的沈晴霓教授、方躍堅副教授、Trias資深系統研發胡志琳以及軟微學院衆位博士生、碩士生參與了此次沙龍。

陳凱碩士畢業于中國科學技術大學,曾就職于中國航天和用友集團,曾開發的NIO系統實作了百萬級TPS通路的商務平台,具備豐富的服務高并發開發經驗,并對Erhereum和EoS等項目具備深刻的見解,在開發領域堪稱是權威人士。

北大沙龍 | 技術大咖為大家講解什麼是UTXO

在會上,陳凱首先對UTXO的含義做出了簡單的介紹。UTXO是一種常見的區塊鍊交易方案,是Unspent Transaction Output的簡稱(Transaction簡寫為TX),代表未花費的交易輸出,是中本聰在比特币中實作的一種技術方案。

在基于UTXO模型的交易中,有三點尤其需要注意的地方:

1、交易輸入必須來自于某筆交易的輸出。

2、某些交易可以沒有交易輸入,隻有交易輸出。(如挖礦獎勵)

3、交易輸入可以來源于多筆交易的輸出。

陳凱尤其強調說,在UTXO類型的交易中,每一筆交易輸入一定來源于某筆交易的輸出,它由交易id,交易輸出索引,解鎖腳本三部分組成。

在日常生活中,銀行也好,證券交易也好,微信支付寶也好,甚至以太坊,他們采用的是基于賬戶的設計,與UTXO不同。

北大沙龍 | 技術大咖為大家講解什麼是UTXO

很多人搞不清楚基于賬戶的機制與基于UTXO機制的差別,對此,陳凱給大家舉了一個常見而又形象的例子。

在基于賬戶的交易系統中,比如我賬戶裡有100塊,要給對方支付50塊錢,系統肯定會先檢查我的賬戶餘額是不是足夠完成支付,如果不夠,就顯示餘額不足之類的提示語;現在有100塊,肯定是夠了,就從我的賬戶裡減去50塊,給對方的賬戶裡加50塊。

而基于UTXO的方案呢?在UTXO方案中,每一筆交易需要配平輸入和輸出,當我把100塊輸入之後,對方收到了50塊的輸出,這個時候還有剩下的50塊是沒有輸出的,我隻好把剩下的50塊支付給自己,而這每一筆交易都帶有清楚的交易ID和索引編号的,交易去向全都清楚可查。

可能第一次接觸UTXO的朋友有點會問,使用UTXO有什麼好處呢?

首先,區塊鍊作為一個去中心化(或分布式)的賬本,不能像傳統的交易平台那樣建立一個中央資料庫,這會使得去中心化沒有意義。而對每一個節點來說,UTXO具有良好的隐私性,也容易做并發處理。

之後,陳凱又對Trias在UTXO實作上作出的改進做出了介紹。Trias在實作UTXO時,也是由交易輸出和交易輸入組成,每筆交易的輸入肯定來源于某筆交易的輸出。差別在于沒有用解鎖和鎖定腳本來驗證交易,而是通過簽名和驗證完成。

采用的是橢圓曲線數字簽名算法對交易進行簽名,用于簽名的資料必須包含唯一的方式辨別資料的資訊,隻有驗證通過以後,才會将該筆交易添加到塊中。

在沙龍的最後,沈晴霓教授和Trias資深系統研發胡志琳博士就此後的沙龍主題做出了安排,未來的沙龍将會以Trias相關技術與國内外學術論文結合起來,利用先進的國内外學術資源,對技術的可行性和便利性作出讨論和完善。

Trias每周都會和北大舉辦沙龍活動,對區塊鍊技術以及Trias項目有疑問的小夥伴可以随時将問題抛在技術交流群裡,我們會及時作出回應噢。

繼續閱讀