區塊鏈數字資產的標記化

買賣虛擬貨幣
簡介在本文中,我將為數字資產實現一個簡單有效的標記化智慧合約。如果你覺得程式碼有用,請隨意重用。本文的第二個目的是說明為什麼一些用於區塊鏈開發的用例是有用的,而另一些用例則更值得懷疑。通常關鍵在於權力下放是否合理。區塊鏈允許我們構建不同於傳統解決方案的軟體。使用區塊鏈,您可以構建可信任的分散式應用程式,以儲存未被篡改的資料。分散式是一個必要的要求,你可以開發許多不同的區塊鏈解決方案,但要想讓任何一個區塊鏈解決方案達到盈利規模,你必須接受你不會控制它。這是個棘手的問題。分散式工作的用例的一個例子是比特幣。它作為一個可信的區塊鏈應用程式的實現使得比特幣在沒有任何集中控制或策略的情況下得以有機增長。比特幣成為某種貨幣或資產,並使一些人非常富有,因為有足夠多的人認為它有價值。現在,在以太坊(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合同為我們提供了非常有用的功能,可以在各種方案中使用,條件是資產必須是真正唯一、不可分割和易於交易的。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;