「比特币」如何在比特币SV上实现1层代币发布

原创 北慕城南  |  文章来源:币圈达人发布时间:2020-05-24 02:03  阅读 82 次 评论 0 条
众人帮 趣闲赚 牛帮
摘要:

自成立以来,比特币就一直被用来标记外在资产。有许多令牌化协议,通常它们会将额外的协议元数据附加到比特币上,以表示这些资产,例如在OP_RETURN中。代币规则在2层进行验证,这意味着链下而不是由矿工验证。
与以前的所有工作不同,我们展示了一

自成立以来,比特币就一直被用来标记外在资产。有许多令牌化协议,通常它们会将额外的协议元数据附加到比特币上,以表示这些资产,例如在OP_RETURN中。代币规则在2层进行验证,这意味着链下而不是由矿工验证。

与以前的所有工作不同,我们展示了一种在比特币中实现第1层(aka,共识层,矿工可执行,无信任,无权限)代币的机制。使用1层代币,验证由矿工完成。我们在sCrypt中实现了两个所有者的示例代币,sCrypt是一种可编译为本机脚本的高级语言。

代币智能合约

代币表为状态

在上一篇文章中的技术,我们将整个代币表作为状态存储在数据部分中。该表是从每个代币所有者(由其公钥表示)到其余额的映射。

代币合约代码如下所示,内嵌注释。

与上一篇文章一样,第7行和第9行确保原图像来自当前事务。第12行确保只有所有者才有权转让代币。其余的遵循上一篇文章中解释的状态转换范例。

代币发布

这是用于部署合约和来回传递代币的代码。在交易1中部署合约后,我们可以看到pk0是024c79d694ef7dfd53217de55f7fbf63d2381b18e31afc408b226bc88a6a3cb4f0和pk1 038ad6e71978a3bcc2974b7106f91a61cf03b184189c67ceb1e34e pk0的初始余额为100(十六进制为0x64),pk1的初始余额为0。

代币发送

pk0在事务2中将40个代币转移到pk1。按预期pk0的余额变为60(十六进制为0x3c),pk1为40(0x28)。

pk1在事务3中将10个代币转移回pk0。按预期pk0的余额变为70(0x46),pk1变为30(0x1e)。

结 论

我们仅演示了如何发行和转移两个用户的玩具代币。通过读取和解析区块链上的代币表,可以轻松实现其他功能,例如余额查询。不难通过多种方式对其进行扩展以支持例如多个用户代币,不可替代的代币,发行者允许的代币,合法兼容的代币以及与SPV兼容的代币。

历史上的今天:

本文地址:https://www.u5881.com/8555.html
版权声明:本站推荐的部分活动具有时效性,老淘本人并不能保证当您看到本文时,该项活动是否仍在继续。

发表评论


表情