当初买笔记本是图方便能带着到处用,觉得一台搞定所有事。用了一段时间才发现办公还行,但跑复杂程序的时候风扇转得要飞起来速度也跟不上。

后来还是配了台式,专门处理重型任务。一台机器做所有事,听起来效率高,实际上每件事都将就。


$NIGHT 所在的@MidnightNetwork 在ZK技术的选择上做了一个反向的决定。


现在大多数ZK项目追求的是通用ZK电路一套证明系统能处理任意类型的计算,开发者想证明什么就证明什么,灵活度最高。

听起来像笔记本电脑一台搞定所有事。Midnight选的是Kachina协议,走的是特定类型ZK电路的路线,不追求通用,只针对隐私智能合约这个特定场景做优化。


白皮书里把这个技术基础描述得很清楚:@MidnightNetwork 的ZK架构基于Kachina研究,使用Pluto-Eris曲线生成BLS类型的证明,整个系统针对私有智能合约的执行场景专门设计,而不是试图覆盖所有可能的计算类型。


这个选择在性能上有直接体现。通用ZK电路的问题是证明生成成本极高,因为系统需要支持任意计算,电路复杂度随着灵活性增加而爆炸式增长。

Kachina针对特定场景,电路结构可以预先优化证明生成速度更快,验证成本也跟着下来了。

对于一个需要在每笔交易里都跑ZK证明的网络来说,这个性能差距是真实的运营成本差距,不是纸面上的参数对比。


还有一个我觉得被低估的优势

安全审计难度通用ZK系统要审计的攻击面极大,因为支持的计算类型太多,每一种都可能引入新的漏洞。Kachina的特定场景设计让审计边界清晰,审计方知道这套系统被设计用来做什么,不需要穷举所有可能的计算路径。

Compact语言基于TypeScript但它不是一个通用编程语言的ZK扩展,而是专门为私有智能合约场景设计的领域特定语言。

开发者用Compact写合约,Compact编译器把合约翻译成Kachina电路需要的密码学材料。

这个编译层把底层电路的复杂度完全隐藏掉,开发者不需要知道Kachina是什么,只需要用TypeScript的思维写逻辑。


但专用工具的代价是灵活性受限。Kachina针对隐私智能合约优化,意味着如果有开发者想在Midnight上做一些超出这个设计范围的事情系统可能无法支持,或者需要额外的工程工作来适配。

#night 通用ZK系统在这方面灵活得多,开发者几乎可以证明任何可计算的命题。Midnight选择了性能和安全,放弃了部分通用性这个取舍不是没有代价的。


还有一个问题我一直在想:随着ZK技术快速演进今天的Kachina是否会在两三年后被更高效的证明系统超越?

白皮书里提到了SNARK可升级性说系统设计考虑了未来替换证明系统的可能

但具体怎么升级 成本多高、对现有合约的兼容性影响如何,这些细节目前没有公开说明。

ZK技术现在迭代速度极快,今天的最优选择不一定是三年后的最优选择,这个风险对所有押注特定证明系统的项目都存在。


我那台笔记本现在专门用来出门办公台式留在家里跑重型任务。两台机器各司其职反而比当初想用一台搞定所有事效率更高。

Midnight选Kachina——做好一件事比将就着做所有事更有价值。但专用工具的边界在哪里,遇到边界之外的需求怎么办,这个问题会随着Midnight生态扩张慢慢浮出来。

去看主网上线之后开发者社区第一批碰壁的案例是什么,那才是Kachina设计边界的真实检验。