Dompet Kontrak Cerdas yang Aman, Modular, dan Dapat Diupgrade memungkinkan adopsi Web3 secara massal
________ ________ ________ ________
| __ | __ | __ \ _____
| / | | | ___/ / |
__ __ _ _ / / /
| \ | / /_/__
_ ______ _ _ _ _ _ _ \ _ \ ________
| _______ | | __ | | __ | | __ | | __ | _______ |
Modularitas adalah salah satu prinsip utama dalam rekayasa perangkat lunak. Arsitektur dan kode modular memungkinkan penggunaan kembali yang tinggi, kemudahan pemeliharaan & pengujian, saling ketergantungan yang lebih rendah antar komponen, dan yang paling penting memberikan tujuan dan fungsionalitas langsung yang mengurangi bug kode dan masalah keamanan.
Barz juga menganggap Modularitas sebagai prinsip utama di keseluruhan arsitektur dan pada tingkat kode.
Untuk modularitas, kami menerapkan standar EIP-2535 Diamond, Multi-Facet Proxy dan menyediakan setiap rangkaian fitur dalam satu faset yang melekat pada Diamond(Barz). Modul-modul ini meliputi:
Masing-masing modul tersebut dapat dipasang dan dilepas oleh pemiliknya kapan pun diinginkan.
Barz melepaskan penyimpanan setiap modul melalui FacetStorage
, dan modul Barz hanya akan mengakses FacetStorage
yang dibutuhkan modul. Hal ini mengurangi kemungkinan mengakses penyimpanan yang tidak diperlukan dan modifikasi penyimpanan yang tidak diinginkan dari modul, terutama selama peningkatan implementasi. Dengan arsitektur pelepasan penyimpanan yang digunakan setiap modul, Barz membantu mencegah setiap modul mengalami tabrakan penyimpanan sehingga mengurangi potensi kerentanan dalam pola proksi.
Arsitektur Barz juga memberikan manfaat pada peningkatan. Meskipun pola proksi konvensional memerlukan peningkatan seluruh implementasi logika untuk meningkatkan sebagian darinya, Barz hanya memerlukan modul yang relevan untuk diganti, yang memperkenalkan Peningkatan Modular ke Akun.
Arsitektur modular membantu memecah kode menjadi modul-modul yang lebih kecil, yang berkontribusi pada isolasi dan pembatasan fungsionalitas setiap modul. Hal ini membantu mengurangi permukaan serangan dan membatasi potensi kerusakan yang disebabkan oleh pelanggaran keamanan dalam sebuah modul. Hal ini dimaksimalkan bersama dengan arsitektur Barz yang hanya mengakses penyimpanan yang dibutuhkan modul.
Tidak seperti arsitektur yang dapat diupgrade lainnya yang memerlukan upgrade seluruh kontrak logika atau seluruh modul yang berisi rangkaian fitur, arsitektur Barz mendukung kemampuan upgrade modular untuk setiap fungsi, memungkinkan modularitas dan kemampuan upgrade maksimum dalam kontrak dompet.
Sebagai bentuk dari hal ini, kontrak akun kami "Barz" mendukung skema banyak tanda tangan. Pengguna akan dapat mengubah skema tanda tangan dengan sangat lancar dengan pemanggilan fungsi pada kontrak akun. Hal ini memungkinkan pengguna untuk memiliki beberapa pilihan UX dompet, misalnya:
Pengguna menginginkan interaksi yang lancar, dan tidak ada cadangan privateKey. Mereka dapat menggunakan ECDSA pada skema tanda tangan Secp256r1 dan menggunakan kunci sandi ("WebAuthn") untuk melindungi kunci pribadi mereka dengan aman di pengelola kata sandi (misalnya, gantungan kunci iCloud).
Pengguna yang ingin menggunakan gaya dompet konvensional atau dompet perangkat keras mungkin ingin menggunakan skema tanda tangan ECDSA("Secp256k1") untuk verifikasi tanda tangan.
Saat ini, kami mendukung 2 skema tanda tangan (ECDSA pada Secp256k1 & Secp256r1 Curve), namun, kami akan terus memperluas dukungan kami untuk beberapa skema tanda tangan yang berbeda termasuk BLS & PQC, dll.
Hal ini dimungkinkan oleh arsitektur modular yang memiliki faset tanda tangan yang dilampirkan dan dilepaskan ke faset akun sesuai dengan preferensi pengguna mengenai UX yang dapat disediakan oleh setiap skema tanda tangan.
Selama pembaruan skema tanda tangan, fungsi pembaruan harus memeriksa hal berikut:
yarn
yarn compile
yarn test
yarn size
forge test