BMIP002协议介绍
飞儿506
发表于 2023-1-1 11:46:38
384
0
0
概述8 L! l& v& R; |: ?7 Z2 G! r
比原链技术社区最近提出了一套资产规范提议,该提议允许在issue类型的交易中实现标准资产token。该标准定义资产在链上的基本功能,以及发行人通过智能合约管理资产的规范。& ^1 t+ y+ J9 F! b, e" T( G3 f
功能
资产是一种可以在区块链上发行的价值,给定资产的的所有单位都是可替代的。
每个资产都有全球唯一的资产ID,该资产ID来自发行程序和资产定义,发行程序通常定义一组可能的签名秘钥和阀值数量的签名,这些签名必需被提供以授权发布资产的新单元。8 i; r3 I; m+ u c" j3 l
资产定义由提交给区块链的任意键值数据组成,提供所有参与者查看。
该标准为用户提供了一种发行资产的简单方法。它允许任何满足Bytom标准的token很容易被其他应用程序支持:比如钱包,区块链浏览器,到交易所。
一个例子是商家可以在很短的时间内在他们的商业应用中列出token。
规则* a; A3 ?$ F3 D9 o% _! d
资产定义
以下规范使用标准均JSON模式的语法
语法+ i7 |: O; t Q: \$ R- `
介绍
/ g" ~' |% i1 b& x+ ?' t% [& b
name
定义的资产token名字* D& R( L9 T8 D; _4 t
! d3 h3 L9 R; n5 R
' Q4 Z4 B' u( c# K5 K0 v6 E3 C
symbol
定义的资产
6 \% P! {* y- ^# E
decimals1 I% E. q% Q3 ^6 l
定义token使用的小数位数. O, {7 L+ c+ }9 B+ C
: c* p/ x* ~+ L- D, b+ M+ s) C
quorum8 E0 g! r8 l# ^7 D' x2 O1 O* P
定义必须交易签名以发出此token单位的可能签名密钥的阈值数。
4 v: E" G4 ^, i2 G' _& p
reissue4 B7 {" p( [1 w2 W) a# O
定义标志是否可以多次发布资产9 U1 e p) x/ a% x+ ~
description
包括由任意键值数据组成的资产描述5 ^& u0 F0 v: m
% t4 e& p. e; N9 V; I* x- G
Issuance Program
创建资产时,Bytom会自动创建具有智能合约的发行程序。发行人可以根据需要多次发布任意数量的单位。自定义发行计划可能会对何时,以及由谁发布新单位强制执行进一步的限制。
3 j: S' G4 S$ J4 G# h" r
提示: 以下代码片段未在Equity0.1.1(或更高版本)中编写。我们建议没有限制的发行资产程序和至少2个签名秘钥
}' E' O; v& B8 r: P
contract IssueAsset(publicKey1: PublicKey,) x& g; @* }9 }- ?0 }
publicKey2: PublicKey,
publicKey3: PublicKey) locks valueAmount of valueAsset 2 f# F; X' W8 S' K1 _" D& \: l
{
clause spend(sig1: Signature, sig2: Signature) {, [+ X5 F: C3 G! M
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])
unlock valueAmount of valueAsset
}% r" B; ]( _0 q: U$ `
}& B2 r! V# B! r- ~& E9 x4 d0 m1 M- A8 n
Issuance Program will be inactive after certain block height by adding the limitHeight parameter.
contract IssueAssetWithLimit(publicKey1: PublicKey,6 u8 ^: M% Q( N" E$ S# ^- i; M4 ^& j
publicKey2: PublicKey,/ U1 M% J4 s+ b3 ^2 P- p1 S
publicKey3: PublicKey,3 g* w( _0 [$ ?7 [* b
limitHeight: Integer) locks valueAmount of valueAsset
{
clause spend(sig1: Signature, sig2: Signature, limitHeight: Integer) {. D) O2 P# S: y( `! f, V
verify below(limitHeight) v: H/ ~+ S! _- d
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])+ W, Q5 A4 p6 C J- \) ^3 [- p
unlock valueAmount of valueAsset( h+ N- K7 N# n" N* X
}
}1 M! V8 \; Q( B
比原BMIP002协议在blockmeta中的展示
通过上面对BMIP002协议的介绍,我们知道BMIP002协议本质是对发行在比原链上的资产的一个规范,那接下来我们介绍一下这套规范在blockmeta中的具体展示。
blockmeta官网:https://blockmeta.com/
在blockmeta中主要展示在3个地方,第一点:我们打开我们发行的资产详情页面,如图中圈起来的标识,如果满足BMIP002协议的资产,会显示YES。下图中的资产不支持BMIP002协议,所以显示NO。
0 I( X% y) M! E m
第二点,打开资产列表页面,如果发行的资产支持BMIP002协议,资产名的又下角会显示logo。且在整个资产列表中,支持BMIP002协议的资产排序是靠前的。 j% R9 ~+ R; y5 e: W; Z
最后一点是,我们打开一笔交易的详情,找到一笔交易的地址,我们打开地址详情页面,可以看到属于该地址的资产。如下图:" t7 a' w1 x2 I: M' [ |
% u3 T' L2 x, R
以上就是BMIP002协议在blockmeta中的具体展示。
BMIPs:https://github.com/Bytom/bmips
成为第一个吐槽的人