主页 > imtoken2022官网版 > 比特币交易模型 - UTXO 技术分析

比特币交易模型 - UTXO 技术分析

imtoken2022官网版 2023-02-02 05:20:22

主题:比特币交易模型 UTXO 技术分析

时间:6-2月(周六)9pm-10pm)

主持人:裴尧

特邀嘉宾:胡华杰

信息:交易费用的官方说明

讨论内容:

双花问题:因为比特币网络会有一个天然的问题,也就是所谓的分叉问题,可能总会有多个比特币矿工挖合法区块,然后链上就会出现分叉,那么这个时候,为了解决这个问题,规定保留最长的链,此时就会出现所谓的双花问题。

SPV:这个词的意思叫做简单的支付验证,重点是支付验证,不是交易验证。它只是确认付款是否存在。这里有一个核心的技术概念,就是默克尔树这样的数据结构。比特币区块分为区块头,每个区块头为 80 个字节。固定长度,这个块头包含了默克尔树的根节点。这个根节点有什么用,可以用来验证它是否包含这个交易。如何验证?首先比特币交易最小交易多少,定位交易存在于哪个区块。然后得到该区块上的交易所在的默克尔树的验证路径,然后计算默克尔根节点的值是否相等就知道交易是否存在。这种方法有什么好处,因为每个区块头都是固定的 80 字节。就算交易头数据按照现在的交易量存储一百年,也只有几百兆。估计有400兆左右,不是很大。

UTXO模型的技术知识:不使用传统的基于账户的记账模型。传统的事务模型使用这种模型来存储用户数据,因为它基于传统的关系数据库,可以很容易地通过事务支持来实现。在区块链网络上,不可能用这种中心化的数据库方式来解决问题。它改变了思维方式,即记录交易流向。山下。传统的账户模型本质上只记录结果。这种方法不仅复杂,而且容易出错。比特币本身的理念是数据不可篡改,最重要的实现就是记录整个流动过程,就像时间一样,一切都井然有序。根据git的版本原则,任何修改都会被记录下来。用编程术语来说,可以理解为:面向过程,关注过程而不仅仅是结果。因为有过程,所以有结果。 .

比特币交易最小交易多少

讨论记录

颜颜:大家好,周六晚9点,HiBlock区块链社区专栏“众说区块链”准时与大家见面,我是主持人裴瑶,非常感谢大家对社区的支持。

据媒体报道,半个月前,一名恶意矿工成功双花攻击比特币黄金(BTG)网络,获得51%的算力,并获得巨额利润。作为第 27 大损失的加密货币,Bitcoin Gold 此次并未对个人用户造成任何损失,但如果攻击者仍有足够的算力,则不排除被攻击的可能。

双花问题、交易验证问题、51%算力攻击是什么意思?最长的链会被追上吗,SPV机制是否完善,如何有效防止双花攻击?

本期《众说区块链》的主题是“比特币交易模型UTXO的技术分析”,大家可以围绕这个话题分享你的观点和见解。

接下来,欢迎本期特邀嘉宾胡华杰,带领大家一起聊聊UTXO技术~~

@Huhuajie:今天我们来说说比特币的底层技术之一,UTXO模型,包括SPV等。

@Huhuajie:之前参加过一个活动,大神说51%供应的问题。大神说了什么?他表示,如果前三名矿工被控制,那么比特币网络将注定失败。如何做呢?他说他们会拥有51%的算力,这样你就可以把你所有的钱转到他们的账户里

@胡华杰:相信大家一定看到了问题。我不会再抱怨了。直接说,其实所谓的算力攻击问题,就算没有51%,还是有可能的。所谓算力攻击和数据篡改根本不是一个概念。数据的篡改由密码学保证,并由一组机制确定。即使只有一个节点,也无法篡改数据,很可能整个数据都丢失了。

@何强:掌握51%的算力是什么意思?

比特币交易最小交易多少

@Victor H Rakuten:这意味着决定哪些区块可以上链。哪些块也可以被丢弃。

@fan Jingwei:我不明白算力的定义。我觉得只要比全网所有人都快,就能实现双倍支付

@何强:速度不是决定性因素@范经纬

@Huhuajie:所谓的双花问题是这样的,因为比特币网络会有一个天然的问题,即所谓的分叉问题,可能一直都会出现。比特币矿工挖出一个合法区块,然后在链上出现一个分叉。这时,为了解决这个问题,规定保留最长的链。这时候就会出现所谓的双花问题。

@Huhuajie:比如第一次显示我的交易进入区块链,但是过了一段时间,可能是因为分叉的问题,花的钱又回来了,因为这个时候出现了分叉,导致我的交易所在的区块丢失。如果此时商家已经确认支付,发现钱没了。

@范经纬:@何强 为什么?我不能通过产生最快的块来控制分叉吗?

@何强:@范经纬 封杀只是第一步。您还必须完成整个链条的簿记。就像接力跑一样,你们是一个团队,一个人跑快也没用

@范经纬:不是和区块同时播出吗?其他节点只做合法验证,接收我的区块并记录下来。如果网络传播速度一样,我仍然可以保证我可以控制分叉,对吧?

@Huhuajie:接下来说说SPV。这个词的意思叫做简单的支付验证。重点是支付验证,而不是交易验证。只是为了确认付款是否存在?这里有一个核心的技术概念,就是像默克尔树这样的数据结构。比特币区块分为区块头,区块头是固定长度的 80 字节。该区块头包含默克尔树的根节点。这个根节点有什么用,可以用来验证是否包含这个交易

@无声:360所谓的史诗级,到底是什么

比特币交易最小交易多少

@胡华杰:如何验证?首先定位交易存在的区块,然后获取交易所在的默克尔树在该区块上的验证路径,然后通过哈希计算默克尔根节点的值是否相等。知道这个交易是否存在。这种方法有什么好处,因为每个区块头是固定的80字节,即使按照目前的交易量,交易头数据存储一百年,也只有几百兆,估计是大约 400 兆字节。不是很大。

@胡华杰:是时候开始真人秀了!下面说一下UTXO模型的技术知识。我认为这是区块链技术中最了不起的发明之一。许多人认为比特币是各种现有技术的组合。其实里面有很多技术。哥哥自己的发明,这就是其中之一。许多其他区块链理所当然地认为他们已经修改或取消了 UTXO 模型并创建了自己的独特链。事实上,他们中的许多人最终都变回来了。

@胡华杰:图片来自btc币官网

@何强:UTXO是SPV的实现?

@胡华杰:UTXO是交易模型的内容,spv是简单的支付验证技术

@何强:UTXO类似于现在常见的交易方式?

@胡华杰:为什么说这个设计很巧妙?也就是说,它不使用传统的基于帐户的会计模型。传统的事务模型使用这种模型来存储用户数据,因为它基于传统的关系数据库,可以很容易地通过事务支持来实现。在区块链网络上,不可能用这种中心化的数据库方式来解决问题。它改变了思维方式,也就是记录交易的流向,就像是那种用来从山上取水引到山底的竹管。传统的账户模型本质上只记录结果。这种方法复杂且容易出错。比特币本身的理念是数据不可篡改,最重要的实现是记录整个流通过程。就像时间一样,一切都井然有序。根据git的版本原则,任何修改都会被记录下来。用编程术语来说,可以理解为:面向过程,关注过程而不仅仅是结果。因为有过程就有结果。但是只记录结果,不知道结果是怎么来的。

@胡华杰:这里提一下比特币,别看成只有2100万,其实比特币的最小单位是聪,1比特币=1亿聪

@何强:但是现在的银行交易,无论从哪个维度,也能按照时间线记录整个流通过程吗?例如,如果我将钱存入银行,银行实际上知道钱的去向。

比特币交易最小交易多少

@Huhuajie:比特币分为普通支付交易和coinbase交易。比特币的来源是矿工挖出来的,所以除了coinbase的交易,其他的交易都必须有输入和输出,输入和输出的差就是矿工费。每一笔交易发生后,就相当于一笔一笔交易留下的资金,从上一次轻敲开始,所以付出的钱就相当于一笔暂时存放在这里等待随时流出的资金。这证明了那句话,钱是用来花钱的。

@fengjing縠wenping:@何强 你问的很好。以太坊有一个账户。以太坊的解决方案是保存所有的账户状态和交易数据,以便交易数据和最终受影响的账户状态进行比较(正确)。这与一般银行会计方法相同。在比特币网络中,没有账户,通过UTXO也可以达到同样的效果,也就是交易流。

@何强:@fengjing縠文平 clear.

@何强:输入和输出的区别就是矿工费===这是不能提前改的还是以后可以动态调整的?

@Huhuajie:这个矿工的手续费是这样的,平时可以选择free,但其实有些钱包会默认选择小费,有些矿工会选择高手续费其实这是个复杂的问题,而且里面有游戏问题。

@fengjing縠wenping:所以还是可以手动指定的

@胡华杰:

@Huhuajie:这里是官方的说明,每笔比特币交易花费零个或多个比特币给零个或多个接收者。花费的金额和收到的金额之间的差额就是交易费用(必须为零或更多)。

@何强:@胡华杰 知道了。

@fengjing縠wenping:wiki里的解释是会根据市场情况动态调整,包括区块大小、供需比例,具体细节估计看代码

比特币交易最小交易多少

@胡华杰:我先分享比特币的技术。一般来说,我建议你直接去官网阅读官方wiki和开发手册,包括源码,才能真正了解和掌握比特币和区块链的底层技术,有助于提高技术区块链的研发能力。

@记住。 . . :如果采用传统的记账方式比特币交易最小交易多少,一旦一个人的账户余额发生变化,为了防止双花,整个网络账户的余额必须同时更新,效率低,容易造成数据冗余,比如我的账户。 btc没必要搬,但是因为别人的账户变了,我的账户也得更新。试想一下,我的账号每天需要被动更新多少次,每次更新的数据都被记录下来,数据量估计没用。连谷歌的数据库都需要多长时间才能爆炸。 . . 虽然btc这么多年稳定运行,但数据量只有几百g。正是因为UTXO模型,完美解决了数据存储和双花问题。多么天才的设计

@Cynthia :其实很多人之前并不了解 UTXO。这次胡老师重点分享,给大家带来了很多干货。你明白吗?如有任何问题,可请他们互相交流,此时间将延长半小时讨论。

@记住。 . ,: 所以有人说中本聪是第一个应该获得诺贝尔经济学奖和图灵奖的人。

@胡华杰:极简设计完美记录交易流向,是UTXO设计的好去处

@何强:但我总觉得中本聪的背后是一个团队和一个公司。 不是一个人。 . 还有哪些像比特币中的 UTXO 一样吸引眼球的设计?

@胡华杰:很简单,不需要事务,不需要复杂的锁,单向通信,关注过程,不需要关注结果

@何强:能不能具体点说一下?这样学习的时候最好更有针对性

@Huhuajie:比如:A给B转账100元。我的传统思路是A同时减100,B同时增加100。把它想象成互相伤害的同时行为,你多就意味着我少。 UTXO的记录方式很简单,A->B,这个过程记录不需要交易,也不需要任何原子操作。而且它也抓住了事物的本质,很容易理解这种转移行为。钱不多也不少,只是换了个主人。世界依旧美好

@fengjing縠wenping:比特币的核心创新大概是UTXO,其他相关技术也不是什么新鲜事了。

@yanyan:谢谢胡华杰先生的分享和大家的参与。今天就讲到这里,大家可以继续消化。讨论的内容会沉淀出来发布在公众号上,想问的可以在文末留言~