当前位置:首页 > 物联网 > 区块链
[导读] 在本文中,我将为数字资产实现一个简单有效的标记化智能合约。如果你觉得代码有用,请随意重用。 本文的第二个目的是说明为什么一些用于区块链开发的用例是有用的,而另一些用例则更值得怀疑。通常关

在本文中,我将为数字资产实现一个简单有效的标记化智能合约。如果你觉得代码有用,请随意重用。

本文的第二个目的是说明为什么一些用于区块链开发的用例是有用的,而另一些用例则更值得怀疑。通常关键在于权力下放是否合理。

区块链允许我们构建不同于传统解决方案的软件。使用区块链,您可以构建可信任的分布式应用程序,以存储未被篡改的数据。分布式是一个必要的要求,你可以开发许多不同的区块链解决方案,但要想让任何一个区块链解决方案达到盈利规模,你必须接受你不会控制它。这是个棘手的问题。

分布式工作的用例的一个例子是比特币。它作为一个可信的区块链应用程序的实现使得比特币在没有任何集中控制或策略的情况下得以有机增长。比特币成为某种货币或资产,并使一些人非常富有,因为有足够多的人认为它有价值。

现在,在以太坊(ethereum)或超账本(hyperledger)等平台上轻松构建区块链应用程序成为可能,试图利用区块链机会的想法数量激增。

区块链应用的一种常见模式是某些市场的实施。世界上许多市场的效率都非常低,市场制造商在诉讼程序中占很大比例。区块链本质上需要移除中间商,将中介成本返还给用户。

使用区块链,您可以构建可信任的分布式应用程序,以存储未被篡改的数据。

在讨论标记化方案时,我喜欢对物理资产和数字资产进行非常明确的区分。当标记化物理资产时,与物理世界有复杂的关系。像谁实际持有资产这样的问题很重要。考虑到您可以对资产执行的主要操作之一是转移它,您需要将令牌转移与资产转移同步,这不是一项容易的任务。

标记化数字资产要简单得多。您可以使用您的数字资产的令牌表示,并很容易地将令牌与资产相锚对。我们可以轻松地自动化整个业务流程。让我们看一个例子。

商业案例

在我们的业务案例中,我们将在区块链平台中管理软件许可证。这些许可证将使用按使用付费模式。就这样,简单。

按次使用付费是一个有效的货币化过程,但在管理许可证时相当麻烦。离线许可证通常很容易破解,要拥有在线许可证,您需要维护服务器。至少会有点头痛。

使用区块链,我们可以实施有效的许可证系统。我们将要包括的其他功能是收集付款以充值许可证的工具,以及用户如果愿意交易许可证的机会。除此之外,维护许可证系统将由用户以非常低的费率支付。

案例实施

ERC721合同生成唯一可识别的令牌,这些令牌不能合并或分解为分数。这些是用于标记化资产的非常有用的功能,这通常使ERC721合同成为此类方案的理想起点。

著名的erc721令牌示例是cryptokitties。这些都是数字宠物,本身是相同的,除了一些审美特征编码在他们的标识符。你可以很容易地看到任何两个密码猫是不同的,你不能分割或合并密码猫。

我们的许可证管理合同将使用ERC721标准。我建议你看一下代码,即使你是一个商人。即使您不知道如何编写代码,也应该通过阅读方法名和注释了解可以做什么。

我们的许可证管理合同将使用ERC721标准。我建议你看一下代码,即使你是一个商人。即使您不知道如何编写代码,也应该通过阅读方法名和注释了解可以做什么。

许可证将在一段时间后到期,必须加满才能保持有效。为此,我们将在许可证和到期日期之间创建一个额外的映射。我们将有一种方法可以接受ether并将许可证的到期日期推到将来。

在那之后,我们只需要一个更简单的方法来检查到期日期。完整合同如下:

pragma solidity ^0.5.0;

import “openzeppelin-solidity/contracts/token/ERC721/ERC721.sol”;

import “openzeppelin-solidity/contracts/ownership/Ownable.sol”;

import “openzeppelin-solidity/contracts/math/Math.sol”;

/**

* @TItle License Token

* @author Alberto Cuesta Canada

* @noTIce Implements an ERC721 license token with validity by top up.

*/

contract LicenseToken is ERC721, Ownable {

event TopUp(uint256 licenseId, uint256 expire);

/**

* @noTIce mapping from token id to expire date (in unix TIme)

*/

mapping(uint256 =》 uint256) internal expire;

/**

* @notice Delay the expiration of a license by a second per wei.

* @param _licenseId The license id.

*/

function topUp(uint256 _licenseId)

external

payable

{

uint256 timeToAdd = msg.value;

expire[_licenseId] =

Math.max(now, expire[_licenseId]) + timeToAdd;

emit TopUp(_licenseId, expire[_licenseId]);

}

/**

* @notice Mint new licenses, only owner.

* @param _to The address to receive the license.

* @param _licenseId The unique license id.

*/

function mint(address _to, uint256 _licenseId)

public

onlyOwner()

{

_mint(_to, _licenseId);

}

/**

* @notice Retrieve an expire date for a license

* @param _licenseId The license id.

*/

function getExpire(uint256 _licenseId)

public

view

returns(uint256)

{

return expire[_licenseId];

}

}

结论

区块链中资产的标记化是一种流行的概念,但并非所有用例都适用于它。 数字资产的标记化是一种完美的契合,可以生成简单而有效的实现。 自动化经常被视为区块链的优势之一,但自动化对于数字资产来说是很自然的。

ERC721合同为我们提供了非常有用的功能,可以在各种方案中使用,条件是资产必须是真正唯一、不可分割和易于交易的。

来源: 区块链研究实验室

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭