余额树
。 余额树
是Merkle Tree。 我们将其叶子称为“保险库”。 每个保险库都包含一个starkKey
-一个唯一的密钥,用于标识处于链下状态的用户。 该密钥通过StarkEx智能合约耦合到用户的以太坊地址。 保险库中的其他元素是依据业务逻辑来定义的。ordersTree(订单树)
。 这是另一棵MerkleTree,其目的是防止操作员在系统中重播交易。 为了防止这种攻击,StarkEx会执行以下操作:i
个叶子包括带有哈希 i
的限价订单的已完成量。 例如,如果Alice签名了一个总金额为1000 USDC和哈希值为0xdeadbeef
的转移请求,那么StarkEx将在orderTree
的叶索引0xdeadbeef
中存储1000 USDC(量化后)。余额树
和订单树
的根,它们是对链下状态的承诺。当合约收到新的证明,即存在有效的交易序列,当该有效交易序列被执行后,状态会随之被更新。也就是说由当前状态(即Merkle根的当前元组)移动到新状态(即Merkle根的新元组)。