BernuviaBernuvia

Keamanan dan transparansi

Uangmu ada di kontrak yang bisa kamu baca

Saat kamu membeli di Bernuvia, Bernuvia tidak menyimpan USDC-mu: uang itu berada di kontrak publik di Polygon sampai pembelian selesai. Di sini ada alamatnya, apa yang dijamin kontrak, audit yang sudah dilalui, dan yang belum, serta cara memberi tahu kami kalau kamu menemukan celah.

Kontraknya

Semuanya berjalan di jaringan utama Polygon (chain id 137). Setiap alamat tertaut ke explorer: di sana kamu bisa membaca kodenya dan setiap transaksi.

Kontrak escrow · MarketplaceEscrow

Kode terverifikasi

Menerima pembayaran pembeli dan menahannya sampai dilepas ke penjual atau dikembalikan. Ini satu-satunya tempat uang sebuah pembelian berada.

Kode sumber terverifikasi di Polygonscan (kecocokan persis). Solidity 0.8.24, optimizer 200 run, dibangun di atas OpenZeppelin: AccessControl, ReentrancyGuard, Pausable, SafeERC20, dan EIP-712.

Alamat 0x33C6eFD7523821c2AB51d874e440Ac8A0C97f409

Lihat di Polygonscan

Penagihan keanggotaan · SubscriptionCollector

Kode terverifikasi

Menagih keanggotaan penjual dalam USDC dengan batas yang ditetapkan on-chain: penjual menetapkan harga maksimum dan periode, dan operator hanya bisa menagih sampai maksimum itu, sekali per periode, dan selalu ke treasury. Mengubah treasury butuh 48 jam.

Kode sumber terverifikasi di Polygonscan (kecocokan persis, lisensi MIT). Kodenya ada di repositori yang sama dengan kontrak escrow, dengan compiler dan basis OpenZeppelin yang sama.

Alamat 0x3860f37D6066AF02811b24FE66D0bd00F693AD21

Lihat di Polygonscan

USDC · Circle

Kontrak pihak ketiga

Mata uang semua pembelian: USDC native dari Circle di Polygon. Ini bukan kontrak milik Bernuvia.

Alamat 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359

Lihat di Polygonscan

Apa yang dijamin kontrak escrow

Aturan-aturan ini tidak dijalankan oleh server Bernuvia: semuanya tertulis di kontrak, dan siapa pun bisa memeriksanya di kode yang terverifikasi.

Uang tidak pernah lewat Bernuvia

USDC berpindah dari wallet pembeli langsung ke kontrak. Bernuvia tidak pernah menyimpannya.

Hanya dua jalan keluar

Uang sebuah pembelian hanya bisa dilepas ke penjual atau dikembalikan ke pembeli. Tidak ada jalan ketiga.

Masing-masing menarik miliknya

Pembayaran dikreditkan dan tiap pihak menariknya kapan pun mau. Alamat yang diblokir tidak bisa menghambat pencairan pihak lain.

Sengketa sebelum pelepasan

Sengketa hanya bisa dibuka sebelum pelepasan otomatis kedaluwarsa, jadi tidak ada yang bisa membuka kembali pembelian yang sudah selesai.

Sengketa tidak menggantung

Kalau sengketa 30 hari tanpa penyelesaian, siapa pun bisa menutupnya dan kontrak mengembalikan seluruhnya ke pembeli.

Komisi dibatasi on-chain

Batas maksimum komisi diatur di kontrak, dan setiap penawaran harga harus berada di bawah batas itu.

Tenggat yang dibatasi

Jendela pelepasan otomatis dibatasi di kontrak antara 1 jam dan 365 hari; pembeli dan penjual tidak pernah boleh alamat yang sama.

Penawaran ditandatangani dan sekali pakai

Setiap harga ditandatangani dengan EIP-712 dan hanya berlaku sekali. Dalam peninjauan tidak ditemukan cara untuk mencuri pokok dana maupun memakai ulang tanda tangan.

Audit

Kontrak escrow melewati audit internal adversarial sebelum rilis ke jaringan utama. Inilah persisnya apa yang dilakukan dan apa yang ditemukan.

Metode

  • Tiga tinjauan adversarial independen, masing-masing dengan sudut pandangnya: dana dan reentrancy; kontrol akses dan tanda tangan; mesin status dan griefing.
  • Analisis statis dengan Slither 0.11.5.
  • Invarian kekekalan dana yang diuji pada 250 operasi acak.
  • 18 pengujian Hardhat, dengan satu uji regresi untuk setiap temuan.

Temuan

9 temuan: 1 kritis, 1 tinggi, 3 sedang, 2 rendah, dan 2 informatif. Semua yang kritis, tinggi, dan sedang diperbaiki sebelum deploy ke jaringan utama; 2 yang rendah dimitigasi secara operasional.

Kontrak penagihan keanggotaan melewati tinjauan internalnya sendiri: 15 pengujian dan 7 temuan, semuanya diperbaiki atau diterima dengan alasan tertulis.

Keamanan platform

Di luar chain, yang melindungi akun dan unduhanmu.

  • Verifikasi dua langkah, plus kode tambahan untuk tindakan sensitif: penarikan memerlukan tanda tanganmu dan kode yang dikirim ke emailmu.
  • Token MCP dan API membawa izin terbatas: tidak pernah bisa menandatangani pembayaran, menarik dana, atau mengubah akun.
  • Treasury adalah wallet multisig.
  • Sesi kedaluwarsa setelah tidak aktif.
  • Header keamanan di setiap respons: CSP dengan nonce per permintaan, COOP, dan CORP.
  • Setiap unduhan membawa checksum SHA-256-nya.

Melaporkan kerentanan

Kalau kamu menemukan celah keamanan, kami ingin tahu lebih dulu dari siapa pun. Begini caranya:

Tulis kepada kami lewat formulir kontak

Tulis «Keamanan» di subjek dan ceritakan apa yang kamu temukan, cara mereproduksinya, dan apa dampaknya.

Kalau punya akun, pakai laporan bug di panel

Tombol «Laporkan masalah» di panel sampai ke tim yang sama dan tetap terkait dengan akunmu.

Beri kami waktu untuk memperbaikinya

Kami mengonfirmasi penerimaan dan memberi tahu kapan sudah diperbaiki. Kami minta jangan dipublikasikan sampai saat itu.