天天看点

北大沙龙 | 技术大咖为大家讲解什么是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项目有疑问的小伙伴可以随时将问题抛在技术交流群里,我们会及时作出回应噢。