主页 > imtoken官网地址是什么 > 我不要你给我发比特币,比特币的utxo结构

我不要你给我发比特币,比特币的utxo结构

imtoken官网地址是什么 2023-06-13 06:04:37

我不要你给我发比特币,比特币的utxo结构张世龙02-23 12:4220浏览量

孟言

Raven 区块链专栏作家

UTXO 表示拒绝交易输出。

在比特币社区中,Transaction 缩写为 TX,所以上面的短语缩写为 UTXO。 UTXO 似乎是比特币区块链设计的一部分,但实际上 UTXO 不一定与区块链相关。比特币区块链可以充分利用,但不使用 UTXO。

HyperLedger 和以太坊最初并没有采用 UTXO,但现在前者已经切换到 UTXO,而后者打算增加这个选项。我认为这也是 badsmt 的伟大之处。 ——后来者,如副本所示,中途想进步一点,但最终还是做到了。人家的原创度还是很高的,陆续回来的……

那么什么是 UTXO?

前几天,从“精力充沛的棒球谈话技巧”中听了一个关于“比特币”的有趣轶事。我说的是比特币支付流程。他说要为一个有钱人的生命支付五个比特币。于是,系统从他的账户中减去 5,将 5 加到富人的生活账户中,并通过将交易记录在区块链注册表中来完成交易。该节目做得很好,但在这一点上,动态棒球完全是错误的。他描述的是基于账户的方案,而不是比特币实际使用的 UTXO 方案。

尝试设计一个支付系统。我绝对想参加动态棒球。粗心的兔子账户里有100元的余额,总是迟到的摩托账户里有50元的余额。粗心的兔子买20元摩托车总是迟到,请按如下操作。

检查疏忽兔子的账户余额是否充足,小于20元就停止交易,并向疏忽兔子报告“余额不足”

比特币一开始是免费赠送吗

过失兔子账户减20元((假设零手续费))。

向您经常迟到的摩托车帐户添加 20 美元

无论是现在的银行、信用卡、证券交易系统,还是互联网上的第三方支付系统比特币一开始是免费赠送吗,核心都是基于账户的设计,以关系型数据库为支撑。

要确保数据库有两件事,第一是要确保业务规则得到遵守和疏忽的兔子有足够的平衡。二是保证事务性,即原子性、一致性、隔离性和持久性(ACID)。这些都是数据库的常识性知识,这里就不一一解释了。应该说这种基于账户的设计简单直观,在IT系统的设计中使用了几十年,没有问题。

但比特币并非设计为基于账户的系统,而是发明了 UTXO 方案。

理解 UTXO 最简单的方法是解释比特币从诞生到商业世界的起起落落的经历。考虑一只粗心的兔子挖了 12.5 个比特币。几天后,他将其中的 2.5 付给了迟到的摩托车。几天后,他投资了经常迟到的摩托车和2.5个比特币,赚了5个比特币来支付无辜的美女。

在基于账户的设计中,如果Zhang、Li、dtdxs在数据库中有单独的账户,他们三个账户的变化如下图所示。

但是,在比特币中,这个过程是通过 UTXO 实现的,如下所示。

比特币一开始是免费赠送吗

交易持续记录在比特币区块链上。

每笔交易都有一些交易入口,是资金的来源,还有一些提现权,是资金的去向。一般来说,每笔交易都需要输入并产生输出。它的输出是“未使用的提取力”,也就是一个UTXO。

比特币交易遵循一些规则。

首先,除了coinbase交易,所有的资金来源都必须来自上一笔交易的UTXO,就像连接自来水一样,一个接一个,一个接一个,一个接一个,一个通,一个稳流

其次,任何交易的交易输入总量必须等于提取的电力总量,并且等式两边必须平衡。

上图中的第一笔交易#1001 是 coinbase 交易。比特币由矿工开采。矿机在尽力找到一个合格的区块后,就获得了进行coinbase交易的特权,可以将新的钱放入其中,并在提现收件人的地址栏中写下自己的地址。在我写这篇文章的那天(2016年8月9日),这个比特币的数量是12.5,市场价格是48576元。这笔coinbase交易连同Neglect Rabbit挖出的区块,被各节点接受,6次确认后,将永远铭刻在历史中。

几天后,粗心的兔子试图向总是迟到的摩托车支付 2.5 个比特币。粗心兔子开始交易#2001。本次交易的资金来源项目为“#1001(1)”,即交易#1001——疏忽兔子挖到的矿场的coinbase交易3354的第一个UTXO。另外,在现金中这笔交易的撤回 在UTXO项中,使用2.5比特币的接收者地址作为总是迟到的摩托车的地址。

请注意,在本次交易中,之前产生的所有12.5比特币的输出项都必须被消耗掉。但是,粗心的兔子一直只打算支付2.5个比特币给迟到的摩托车,所以为了消耗剩下的10个比特币,它必须向自己支付剩下的10个比特币。这样就满足了输入输出均衡规则。

比特币一开始是免费赠送吗

再过几天,粗心的兔子和总是迟到的摩托车打算付清纯美人五个比特币。好吧,粗心的兔子和总是迟到的摩托车开始了#3001 交易。交易输入部分有#2001(1)和#2001(1)两个资源,代表#2001交易)1)和)2)UTXO。然后,在本次交易的输出部分,就像法律规定的那样,将 5 个比特币给无辜的美女,将剩余的 7.5 个比特币还给粗心的兔子。下一个

如果纯情美女要花掉他的5个比特币,必须在交易中注明资金来源为#3001(1).

所以,没有比特币,只有 UTXO。当我们说粗心兔子拥有 10 个比特币时,我实际上是指在当前的区块链账本中有几笔交易,其中 UTXO 项目的接收者是粗心兔子的地址,而这些 UTXO 项目数量的总和是 10。因为在比特币系统中,一个人所能拥有的地址资源可以说是取之不尽用之不竭。如果你想知道你在很多地址中收到了多少个UTXO,人们是无法统计的,你需要通过你的比特币钱包来跟踪和计算。

以上是对UTXO的简单介绍。

那么 UTXO 高在哪里?

比特币的许多技术点并非 badsmt 原创。例如,基于“工作量证明”的共识机制是由 Adam Back 在 Hashcash 中提出的。所有交易都包含在总账中,并且交易带有时间戳以防止双花攻击。 -spend 攻击的想法)是由 Wei Dai 的 b-money 和 Nick Szabo 的 Bitgold 提出的,更不用说比特币网络是一个零优化的泛洪 P2P 网络。就P2P技术而言,很多方面都赶不上。 BitTorrent 出现于 2001 年。

但是有3个技术点绝对是badsmt独创的,一个是区块链的设计,一个是UTXO,一个是智能合约。而这三个设计都非常巧妙,被斯坦福大学密码学和计算机安全教授 Dan Boneh 评为“极其出色”,“必将激发无穷无尽的创新”。

当然,但badsmt最引人注目的不是这三个单点创新,而是将所有这些技术点与加密货币本身的特性相结合,设计出一套“惩恶扬善”的经济激励体系弘扬良善”,将技术创新和制度设计结合成一个紧密结合的体系。

比特币一开始是免费赠送吗

在这个系统中,任何人都可以建立匿名节点,编写破坏性代码,然后进行匿名攻击。就算你攻击成功,盗取大量财富,你的身份也不会暴露,所以你可以逍遥法外。

这个系统是赤裸裸的,给小偷开门,任由你攻击和破坏,即使你成功突破防线,窃取大量财富,整个比特币系统不仅不会惩罚你,反而会将牢固地保护您的赃款。然后悬赏100亿美元,运行了七年。到目前为止,对主链的攻击还没有成功,一次也没有。

badsmt 把比特币设计得跟数学原理一样漂亮,很多后来者甚至都无法复制。我认为这就是为什么加州大学洛杉矶分校金融学教授 Bhagwan Chowdhry 提名 badsmt 作为 2016 年诺贝尔经济学奖的候选人。我相信badsmt在比特币上的很多设计思路,以及整个比特币开发者社区做出的很多改进,不仅是区块链的创举,也成为IT系统设计创新思路的源泉。

UTXO 的设计很有趣。它的设计方案在《什么是UTXO》一文中有介绍。本文将讨论 UTXO 的优缺点。

为什么 badsmt 以这种方式设计比特币?考虑到他不应该是一个从未来穿越回来的角色,按照常识,他一开始应该是从基于账户的系统开始设计的,但后来他决定改用UTXO方案。肯定有问题。

很遗憾比特币一开始是免费赠送吗,这些问题的答案在比特币的源代码中找不到。比特币的开发始于2007年5月,Github上最早的比特币源代码版本为0.1.5,2009年9月16日由badsmt推送,但UTXO的设计已经采取形状。

后来有人翻出了他们的旧电子邮件,找到了 2008 年 9 月版比特币的代码。该代码是在比特币区块链上线前几周发布的,应该非常接近比特币创世纪运行的版本。但仔细看,UTXO 也已经敲定。我们注定无法通过代码研究发现UTXO的设计上下文。

其他文档呢?两者都不。 badsmt在发布比特币之前,主要是通过电子邮件与一些密码学专家进行交流,外界是看不到的。他积极参与论坛讨论,主要是在比特币发布之后。在 UTXO 设计的形成过程中,我找不到任何关于他的提及。

比特币一开始是免费赠送吗

由于这些选项都不起作用,我们只能猜测。

我猜 badsmt 在他们第一次设计比特币时也使用了账户方案。但在 2007 年下半年或 2008 年上半年的某个时候,badsmt 发现基于账户的方案存在问题,并创建了 UTXO 方案。

那么基于帐户的解决方案存在哪些问题?

如果您要使用基于帐户的方法,那么您肯定需要一个数据库。这个数据库可以让你轻松查询粗心小兔和老旧摩托车的账户余额。

而UTXO方案当然也需要一个数据库,记录当前系统中每一个“未使用的交易输出”,也就是比特币。当节点收到一笔交易时,需要在UTXO数据库中查询该交易引用的UTXO是否存在,以及其收款人(owner)是否为当前新交易的付款人。事务结束后,需要对数据库进行相应的更新。

首先要明确一点,不管是账户数据库还是UTXO数据库,都必须是去中心化的,每个节点一个clone一定不能中心化。如果比特币系统有一个中央数据库,那么无论你有多少节点,每笔交易都必须到中央数据库进行验证,然后进行“转账”的交易操作,那么就根本不会“去中心化”。比特币一文不值,还是老老实实用支付宝吧。

由于每个节点都会克隆一个数据库,并根据交易流程同步修改,那么账户数据库和UTXO数据库有什么区别?

再想一想,我们会发现还是有很大的不同。

首先,从长远来看,账户数据库会无限扩大,而UTXO数据库会小很多。

你应该知道比特币是一个匿名系统,它的账户就是“地址”。每个比特币用户可以拥有几乎无限的地址。从比特币系统的角度来看,绝对不知道这两个地址是否对应同一个人。

padding字典序萌言区块链,比特币骗局CTO cto什么是企业决策者,未来管理者协会