Transfer Contractは、調停(コーディネート)の入口です。さまざまな形式のpayloadを受け取ります。Moonlight形式もあり、Phoenix形式もあります。コントラクトは、あなたがどこから来たかは気にしません。payloadにどんなフィールドが入っているかだけを見て、対応する検証ロジックへ振り分けます。Moonlightの検証は公開アカウントの状態を直接読み、Phoenixの検証はZK proofを実行します。両方の検証が通ったら、結果を同じグローバル状態ツリーに書き込みます。私が長いこと考えてようやく分かった決定的なポイントは、2つの状態ツリーを1本に統合してしまえば、公開アカウントからプライバシーnoteへ1回送金するのは、本質的にはpayloadの変換にすぎない、ということです。ブリッジも不要で、複雑な同期プロトコルも不要。状態更新はアトミックで、全部成功するか、全部ロールバックされます。
第一天就卡壳。./dusk-node跑起来,ZK证明生成到87%必崩,终端吐一句"witness construction failed",内存从4G顶到12G,风扇跟楼下夜宵摊抽油烟机似的。重装五次程序、重下三次快照,都没用。最后翻GitHub示例,一行注释小得差点漏过去:"key expects BigInt, string will break witness construction."改完传参方式,重启,8秒证明生成。