快照
- 快照是一种减小缠结数据库空间的方法,通过去除缠结中的所有交易,仅仅保留具有余额的地址。余额为零的地址也都全部去除掉。
- 快照就是一个简单的具有非零余额的地址列表,可以从这里找到这个列表:https://github.com/iotaledger/iri/blob/dev/src/main/resources/Snapshot.txt ; 这些地址就类似于创世地址。
- 一旦快照成功执行,你有可能需要申明提取你的IOTA代币。
- 声明提取,意味着你需要把你快照前就的缠结数据库中的币转移到新的缠结账本中来。如果你忘记申明提取,有可能你就不能获取到你的代币。
- 之前关于快照时需要声明提取币的公告和声明提取程序:https://blog.iota.org/upgrades-updates-d12145e381eb , https://iotasupport.com/claimingyouriota.shtml
- 只有当IOTA协议发生重大设计改变的时候,才需要进行申明提取。需要注意的是,IOTA仍然处于开发之中,所以在快照后进行申明提取币仍然有可能发生。
- 目前是由IOTA基金会宣布什么时候进行快照。现在IOTA社区同意由IOTA基金会来执行快照,但是今后,每个节点可以自主进行局部自动快照。
确定性钱包
- IOTA钱包是一种确定性的钱包,这意味着一个新的地址是通过种子以及地址索序数组合计算得到的,其中地址索引序数可以是任意正整数。
- 钱包地址索引序数从0开始,然后从所连接的全节点获取包含该地址的交易列表。
- 如果一个地址没有涉及任何交易,那么这就是一个没有使用过的地址。这样钱包就不会继续增加地址索引,并显示更多的余额。
- 如果找到一个地址对应的交易,那么钱包会继续增加地址索引序数并创建得到新的地址,同时钱包会继续寻找新地址上的交易。
- 钱包会忽略那些已经添加到缠结的地址所对应的地址索引。
添加地址到缠结
- 添加地址到缠结中的时候会创建: 一个指向该地址的零值交易;选择并验证缠结中的两笔交易;同时进行PoW。
- 在钱包中,一个添加到缠结的地址会显示在历史页面中,这笔交易的转账金额为0.
- 没有必要手动添加地址到缠结中,IOTA可以向没有附加到缠结的地址成功转账。
- 但是,建议您在使用地址之前,总是把这个地址添加到缠结中去。
- 通过添加地址到缠结中去,你可以使得钱包知道今后不会重复使用该地址。
- 重复使用一个地址,特别是对于输出的交易,将会导致巨大的安全隐患。
绝不要重复使用已经有转出交易记录的地址
- 在IOTA中,当你从同一个地址多次转出代币的时候,交易安全性极大降低。
- 这是因为IOTA使用了 Winternitz一次性签名,这就会使得一个地址在每次在向外发送交易之后,地址的安全性发生指数下降。
- 一旦你用一个特定地址作为输入向外发送了交易,那么你绝不要再次使用这个地址,因为这个特定地址的私钥已经有一部分暴露了。
- 从同一个地址向外发送越多的交易,那么攻击者就越容易对这个私钥进行暴力破解,并偷取地址中的余额。
- 攻击者可以使用Tangle 浏览器查看是否有地址发生了重用,然年后对这些重复使用的地址进行破解偷取资金。
- 只要你的地址没有向外发送交易的记录,那么你可以重复使用该地址作为接收地址。
- 在快照之后,一个特别的安全问题就是,当钱包忘记了其所有历史的话,人们肯能就重复使用地址。
- 为避免发生这种情况,在快照之前,最好创建你一个新的钱包,把你的资金从就钱包全部转移到新创建的钱包中去。这样做可以确保新钱包除了第一个地址之外,其他地址都没有被使用过。