Commit 718cf777 authored by 谢昇's avatar 谢昇

Update cli独立模块命令.md

parent 83debd76
**版本:V6.2.0** **版本:V6.2.0**
...@@ -10,29 +10,12 @@ Available Commands: ...@@ -10,29 +10,12 @@ Available Commands:
unlock Create hashlock unlock transaction unlock Create hashlock unlock transaction
``` ```
## 合约功能概述
私钥是花费数字加密货币的唯一手段, 一旦出现丢失的情况,个人财产将无法找回。
目前,主流数字货币本地钱包均实现通过SEED找回私钥的功能,但应用场景局限,仍然存在很大改进空间。
钱包/私钥找回功能为Chain33项目提供一种技术支持,通过实现多权限等级私钥,在保证安全的前提下,为数字加密货币的花费、找回增加灵活性。
## 合约方法描述
钱包/私钥找回功能的实现并不是真正通过某种方式找回丢失的私钥,而是为默认私钥**备份**一个或一组私钥,当默认私钥丢失时,可以通过备份私钥花费之前备份的余额。
要使用备份私钥找回余额,必须之前用默认私钥做过备份,在备份时,账户余额打入相应的retrieve合约地址。
当用户需要用备份私钥花费余额时,先进行prepare操作,这一步操作是为了防止备份私钥被盗的情形。经过此操作,账户余额与合约余额均不改变,只是通知网络,有一笔用私钥签名的操作发生,在一定的周期延时后,此备份私钥可以通过perform操作,将合约地址余额打入到自己合约地址,并后续进行取钱操作。
如果在这个阶段中,默认私钥执行了cancel操作,说明此次取回无效,即使到达限定周期,备份私钥也无法取钱。
整个功能的状态机如下图所示,在backup和prepare状态,余额存在默认私钥对应的合约账户中,只有在成功执行perform操作时,余额才转移到备份私钥对应的合约账户,并可以进行下一步的取回到账户的操作。
默认私钥和备份私钥不是一对一的关系,一个默认私钥可以设置多个备份私钥,这些私钥在进行prepare操作以后,能够执行perform的延迟周期不同。
另外,多个默认私钥可以使用同一个备份私钥地址,这是通过内部关联实现的,当一组备份关系建立时,为这两个私钥建立关联,一旦最终进入performed或canceled状态,关联取消。
![状态机](https://gitlab.33.cn/flyaway53/test/raw/master/img-folder/14.png)
## 合约操作流程 ## 合约操作流程
Hashlock正常流程,完整过程: Hashlock正常流程,完整过程:
- 1. 需要准备两个账户A和B,其中A是returnAddr,用于在锁定时间结束后,可以返回余额,B是toAddr,在锁定时间内,能够进行操作转移金额 1. 需要准备两个账户A和B,其中A是returnAddr,用于在锁定时间结束后,可以返回余额,B是toAddr,在锁定时间内,能够进行操作转移金额
我这里A:14KEKbYtKKQm4wMthSK9J4La4nAiidGozt B:1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx 我这里A:14KEKbYtKKQm4wMthSK9J4La4nAiidGozt B:1KoVEeACNMyr42uEnfKR7SJTi5wE8nGWqx
2. hashlock要求在lock动作时,合约里存在余额,这些余额在lock后会被frozen 2. hashlock要求在lock动作时,合约里存在余额,这些余额在lock后会被frozen
...@@ -125,6 +108,23 @@ cli send unfreeze terminate --id mavl-unfreeze-f9cf7a1f2482ad1137bdc5af49bd1c2b ...@@ -125,6 +108,23 @@ cli send unfreeze terminate --id mavl-unfreeze-f9cf7a1f2482ad1137bdc5af49bd1c2b
## para 跨链合约 ## para 跨链合约
## retrieve 钱包找回合约 ## retrieve 钱包找回合约
## 合约功能概述
私钥是花费数字加密货币的唯一手段, 一旦出现丢失的情况,个人财产将无法找回。
目前,主流数字货币本地钱包均实现通过SEED找回私钥的功能,但应用场景局限,仍然存在很大改进空间。
钱包/私钥找回功能为Chain33项目提供一种技术支持,通过实现多权限等级私钥,在保证安全的前提下,为数字加密货币的花费、找回增加灵活性。
## 合约方法描述
钱包/私钥找回功能的实现并不是真正通过某种方式找回丢失的私钥,而是为默认私钥**备份**一个或一组私钥,当默认私钥丢失时,可以通过备份私钥花费之前备份的余额。
要使用备份私钥找回余额,必须之前用默认私钥做过备份,在备份时,账户余额打入相应的retrieve合约地址。
当用户需要用备份私钥花费余额时,先进行prepare操作,这一步操作是为了防止备份私钥被盗的情形。经过此操作,账户余额与合约余额均不改变,只是通知网络,有一笔用私钥签名的操作发生,在一定的周期延时后,此备份私钥可以通过perform操作,将合约地址余额打入到自己合约地址,并后续进行取钱操作。
如果在这个阶段中,默认私钥执行了cancel操作,说明此次取回无效,即使到达限定周期,备份私钥也无法取钱。
整个功能的状态机如下图所示,在backup和prepare状态,余额存在默认私钥对应的合约账户中,只有在成功执行perform操作时,余额才转移到备份私钥对应的合约账户,并可以进行下一步的取回到账户的操作。
默认私钥和备份私钥不是一对一的关系,一个默认私钥可以设置多个备份私钥,这些私钥在进行prepare操作以后,能够执行perform的延迟周期不同。
另外,多个默认私钥可以使用同一个备份私钥地址,这是通过内部关联实现的,当一组备份关系建立时,为这两个私钥建立关联,一旦最终进入performed或canceled状态,关联取消。
![状态机](https://gitlab.33.cn/flyaway53/test/raw/master/img-folder/14.png)
``` ```
Retrieve正常流程,完整过程: Retrieve正常流程,完整过程:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment