本文对 Rust 中 Anchor 智能合约的账户大小计算进行了比较,分析了使用 _std::mem::sizeof 与 Anchor 官方空间参考之间的异同。尽管 _std::mem::sizeof 在大多数情况下准确,但在处理某些数据类型,如 Vec 和 Enum 时可能导致不一致的结果,因此建议开发人员根据 Anchor 文档手动计算账户大小。
递归长度前缀(RLP)是一种核心序列化协议,用于在以太坊中编码和解析数据。本文详细探讨了RLP的工作原理,包括编码和解码规则,以及其在以太坊功能中的重要性。通过示例和流程图,解释了RLP如何将不同类型的数据序列化,确保跨客户端的一致性和高效性。
本文深入探讨了简单序列化(SSZ)在以太坊信标链中的应用,以及其与RLP序列化的比较。SSZ旨在提高以太坊共识层的效率、安全性和可扩展性,详细介绍了SSZ的基本类型、向量、列表、位向量、容器等序列化和反序列化过程,并提供了相关示例代码和图示,以帮助读者更好地理解SSZ的操作及其在以太坊中的重要性。
文章详细介绍了BLS12-381椭圆曲线的参数化和实例化过程,包括如何计算其基础域模数和子群,以及构造效率的双线性配对函数的步骤。尤其关注了适合zk-SNARK使用的结构和性能要求,提供了具体的生成器和序列化形式的实现细节。
比特币开发系列 - 字节和哈希
比特币开发系列 - 1 序列化
比特币开发系列 - 2 序列化