账户CKB余额是否可以全部转出和最小余额


#1

存储账户余额本身需要CKB,那账户上的CKB可以转干净吗,如果可以那就是说一旦转干净,账户的状态就会被删除,那么保留的最少余额是多少呢?


#2

看你需要存的那个状态是多大了吧。

比如你需要存 100 byte 的状态那就要保留 100 CKB。

能转移走的是那些没用来存状态的 CKB。


#3

谈谈我的理解哈 ~

问题一:存储账户余额本身需要CKB?

首先,我们需要理解[存储账户余额本身需要 CKB ]这个概念。CKB 对应着 Cell 的 Capacity,假设用户有 100 CKB,其中 Cell 的必备字段占据 10 CKB(这是每个 Cell 必须存在的状态,这就是你认为的存储账户余额本身需要 CKB ),在这种情况下,Cell 可用 Capacity 为 90 CKB。

但是,这和转账交易是无关的。转账转移的是 Capacity,而非可用 Capacity。
存储账户余额会导致可用 Capacity 的减少,但是转账交易涉及的 Capacity 是不会减少的。

这就来到第二个问题。

问题二:账户上的 CKB 可以转干净么?

假设你所谓的账户余额是指 CKB 的余额,那么这是可以转干净的。譬如你有 100 CKB,既你的 Cell 的 Capacity 是 100 CKB,你可以转账的额度亦为 100 CKB。(这在上面已经解释了)

问题三:一旦转干净,账户的状态就会被删除,那么保留的最少余额是多少?

这也取决于你对于账户状态的定义:什么是账户状态?

首先我们需要理解区块链的账户概念,这和我们理解的中心化服务器的账户状态很不一样。在中心化服务器,您的账户被删除,意味着您的账号、密码被删除,交易信息被删除,一切都没了!

区块链的账户本质是公私钥对,外显是大家可以看到的地址与交易信息。当我们转移了所有的 CKB,你其实还拥有着你的私钥,也就是说你有这个账户的所有权利:包括接受别人给的你 token,使用 Dapp 等。而你历史记录,事实上都会展示在区块链里。换句话说,账户状态并没有被删除。这种情况下你也不需要保留最少余额。

这里有一个意外情况你需要考虑一下。如果你说的账户状态**包括 ERC20 token 等有价值的信息**,那么,如果你把仅剩的 100 CKB 全部转走,你的 ERC20 token 就会消失(这简直是噩梦)。这种情况下,往往钱包软件会提醒你不要转移有重要信息的 CKB。在种情况下,保留的最少余额就取决于你保留的重要信息有多大。如果你的重要信息有100 CKB,最少余额就是100 CKB。


#4

感谢你的回复,非常细节到位!