追踪和记录有价物品从来源到消费的整个过程是供应链活动的核心。这项任务的复杂性取决于我们想要追踪的事物类型。
如果我们想要追踪一条鱼从捕获它的地方,到将它交给一个鱼贩的整个过程,这项任务是相对简单的。现在,假设有一个挑剔的寿司消费者,他坚持要求寿司中的每种成分都来自可验证的来源。
考虑一条鱼从捕获点到最终制作成寿司的整个流程。以下是可能的过程:
1. Bob从池塘里抓了一条鱼;
2. Bob把鱼卖给寿司厨师Anna;
3. Anna切两片鱼,做了两个寿司卷,然后卖给Chrysa;
4. Anna切了一片鱼,为John提供了一份寿司卷。
在将鱼变成寿司的整个过程中,让我们想象一种在手机上可以实现的技术,它能够提取DNA的Hash值以及任意鱼块的重量:整条或切片的鱼。Bob、John、Anna和Chrysa都有一个移动应用,使他们能够给鱼拍照并更新分类帐。
随着鱼经历了以上的流程,你如何来对鱼的状态进行建模?
能不能将其建模为一系列的Unspent Transaction Output(UTXO)?
未花费的交易输出(UTXO)
UTXO是比特币中使用的一种分类帐,用于记录在系统中花费的比特币数量。如下图所示,系统中的比特币数量及其分布记录为交易产生的一系列输入和输出。
让我们用鱼取代比特币作为我们希望追踪的东西,我们将以这种方式模拟我们的鱼类资产:
左边为比特币,右边为鱼
接下来让我们看看如何将比特币的UTXO模型更新为与上述交易相关的一系列UTXO实例。
让我们UTXO起来!
假设我们根据DNA追踪一条鱼,其DNA的散列值为1234。
鱼必须经历的第一件事就是被Bob捕获。重达1公斤的鱼在捕获之前住在Bob的池塘里。该信息记录在我们的UTXO中,如下所示:
接下来,Bob将鱼卖给Alice,记录如下:
Alice然后决定制作两个寿司卷并将其提供给Chrysa。 Chrysa消费了两个寿司卷,每个寿司卷都有0.1公斤的鱼,由Bob卖给Anna。此交易记录如下。
Anna剩下0.8公斤的鱼,然后做一个寿司卷并提供给John。记录如下:
你会注意到鱼的任何剩余部分也被记录为输出,其所有权分配给Anna。这很有用,因为通过鱼的生命周期,我们可以在交易之前和之后准确地跟踪其状态(即所有权)。
那么寿司中的米饭?
如果Chrysa和John是挑剔的消费者,并且还要求对大米也进行从源头到寿司追踪呢?
没问题。 UTXO可以轻松用于追踪多个供应链。让我们再次重温我们的寿司例子。在这种情况下,我们通过其DNA来追踪大米,其哈希值为4567。用于跟踪大米以及鱼到寿司的UTXO模型如下所示。
从示例中可以看出,添加额外的生命周期跟踪只是一系列输入和输出情况的记录。
结论
本文展示了使用UTXO来追踪寿司中的两个关键成分:米饭和鱼肉。
在传统的复式记账法模式中,关注的焦点是有价物(即鱼和米)的所有者。以鱼为例,我们将从鱼所有者的角度记录资产流动。我们将确定鱼是否被记入贷方或借记给所有者。虽然我们可以通过将资产流动(例如鱼和大米)记录为传统账户中的货币转移来反映鱼所有权的变化,但很难准确地追踪资产的来源。
UTXO关注的则是从交易的角度跟踪输入和输出。例如,“Alice将鱼切片”是我们对鱼进行的交易。 UTXO将输入记录到交易和输出中。无需复杂的关系机制即可轻松归属所有者。
不可否认,这个用例有点人为刻意,但它说明了UTXO对汽车、飞机、船舶等复杂产品进行建模的能力。
考虑像汽车这样的产品。它由许多部分组成。零件在汽车的使用寿命周期内不断磨损并需要更换。一辆车的车牌号可能不会发生变化,因此在法律上是相同的车,它但实际上是不一样的车。当每个零件都有自己的服务保证时,你就不需要为整车购买保修服务了。
如上所示,UTXO可以帮助解决具有复杂生命周期事物的供应链问题。