当前位置: > 快讯 > 正文

币圈子分析:区块链中的UTXO是什么意思?

区块链中的UTXO是什么意思? 区块链很多朋友都知道但实际上,这也是一门特别高深的学问,它可不仅仅是表面上看起来那么简单,其中包含的东西可多着呢,在小编看来,对区块链有着好的理解,就如同有了一条捷径一样,可以在以后的工作中少走很多弯路。搞懂区块链之后,已经不仅仅是简单的一种数字货币了,在各种各样的的数字货币交易中,区块链都能起到很大的帮助,具体的内容请继续往下看吧。之前听了火币网 COO 朱嘉伟的《从 0 到 1 学透区块链》课程里面,其中在《比特币技术来源》一节中提到了 UTXO。

后来在一期王大炮转发 Qbao CEO 陈琳的专访中提到,为什么会在 QTUM 上进行开发?是因为 QTUM 结合了 UTXO 账户体系和 EVM 共同特征的产品。

但是一直没有弄明白到底是什么 UTXO,今天逛知乎,看到了一个程序员朋友 -- 猿哥的论述,终于明白了 UTXO 的含义,现在分享出来给大家。

UTXO 代表 Unspent Transaction Output, 表示未花费的输出。

以现实的钱包举例,一个钱包中有一个 10 元、1 个 5 元,1 个 1 元,一共 16 元。比特币一个账户的余额,也是根据这个账户 UTXO 计算的。

当花 12 元买东西时,可以把 10 元和 5 元拿出去,然后得到找零的 3 元, 那这个时候之前的 10 元和 5 元因为已经花出去了就不再是 UTXO 了,新找零的 3 元成为新的 UTXO,再加上之前未动的 1 元 UTXO,目前的余额是 4 元。

这次新的交易记录在了新的区块上,但没有改变历史区块的数据。

比特币使用前后链接的区块链记录所有交易记录,当之前的 UYXO 出现在后续交易的输入时,就表示这个 UTXO 已经花费掉了,不再是 UTXO 了。

如果从第一个区块开始逐步计算所有比特币地址中的余额,就可以计算出不同时间的各个比特币账户的余额了。

好了,通过对以上的总结,大家对虚拟币的各个方面有没有了很深的了解呢?希望这篇文章会解答一下您的疑惑和让您对您的币种更加了解,会更加深入了解虚拟币。希望大家收获多多,钱包越来越鼓最后虚拟币也有一定的风险,希望大家量力而行,要谨慎客观的分析各方面的因素,综合自己的自身条件来考虑到底要不要选择一个币种。

区块链中的时间戳是什么

为了防止双花问题,系统会给每一个区块的交易信息都自动加上时间戳,给它打上时间烙印,这个时间你花了多少钱,花了就是花了,已经记录上了,不能再用它买别的东西了。具体怎么记录的呢?其实还是通过计算,把时间戳和区块上的其他交易信息,通过复杂的计算,得出一个加密数桥昌晌值,这个加密数值叫作“哈希值”,每一个新区块都包含前一个区块的哈希值,由此形成一条区块链。所以我们说:比特币系统,实际上是一个层层嵌套、永不停歇的、非常强大的时间戳系统,它利用的是时间戳,保证每一个区块按照时间顺序链接成“链”(也就是区块链)。从这里我们这样理解,时间戳,字面意思是给区块打上时间印记,它的实际作用在于:为之后计算哈希值提供一个重要参数,是计算和核对过程中一个必不可少、非常重要的信息。最后,我们总结本节的内容。本节主要介绍了两个名词:UTXO和时间戳,这两个概念呢迅蔽,是解决“双花问题敏锋”的重要手段,能够保证比特币可以在没有第三方机构的情况下,不被多次使用。

用户间发生了比特币交易区块上发生了什么

最近我从头写了一些区块链的底层知识,虽然看的人不多,但是我想这能够系统地给大家带来一些认知,比较基础,但是这也是最有意义的,我也会一直慢慢写下去。今天聊一聊搜纤比特币是怎样交易,他的交易过程是什么?区块链的本质是一个不可篡改的大账本,大数据库,所以呢,数字货币系统的存在,都是实现各种各样的交易,包括后来的一些智能合约,很多时候也是为了实现某种交易和信息交互。那我们就以比特币为例,讲一讲在比特币系统中的各种交易内容以及交易的过程。首先,每笔交易中肯定有各种各样的数据,你去菜市场买东西,你要有你的出价,你的身份以及卖东西的人的身份,卖价等等比特币也一样,我们要记录这笔交易,肯定要记录的是交易相关的一些数据。比如支付方的比特币钱包地址,支付方的比特币数量,金额,接收方的比特币的钱包地址以及接收方的数量金额,还有就是交易的费用,以及交易过程的一些详情,签名信息等等在每笔交易发生之后,由节点向比特币网络进行广播,把这段信息全部发出去。各个节点自动收取这笔交易,并且确认。只有交易被记录到区块里面才表示这个交易得到了全网的确认。比特币一个区块产生的时间是十分钟。这十分钟内的一些交易就会被打包,由矿工的节点进行封装。比特币实现的是一种电子现金的点对点交易,什么意思?就是相当于现实生活中人与人给现金,我给了你现金,我也就没有钱了,区别于现在银行之间转账的信用记录,会计记账的方式,说白了,一个是给钱,一个是打欠条。为了实现这样一种情形,他会有输出输入两个部分,一般情况下,输入金额会略微大于输出。这个多出来的钱,就是交给矿工的交易费用。而输入输出所面对的对象,都是比特币钱包的公钥地址。这也就是utxo账户的基础,每一笔钱都会被记录它的流向,同时每世绝仿一笔钱都会以哈希指针的方式,也就是某一个信息联系的方式,指向前一个地址。而这个支付费用的高低则会影响到旷工处理的先后。比特币采用的是价高者得,也就是说出的交易费用宏如高的会被更迅速的打包进入一个区块。交易费低或者没有交易费的时候,可能就会被延后打包,甚至不被打包,由于比特币的处理速度非常慢,每秒钟大约只有七笔。由于节点太多,算力竞争太大,转账数据太多,如果你给的钱太低,你的记录就会被延后,执行甚至不执行这就是比特币在区块链系统中交易的过程如果有兴趣,可以看一看下面链接的这门课程,通俗易懂,向你系统讲述了区块链诞生的历史,底层的技术逻辑以及一些具体的项目情况,帮助你系统入门,区块链不再局限于短期的炒买炒卖。更有信心用你自己的知识去理解,解释区块链,看到他长期的巨大价值。

潜藏在货币流转特性中的秘密,DCEP如何优雅地解决“双花问题”

上一篇文章我们已经谈过,账户体系可以完美地解决数据作为货币会产生的双花问题,但由于这种账户机制,会使得货币的流转丧失并行的特征,很难在一个独立的系统当中容纳大量的交易同时进行。 那么,我们如何才能让这些账户可以实现数据的并行化处理呢? 换一个思路来思考账户结构。 我们之前的账户体系当中,不同的用户账户所记录的是一个数字,我们利用一个数字来表示一个用户手中所持有的货币的数量。但现在我们不再使用一个数字来表示账户的货币数额了,而是将每个货币都变为一个独立的数据段记录在账本当中。 当用户要进行交易的时候,只需要选择一部分货币,并将这这些货币复制给新的用户,同时将原本用户手里的货币标记为作废即可。 假设张三的账户中存在着100张代表着一元的货币,每一个一元货币都有着独一无二的编号,那么当张三向李四转移50块钱的时候,张三只需要在自己的账户当中选择出这50张货币,告诉账户的管理者,我要把这50张货币转移给李四。而账户的管理者在收到这样的一个信息请求之后,他就会把这50张货币在账户当中标记为作废。与此同时,在李四的账户当中产生50张新的一元货币。 这种处理方法也就是现在所谓比特币UTXO结构所采用的一种方式。它的优点在于可以允许货币同时由多个账户转向多个账户。交易过程中系统会自动加上时间戳,如果用户用同一笔UTXO付给两个人,系统中的节点只确认先接收到的那一笔。 然而,实际上比特币的交易实现,并没有采用 50 张一元这种做法,而是让每一个货币都有自己的面额。 这也很好理解,因为既然货币是可以被生成和销毁的,那么为什么不直接生成一张50元呢,更加简单便捷。 在比特币账户账本中,货币是以一个字符串的形式来进行记录的。每一个货币都有自己的独立ID。这个ID是由UTXO交易哈希值与UTXO中的位置索引决定。 这种记账方式的优势在于交易逻辑清晰。它可以通过算法分析出交易之间的依赖关系,并将可以实现一定程度上的交易并行化处理。 尽管并行化的问题得以解决,系统中也存在了真实货币的概念,然而用户并没有真实拥有这些货币,它们被存储在区块链上。 既然如此,为什么我们不让用户 “拿着” 这些货币呢? 听起来这似乎只是一个简单的操作,只要将这个货币的数据记录从我们的账本上拿到用户手中即可。 但这一个小小的变化,却能使我们整个系统实现了质的飞跃。 实际上,这就是 DCEP 的设计逻辑。 让用户手中真实持有代表货币的字符串。这些字符串数据通过数字签名技术进行签名,保证货币确实由央岩明行发行。 如此,整个DCEP体系摆脱了原有的账本。体系中流转的不仅仅是价值,而是现金。用户的所有交易行为都会被表达为加密字符串的交换过程。通过这样的方式,真正的实现了货币的流转流程与现金的等价关系。 这种方式可以真正让数字货币的流转方式模拟了真实货币的流转方式,与现有的任何一种账本记录的方式有着本质的区别。 在原没段本的账本形式中,用户所拥有的只是一个证明你身份的字符串,并不是现金。现金是被放在账本管理机构手中的。换言之,用户拥有的仅仅是货币的价值,而不是货币的物理属性。用户永远不知道枯枣誉管理机构利用自己的现金做了什么。 另外,生活中用户也并不关注储存在银行中的货币的编号。他们只需要在使用时,考虑货币的面额即可。而这样的设计会使得货币展现出与真实现金的不同特征。 例如,账户中记录的货币是可以被分割的,理论上这种划分是可以无限进行下去的。账户系统中两个相同的一元并无区别,他们都只是一个在系统中记录的数字。 说到这里,不得不提及一个来自于区块链行业的概念——NFT。 这个概念与银行账户的价值记录方式有所不同。它的全称是非同质化代币。 简单来说,就是每一张货币都不一样。如同现金,虽然两张一百元货币的价值都是一百元,但是他们在物理上却是不相同的。 现实中,每张真实的货币都是可以被任何人真实拿在手中的。钱的物理属性与价值被统一管理。每张货币也都拥有一个唯一的编号,这个编号可以用于追踪货币,同时也保证了货币本身的独立性。每一张货币都是不可分的。我们不能把一样百元大钞撕成两半,把其中的一半当作五十元来用。那么,如果我们需要调整货币的面额,就要把手中的货币进行兑换。 以上这两种系统的区别,本质上是现金与账户的区别。 从这个角度来讲,DCEP的设计模式,说明了它就是一种真实的现金。 它的任何属性,包括流通特性都与真实的现金是一模一样的。 而在此基础上,由于数据可以被远程传输和管理,DCEP又比现金有了更大的优势。 DCEP作为现金的一种表现形式,它的技术设计当然不可能是账户机制完成的。 尽管数字货币在到达用户的手中后,可以实现货币流通的并行化,但是考虑到由于数据本身是可以被复制的,而用于保证DCEP真实性的数字签名即使是在被复制之后,也能被正确的验证,我们仍然需要解决数字货币“双花问题”。 解决这种问题的方法就潜藏在现金货币的流转特性中。 之前已经说过,每一张现金上都是存在一个唯一的编号。 事实上,这个编号就是解决DCEP双花问题的关键。通过编号,我们就能很优雅地解决“双花问题”。 “双花问题”问题简单来说就是,支付方已经将一笔钱付给接收方,但却依旧拥有被转移货币的支配权。换言之,这笔钱同时被两个人所拥有了。 从这个角度上来讲,避免货币“双花”的核心点,就是保证同一时间,一个货币只能被一个人拥有。 在DCEP场景下,通过DCEP本身所具有的编号,我们就可以成功实现追踪每一张货币的所有者。 因此,在 DCEP 体系下,解决问题的方式就是构造一个登记中心,记录 DCEP 字符串编号与所有者身份编号的映射关系。 正如图中所述的流程,当Alice向Bob发送一笔数字货币时,Alice先向Bob发送自己所拥有的数字货币字符串。同时 Alice 也会向数字货币登记中心通知,告知数字货币登记中心自己的这张货币0x001的所有权已经发生了转移。数字货币登记中心会根据Alice所发送的数字签名信息验证Alice的身份,确保Alice真实确实是货币0x001的所有者的情况下,把这张货币的所有权记录修改为Bob。 虽然我们使用了一个登记中心用于记录所有货币转移过程的身份变化,但是这个中心并不会限制整个数字货币的性能。因为数字货币的登记中心所管理的每一张货币都是相互独立的,天然满足成为 Stateless 的特性。在这个基础上,整个系统是可以无限并行化扩展的,这也就意味着DCEP的核心系统理论上是可以对外提供无限扩展的高性能支持的。 至于Stateless,这是一个计算机术语。 Stateless的设计可以保证整个系统中不存在性能瓶颈。任何一个系统的设计只要满足Stateless的特性,那么这个系统的性能便可以被无限的扩展。 在整个数字货币登记中心系统中,每一张货币的所有权记录都是独立的,正如同真实的现金在社会中流转的过程。 某种意义上,DCEP的设计目标是为了全国乃至全世界的货币流转过程提供支持。这对整个系统的性能有很高的要求。 而DCEP所采用模拟真实现金流转过程的技术方案,既能巧妙地解决数字货币可能产生的双花问题,同时又借助于货币流转的并行化特征,保证货币的流转结算过程可以被完美地并行化处理。 无论从区块链上加密货币的形态上来看,还是从实现的技术特性上来看,DCEP 的设计模式可以说是与区块链完全不相同的设计模式。 本质上,区块链无论采取什么样的形式,它都是一种账本的形态,而 DCEP 的实现则是一种真实的现金。 显然,DCEP 的设计更加符合数字货币这个场景的需求。

发表评论

  • 人参与,条评论

热门阅读

最新文章

取消
扫码支持 支付码