Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

再论DAGX钱包

945坏男人
329 0 0
Dagx的钱包类型分为两种:1 y, r  F" q' X

( }! z( I+ E+ G. ~" o' X" j0 C单设备钱包:该类型钱包仅由单一设备控制,它与特定设备地址是绑定的,钱包中的地址为单签名地址;
- b: z% R6 ]" ~2 R/ p# a

6 {! M2 M3 W- Z( U1 ]
8 i$ g$ a9 u) l& o+ ]8 I) Z多设备钱包:该类型钱包由多个设备共同控制,它与若干个设备地址绑定,钱包中的地址为多签名地址。
1 E! X; q& k& r: U$ u
5 P( ]/ u. G: F; S
在之前的文章中,我们提到,Dagx的地址分为三种:% W9 J1 G; H" V: c. K7 ?

3 W2 u# D9 j+ @* c. g& H普通地址:地址定义中不包含其它地址,采用BASE32编码,长度为32,比如A2WWHN7755YZVMXCBLMFWRSLKSZJN3FU;
# R* G  N8 l5 T$ s  l
' n& z( X. A! A

6 ?) K6 \; l$ Z, }共享地址:地址定义中包含了其它地址,地址格式与普通地址相同,通常用作智能合约地址;
: }% n6 n; Q" z

% }3 n; n+ m* I4 ^* E: u  U0 z, G# V; @$ i& m, H& J1 e2 I+ U8 Z% `
设备地址:生成方法及地址格式类似普通地址,但在设备地址在头部添加了一个0,长度为33,比如05FV4WNIEU4OHIAIF7XEIRC2QRRLFPAC3。设备地址:生成方法及地址格式类似普通地址,但在设备地址在头部添加了一个0,长度为33,比如05FV4WNIEU4OHIAIF7XEIRC2QRRLFPAC3。9 a) P, V, L/ h2 w
  W2 l; [7 e) p$ t! h6 h$ Z
因此,Dagx的钱包与地址可以总结为下面这张图:
  G! b7 k( X+ h9 p# f/ |2 x$ z
- u# G$ i+ A1 ^  M- J: f其中:设备具有唯一的设备地址;普通地址包括单签名地址和多签名地址,单设备钱包生成单签名地址,多设备钱包生成多签名地址;多个普通地址可以共同构成共享地址。
, C6 m3 J; k! O6 K" g8 c单签名地址
' |, X6 Z" F8 s) j单设备钱包由单一设备生成,假设设备地址为    DEVICE_ADDRESS,单设备钱包中单签名地址定义的模板为:
5 E4 C3 r3 b/ O  > & i( c; A1 n4 o
    ["sig", {pubkey: '$pubkey@DEVICE_ADDRESS'}]' |$ D! v0 i1 Z% L" I* B( s/ z
    > ["sig", {pubkey: '$pubkey@DEVICE_ADDRESS'}]( L0 z3 ~; I% k9 F6 V: L
具体在生成地址时,$pubkey@DEVICE_ADDRESS会替换成相应的公钥。具体在生成地址时,$pubkey@DEVICE_ADDRESS会替换成相应的公钥。
/ o. J: u3 m0 \+ O多签名地址( n! R4 H3 H+ C5 W* Y; s) Z" I" S( a
多设备钱包由多个设备共同控制。假设3个设备的地址分别为DEVICE_A_ADDRESS、DEVICE_B_ADDRESS以及DEVICE_C_ADDRESS。我们需要生成一个2-3的多设备钱包,即3个设备中至少需要2个设备签名才可以生效,则相应的多设备钱包中多签名地址定义的模板为:% k: Y. K2 q/ g; k2 n8 V1 c! o
   > ["r of set", {+ w* ~$ @. b% g: a' m
            required: 2,
" v% t' ]! X2 k. M& F  n% z2 j            set: [
' W2 r5 R2 ?( A3 `, A, y                ["sig", {pubkey: '$pubkey@DEVICE_A_ADDRESS'}],
- x4 B" e( E8 N' O% ?' a                ["sig", {pubkey: '$pubkey@DEVICE_B_ADDRESS'}],
5 I  S! u9 \. P& D                ["sig", {pubkey: '$pubkey@DEVICE_C_ADDRESS'}],
. z7 x$ C) V6 H& ?  a% E7 D. |4 M. `1 d            ]: o4 P, j8 j, Z
        }]}]
" d" s- J8 E0 p* r0 b9 Y在创建多设备钱包时,设备之间会通过加密消息相互交换xPubKey。这样,不同的设备可以依据相同的地址路径生成相同的地址。
- M4 i) y: \4 M共享地址  {: `0 M, Q* I4 r
共享地址本质上可以认为是智能合约的地址,例如    flight delay insurance的地址定义(或者智能合约)示例为:
: ^, k9 B( s1 h/ ]2 b["or",[" p( y8 B( O$ H* s
    ["and",[; H  N  ?4 ]& v3 q; `* |0 M
       ["seen",{"what":"output","address":"this address","asset":"base","amount":22664}],. ?/ P9 U$ z8 Y/ @/ x
       ["or",[- w# u2 S" H( Z  B2 N$ U
           ["and",[" L- {0 H" Y2 a' l
               ["address","TTD2AVY4W2VH62NJXIP7R67XBHWZRQRJ"],- P  E' x* E% Y9 Z& W3 C) Q
               ["in data feed",[["GFK3RDAPQLLNCMQEVGGD2KCPZTLSG3HN"],"MU5152-2018-06-18",">","60",2810590]]]],
' ~( S6 V$ K' _/ T8 K           ["and",[/ q2 L( ~5 ?" y! C$ j5 H
               ["address","4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ"],; P) w3 E1 I+ K
               ["in data feed",[["I2ADHGP4HL6J37NQAD73J7E5SKFIXJOT"],"timestamp",">",1529442000000]]]],
/ h  K1 B2 K' o           ["and",[
! k3 e( ?! ^3 D" p6 M               ["address","4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ"],
- I2 ?* B# X/ V$ l0 d# v               ["in data feed",[["GFK3RDAPQLLNCMQEVGGD2KCPZTLSG3HN"],"MU5152-2018-06-18","",1529034037936]]]]]
1 M2 l( J* g& M9 c3 c上述地址定义中共涉及到两个地址TTD2AVY4W2VH62NJXIP7R67XBHWZRQRJ及4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ,它是这两个地址的共享地址。  Y' {6 u9 W; M( g6 |3 G- G
通过上述地址定义,可以得到该共享地址为        WDCIIWRDHSNNE2DQZ7YVU53USELZBLGV。其中,地址的签名路径包括:  Y% m! \( O: u9 m
{6 W9 ]  {) Y% b4 w
    r.0.1.0.0: "TTD2AVY4W2VH62NJXIP7R67XBHWZRQRJ",4 @* o) d# ~: i; u) t
    r.0.1.1.0: "4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ"
' W" g$ T: u- ]  f2 r    r.0.1.2.0: "4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ"% }: i! U8 m: I4 K
    r.1.0: "4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ"; U- r# s4 j  C+ `3 |
}
3 }$ `1 L) |2 R& M. S5 T只有满足合约中相应的条件,且具有相应路径的签名,才可以对共享地址中的资产进行操作。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

945坏男人 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    10