技术解剖 | 资产上链标准协议ERC1540

哈希未来
哈希未来 机构得得号

Dec 05, 2018 专注于解决资产上链与资产跨链流通,创造可信的数字时代

摘要: 根据资产信息文件和法律协议,将建立一个连接物理世界中的实际资产和区块链世界中的通证的桥梁。遵守各国法律和法规下的法律协议将有助于资产通证或钥匙持有人以合法和合规的方式获得实际资产增值和股息的权益。

资产上链标准协议ERC1540。

以太坊资产上链标准ERC1540协议是哈希团队历经4个月打磨出来的,目前的状态是Draft,已申请国家专利。主要内容包括如何实现资产上链,以及发行资产Key的形态。

(一)概述

此资产通证标准定义了合法代表真实世界资产的所有权和相应特权的智能合约。

对应于真实世界资产所有权的资产通证(Asset Token)可以发放到表示资产特权份额的资产钥匙(Asset Keys)中。任何资产钥匙持有者都可以根据其股份收取股息,赚取收入并获得消费者服务。资产钥匙可以视为标准ERC20通证,仅在将资产通证发行到钥匙后才存在。

Asset Keys与ERC20保持向后兼容。

(二)摘要

该标准根据唯一可验证的标识和相应的权利协议将现实世界资产的所有权定义为资产标记。资产通证是非特定转移对象的唯一数字法定证书,可以在以太坊上自由转移。

资产通证的转移代表了现实世界中资产所有权的转移。整个过程大大降低了交易成本,提高了效率,实现了非中介化。

其中非常重要的一个环节是一般强制交付(TBD)协议。根据基于通证TBD协议,任何拥有此资产通证的持有者都可以强制要求资产管理人(在创建资产通证时分配)的真实资产。

目前,哈希未来在协议方面已经做了一定的尝试,包括此前在新疆开展的全球首例和田玉资产上链。简言之,即将TBD协议以去中心化的形式放在智能合约中,就能保证持有Asset Token的人真正持有现实资产所有权。

在兑换真实世界资产后,资产通证将被销毁。此外,可以将资产通证发放到指定数量的资产钥匙中。钥匙发行后,资产通证将处于“锁定”状态,在此状态下不允许对资产通证执行任何操作。钥匙即所有权、使用权、消费权三权合一的体现方式。资产持有人可以根据其股份收取股息,赚取收入,并获得相应现实资产的消费者服务。

(三)价值

该标准实现了对真实世界资产的Token化。在各国法律法规框架下,提取物理世界的实物资产和数字资产中的唯一可验证标识和一致权利协议,在区块链上生成不可篡改的可编程资产通证,实现链下资产与链上资产通证的一一映射。该标准实现了对真实资产的分布式确权与认证,将赋予以太坊更大的现实价值。

该标准促进了现实世界资产的一级化和二级化的自由转换。资产通证代表一种整体属性,资产通证的任何持有者都可以锁定通证并发出指定数量的资产钥匙。实际资产增值的利润将分配给资产钥匙持有者。同时,所有资产钥匙的任何持有者都可以转换为资产通证以声明真实资产。通过这一过程,可以实现一级资产和二级资产的自由转换,大大降低交易成本,促进资产流通的有效性。

该标准实现了可编程资产的智能管理。本标准设计了重点发行和回购价格的功能,应用智能合约代替公司治理,股东投票,合并,收购等。首先,该标准可以避免大股东做恶。实际上,主要股东可能通过多数票规则侵占少数股东的股息收入。另一方面,它还可以防止小股东勒索想要收集所有钥匙的持有人申请真实资产,并将其归功于“collectAllForce” 功能,任何人都可以通过强制回收功能以溢价购买的方式收集所有通证。通过这种方式,“所有权只是垄断的另一个名称”中所描述的情况将被抑制。

(四)协议具体内容

1.资产状态

有三个指标描述资产通证的状态。

第一个是“有效”。默认情况下,资产通证处于“有效”状态,一旦所有者明确执行“cancelContract” 功能,该通证将无效,这是不可逆的。

第二个是“已发行”。默认情况下,资产通证是“未发行”,并且在所有者锁定资产通证并发出资产钥匙后将“发出”。这种状态是可逆的。拥有所有资产钥匙的持有者可以将它们转换为原始资产通证。

2.首选稳定通证

合同通过分配首选稳定通证的地址在初始化阶段指定稳定通证。

稳定通证将用于向资产钥匙持有者分配股息或以发行资产钥匙时所有者指定的价格强制收集资产钥匙。

3.资产文件管理

getAssetFile/ setAssetFile

AssetFile包括两部分,一部分描述现实世界资产的特征,另一部分包含法律文件。这两个文件对公众开放,可以在智能合约的构建阶段设置,也可以由所有者显式执行“setAssetFile”或“setLegalFile”功能。这两项操作需要“未发行”和“有效”状态。

function initAssetFile(

    string_assetFileUrl, string_assetFileHashType, string_assetFileHashValue,

    string_legalFileUrl, string_legalFileHashType, string _legalFileHashValue

    ) internal;

function setAssetFileLink(stringurl) public onlyOwneronlyValid onlyUnissued;

function setLegalFileLink(stringurl) public onlyOwneronlyValid onlyUnissued;

如何保证真实资产的一一对应性?在这里有一份资产唯一性论证文件:

AssetFile:表示现实世界资产的唯一可验证标识。通常,AssetFile包括资产的详细描述,全角度照片,价值认证权限,质量,可用性等。不同类型的资产具有不同的资产模板。(案例链接https://hashfuture.io/static/data/Asset_Info.pdf)

assetFileHashValue:表示资产的数字指纹。根据'AssetFile'的二进制数据,应用'assetFileHashType',生成唯一且未被篡改的'assetFileHashValue',从而实现资产信息一致性的有效注册。

LegalFile:表示基于通证的真实资产的强制交付(TBD)协议。该协议公开声明资产通证的任何持有者,即真实世界资产链的所有者,可以随时强制执行文档“AssetFile”中描述的真实资产的结算。

(案例链接https://hashfuture.io/static/data/Term.pdf)

LegalFileHashValue:表示基于通证的强制交付(TBD)协议的有效注册。根据'LegalFile'的二进制数据,应用'legalFileHashType',生成未被禁止的'legalFileHashValue'。

4.资产交易管理

资产通证具有在初始化时指定的以ETH为单位的价格,其“可交易”状态设置为false。只有所有者可以通过调用函数来更改“可交易”状态并设置资产价格:

function setTradeable(boolstatus) public onlyOwneronlyValid onlyUnissued;

function setAssetPrice(uintnewAssetPrice) public onlyOwneronlyValid onlyUnissued;

如果'tradeable'设置为true,则任何人都可以通过将ETH发送到应付函数来获取资产通证的所有权:

function buy() publicpayable onlyValidonlyUnissued;

此功能需要“有效”和“未发行”状态。

function buy() publicpayable onlyValidonlyUnissued;

5.资产所有权管理

资产通证的所有者可以将所有权转让给“有效”和“未发行”状态下的其他持有者。

function transferOwnership(addressnewowner) public onlyOwneronlyValid onlyUnissued;

6.资产注销

注销与'onlyValid'修饰符紧密相关。

注销后,资产通证会进入“无效”状态。

在初始化智能合约之后,只有所有者才能执行注销功能,具有未发行和有效状态。

此操作不可逆。

function cancelContract() public onlyOwneronlyValid onlyUnissued;

7.钥匙发行管理

资产通证的持有者可以发出固定数量的资产钥匙,同时指定回购价格,初始资产通证分配。请注意,回购价格是稳定的通证。

function issue (uint_supply, uint8_decim, uint_price, address[] _address,uint[] _amount) public onlyValidonlyOwner onlyUnissued;

此操作需要“有效”和“未发出”状态,并且只能由所有者执行。发行后,资产键出现并与ERC20标准兼容:

/**

 * Standard ERC 20interface.

 */

contract ERC20Interface {

    functiontotalSupply() publicconstantreturns (uint);

    function balanceOf(addresstokenOwner) publicconstantreturns (uintbalance);

    function allowance(addresstokenOwner, addressspender) publicconstantreturns(uintremaining);

    function transfer(addressto, uinttokens) publicreturns (boolsuccess);

    function approve(addressspender, uinttokens) publicreturns (boolsuccess);

    functiontransferFrom(addressfrom, addressto, uinttokens) publicreturns(boolsuccess);

    event Transfer(addressindexedfrom, addressindexedto, uinttokens);

    event Approval(addressindexedtokenOwner, addressindexedspender,uinttokens);

}

如果持有者收集所有资产钥匙,他/她可以通过执行'convert'功能将它们转换为原始资产通证:

function convert() public onlyValidonlyIssued;

此函数要求“已发行”资产通证,并且执行程序(即msg.sender)具有所有资产键。如果保证他/她已经批准了足够的稳定通证,那么可以通过以回购价格调用'collectAllForce'功能强制收集给定持有者的资产钥匙。

但是,由于以太坊的gas限制,他/她只能通过一次通话收集所有资产钥匙。因此,需要可信任的代理。运营商是这样的代理,他将首先收到收集所有资产钥匙的请求,然后使用请求者提供的稳定通证收集它们。

function collectAllForce(address[] _address) public onlyOperator;

8.资产派息管理

如果现实世界资产获得收益且相应的资产通证已经发行,则股息将根据其股份分配给资产钥匙持有者。股息由指定的稳定通证计价。为了分配股息,如果保证他/她已经批准了足够的稳定通证,则可以调用'distributeDividend'函数。

此外,由于以太坊的限制,人们可能无法通过一次通话将所有股息分配给所有持有人,人们可以改为调用'partialDistributeDividend',它指定要分配的金额和相应的持有人。

function distributeDivident(uintamount) public;

function partialDistributeDivident(uintamount, address[] _address) public;

9.合理性

资产通证标准表示资产的唯一性,类似于ERC721的独有特性,并促进资产通证和资产键之间的相互转换。资产键与ERC20保持向后兼容。

根据资产信息文件和法律协议,将建立一个连接物理世界中的实际资产和区块链世界中的通证的桥梁。遵守各国法律和法规下的法律协议将有助于资产通证或钥匙持有人以合法和合规的方式获得实际资产增值和股息的权益。同时,资产钥匙将获得资产消费和VIP服务的凭证,这将有助于他们在现实世界中的流通。

(作者:哈希未来,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 哈希未来 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信