BMIP002协议介绍
飞儿506
发表于 2023-1-1 11:46:38
357
0
0
概述7 E4 Q B5 t$ S
比原链技术社区最近提出了一套资产规范提议,该提议允许在issue类型的交易中实现标准资产token。该标准定义资产在链上的基本功能,以及发行人通过智能合约管理资产的规范。+ o# f8 o7 L- l2 ]
功能& e' [: d7 t2 m& g" x2 }
资产是一种可以在区块链上发行的价值,给定资产的的所有单位都是可替代的。
每个资产都有全球唯一的资产ID,该资产ID来自发行程序和资产定义,发行程序通常定义一组可能的签名秘钥和阀值数量的签名,这些签名必需被提供以授权发布资产的新单元。
资产定义由提交给区块链的任意键值数据组成,提供所有参与者查看。
该标准为用户提供了一种发行资产的简单方法。它允许任何满足Bytom标准的token很容易被其他应用程序支持:比如钱包,区块链浏览器,到交易所。; q) I& Z2 n( s& j2 }( j& x- z
一个例子是商家可以在很短的时间内在他们的商业应用中列出token。9 a' x7 @1 x! v: ^+ _ ]- `
规则
资产定义
以下规范使用标准均JSON模式的语法0 @5 E7 e4 N, y
9 k9 Y: ~- r& o7 s0 Q. M5 L
语法7 N3 O! g, H3 X' p9 {# b2 y: F
介绍$ A E2 u. f5 V- k
V/ r; g+ j! D4 p- l
}) A* c5 x, B; {% p e a
, e' k: b) x2 C9 T3 z3 |/ D
name
定义的资产token名字6 ? D3 D/ N- E
0 Z+ N5 v. v- y& g3 t9 K: N8 ^ _0 c
symbol
定义的资产
4 F' o3 F! U3 d0 d) R4 |5 c+ A N
& i2 {3 t# `4 I% E, Y [4 u& {
decimals& N5 _# j0 J, T
定义token使用的小数位数! {4 u' b% w0 k
5 }7 }- v4 g/ V9 I5 _# _: N
quorum0 I# c2 {: l" S: d3 \3 Y
定义必须交易签名以发出此token单位的可能签名密钥的阈值数。7 X. E$ F# P n1 N5 @/ _
2 a$ u. ~+ J# f* ?8 ~1 t
* R0 j& U0 z$ [6 N
reissue
定义标志是否可以多次发布资产& j% A6 l( r" O' f5 ]" z
description$ O' n. b- I) T( ]) R0 y
包括由任意键值数据组成的资产描述
" F6 O8 [/ W+ Z7 m, Q
Issuance Program9 U! Y3 A) U$ r+ J# v8 ?; j
创建资产时,Bytom会自动创建具有智能合约的发行程序。发行人可以根据需要多次发布任意数量的单位。自定义发行计划可能会对何时,以及由谁发布新单位强制执行进一步的限制。! D; K) d. m9 b& w
|( O# k, L& m' d8 ^
提示: 以下代码片段未在Equity0.1.1(或更高版本)中编写。我们建议没有限制的发行资产程序和至少2个签名秘钥
( _5 k. {/ I4 ?1 |- d% e$ Z
contract IssueAsset(publicKey1: PublicKey,3 A* r- B" H1 U. n; l9 G
publicKey2: PublicKey,
publicKey3: PublicKey) locks valueAmount of valueAsset
{
clause spend(sig1: Signature, sig2: Signature) {
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])
unlock valueAmount of valueAsset2 F3 j8 \' V0 }- ~
}
}- f4 d) @. B) w: J2 E% ~
Issuance Program will be inactive after certain block height by adding the limitHeight parameter.3 {# d, c8 V; u1 H
contract IssueAssetWithLimit(publicKey1: PublicKey,
publicKey2: PublicKey,$ B; l! E1 w$ p: j; X
publicKey3: PublicKey,9 P, w; G8 ?" s$ K7 Q+ e
limitHeight: Integer) locks valueAmount of valueAsset
{
clause spend(sig1: Signature, sig2: Signature, limitHeight: Integer) {
verify below(limitHeight)
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])
unlock valueAmount of valueAsset
}/ t* t6 T0 D/ q" B M
}
比原BMIP002协议在blockmeta中的展示
通过上面对BMIP002协议的介绍,我们知道BMIP002协议本质是对发行在比原链上的资产的一个规范,那接下来我们介绍一下这套规范在blockmeta中的具体展示。
blockmeta官网:https://blockmeta.com/
在blockmeta中主要展示在3个地方,第一点:我们打开我们发行的资产详情页面,如图中圈起来的标识,如果满足BMIP002协议的资产,会显示YES。下图中的资产不支持BMIP002协议,所以显示NO。/ P: S. d! v3 _6 ^& `) V/ a. n9 n. g. u S
6 `. o4 S+ P# G6 q
第二点,打开资产列表页面,如果发行的资产支持BMIP002协议,资产名的又下角会显示logo。且在整个资产列表中,支持BMIP002协议的资产排序是靠前的。
最后一点是,我们打开一笔交易的详情,找到一笔交易的地址,我们打开地址详情页面,可以看到属于该地址的资产。如下图:
) M* ]2 [% B7 M9 I: z4 @# k
以上就是BMIP002协议在blockmeta中的具体展示。" K8 c9 G' l: H0 ]
BMIPs:https://github.com/Bytom/bmips
成为第一个吐槽的人