Dagx的钱包类型分为两种:
在之前的文章中,我们提到,Dagx的地址分为三种:
因此,Dagx的钱包与地址可以总结为下面这张图: 其中:设备具有唯一的设备地址;普通地址包括单签名地址和多签名地址,单设备钱包生成单签名地址,多设备钱包生成多签名地址;多个普通地址可以共同构成共享地址。 单签名地址单设备钱包由单一设备生成,假设设备地址为 DEVICE_ADDRESS,单设备钱包中单签名地址定义的模板为: > ["sig", {pubkey: '$pubkey@DEVICE_ADDRESS'}] > ["sig", {pubkey: '$pubkey@DEVICE_ADDRESS'}]具体在生成地址时,$pubkey@DEVICE_ADDRESS会替换成相应的公钥。具体在生成地址时,$pubkey@DEVICE_ADDRESS会替换成相应的公钥。 多签名地址多设备钱包由多个设备共同控制。假设3个设备的地址分别为DEVICE_A_ADDRESS、DEVICE_B_ADDRESS以及DEVICE_C_ADDRESS。我们需要生成一个2-3的多设备钱包,即3个设备中至少需要2个设备签名才可以生效,则相应的多设备钱包中多签名地址定义的模板为: > ["r of set", { required: 2, set: [ ["sig", {pubkey: '$pubkey@DEVICE_A_ADDRESS'}], ["sig", {pubkey: '$pubkey@DEVICE_B_ADDRESS'}], ["sig", {pubkey: '$pubkey@DEVICE_C_ADDRESS'}], ] }]}]在创建多设备钱包时,设备之间会通过加密消息相互交换xPubKey。这样,不同的设备可以依据相同的地址路径生成相同的地址。 共享地址 上述地址定义中共涉及到两个地址TTD2AVY4W2VH62NJXIP7R67XBHWZRQRJ及4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ,它是这两个地址的共享地址。 通过上述地址定义,可以得到该共享地址为 WDCIIWRDHSNNE2DQZ7YVU53USELZBLGV。其中,地址的签名路径包括: { r.0.1.0.0: "TTD2AVY4W2VH62NJXIP7R67XBHWZRQRJ", r.0.1.1.0: "4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ" r.0.1.2.0: "4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ" r.1.0: "4JZOKE43GALLZA4P63NXT7NYAJLSMNYZ"}只有满足合约中相应的条件,且具有相应路径的签名,才可以对共享地址中的资产进行操作。 转自巴比特论坛 地址http://8btc.com/thread-262629-1-1.html |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |