潜在的需求
区块链上的资产几乎是不可追踪的,当然你可以通过追溯历史的方式查询一笔余额可能来自于哪些源头,但你无法区分余额里面的哪一部分与源头有关。例如源头的 100 个 btc 其中 10 个转给地址 a,a 接收其他来源的 20 个 btc,然后对外支付 25 个 btc,剩余 5 个,这时,我们很难判断这 5 个 btc 和源头 100 个 btc 的关联度。
不可追踪性是数字资产非常重要的属性,它保障了匿名性和不可审查性,由于链上资产公开了所有交易历史,他们其实并不能完全保障不可追踪性。
但并不是所有的业务场景都要求资产不可追踪性,很多场景下我们需要一种可追踪的数字资产用来限制资产的流转符合来源方的意愿。例如,资助方希望自己的提供的资金用在特定领域,因此需要对分发的资金进行追踪或限制;交易所希望自己交易的资金提现后具有一定时间内的可追踪性,以防止黑客利用漏洞挖空交易所。
可追踪代币将代币的持有人或应用领域划分出子集,在子集内由管理方进行监管,通过这种方式满足特殊的业务需求。
潜在的应用场景
例如 makerdao 或其他抵押借贷类 defi 服务中,我们可以将用户抵押的 ckb 打上追踪标记,这样用户可以在抵押借贷的同时使用这些 ckb 进行拆分、合并或者部署合约、存储数据。除非用户违约,否则这些 ckb 仍然可以正常使用。
此外,交易所可以对自己提现的代币进行限时可追踪处理,例如在 1 小时内,无论提现的代币如何拆分,都可以精确地定位他们,一旦发现这些提现是黑客行为,交易所可以对他们进行回收。
技术实现
nervos ckb 可以实现代币的可追踪性的原因是 cell 模型的 lock script 设计。每一个 ckb 链上资产都是由 cell 来承载的,每个 cell 都有一个 lock script 来标识所属权。lock script 可以定义用户使用(转账)这个 cell 的时候需要执行的动作。一个典型的 lock script 是这样写的(伪代码)
if lock_script.recover(signature, hash(m)) == lock_script.pk then
pass transaction
而通过简单的变化即可将这个 cell 进行可追踪处理:
find all cells in output that use the same lock script code hash,
make sure that their capacity equals to input cells that use the
same lock script code hash.
&&
if lock_script.recover(signature, hash(m)) == lock_script.pk then
pass transaction
通过这样的 lock script 设计,可以保证一个类 utxo 交易输入的带标记代币的数量和输出的带标记代币数量一致。进一步地,我们可以用 lock script 对这些代币的持有人、完全解锁时间等特性进行设置。
结论
可追踪代币将 fungible token 做了扩展,它们隶属于 fungible token,但变成了同类 token 的一个子集。子集内的代币是 fungible 的,但它们与外部的同类 token 又有着区别。这种特殊性质可以让可追踪代币实现标准 fungible token 无法实现的业务功能。
川土微CA-IF1042VS-Q1 CAN收发器获得汽车行业认可
5个显卡术语的详细剖析
免维护铅酸蓄电池拆解与维修
华为云政务大数据解决方案在市场的表现与现有能力排名第一
TYAN推出了多款性能优越的嵌入式主板
Nervos CKB 应用层有什么优势
阿里研发AI黑科技,助力建设互联网清朗环境
天津日报报道芯灵通:为国家科技创新增长提供‘芯’动能
嵌入式智能系统在智能家居中有何应用
苹果Apple Watch,智能穿戴设备江湖上的王者
机器学习将改变商业智能分析应用
C程序设计基础-指针
电池储能安全传感器解决方案,对动力电池热失控进行监控
iPhone销售遭遇困境,PCB厂商积极开拓非苹订单趋势明显
谈谈小功率电源变压器的初级空载电流
一位资深前端工程师的总结
AutoML,AI“兵家必争”之技,谁是最强王者?
国芯思辰|铁电存储器PB85RS128可用于充电桩,性能兼容富士通
红米Pro2什么时候上市?最新消息:红米Pro2渲染图曝光,全屏+骁龙660,千元出头!你不心动吗?
温差电技术的历史及现状 半导体致冷器的应用情况介绍及发展前景