SHA256 è ovunque nel crypto, ma all'interno dei circuiti zk diventa uno dei maggiori colli di bottiglia.
La maggior parte delle implementazioni paga un costo enorme perché SHA256 non è mai stato progettato per essere amichevole con i circuiti.
Nel nostro ultimo articolo di @0xrosetteeee, esploriamo come rendere SHA256 significativamente più economico in R1CS.
Idee chiave:
• Codifica basata su spread per operazioni bitwise
• Ottimizzazione dinamica della larghezza dei bit
• Addizioni multi-operando a vincolo singolo
• Batch LogUp e micro-ottimizzazioni
Questo design raggiunge una compressione SHA256 all'avanguardia in R1CS tra le implementazioni open-source esistenti.
Questo è particolarmente importante per gli ambienti di prova mobile, dove la dimensione del testimone influisce direttamente sull'uso della memoria.
Approfondimento completo ↓
Abbiamo aggiunto WebGPU al provatore WASM di Jolt.
Risultato: prova 2 volte più veloce. Stessa prova.
Le prove vengono eseguite sulla tua GPU tramite WebGPU. Mac + Chromium supportati al momento.
Questi sono i numeri iniziali che stiamo vedendo. 2x è da dove partiamo. I numeri variano a seconda del chip.
M4: 2 volte più veloce M4 Pro: 2,75 volte più veloce
C'è una lunga lista di ottimizzazioni che non abbiamo ancora toccato (SIMD è una di queste) che potrebbero portare questo a 3x e oltre senza troppi sforzi.
Sotto il cofano: Jolt utilizza uno schema di impegno polinomiale basato su curve ellittiche, Dory. Le operazioni MSM e di accoppiamento sono i migliori candidati per l'accelerazione GPU. Abbiamo integrato WebGPU nell'implementazione WASM di Jolt per scaricare quelle operazioni sulla GPU. Il provatore WASM di Jolt è stato annunciato a ETHDenver solo due settimane fa. Abbiamo già l'accelerazione GPU in esecuzione su di esso tramite WebGPU:
Questo riguardava l'integrazione di WebGPU end to end nel provatore WASM di Jolt e la sua spedizione. Questi sono i primi numeri reali. Anche se, c'è ancora molto margine di miglioramento. Continueremo a pubblicare numeri man mano che ottimizziamo ulteriormente.
Provalo, rompi, dicci cosa vedi →