[{"data":1,"prerenderedAt":238},["ShallowReactive",2],{"docs:it:\u002Fdocs\u002Fduel\u002Fcontracts\u002Fsecurity":3},{"id":4,"title":5,"body":6,"cover":229,"description":230,"extension":231,"meta":232,"navigation":233,"path":234,"seo":235,"stem":236,"__hash__":237},"docs\u002Fit\u002Fdocs\u002Fduel\u002Fcontracts\u002Fsecurity.md","Sicurezza",{"type":7,"value":8,"toc":219},"minimark",[9,13,18,35,39,102,122,126,152,156,182,185,199,203,213],[10,11,5],"h1",{"id":12},"sicurezza",[14,15,17],"h2",{"id":16},"cosa-ha-valore","Cosa ha valore",[19,20,21,29],"ul",{},[22,23,24,28],"li",{},[25,26,27],"strong",{},"L'ETH e i token dei pool",", in posizioni che nessuno può ritirare. L'ETH di una fazione esce dal suo pool solo quando quella fazione vi viene venduta: da un trader, o dal riallineamento dell'hook dopo che un'operazione ha allontanato i tre prezzi.",[22,30,31,34],{},[25,32,33],{},"I piatti, le commissioni del creatore e quelle del protocollo",", detenuti dall'hook come crediti in ETH nel PoolManager di Uniswap V4, contabilizzati separatamente per ogni duello.",[14,36,38],{"id":37},"cosa-lo-protegge","Cosa lo protegge",[19,40,41,47,57,68,74,80,86,96],{},[22,42,43,46],{},[25,44,45],{},"Liquidità bloccata."," Solo la factory può aprire pool registrati o aggiungere la loro liquidità di lancio; prelievi e donazioni fanno revert.",[22,48,49,52,53,56],{},[25,50,51],{},"Destinatari limitati."," Un piatto compra solo il vincitore del proprio duello; le commissioni del creatore vanno solo al creatore del duello: il wallet che l'ha lanciato o un indirizzo a cui ha ceduto il ruolo e che l'ha accettato. Le commissioni del protocollo vanno alla ",[25,54,55],{},"tesoreria attuale",", che il proprietario della factory può cambiare dopo 48 ore, anche per le commissioni del protocollo già accumulate.",[22,58,59,62,63,67],{},[25,60,61],{},"Poteri limitati della factory."," I token non hanno proprietario né funzione di mint, e l'hook non può essere aggiornato né sospeso. Il proprietario della factory può sospendere i nuovi lanci, proporre termini limitati per i duelli futuri o cambiare la tesoreria dopo il periodo di attesa. Può anche abbassare subito la quota del protocollo sulla commissione di swap di tutti i duelli, fino a zero, o rialzarla, mai oltre i termini del duello: ciò che il protocollo non prende va ai piatti. Il proprietario può rinunciare al ruolo per sempre (",[64,65,66],"code",{},"renounceOwnership","): i termini, la tesoreria, l'aliquota del protocollo e una sospensione restano allora come sono, tranne una modifica già proposta, che chiunque può ancora applicare dopo il periodo di attesa.",[22,69,70,73],{},[25,71,72],{},"Regolazione prima dello swap."," Il primo swap dopo una chiusura regola la media conclusa prima di fare trading. Il tetto di un riacquisto è circa il 10% sopra un riferimento conservato con precisione a frazioni di tick: una media esponenziale a 30 minuti dei tick del pool ETH, limitata al tick corrente quando lo supera, così da seguire subito il prezzo verso il basso.",[22,75,76,79],{},[25,77,78],{},"Round solo in ETH."," La ripartizione e la media del round usano i due pool ETH. Un passaggio A\u002FB che non sposta nessun prezzo in ETH non cambia né il segnale né l'attività di un round altrimenti tranquillo.",[22,81,82,85],{},[25,83,84],{},"Commissioni solo su esecuzioni complete."," Gli swap addebitati in anticipo fanno revert se non possono completare l'importo richiesto. Il gas di rete è a parte.",[22,87,88,91,92,95],{},[25,89,90],{},"Riallineamento isolato."," Si tengono solo i cicli profittevoli, limitati dall'ETH disponibile nel pool in cui il token viene venduto. Un tentativo fallito viene annullato e saltato; per mancanza di gas è lo swap a fare revert (",[64,93,94],{},"ArbitrageStarved","), così chi chiama non può saltarlo trattenendo gas. Questo non garantisce che i prezzi coincidano né protegge da tutte le perdite di trading.",[22,97,98,101],{},[25,99,100],{},"Stesse regole su ogni rotta."," L'hook preleva commissioni, tasse e burn sia che il router sia quello di Duel sia che sia un altro router V4.",[103,104,105,106,109,110,113,114,117,118,121],"p",{},"La factory parte con i lanci in pausa. Finché ",[64,107,108],{},"paused()"," è true, solo ",[64,111,112],{},"owner()"," può lanciare un duello; le chiamate degli altri vengono annullate con ",[64,115,116],{},"CreationPaused",". Il proprietario apre i lanci con ",[64,119,120],{},"setPaused(false)",". I duelli esistenti continuano a essere scambiati.",[14,123,125],{"id":124},"cosa-mostra-il-sito","Cosa mostra il sito",[19,127,128,134,140,146],{},[22,129,130,133],{},[25,131,132],{},"Immagini solo dal sito."," Le pagine mostrano le immagini di un duello solo dall'indirizzo di Duel stesso, e solo immagini elaborate dal sito: un JPEG, PNG o WebP letto prima dalla sua intestazione (al massimo 1536 × 1536 pixel e 5 MB), decodificato in WebAssembly, adattato entro 1024 pixel e ricodificato come WebP, senza i suoi metadati. La politica di sicurezza delle pagine non permette loro di caricare immagini da nessun altro posto.",[22,135,136,139],{},[25,137,138],{},"Codec isolati."," Le immagini vengono decodificate in un Worker dedicato, raggiungibile solo dal sito e che non conserva nulla: nessuna chiave, nessuno storage. Un difetto in un codec raggiungerebbe solo l'immagine che legge. Il sito controlla ciò che risponde quel Worker (un WebP statico della dimensione attesa) prima di conservarlo, e i decoder in C ripartono da zero per ogni immagine.",[22,141,142,145],{},[25,143,144],{},"Duelli lanciati dal contratto."," I loro dati possono indicare qualsiasi indirizzo. Il sito non mostra immagini https; scarica un'immagine IPFS una sola volta, da un gateway pubblico (al massimo 5 MB e 10 secondi), la elabora come un caricamento e mostra la propria copia, oppure le iniziali della fazione.",[22,147,148,151],{},[25,149,150],{},"Caricamenti con limiti."," Il sito accetta immagini solo dalle proprie pagine: dieci al minuto da uno stesso indirizzo e un numero limitato al giorno. Un'immagine che nessun duello usa viene rimossa dopo un giorno.",[14,153,155],{"id":154},"come-è-stato-verificato","Come è stato verificato",[19,157,158,164,170,176],{},[22,159,160,163],{},[25,161,162],{},"Test automatici"," coprono il comportamento dei contratti, l'app web e il bot degli avvisi. La copertura è una metrica dei test, non la prova che ogni comportamento possibile sia sicuro.",[22,165,166,169],{},[25,167,168],{},"Test su fork"," verificano l'integrazione con i contratti Uniswap V4 distribuiti su Robinhood Chain, compresi l'Universal Router, Permit2 e il V4 Quoter.",[22,171,172,175],{},[25,173,174],{},"Test di regressione"," conservano i casi emersi durante la revisione interna, tra cui la contabilità delle commissioni, i casi limite del lancio, la regolazione e i pool esauriti.",[22,177,178,181],{},[25,179,180],{},"Test di invarianti"," controllano la contabilità su sequenze casuali di operazioni, regolazioni e riscossioni: i crediti in ETH devono corrispondere agli importi dovuti, e nessun token intermedio deve restare nell'hook, nella factory o nel router. Superare le esecuzioni configurate non dimostra la sicurezza per ogni sequenza possibile.",[103,183,184],{},"La revisione interna ha trovato e corretto una rotta a output esatto che aggirava la tassa anti-snipe, una ripartizione che non seguiva una fazione comprata da sola, pool esauriti letti male dal prezzo di riferimento del riacquisto e link non sicuri nei metadati di un duello.",[186,187,190],"callout",{"title":188,"type":189},"Non ancora sottoposti a un audit esterno","warning",[103,191,192,193,198],{},"I contratti hanno avuto una revisione interna, non un audit esterno. Non possono essere aggiornati: un bug trovato più tardi non potrebbe essere corretto nei duelli attivi. Leggi ",[194,195,197],"a",{"href":196},"\u002Fdocs\u002Fduel\u002Frisks","Rischi",".",[14,200,202],{"id":201},"segnalare-una-vulnerabilità","Segnalare una vulnerabilità",[103,204,205,206,212],{},"Se pensi di aver trovato una vulnerabilità, grazie per il tempo che dedichi a segnalarla. Scrivici in privato su Telegram, a ",[194,207,211],{"href":208,"rel":209},"https:\u002F\u002Ft.me\u002Fchatwithdivine",[210],"nofollow","@chatwithdivine",", con quello che hai trovato e, se puoi, come riprodurlo, e lasciaci il tempo di verificarlo prima di condividere qualsiasi cosa pubblicamente. Risponderemo rapidamente e ti terremo aggiornato.",[103,214,215,216,198],{},"Non scriviamo mai per primi: fidati solo di ",[194,217,211],{"href":208,"rel":218},[210],{"title":220,"searchDepth":221,"depth":222,"links":223},"",2,3,[224,225,226,227,228],{"id":16,"depth":221,"text":17},{"id":37,"depth":221,"text":38},{"id":124,"depth":221,"text":125},{"id":154,"depth":221,"text":155},{"id":201,"depth":221,"text":202},null,"Come Duel protegge i fondi dei pool, i piatti e le commissioni: liquidità bloccata, poteri limitati della factory, regole di regolazione, test automatici e una revisione interna.","md",{},true,"\u002Fit\u002Fdocs\u002Fduel\u002Fcontracts\u002Fsecurity",{"title":5,"description":230},"it\u002Fdocs\u002Fduel\u002Fcontracts\u002Fsecurity","GMLVoUauMCdiyW-jMo6T7pYXhVPCrn8sZx4ZdTYplOo",1791231662079]