$ 150 Juta Dikunci Di Rangkaian Ethereum - Bagaimana Melindungi Diri Anda

Kompleksiti Adakah Musuh Keselamatan

Parity adalah pelaksanaan Ethereum yang ditulis dalam Rust, yang dipelopori oleh penggabungan Ethereum yang sangat berbakat, Gavin Wood. Pelaksanaan ini menyediakan GUI yang mudah digunakan untuk membuat dompet multi-sig. Kontrak multi-sig yang mendasari fungsi ini didapati mempunyai kelemahan pada 19 Julai, 2017 yang mengakibatkan kehilangan $ 30 juta. Pada 7 November, 2017 kerentanan kedua dijumpai dalam kontrak dompet yang mengakibatkan penguncian sebanyak $ 150 juta di Ether. Walaupun Ethereum tidak menawarkan penyelesaian mudah untuk dompet keselamatan yang tinggi, terdapat beberapa langkah yang boleh anda ambil untuk mencegah mangsa menjadi serangan sedemikian.

Laporan pepijat yang difailkan oleh

Dalam persekitaran perisian pengeluaran tradisional, kami dapat menggunakan kod ke antara muka umum seperti laman web. Sekiranya kod tersebut tidak berfungsi dengan fungsi yang kami harap, apa yang berlaku? Mungkin tidak ada pemberitahuan, mungkin beberapa orang mengadu, pada penghujung hari kita dapat mengemas kini kod dan gangguan kecil diselesaikan. Di dunia Ethereum, sebaiknya kita meletakkan sekeping kod itu di sana selamanya, untuk semua orang dapat melihat dan bermain dengannya. Dalam dunia yang ideal, hanya anda yang mempunyai akses kepada kod ini, di dunia blockchain semua orang mempunyai akses kepadanya. Ini bermakna jika sekeping kod dikerahkan ke rangkaian Ethereum, kebanyakannya tidak dapat mengemas kini.

Perbualan Dengan

Jika kita meletakkan $ 1 juta dalam Ether ke dalam kontrak pintar dan kontrak pintar didapati mengandungi kelemahan, beberapa perkara mungkin berlaku. Ia mungkin tidak disedari, ia mungkin disedari oleh penggodam yang memutuskan mengeksploitinya, atau ia akan ditemui oleh pemilik kontrak dan mereka akan dapat mendapatkan semula dana. Dalam kes ini ia dieksploitasi oleh individu yang mendakwa "menyelidik" hack Pariti sebelumnya.

Jadi bagaimana kita boleh melindungi diri kita?

Prinsip KISS - Biarkan ia mudah bodoh

Kontrak yang paling pintar memperkenalkan kelemahan dengan cuba mengambil kira kes sudut dan pengoptimuman. Kelemahan pariti pertama adalah disebabkan oleh percubaan untuk mengoptimumkan jumlah gas yang digunakan semasa pelaksanaan. Kerentanan Pariti semasa adalah disebabkan oleh kemasukan fungsi perpustakaan yang baru dan tidak teruji. Kontrak pintar terurus akan mengandungi jumlah minimum fungsi yang diperlukan untuk menyelesaikan tugas. Memperkenalkan kod untuk mengoptimumkan penyelesaian pra-matang meningkatkan kerumitan kontrak, dengan itu mengurangkan keselamatan.

Ujian Unit

Dalam pembangunan perisian yang sama serta pembangunan kontrak pintar, ia boleh menjadi mudah untuk mengabaikan ujian unit yang mencukupi. Apabila kod tidak boleh dibatalkan apabila ia mencapai pengeluaran, tahap ketekunan yang lebih tinggi diperlukan. Sebagai peraturan, kontrak pintar anda harus mengandungi ujian unit yang mencukupi untuk mengesahkan fungsi kontrak pintar anda serta kes sudut.

Audit Kontrak Pintar

Sebarang kontrak pintar yang dihantar ke pengeluaran harus menjalani audit keselamatan. Seorang juruaudit keselamatan kontrak pintar yang baik akan mempunyai pengalaman membina kontrak pintar dunia nyata, banyak projek di GitHub, dan akan berkongsi senarai semak kerentanan umum yang mereka cari. Memastikan juruaudit boleh terlibat dalam perbualan mengenai pelbagai vektor serangan yang berkaitan dengan kontrak pintar anda. Ini mungkin tidak kelihatan seperti pendekatan formal, namun industri ini masih sangat muda dan ini adalah bagaimana ia beroperasi pada masa ini.

Mengikuti garis panduan ini dapat membantu mengurangkan risiko dan kecemasan yang berkaitan dengan penghantaran kontrak pintar ke Ethereum Mainnet.

Ujian, Audit, Pelaksanaan.