BMIP002协议介绍
飞儿506
发表于 2023-1-1 11:46:38
279
0
0
概述1 R* w0 N# h" @. r1 Q
比原链技术社区最近提出了一套资产规范提议,该提议允许在issue类型的交易中实现标准资产token。该标准定义资产在链上的基本功能,以及发行人通过智能合约管理资产的规范。
功能- U1 G3 c# D) `3 _
资产是一种可以在区块链上发行的价值,给定资产的的所有单位都是可替代的。) N/ m8 O% c( A2 M7 h( B' F( E
每个资产都有全球唯一的资产ID,该资产ID来自发行程序和资产定义,发行程序通常定义一组可能的签名秘钥和阀值数量的签名,这些签名必需被提供以授权发布资产的新单元。( z. `2 H! E g
资产定义由提交给区块链的任意键值数据组成,提供所有参与者查看。4 O D5 e6 h4 X6 ^; s
该标准为用户提供了一种发行资产的简单方法。它允许任何满足Bytom标准的token很容易被其他应用程序支持:比如钱包,区块链浏览器,到交易所。
一个例子是商家可以在很短的时间内在他们的商业应用中列出token。
规则
资产定义2 X+ a) {! Q) Z9 q& O( M
以下规范使用标准均JSON模式的语法+ t* R. z5 o2 A; n% b0 Z- `: i! |
7 O" _$ H. r6 P( i# e6 v, {) f
语法
介绍
1 L! W% x& {( k- C0 _) P. }
- x, _7 _2 \& U4 g* N* M
4 F/ M2 b, {, m& ]5 w
name7 L/ @* K8 [, r
定义的资产token名字2 A& Q4 v3 U& I2 z0 r9 z4 r
symbol$ D3 V v& y# \9 G: e7 h, P1 X( z" r$ ~
定义的资产5 E, G' Z0 U. }$ ^: {
decimals* j4 }7 Z* o5 K6 x3 x
定义token使用的小数位数
quorum
定义必须交易签名以发出此token单位的可能签名密钥的阈值数。
reissue# ?: |( v l! v! U3 Z
定义标志是否可以多次发布资产
description
包括由任意键值数据组成的资产描述6 R, _% x1 r; N a7 A( Z* P
; T, |7 H2 |1 D( i$ M, I
Issuance Program
创建资产时,Bytom会自动创建具有智能合约的发行程序。发行人可以根据需要多次发布任意数量的单位。自定义发行计划可能会对何时,以及由谁发布新单位强制执行进一步的限制。! k$ \5 b# B5 k8 @. a( M% k* U
/ a2 m4 T: o) ~1 k
提示: 以下代码片段未在Equity0.1.1(或更高版本)中编写。我们建议没有限制的发行资产程序和至少2个签名秘钥
. ^4 B& l0 R# Q! ]2 t1 k1 ]. }3 q
contract IssueAsset(publicKey1: PublicKey,
publicKey2: PublicKey,
publicKey3: PublicKey) locks valueAmount of valueAsset
{
clause spend(sig1: Signature, sig2: Signature) {( _. \+ K7 h3 P: P2 ^/ Z
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])$ O+ i5 v1 s3 S- t6 y8 i) _$ B
unlock valueAmount of valueAsset
}+ W! r& J; R! b P j
}2 e9 B7 A" d. L4 O
Issuance Program will be inactive after certain block height by adding the limitHeight parameter.
contract IssueAssetWithLimit(publicKey1: PublicKey," K* s: O/ T; n( o7 U# _
publicKey2: PublicKey,1 M x# s% A! C% X1 k! ^
publicKey3: PublicKey,
limitHeight: Integer) locks valueAmount of valueAsset C" m, F N+ Y+ U9 v/ ^3 v$ ~
{
clause spend(sig1: Signature, sig2: Signature, limitHeight: Integer) {$ b9 c7 A" C+ e4 {7 i
verify below(limitHeight)
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])5 D% G: c. E% s9 j; @
unlock valueAmount of valueAsset
}4 R: G0 U- z% I8 p' m
}/ Q' R, ]# A- `4 k/ F
比原BMIP002协议在blockmeta中的展示
通过上面对BMIP002协议的介绍,我们知道BMIP002协议本质是对发行在比原链上的资产的一个规范,那接下来我们介绍一下这套规范在blockmeta中的具体展示。4 }. B3 X2 c! s. x$ c
blockmeta官网:https://blockmeta.com/2 m3 j3 F# t {0 N/ P/ N1 L
在blockmeta中主要展示在3个地方,第一点:我们打开我们发行的资产详情页面,如图中圈起来的标识,如果满足BMIP002协议的资产,会显示YES。下图中的资产不支持BMIP002协议,所以显示NO。+ i) S% c7 a/ z q8 `9 V
+ z. q- C4 E: e
第二点,打开资产列表页面,如果发行的资产支持BMIP002协议,资产名的又下角会显示logo。且在整个资产列表中,支持BMIP002协议的资产排序是靠前的。
最后一点是,我们打开一笔交易的详情,找到一笔交易的地址,我们打开地址详情页面,可以看到属于该地址的资产。如下图:
以上就是BMIP002协议在blockmeta中的具体展示。- O- q( n( `. |: v# X+ i
BMIPs:https://github.com/Bytom/bmips
成为第一个吐槽的人