BMIP002协议介绍
飞儿506
发表于 2023-1-1 11:46:38
292
0
0
概述/ C1 }% m2 R# F7 q. f+ R3 N
比原链技术社区最近提出了一套资产规范提议,该提议允许在issue类型的交易中实现标准资产token。该标准定义资产在链上的基本功能,以及发行人通过智能合约管理资产的规范。' U. d7 W( c% i
功能
资产是一种可以在区块链上发行的价值,给定资产的的所有单位都是可替代的。1 X' x* q+ S {- z
每个资产都有全球唯一的资产ID,该资产ID来自发行程序和资产定义,发行程序通常定义一组可能的签名秘钥和阀值数量的签名,这些签名必需被提供以授权发布资产的新单元。
资产定义由提交给区块链的任意键值数据组成,提供所有参与者查看。7 l X: z9 ^7 c4 |. F; Q
该标准为用户提供了一种发行资产的简单方法。它允许任何满足Bytom标准的token很容易被其他应用程序支持:比如钱包,区块链浏览器,到交易所。. n m" s0 e5 I, l8 q5 R: O
一个例子是商家可以在很短的时间内在他们的商业应用中列出token。
规则: W- ]# K- }* |1 n. J( \# N# G
资产定义: \1 c6 O" j% e; [+ i: ~
以下规范使用标准均JSON模式的语法/ Z9 ]/ c3 r( v
语法% E6 p4 w7 z: ?) R: l+ ^
介绍* y7 t- b9 n# ?+ Q1 n& V9 b- H# e3 o
+ l M: G4 s1 A& e
name/ x& a2 U% h9 l( Y! A/ h: M) d
定义的资产token名字
% [. P! R- h) l( w
symbol+ t, }& H0 {9 C W" x( L( ~8 n
定义的资产
2 }# D8 i2 V0 ~. L
decimals
定义token使用的小数位数& x( M& q8 C& S( [ z* ~1 h
2 ?6 U$ N: e. J
quorum
定义必须交易签名以发出此token单位的可能签名密钥的阈值数。. g X) P9 d7 V) S: x
2 H: H# f1 \6 z* y: ]$ n
reissue6 b8 L, X5 q, Z& f2 B" x
定义标志是否可以多次发布资产
: c9 b1 I0 e$ u
& F" g7 I! N8 r7 U( ]) w# a& W
description7 S' c& N) I% D
包括由任意键值数据组成的资产描述, _; |5 Z& Y' H6 [5 v! ] ^$ y
1 i# D* K* s6 v; |* k0 i; K
Issuance Program, @3 L9 S# P- @5 D# T0 I9 K" F0 ~
创建资产时,Bytom会自动创建具有智能合约的发行程序。发行人可以根据需要多次发布任意数量的单位。自定义发行计划可能会对何时,以及由谁发布新单位强制执行进一步的限制。
提示: 以下代码片段未在Equity0.1.1(或更高版本)中编写。我们建议没有限制的发行资产程序和至少2个签名秘钥 ^% j# g! J3 }+ h5 z! n* n
4 ~1 W& S& ~ Z! t
contract IssueAsset(publicKey1: PublicKey,
publicKey2: PublicKey,' P E+ X( R. t* M- B
publicKey3: PublicKey) locks valueAmount of valueAsset
{
clause spend(sig1: Signature, sig2: Signature) {' y1 C/ y; z3 a1 m+ h" s0 v
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])& Q' J3 f0 ~' w1 y8 c# }9 g# j7 m2 l
unlock valueAmount of valueAsset
} ^1 E1 P: x8 M
}
Issuance Program will be inactive after certain block height by adding the limitHeight parameter.2 O& i- m/ y/ u
contract IssueAssetWithLimit(publicKey1: PublicKey,
publicKey2: PublicKey,
publicKey3: PublicKey,
limitHeight: Integer) locks valueAmount of valueAsset
{& B- j6 u! H- ~
clause spend(sig1: Signature, sig2: Signature, limitHeight: Integer) {
verify below(limitHeight)0 ?" f% E& ~9 A7 ^* ~
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2]); h) _1 l" P! A' U( p
unlock valueAmount of valueAsset
}
}
比原BMIP002协议在blockmeta中的展示
通过上面对BMIP002协议的介绍,我们知道BMIP002协议本质是对发行在比原链上的资产的一个规范,那接下来我们介绍一下这套规范在blockmeta中的具体展示。
blockmeta官网:https://blockmeta.com/
在blockmeta中主要展示在3个地方,第一点:我们打开我们发行的资产详情页面,如图中圈起来的标识,如果满足BMIP002协议的资产,会显示YES。下图中的资产不支持BMIP002协议,所以显示NO。. j, X& K0 ~* z" q) q
第二点,打开资产列表页面,如果发行的资产支持BMIP002协议,资产名的又下角会显示logo。且在整个资产列表中,支持BMIP002协议的资产排序是靠前的。! C; x5 q" @8 j: @' h' C- n+ b
最后一点是,我们打开一笔交易的详情,找到一笔交易的地址,我们打开地址详情页面,可以看到属于该地址的资产。如下图:; D: D) B% t" }' s/ m. Z ?
以上就是BMIP002协议在blockmeta中的具体展示。 @! o) [6 z* g
BMIPs:https://github.com/Bytom/bmips
成为第一个吐槽的人