自2016年区块链产业爆发性增长以来,数字资产的概念的提出, 让区块链脱离比特币数字货币的范畴而走向更广大的权益资产市场。 相比于物联网,去中心化内容网络等场景, 数字资产管理应该是目前区块链最有前景且最现实能落地的应用之一。区块链可以为数字资产发行商、应用开发商和消费者之间提供脱媒,解耦有关资产管理的功能,如发行、交易处理、保障用户资金安全、建立用户身份。 典型如在以太坊上,数字资产通过智能合约发布,预估已经超过100亿市值, 而且还在不断增加, 这种趋势预示着未来会有更多的线下资产会搬到区块链上来,区块链资产会直接进入中产阶级资产配置表中,且比例会越来越大。
数字资产登记是在区块链上流转的先决条件,资产如何保持全网的唯一性,且同时要保障不可被篡改,是一种挑战。 先前有许多区块链实现了智能合约, 在合约代码内定义了某些需要发行的资产。 在生产环境中,资产的转移是通过虚拟机运行合约代码, 进行逻辑或数学运算,改变世界状态数据后完成的, 但这里存在问题, 在用户操作过程中,直接面对的是合约地址,合约代币和合约二进制代码等内容,无法清晰标记特定的资产, 也无法标记这个资产由哪些部分组成。这类归属问题的处理是比较复杂,我们需要有统一的规范来定义链上甚至链下资产。在设计的过程中思考过两种解决方案:
离线状态下,全局唯一标识符(GUID)是由种结合网卡,时间戳,CPU数据,通过算法生成的二进制长度为128位的数字标识符,有效的情况下,这是一种几乎不会重复的字符串,但在当前场景中,GUID还是无法满足需求, 它只是一串不规则的字符,无法记录资产的实际属性,同时和比特币地址一样,也是阅读不友好,无法轻易记住。另外,GUID的扩展性较差,无法满足未来额外属性和监管需求,所以不会是好的选择。
在线状态下定义单一资源, 大家很容易想到域名系统DNS, 域名系统将主机名解析成 IP 地址使用一个全局的、层次性的分布式数据库系统, 每个域名可以定义为一个独立的资源,但虽然互联网本源是分布式、自治性的系统,而DNS 却不是自治性的系统, 且一些固有缺陷仍然存在:
DNS信息易被篡改: 由于 DNS 报文协议天生不足,其域名信息容易被篡改,包括报文欺骗、缓存中毒等,通过实施 DNSSEC 可以解决此问题。但实施 DNSSEC 需要完善的电子证书体系,以美国为核心的电子证书体系 从国家层面来说存在更大的危险性
DNS服务器容易被攻击: DNS 是一个拥有中心的树状结构,域名的解析是递归进行,很容易遭受 DDoS 攻击,难有有效手段防范,攻击越靠近中心,效果越显著,历史性网络瘫痪大多是以DNS服务失效引起的。
商业服务流程极其繁琐:域名通过 ICANN 或多家顶级域名机构授权商家进行注册,不仅注册费用偏高,而且不尽合理的限制性条款,并且很可能通过被诉讼失去域名的拥有权。
最终发现,去中心化类DNS系统才是合适的选择,比原链与PPKpub小组进行合作基于ODIN 开发基于资产索引命名系统。
ODIN(Open Data Index Name) 是在网络环境下自主标识和交换数据内容索引的一种开放性系统 , 它遵从 URI(统一资源标识符)规范 , 并为基于数字加密货币区块链(BlockChain)的自主开放、安全可信的数据内容管理和知识产权管理提供了一个可扩展的框架。每一个 ODIN 标识符的拥有者都对应拥有一对非对称加密技术的公私钥,可以通过私钥对自主发布的 数据内容进行签名,接受数据内容的个体可以通过公钥进行验证,以确保收到的数据是来源可信和不 被篡改的。 结合比特币等多级区块链组合,ODIN标识符能对任何数据内容对象的开放访问索引进行唯一标识 , 使数据内容对象能被人们准确地识别和提取。ODIN 标识符一旦生成就将永久不变,不随其所标识的数据内容对象的持有者或存储地址等属性的变更而改变,且后续维护成本很低。
ODIN采用PPK协议,替代传统IP访问机制, 建立区块链协议栈, 在ODIN上可以标记任何数字资源, 包括文档,影像,音频资源, 保证在互联网上资源的定义的唯一性。 PPK编码方式包含多级字段:
ppk: /[PARENT_ODIN_PREFIX]/[SUB_BLOCK_SN].[SUB_TRANS_INDEX]/[DSS]
●PARENT_ODIN_PREFIX: 代表父级ODIN前缀, 对于大型资产类别可以使用不同定义
●SUB_BLOCK_SN.SUB_TRANS_INDEX: 正是由区块标号和相应的交易索引作为唯一标识来做子级前缀
●DSS: 代表对资产属性的可读性描述,比如/share/bytom, 意为bytom的股权
正是基于这种资产的描述, 我们选择多级区块链体系集成标记,假如我们选择BTC作为父级ODIN前缀,那么 ppk:/351474.434/asset/dcs就代表把dcs这个asset类别下的资产登记在了比特币351474高度块中的第434笔交易中,dcs的属性可以用JSON格式数据来描述:
{
Title: dcs
Email:
dcs@bytom.ioAuthorize: 2
Owner: 8btc.com
Access_Points:
http://ppkpub.org/AP/}
一旦数据写入就代表资产的注册成功, 资产的所有权即是当前ODIN体系中账户的私钥来决定,分层私钥的控制可以让资产的层级和管理权限更加清晰, 如果资产需要更改属性,同样可以通过私钥来重新发布新的资产。
比原链在UTXO中加入资产属性,其中设计ASSET_UID 字段,将比原链本身作为二级或者三级的索引标识,在比原链上定义的资产可以确保全网统一,即以后任意在其他区块链上登记的资产, 一旦实现此协议的接入都可以迁入比原链进行交易和流转, 解决了多种资产在不同链上发布,可能存在的欺诈风险。
比原链在资产定义模块中留有更多的属性, 包括发布资产数量(ISSUE_AMOUNT), 生命周期(LIFE_TIME),为审计和监管所预留的电子法务合同,或者电子证书。
系统注册资产后,比原链会通过内部API接口, 实现比原链资产详情的查询。同时,在协议上可以实现一套完整的搜索引擎, 可以在全网不同区块链中查询数字资产详情, 方便知情者查询。
PPK这样去中心的标记协议可以解决跨链资产的重复定义的问题, 同时由于多种区块链结合实现,可以降低系统风险。
PPK ODIN标识目的是标识互联网一切比特资源也可为物联网服务, 比原链在于PPK小组的沟通中,意识到在数字资产领域的标识对于现阶段发展状况看,ODIN是最适用的,后续比原链会和PPK小组继续合作,推出一套完整的标记资产的参考规范,为社区做出贡献。
参考文献:
DNS:
https://en.wikipedia.org/wiki/Domain_Name_SystemGUID:
https://en.wikipedia.org/wiki/Universally_unique_identifierPPK ODIN:
http://ppkpub.org/doc/PPk_ODIN_Introduce.pdf