在 Cardano 上构建交易的技术指南
作者:Adaverse
要完全理解 Cardano 是如何工作的,需要了解几个概念 — Cardano 机制和比特币非常类似,只是延伸了一些附加功能:
- UTXOs
- 原生资产(代币和 NFT)
- 智能合约
简言之,Cardano 采用了比特币 UTXO 模型并对其进行了扩展,真正重要的功能只有两个,原生资产和智能合约。
UTXOs
理解 Cardano 最重要的概念可能就是 UTXO 模型 — — UTXO 模型最初用于比特币,但在智能合约开发中有很多限制,以太坊为了实现智能合约放弃了这种模式,转而采用账户模型(支持智能合约的公链们大都如此)。
Cardano 在共识层承继了比特币的优势基础,在状态选择上则从智能合约的实现需求角度考虑,借鉴了以太坊的设计思路,采用有所改良的UTXO 的修改版本(EUTXO)来实现对智能合约的支持。
其中Cardano 文档有一系列视频教程,在较高的层次上解释了许多概念,包括每笔交易如何实现和 UTXO 如何工作。
其中前两个关于 UTXO 和交易的视频是非常重要的概念,需要理解,这让我们可以了解到资产是如何存储在 Cardano 中的,以及存储在每个交易中的信息。
在理解 UTXO 和交易的高级概念之后,最好的做法是实际构建并提交一个交易,具体分为 3 个步骤:
- 构建一笔交易;
- 使用私钥对这笔交易进行签名;
- 将交易提交到 Cardano 节点;
Cardano-cli
构建、签署和提交交易的第一种方法是使用「Cardano-cli」,这种方法非常友好,几乎可以保证交易的成功,但它需要用户自己设置一个 Cardano 节点。
对于很多普通用户来说,这无疑是一个不小的门槛 — — 需要相当强大的硬件和大量的备用内存。
不过 Cardano 文档也有一个关于如何运行节点和 CLI 的指南。
如果已经设置了一个节点,这里有一个关于您可以尝试的非常简单的交易的指南。
Cardano-serialization-lib +一个轻钱包
构建和提交交易的第二种方法是结合使用 Cardano-serialization-lib 和轻钱包。
尽管用户可以使用任何想要的轻钱包,但我创建了一个项目作为示例,演示如何使用 Cardano-serialization-lib 和 Yoroi 钱包来构建、签署和提交交易到测试网。
主要示范如何生成一个 NFT 并将其发送到脚本地址:
- 首先安装 Yoroi Nightly(Yoroi 钱包的开发版本,支持测试网)。
- 然后从水龙头上获取一些测试网 ADA;
- 然后你可以复制这个 Github 存储库 并以开发者身份运行 npm(默认的服务位置是 http://localhost:8080/)
代币和 NFT
一旦理解了基本交易的工作方式,就有必要进一步了解代币和 NFT 在 Cardano 上的工作方式。
Cardano 文档有一篇很长的介绍文章,事实上,代币和 NFT 在 Cardano 被称为「原生资产」因为 Cardano 在区块链层上支持自定义代币和 NFT,而以太坊使用智能约来表示这些资产。
代币和 NFT 在 Cardano 上的处理方式与 ADA 相同,本质上每个资产都有一个唯一的 ID,而ADA 将空字符串作为其唯一的 ID。
关于代币和 NFT,有两个重要的概念需要理解:
- Mint 策略
- 元数据(Metadatcea)
代币的 ID 实际上只是其 Mint 策略的哈希(hash),而 Mint 策略是一组指示是否可以 Mint 的指令。
代币的元数据是代币其他重要信息的地方,目前 CIP25 中提供了一个标准来标准化代币元数据的形式。
Mint 代币
使用 CLI,使用 serialization-lib +轻钱包,
Plutus 脚本(智能合约)
要真正完全理解 Cardano,最后一个难题是理解它的智能合约系统。
但学习这部分没有简单的方法,需要大量的时间投入,没有比跟随 IOG 发布的系列视频更好的学习方法 — — 「Plutus Pioneer Program」。
该视频系列将带我们了解如何制作 Plutus Scripts、测试并部署它们,并为我们提供了许多可以在 Cardano 上构建脚本的好例子。
如果想要了解更多关于Cardano技术方面的信息和知识可以联系Adaverse