本文介绍了数论变换(NTT)算法,该算法用于将有限域中的多项式从系数形式转换为点值形式。文章通过使用平方根展开,并结合像保留定理,优化了在单位根上评估多项式的过程,并给出了在四次和八次单位根上评估多项式的示例,展示了NTT算法的计算过程和优化方法。
本文介绍了使用平方根展开方法在单位根上评估多值函数。通过将函数转换为多值函数并在域上进行评估,避免了直接在单位根上进行评估的复杂性。文章详细展示了如何通过嵌套平方根来展开和简化计算,并探讨了不同类型的项(如 和 )的计算复杂性,以及如何优化多项式以减少计算量,最终引出快速数论变换(NTT)算法。
本文介绍了有限域中的单位根的概念以及它们与乘法子群的关系。文章证明了在有限域中,当 k 能整除 p-1 时,k 次单位根的集合与 k 阶乘法子群相同。同时,文章还解释了如何找到本原单位根,并提供了一些例子来展示如何使用基本定理来寻找给定 k 的所有 k 次单位根。
本文深入探讨了多项式乘法的优化方法,首先回顾了传统的多项式乘法,然后研究了多项式的不同表示形式(系数形式和点值形式),接着比较了在这些形式下的多项式算术,最后讨论了如何利用这些形式加速多项式乘法,并引出了数论变换(NTT)算法。文章详细解释了系数形式和点值形式之间的转换,并分析了优化转换过程以实现更快多项式乘法的策略。
本文介绍了Solana程序如何通过指令自省(instruction introspection)读取同一交易中其他指令的内容。
本文详细介绍了如何在 Solana Anchor 程序中验证链下 Ed25519 签名。通过使用 Solana 提供的 Ed25519Program 原生程序和指令内省技术,实现了一个空投场景的签名验证流程,包括构建带有 Ed25519 验证指令和空投申领指令的交易,并在链上程序中验证签名的有效性,以授权代币申领。
Ed25519Program
本文介绍了如何使用 Anchor 框架创建一个具有计息功能的 Token-2022 mint,通过 PDA 进行权限控制,并实现利率更新。文章详细阐述了创建、初始化、铸造以及更新利率的完整生命周期,并使用 LiteSVM 模拟时间推移,验证计息的准确性,最后提供了一个构建简易质押奖励程序的自学练习。
本文深入探讨了 Solana Token-2022 中 interest-bearing 扩展的工作原理,该扩展允许 Token mint 自动累积利息,而无需链上余额更新。文章详细解释了利息计算模型,包括连续复利公式如何在链下计算利息,以及如何在钱包和应用程序中正确显示和处理这些余额。
本文深入探讨了 Solana 的 Token-2022 标准,它是 SPL Token 程序的一个向后兼容的新版本,支持通过扩展实现额外的功能。
本文介绍了如何使用 LiteSVM 在 Solana 上测试依赖于时间的程序,以 Dutch auction 为例,展示了如何创建拍卖程序,并使用 LiteSVM 模拟时间流逝,验证价格随时间线性下降的逻辑。LiteSVM 允许开发者在本地测试环境中控制区块链时钟,加速测试过程。