在天秤座,参与者传递信息或数据结构,这些信息或数据结构通常需要由一个验证器签名,并由一个或多个验证者进行验证。此上下文中的序列化是指将消息转换为字节数组的过程。许多序列化方法支持松散的标准,因此两个实现可以产生两个不同的字节流,它们表示相同的消息。虽然对于许多应用程序来说,不确定的序列化不会引起任何问题,但对于出于加密目的使用序列化的应用程序来说,则是这样做的。例如,给定签名和消息,验证器可能无法生成由验证器构造的相同的序列化字节数组,当验证者对消息签名时,将产生不可验证的消息。换句话说,要确保使用非确定性序列化时的消息可验证性,参与者必须保留原始序列化字节,否则就可能失去验证消息的能力。这造成了一种负担,要求参与者同时维护序列化字节的副本和反序列化消息,这通常会导致对安全性和正确性的混淆。虽然存在少数现有的确定性序列化格式,但没有明显的选择。为了解决这个问题,我们提出了天秤座规范序列化,它定义了一种将消息转换为字节的确定性方法。
那是天秤座计划是怎么说的。什么是真正的确定性序列化?如果serde不是确定性的,那么它如何在序列化数据结构之后反序列化?
发布于 2020-09-23 02:53:32
HashSet和HashMap可以根据插入、更新和删除的确切顺序将项插入到不同的插槽中。这些数据结构的序列化器按时隙顺序操作,发出(键、值)对的序列。由于时隙顺序是不确定的,所以序列化的字节将是不确定的。
https://stackoverflow.com/questions/64019828
复制相似问题