有关区块链的一些概念(UTXO和IPFS)

1.UTXO(Unspent Transaction Output)

UTXO(Unspent Transaction Output)即“未花费的交易输出”

在区块链中,每笔交易都有若干交易输入,也就是资金来源,也都有若干笔交易输出,也就是资金去向。一般来说,每一笔交易都要花费(spend)一笔输入,产生一笔输出,而其所产生的输出,就是“未花费过的交易输出”,也就是 UTXO。

例如有如下的交易过程:
1.张三挖矿得到了12.5个币
2.张三给李四2.5个币
3.张三和李四都转给王五2.5个币

传统的中心化的账户,会按照以下方式进行交易:
这里写图片描述
可能这种交易方式我们太熟悉了,以至于都说不出它有什么特点,但请注意,当张三给李四2.5个币的时候,是从张三余额中直接减去2.5,其中剩余的10个币不参与交易过程,这一点与区块链不同。

那么这个过程在区块链上如何表示呢?

这里写图片描述

比特币交易遵守几个规则:

第一,除了 coinbase 交易之外,所有的资金来源都必须来自前面某一个或者几个交易的 UTXO,就像接水管一样,一个接一个,此出彼入,此入彼出,生生不息,钱就在交易之间流动起来了。

第二,任何一笔交易的交易输入总量必须等于交易输出总量,等式两边必须配

上图第一个交易 #1001 号交易是 coinbase 交易。比特币是矿工挖出来的。当一个矿机费尽九牛二虎之力找到一个合格的区块之后,它就获得一个特权,能够创造一个 coinbase 交易,在其中放入一笔新钱,并且在交易输出的收款人地址一栏,堂堂正正的写上自己的地址。

这笔比特币的数额规定为 12.5 枚,市价 48,576元人民币。这个 coinbase 交易随着张三挖出来的区块被各个节点接受,经过六个确认以后永远的烙印在历史中。

过了几天,张三打算付 2.5 个比特币给李四,张三就发起一#2001号交易,这个交易的资金来源项写着“#1001(1)”,也就是 #1001 号交易——张三挖出矿的那个 coinbase 交易——的第一项 UTXO。然后在本交易的交易输出 UTXO 项中,把2.5个比特币的收款人地址设为李四的地址。

请注意,这一笔交易必须将前面产生那一项 12.5 个比特币的输出项全部消耗,而由于张三只打算付给李四 2.5 个比特币,为了要消耗剩下的10比特币,他只好把剩余的那 10 个比特币支付给自己,这样才能符合输入与输出配平的规则。

再过几天,张三和李四打算AA制合起来给王五付 5 枚比特币。那么张三或李四发起 #3001 号交易,在交易输入部分,有两个资金来源,分别是#2001(1) 和 #2001(2),代表第 #2001 号交易的第 (1) 和第 (2) 项 UTXO。然后在这个交易的输出部分里如法炮制,给王五5比特币,把张三剩下的 7.5 比特币发还给自己。以后王五若要再花他这5比特币,就必须在他的交易里注明资金的来源是 #3001(1)。

所以,其实并没有什么比特币,只有 UTXO。当我们说张三拥有 10 枚比特币的时候,我实际上是说,当前区块链账本中,有若干笔交易的 UTXO 项收款人写的是张三的地址,而这些 UTXO 项的数额总和是 10。因为在比特币系统里,一个人可以拥有的地址资源,可谓取之不尽用之不竭。要知道自己的一大堆地址里一共收了多少 UTXO,人是算不过来的,需要由比特币钱包代为跟踪计算。

2.IPFS(InterPlanetary File System)

IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。

  • 内容可寻址:通过文件内容生成唯一哈希值来标识文件,而不是通过文件保存位置来标识。相同内容的文件在系统中只会存在一份,节约存储空间
  • 版本化:可追溯文件修改历史
  • 点对点超媒体:P2P 保存各种各样类型的数据

可以把 IPFS 想象成所有文件数据是在同一个 BitTorrent 群并且通过同一个 Git 仓库存取。

总之,它集一些成功系统(分布式哈希表、BitTorrent、Git、自认证文件系统)的优势于一身,是一套很厉害的文件存取系统。

IPFS 使用场景

IPFS 的发明者 Juan Benet(juan@benet.ai)在 IPFS 技术白皮书中假设了一些使用场景:

  • 在 /ipfs 和 /ipns 下挂载全球文件系统
  • 挂载的个人同步文件夹,拥有版本功能
  • 文件加密,数据共享系统
  • 可用于所有软件的带版本的包管理器(已经实现了:https://github.com/whyrusleeping/gx
  • 可以作为虚机的根文件系统
  • 可以作为数据库:应用可以直接操作 Merkle DAG,拥有 IPFS 提供的版本化、缓存以及分布式特性
  • 可以做(加密)通讯平台
  • 各种类型的 CDN
  • 永久的 Web,不存在不能访问的链接

参考链接:
http://www.yopai.com/show-2-182646-1.html
https://blog.csdn.net/dl88250/article/details/78579080

结合区块链IPFS可以实现数据共享的方式是通过将数据存储在IPFS网络中,并在区块链中记录相关的元数据和访问权限。 首先,IPFS是一个分布式文件系统,它使用内容寻址来存储和检索数据。每个文件都有一个唯一的哈希值作为其地址,并且可以通过这个地址来验证和获取文件内容。这意味着我们可以在IPFS网络中存储数据,并且只需存储一次,即可在全球范围内轻松共享。 然后,区块链可以用于记录和管理数据的元数据和访问权限。例如,我们可以在区块链中创建一个智能合约来管理特定数据集的所有权和访问权限。该智能合约可以包含数据集的名称、描述、创建者、所有者和访问控制规则等信息。只有满足访问控制规则的用户才能够使用该数据集。 当用户想要共享数据时,他们可以将数据上传到IPFS网络,并在区块链上创建一个记录来指示该数据集的存在和访问规则。其他用户可以通过查询区块链来获取数据集的元数据,然后使用IPFS哈希值来获取实际数据。只有在满足访问规则时,才能成功获取数据。 使用区块链IPFS结合提供了诸多优势。首先,IPFS的分布式特性可以确保数据的高可用性和抗审查。其次,通过将元数据和访问规则记录在区块链中,可以实现透明的数据共享和权限管理。最后,由于数据只需存储一次,可以减少存储成本并提高数据获取的效率。 综上所述,结合区块链IPFS可以实现一种安全、透明和高效的数据共享方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值