美文网首页ugChain技术团队
以太坊ERC875示例分析:一手交钱,一手交证

以太坊ERC875示例分析:一手交钱,一手交证

作者: Buffalo_Lv | 来源:发表于2018-03-23 15:43 被阅读345次

    近期看了不少关于用以太坊ERC875标准发货的文章,比如这篇:

    http://8btc.com/article-4614-1.html《深入浅出以太坊ERC875标准(不可替代性通证标准)》

    刚好,我这里也有类似的业务需求,就研究了一下该标准的示例代码,位于https://github.com/alpha-wallet/ERC875-Example

    合约代码文件ERCTokenImplementation.sol

    APP代码文件TradeImplementationExample.java

    智能合约代码和APP工具代码阅读起来挺简单的,感兴趣的读者可以读一读或部署运行试一试。复杂的部分,其实是如何把商品Token化,如何保证TokenID和实际的商品是一对一的,这些都是非区块链技术相关的具体业务问题。需要特别注意的是,在以太坊上交易和转让的只是商品的TokenID,相当于是物权证明,并不是物品本身,买家如何获得实际物品,是需要在现实世界中完成的,而不是虚拟的区块链世界。现实世界和虚拟世界需要靠人类自身的行为活动来连接。但若用ERC875标准来交易类似游戏道具之类的虚拟资产,就很有创意了。技术手段能实现的核心功能如下:

    部署一个智能合约(合约代码是开源的,以获得信公众的信任),把货物或商品Token化,形成与之对应的唯一TokenID,记录在物品拥有者的以太坊账户地址下,一个地址下可以记录多件物品的TokenID,形成资产列表。

    当物品拥有者需要把物品卖出去的时候(可以一次售卖多件物品),就用自己的私钥签名(售卖总额,成交有效期限,售卖的物品TokenID列表,合约地址),然后把签名数据通过各类渠道公布出去。

    买家通过各类渠道得到卖家的签名信息后,在某些APP工具的帮助下,从签名数据中恢复出物品TokenID列表与价格信息,以及V、R、S签名参数,通过这些参数构造一笔以太坊交易,携带与签名信息中的交易总额等值的以太币,发送到对应的合约地址,合约中的代码被交易触发运行后,会调用ecrecover函数验证传入的签名参数是否正确,并求出卖家的地址信息,从卖家地址下登记的资产列表中找出本次售卖对应的每件商品的TokenID,并转移登记到买家地址下的资产列表中,买家成为这批物品的新主人,对于同一份售卖签名信息,可以同时有多个买家,这时候遵循先买先得的原则,一手交钱,一手交货(物权证明),干脆利索。

    相关文章

      网友评论

      本文标题:以太坊ERC875示例分析:一手交钱,一手交证

      本文链接:https://www.haomeiwen.com/subject/jijxcftx.html