1️⃣
$DUSK 的
#creatorpad 任務,只剩三天了,🙏本海豹的 今日衝刺長文 數據長虹🌈🔥。
2️⃣ 【
@Dusk 2026 升級黑科技:ZK更快的祕密(上篇)——MSM從8秒暴降到0.6秒,
#dusk 怎麼幹掉最喫性能的瓶頸?】
⓵ 在零知識證明(ZK)生成過程中,MSM(多標量乘法)是公認的“性能殺手”。簡單說,它就是把一大堆橢圓曲線點和標量相乘再累加:
• 點1 × 標量1
• 點2 × 標量2
• ……
• 點n × 標量n
n往往幾萬到幾十萬,每一步都是橢圓曲線上的標量乘法,涉及海量模運算和加法。以前純CPU串行循環,動輒8-12秒,機構一看就搖頭:太慢,流動性風險太大。
⓶ 2026主網升級,DUSK直接對MSM下狠手:
• Piecrust VM原生MSM指令
以前開發者要在Rust或Solidity裏自己寫循環,現在VM直接提供msm_accelerate(point_array, scalar_array)原生命令,底層調用高度優化的C++/CUDA實現。相當於給虛擬機加了個“MSM渦輪增壓”。
• Pippenger算法改進 + GPU自動卸載
Pippenger是MSM經典分治法:先把點分成小組算小和,再合併。DUSK這次優化了內存訪問順序,減少衝突;同時piecrust-cuda插件讓節點自動檢測GPU,把MSM扔給顯卡跑。
社區實測:RTX 4090單卡MSM階段從CPU的8秒降到0.6秒,提升最高13倍!普通節點也輕鬆2-5倍。
⓷ 代碼視角變化(Solidity調用示例,升級前後對比):
• 升級前(開發者自己實現循環,Gas高、慢):
// 舊版solidity僞代碼,循環實現MSM,Gas爆炸
for (uint i = 0; i < points.length; i++) {
result = add(result, mul(points[i], scalars[i]));
}
• 升級後(調用原生指令,Gas暴降):
// solidity僞代碼
import "dusk/piecrust.sol";
function computeMSM(bytes32[] calldata points, uint256[] calldata scalars) external view returns (bytes32) {
return Piecrust.msm_accelerate(points, scalars); //一行調用,底層GPU加速
}