Beveiliging en transparantie
Je geld staat in een contract dat je kunt lezen
Als je bij Bernuvia koopt, bewaart Bernuvia je USDC niet: het staat in een openbaar contract op Polygon tot de aankoop is afgerond. Hier vind je de adressen, wat het contract garandeert, de audit die het heeft doorlopen, en die het nog niet heeft gehad, en hoe je ons waarschuwt als je een lek vindt.
De contracten
Alles draait op het hoofdnet van Polygon (chain id 137). Elk adres linkt naar de explorer: daar kun je de code en elke transactie lezen.
Escrow-contract · MarketplaceEscrow
Code geverifieerdOntvangt de betaling van de koper en houdt die vast tot ze wordt vrijgegeven aan de verkoper of terugbetaald. Het is de enige plek waar het geld van een aankoop staat.
Broncode geverifieerd op Polygonscan (exacte overeenkomst). Solidity 0.8.24, optimizer op 200 runs, gebouwd op OpenZeppelin: AccessControl, ReentrancyGuard, Pausable, SafeERC20 en EIP-712.
Adres 0x33C6eFD7523821c2AB51d874e440Ac8A0C97f409
Incasso van het lidmaatschap · SubscriptionCollector
Code geverifieerdIncasseert het verkoperslidmaatschap in USDC met limieten die on-chain vastliggen: de verkoper stelt een maximumprijs en een periode in, en de operator kan alleen tot dat maximum incasseren, één keer per periode en altijd naar de treasury. De treasury wijzigen duurt 48 uur.
Broncode geverifieerd op Polygonscan (exacte overeenkomst, MIT-licentie). Hij staat in dezelfde repository als het escrow-contract, met dezelfde compiler en dezelfde OpenZeppelin-basis.
Adres 0x3860f37D6066AF02811b24FE66D0bd00F693AD21
USDC · Circle
Contract van derdenDe munt van elke aankoop: de native USDC van Circle op Polygon. Het is geen contract van Bernuvia.
Adres 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
Wat het escrow-contract garandeert
Deze regels worden niet afgedwongen door een server van Bernuvia: ze staan in het contract, en iedereen kan ze nakijken in de geverifieerde code.
Het geld gaat nooit via Bernuvia
De USDC gaat van de wallet van de koper rechtstreeks het contract in. Bernuvia bewaart het op geen enkel moment.
Maar twee uitgangen
Het geld van een aankoop kan alleen worden vrijgegeven aan de verkoper of terugbetaald aan de koper. Een derde weg is er niet.
Ieder haalt het zijne op
Betalingen worden bijgeschreven en elke partij haalt ze op wanneer ze wil. Een geblokkeerd adres kan de uitbetalingen van anderen niet vastzetten.
Het geschil vóór de vrijgave
Een geschil kan alleen worden geopend voordat de automatische vrijgave verloopt, dus niemand kan een al afgeronde aankoop heropenen.
Een geschil blijft niet hangen
Blijft een geschil 30 dagen onopgelost, dan kan iedereen het sluiten en betaalt het contract de koper volledig terug.
De commissie is on-chain gemaximeerd
De maximale commissie wordt in het contract beheerd, en elke offerte moet onder dat plafond blijven.
Begrensde termijnen
Het venster voor automatische vrijgave is in het contract beperkt tot tussen 1 uur en 365 dagen; koper en verkoper kunnen nooit hetzelfde adres zijn.
Ondertekende offertes voor eenmalig gebruik
Elke prijs wordt ondertekend met EIP-712 en werkt maar één keer. De review vond geen manier om de hoofdsom te stelen of een handtekening te hergebruiken.
Audit
Het escrow-contract heeft een interne adversariële audit doorlopen voordat het naar het hoofdnet ging. Dit is precies wat er is gedaan en wat er is gevonden.
Methode
- Drie onafhankelijke adversariële reviews, elk met een eigen invalshoek: fondsen en reentrancy; toegangscontrole en handtekeningen; toestandsmachine en griefing.
- Statische analyse met Slither 0.11.5.
- Een invariant voor het behoud van fondsen, gecontroleerd over 250 willekeurige operaties.
- 18 Hardhat-tests, met een regressietest per bevinding.
Bevindingen
9 bevindingen: 1 kritiek, 1 hoog, 3 middel, 2 laag en 2 informatief. Alle kritieke, hoge en middelhoge zijn verholpen vóór de uitrol op het hoofdnet; de 2 lage zijn operationeel gemitigeerd.
Het contract voor de incasso van het lidmaatschap heeft zijn eigen interne review doorlopen: 15 tests en 7 bevindingen, allemaal verholpen of geaccepteerd met onderbouwing.
Beveiliging van het platform
Off-chain: wat je account en je downloads beschermt.
- Verificatie in twee stappen, plus een extra code voor gevoelige acties: een opname vereist je handtekening en een code die naar je e-mail wordt gestuurd.
- MCP- en API-tokens hebben beperkte rechten: ze kunnen nooit een betaling ondertekenen, geld opnemen of het account wijzigen.
- De treasury is een multisig-wallet.
- Sessies verlopen bij inactiviteit.
- Beveiligingsheaders bij elk antwoord: CSP met een nonce per verzoek, COOP en CORP.
- Elke download draagt zijn SHA-256-controlesom.
Een kwetsbaarheid melden
Vind je een beveiligingslek, dan willen we het vóór iedereen weten. Zo vertel je het ons:
Schrijf ons via het contactformulier
Zet 'Beveiliging' in het onderwerp en vertel wat je hebt gevonden, hoe je het reproduceert en welke impact het heeft.
Heb je een account, gebruik dan de bugmelding in het paneel
De knop 'Een fout melden' in het paneel bereikt hetzelfde team en blijft gekoppeld aan je account.
Geef ons tijd om het op te lossen
We bevestigen de ontvangst en laten weten wanneer het is opgelost. We vragen je het tot dan niet te publiceren.

