BMIP002协议介绍
飞儿506
发表于 2023-1-1 11:46:38
383
0
0
概述( a2 a5 O: L1 ]6 ?( T
比原链技术社区最近提出了一套资产规范提议,该提议允许在issue类型的交易中实现标准资产token。该标准定义资产在链上的基本功能,以及发行人通过智能合约管理资产的规范。
功能7 _! c) Y6 I. F8 V3 J7 {
资产是一种可以在区块链上发行的价值,给定资产的的所有单位都是可替代的。
每个资产都有全球唯一的资产ID,该资产ID来自发行程序和资产定义,发行程序通常定义一组可能的签名秘钥和阀值数量的签名,这些签名必需被提供以授权发布资产的新单元。
资产定义由提交给区块链的任意键值数据组成,提供所有参与者查看。
该标准为用户提供了一种发行资产的简单方法。它允许任何满足Bytom标准的token很容易被其他应用程序支持:比如钱包,区块链浏览器,到交易所。, z s" h7 X. c) @: ]1 R0 l# a* w
一个例子是商家可以在很短的时间内在他们的商业应用中列出token。
规则" v# Z/ R5 D1 n" B. m4 x" O1 m
资产定义" I% Y9 |- X3 P( ^
以下规范使用标准均JSON模式的语法
语法
介绍* }* o% R& A% K1 g: ]8 n
4 {- r W9 T2 `1 ]" G1 Y' }6 u& M
name. Z r# [( {* s; c$ R
定义的资产token名字- w" [# K8 T( F' O2 C, o. }
4 d+ u# Y2 G$ t ^
k9 V: G6 k9 @9 T
symbol; G3 v! r( Q. N$ ?
定义的资产: _: `4 k. ^7 a' g
1 C$ ]1 b: d/ Y. z+ N" M
decimals) K! E+ `" c( u2 M0 R) E
定义token使用的小数位数+ D3 s9 y: v) _# D9 O& {
quorum
定义必须交易签名以发出此token单位的可能签名密钥的阈值数。9 {0 @) W& I( x$ Z6 U4 z; ]
reissue
定义标志是否可以多次发布资产
description
包括由任意键值数据组成的资产描述* w8 g: p: H! B1 T4 b. Q% u
3 k5 p) a+ u3 O
Issuance Program
创建资产时,Bytom会自动创建具有智能合约的发行程序。发行人可以根据需要多次发布任意数量的单位。自定义发行计划可能会对何时,以及由谁发布新单位强制执行进一步的限制。( n4 Z* v, T4 a/ M: l8 ~. c! A& {
f6 U5 p9 t5 U3 L; v, l
提示: 以下代码片段未在Equity0.1.1(或更高版本)中编写。我们建议没有限制的发行资产程序和至少2个签名秘钥! M8 @/ Q7 _! n, @& \9 w: ?1 ^: C
contract IssueAsset(publicKey1: PublicKey,' \! k4 W# ~% z! t3 P% N/ [" K
publicKey2: PublicKey,
publicKey3: PublicKey) locks valueAmount of valueAsset ' r; K% P) T, w
{
clause spend(sig1: Signature, sig2: Signature) {9 X! _+ P @5 X! @* f) A
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])
unlock valueAmount of valueAsset
}. ]: a3 g) ^/ \. O
}: Y; U, J4 V" V' h
Issuance Program will be inactive after certain block height by adding the limitHeight parameter.
contract IssueAssetWithLimit(publicKey1: PublicKey,5 I% f# g( U; W3 `; Z( ~& Z
publicKey2: PublicKey," ~+ L# M, _2 }/ w# i+ v3 T
publicKey3: PublicKey,! W2 b# ?8 U# ^" v+ Z: v
limitHeight: Integer) locks valueAmount of valueAsset
{
clause spend(sig1: Signature, sig2: Signature, limitHeight: Integer) {/ p0 F; _4 L$ b& I' G8 g
verify below(limitHeight)" X: G) w/ S U* f8 d6 U
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])$ F, r2 O: M2 c2 {. M
unlock valueAmount of valueAsset. z) z1 \0 {% G# T
}
}' M( h, ^4 a" @) A$ ^ A) D
比原BMIP002协议在blockmeta中的展示
通过上面对BMIP002协议的介绍,我们知道BMIP002协议本质是对发行在比原链上的资产的一个规范,那接下来我们介绍一下这套规范在blockmeta中的具体展示。
blockmeta官网:https://blockmeta.com/! [- X& {& C3 f
在blockmeta中主要展示在3个地方,第一点:我们打开我们发行的资产详情页面,如图中圈起来的标识,如果满足BMIP002协议的资产,会显示YES。下图中的资产不支持BMIP002协议,所以显示NO。
/ V3 N9 P* ^" z# x
第二点,打开资产列表页面,如果发行的资产支持BMIP002协议,资产名的又下角会显示logo。且在整个资产列表中,支持BMIP002协议的资产排序是靠前的。, ^$ h9 P5 ~2 {7 c4 z6 r* U
最后一点是,我们打开一笔交易的详情,找到一笔交易的地址,我们打开地址详情页面,可以看到属于该地址的资产。如下图:
以上就是BMIP002协议在blockmeta中的具体展示。
BMIPs:https://github.com/Bytom/bmips
成为第一个吐槽的人