目前的区块链技术中,记账的方式主要有两种形式,以比特币为代表的UTXO模型,UTXO是该记账模式的缩写,它的英文全拼为Unspent Transaction Output,汉语翻译为“未花费的交易输出”;对于“未花费的交易输出”这个名词对于大多数人来说,应该会比较陌生。如果你觉得陌生的话,请接着文章下面的分解。另一种是以以太坊为代表的基于账户/余额的记账模式,基于账户/余额的这种记账模式比较简单了,和现在的银行卡记账方式一样,大多数人都能够很清晰地理解这种模型。一.解说UTXO模型

在解说UTXO模型之前,我想先说说一个名词,叫做Transaction,即交易,Transaction和UTXO是相辅相成的,下面先来举个例子:

张三:通过挖矿得到了120个比特币,现在张三饿了,想要花费2个比特币去购买一个面包。这是只是举例而已,以现在比特币的价格,1个比特币就可以买到一大堆面包了。

现在我们假设,李四是面包点营业主

这样的话,在比特币中,张三付给李四将一次性付给李四120块,李四给张三找零118块,这里其实产生了两笔交易,咱们可以这样理解,张三的钱被分成了两份,其中118打给了自己,剩下的2块打给了李四。

交易与交易之间组成了网状关系,1个交易的输出,成为了下1个交易的输入;下1个交易的输出,又成了下下1个交易的输入。所有的钱,在这个网络中流动,每1笔钱的去向、来源,都是可追溯的,而这也是区块链网络的一个重要特点。

上面的讲解可能大多数人都比较懵逼,接下来咱们用比较通俗的方式来说明UTXO和Transaction到底是什么

在现实生活中,一笔转账对应的事一个付款人和一个收款人,而在比特币种,一笔转账对应的事多个转账人和多个收款人。

现在咱们仔细分析一下上面的这个例子,对于张三买面包这个案列

付款人:张三 120块 收款人:张三 118块,李四 2块

张三的120,转118块给自己,转2块给李四,对应到交易里面,就是这笔交易有1个输入,2个输出!

下面来一个多输入,多输出的案列

考虑如下场景:用户A和用户B之间发生了一个交易T3,A向B转100元。 A的100元,来自T1:C向A转的80元 T2:D向A转的30元(共110元,但A只转了100元给B,10元找零返回给A的账号)。 同理,C向A转的这80元,来自用户E、F的某次交易...... D向A转的这30元,来自用户E的某次交易......

这个交易就有2个输入,2个输出: 2个输入(也就是2个UTXO): T1: C向A转的80元 T2:D向A转的30元

2个输出: B:100元 A:10元(找零)

当你理解上面的例子时,我们再来说一下UTXO,理解上面的例子对你理解UTXO会特别有帮助。

1.比特币的交易中不是通过账户的增减来实现的,而是一笔笔关联的输入/输出交易事务。

2.每一笔的交易都要花费“输入”,然后产生“输出”,这个产生的“输出”就是所谓的“未花费过的交易输出”,也就是UTXO。每一笔交易事务都有一个唯一的编号,称为交易事务ID,这是通过哈希算法计算而来的,当需要引用某一笔交易事务中的“输出”时,主要提供交易事务ID和所处“输出”列表中的序号就可以了。

3.由于没有账户的概念,因此当“输入”部分的金额大于所需的“输出”时,必须给自己找零,这个找零也是作为交易的一部分包含在“输出”中。

4.旧的UTXO不断消亡,新的UTXO不断产生。所有的UTXO,组成了UTXO Set 的数据库,存在于每个节点

5.任何1笔UTXO,有且仅可能被1个交易花费1次

6.1个UTXO,具有如下的表达形式: 1个UTXO = 1个Transaction ID Output Index二.UTXO模型的区块链钱包余额形式

深刻理解了UTXO的概念,钱包就很容易理解了,某个人的钱包的余额 = 属于他的UTXO的总和;在这里,你会发现一个不同于现实世界的“银行”里的一个概念,在银行里,会存储每个账号剩余多少钱。但这里,我们存储的并不是每个账号的余额,而存的是1笔笔的交易,也就是1笔笔的UTXO,每个账户的余额是通过UTXO计算出来的,而不是直接存储余额。三.账户余额模型

账户余额模型和当今的银行卡一样,当我们需要花费钱的时候,会去先检查我们的余额是否足够。转账的整个业务流程和银行卡一样的,基于账户的余额。

扫码关注全栈修炼,带您成为全栈工程师

本文标签:区块链 模型

utxo模型_(区块链基础)简述UTXO模型和账户模型相关推荐

  1. 区块链中utxo模型是什么意思_区块链中的UTXO是什么意思?

    币圈最专业的十种挣钱办法,加微信拉你进群一起交流最佳答案: UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易生成及验证的一个核心概念.交易构成了一组 ...

  2. 区块链中utxo模型是什么意思_区块链世界的UTXO是什么意思?通俗解释一下

    之前听了<从0到1学透区块链>课程里面,其中在<比特币技术来源>一节中提到了UTXO. 后来在一期王大炮转发Qbao CEO陈琳的专访中提到,为什么会在QTUM上进行开发?是因 ...

  3. 私钥经过哈希计算可以产生公钥_「区块链基础概念100」:公钥和私钥 | 027

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 投资区块链,猛戳:火星财经App下载 来源:学习区块链 原文标题:「区块链基础概 ...

  4. 问道区块链_区块链学习_v1.0.0_持续更新。。。

    本系列内容参考图 创建 共识网络 调用 部署 挖矿 消耗 编写 超级链组件 节点 多节点 账号 智能合约 合约账号 燃料耗品代币 开发者 区块 尊重原创,转载请注明出处https://blog.csd ...

  5. AIADATA 独家深度解密:百度XuperChain开源区块链基础平台

    AIADATA 独家深度解密:百度XuperChain开源区块链基础平台 百度超级链Xuperchain正式宣布开源.根据官网显示,链内并行技术.可插拔共识机制.一体化智能合约等四大技术支撑开源,让区 ...

  6. 【问链-区块链基础知识系列】 第十课 首席架构师谈区块链技术演进

    一.区块链和比特币,都有"币-链-网"三层含义 1.第一层含义是"币".这个"币"并不是刚才王行长所说的真正意义上的"货币&quo ...

  7. 区块链技术与支付_区块链技术将如何确保在线支付

    区块链技术与支付 Look around at the business climate today and you will find a multitude of fintech startups ...

  8. 区块链基础知识与关键技术解析

    区块链基础 1. 区块链的来龙去脉     1.1 区块链技术起源     1.2 比特币产生背景与现状     1.3 数字货币概念     1.4 比特币技术原理 2. 区块链概念与产业现状   ...

  9. 【区块链基础】5——ETH协议

    GHOST协议 以太坊系统将出块时间降到了15秒左右,相比于比特币系统大幅度提升了出块的速度,但由于P2P网络延迟,会导致出现大量的临时性分叉,间接造成算力的分散,若沿用比特币系统中最长合法链原则,将 ...

最新文章

  1. 利用c语言结构体和union实现类似c++的public,private的实现
  2. 最新ZeuS僵尸网络敲响网银安全警钟
  3. 图论浅析--最短路之Bellman-Ford
  4. 程序语言的概念知识笔记
  5. JS之setTimeOut与clearTimeOut
  6. python 笔试题 英方_4000字转型数据分析师笔试面试经验分享
  7. c函数strstr和sscanf组合高级技巧
  8. Janusec WAF网关安装体验
  9. 电脑显示器尽快触摸化
  10. asp远程访问sql server数据库
  11. springboot整合shiro之实现记住我
  12. 启用iptables后,连接速度很慢
  13. Java:三角函数计算器!
  14. 无线传感器网络路由优化中的能量均衡LEACH改进算法
  15. c语言prime函数怎么用_用一个自动关机小程序小试牛刀,玩转C语言System函数,边学边玩...
  16. 购买域名不得不注意的事项
  17. layer 在标题中加点击监听事件
  18. 用数据分析看泰坦尼克号
  19. 《我十年的程序员生涯》系列之三:阳光灿烂的日子
  20. [js项目]封装库-连缀

热门文章

  1. 资料网址大全 (数学,深度学习,机器学习,计算机视觉,人脸识别,图像处理等)
  2. C语言密码破解!远没有你想的那么简单!
  3. Excel打不開怎麼辦? • 貓噗知識+
  4. php redis 菜鸟,Redis入门(一):Redis 简介
  5. python爬取知乎用户信息泄露_scrapy实战--爬取知乎用户信息(上)
  6. tf1-estimator的使用
  7. 安装adobe系列产品,提示错误代码81解决办法
  8. PDF文件怎么打印?几个步骤轻松教会你
  9. 使用Jetbrains Upsource进行Code Review
  10. pip安装使用清华镜像