tantangan keamanan dibawa oleh cabang blockchain

Garpu blok rantai dibagi menjadi garpu lembut dan garpu keras. Kertas ini terutama mendiskusikan garpu keras, mode upgrade perangkat lunak yang tidak mendukung kompatibilitas mundur.Bifurkasi keras adalah pembagian atau perubahan konsensus. Konsensus adalah algoritma untuk semua node dalam sistem blockchain untuk mencapai konsistensi data. Biasanya, setiap node perlu menjalankan algoritma dengan aturan yang sama. Contohnya, Bitcoin menjalankan konsensus berdasarkan PoW (Bukti karya). Ethereum juga konsensus PoW, dan baru-baru ini ditukar ke algoritma konsensus PoS melalui "The Merge".

Ada banyak alasan untuk bifurkasi. Ini fenomena yang sangat umum dalam blockchain, biasanya bifurkasi jarak pendek, yang berhubungan dengan algoritma konsensus. Kadang-kadang ada blok yang bersaing di tinggi yang sama, tetapi blok akhir akan ditinggalkan dan hanya satu blok akan disimpan. However, the hard fork is different. This is a planned and purposeful fork. Some node clients have deployed different program versions from the original network. The blocks produced can only be verified on the fork chain and cannot be accepted by the original network, nor can they accept the blocks of the original network. Contohnya, Ethereum PoW (ETHW), yang baru-baru ini populer, dipukul.

Jika tidak mudah membagi blockchain dengan sukses, tidak cukup untuk secara langsung menyalin kode jaringan asli. Modifikasi dasar diperlukan untuk memastikan operasinya aman. Untuk tujuan ini, kami mempersingkatkan beberapa masalah keamanan umum dan metode perlindungan.

lapisan jaringan

Karena rantai cabang adalah rantai blok yang bebas dari jaringan asli, itu perlu diisolasi di lapisan jaringan (P2P) pertama:

1. Seed node

Nod benih, juga dikenal sebagai bootnode atau seed node, adalah node yang pertama kali jaringan akan mencoba untuk menghubungkan ketika blockchain dimulai. Ketika rantai cabang dimulai, pertama-tama menyambung node dalam daftar node benih, sehingga lebih lanjut menemukan node rakan lain di jaringan, dan kemudian lebih lanjut sinkronisasi blok untuk mencapai konsensus. Oleh karena itu, daftar node benih harus diubah untuk mencegah node dari koneksi ke jaringan asli.

2. Serangan asing

Bahkan jika daftar node benih berubah, itu tidak berarti jaringan forked tidak akan terkoneksi ke jaringan asli, karena protokol P2P dari kedua sisi adalah sama. Jika satu node secara tidak sengaja menambahkan koneksi node dari jaringan lain, kedua node akan berjaya berjabat tangan dan menambah yang lain ke pool alamat node. Selain itu, kedua node akan berbagi alamat dalam node mereka sendiri dengan satu sama lain, sehingga menyebabkan polusi reciproc di pool node jaringan bilateral. Dalam isu ini, Slow Fog sebelumnya telah secara terpisah mengungkapkan Konflik Public Chains! Heteromorphic Attack Vulnerability dari Protokol P2P.

Untuk memecahkan masalah polusi antara satu sama lain dari kolam alamat, perlu melakukan identifikasi jaringan pada protokol komunikasi. Early Ethereum tidak mendukung pemisahan jaringan, tetapi versi berikutnya menambahkan NetworkID sebagai simbol perbedaan jaringan dalam protokol. NetworkID biasanya adalah ChainID setiap rantai. Contohnya, NetworkID dan ChainID jaringan utama Ethereum keduanya adalah 1. Namun, versi awal ETHW tidak bifurkasi NetworkID, yang mungkin memiliki kelemahan serangan profil.

Dalam jaringan Bitcoin, nilai ajaib digunakan untuk mengidentifikasi jaringan yang berbeda, yang biasanya didefinisikan dalam aram rantai. Contohnya, nilai jaringan utama Bitcoin adalah F9BEB4D9, dan nilai jaringan ujian adalah FABFB5DA.

Lapisan konsensus

1. Isolasi transaksi

Biasanya, ketika berinteraksi dengan blockchain, kita perlu menandatangani transaksi dengan kunci pribadi kita, dan kemudian transaksi tersebar ke jaringan dan dikemas ke blok oleh tambang atau node keluar. Namun, jika rantai blok berkembang, transaksi mungkin dikemaskan ke blok yang berbeda oleh dua jaringan. Berasumsi bahwa ini adalah transfer pada rantai asli, transfer yang sama akan terjadi pada rantai berkembang. Jelas, ini adalah perilaku yang tidak terduga, yang akan menyebabkan kehilangan aset.

At this time, the transaction needs replay protection. In the early version of Ethereum, this protection was not done. Later, after EIP155, ChainID was added to the transaction structure to ensure that the transaction signed by the user is only used for the current network. Jika Ethereum dipadam, ChainID juga perlu didefinisikan ulang. Tentu saja, tidak hanya sederhana untuk mengubah ChainID dalam konfigurasi. Karena rantai dipadam perlu kompatibel dengan blok lama, ia perlu menggunakan ChainID baru setelah tinggi garpu untuk memastikan operasi normal rantai dipadam.

ChainID tidak ada dalam struktur transaksi Bitcoin, jadi bagaimana caranya menjalankan perlindungan ulang? Bitcoin menggunakan model yang disebut UTXO. Secara singkat, biaya transaksi (UTXO), bukan akun. Secara umum, tidak akan ada dua transaksi yang sama dalam jaringan yang baru dilancarkan, sehingga tidak akan ada skenario replikasi.

Namun, dalam kasus cabang keras, masih akan ada masalah pembatasan transaksi, seperti cabang BCH pada 2017 dan cabang BSV nanti. BCH menambah SIGHASH ke tanda tangan data transaksi_ FORKID (0x40) membuat transaksi pada BCH dan BTC tidak lagi kompatibel satu sama lain, sehingga mencapai tujuan perlindungan ulang.

2. Penyesuaian kekuatan kalkulasi

Sebelum bifurkasi, rantai asli memiliki semua kekuatan komputer seluruh jaringan menurut algoritma konsensus PoW, juga sulit untuk menghitung blok keluar. Setelah cabang, kekuatan komputer didistribusikan ke rantai blok yang berbeda. rantai cabang biasanya tidak dapat mendapatkan kekuatan komputer yang cukup untuk menghasilkan blok baru karena kekurangan konsensus, dan pertumbuhan blok akan stagnasi. Pada saat ini, diperlukan untuk mengurangi kesulitan pengiraan awal setelah bifurkasi dan memenangkan jendela waktu untuk penyesuaian cepat kekuatan pengiraan untuk rantai bifurkasi.

3. Mencegahkan 51% serangan

Jaringan dan transaksi terpisah, rantai blok dipotong, dan blok baru berhasil diproduksi. Semuanya tampak normal. Namun, masalah keamanan masih outstanding, dan masih ada yang lebih umum dan sulit untuk mempertahankan serangan: 51% serangan.

Pertambangan adalah orientasi keuntungan. ketika koin garpu muncul, para tambang dengan pendapatan tambang tinggi akan menukar kekuatan komputer mereka ke jaringan itu. tapi kenyataannya adalah koin garpu sering murah, yang menyebabkan kekuatan komputer secara umum sangat rendah. Taking ETHW bifurcations as an example, we can see from 2miners that the peak computing power of the original ETH network exceeded 900TH/s, while at the time of writing, ETHW's computing power was only about 30TH/s. It is not a good thing that a large number of computing power disappeared. It can launch 51% attacks against ETHW at any time.

Tidak ada cara yang baik untuk mencegah serangan 51% ini Anda hanya dapat mencegahnya dengan meningkatkan jumlah konfirmasi.

lapisan aplikasi

We classify applications built on transactions, such as smart contracts based on virtual machines, into application layers. Ketika garpu blockchain, itu juga akan memiliki dampak besar pada aplikasi yang berjalan di blockchain.

1. Tandatangan ulang

Penulisan tanda tangan adalah sama dengan penulisan transaksi yang disebutkan di atas. Ada beberapa kontrak, seperti Gnosis Safe, yang akan memverifikasi tanda tangan pengguna dalam kontrak. Jika tanda tangan tidak mengandung ChainID, maka tanda tangan mungkin akan dipaparkan kembali pada kedua rantai, menyebabkan kehilangan aset.

2. Kegagalan Oracle

Sebagian besar kontrak pintar dari rantai blok fork masih dapat beroperasi secara biasa, seperti kontrak Token dan kontrak AMM. Sistem berjalan sendiri ini dapat beroperasi stabil tanpa mengandalkan data luar rantai. Namun, sistem pinjaman seperti MakerDAO sangat tergantung pada data harga oracle. Setelah kehilangan dukungan harga luar rantai, mereka tidak dapat terus beroperasi.

3. Price upheaval

Blockchain dipindahkan. Satu aplikasi berjalan pada dua rantai pada waktu yang sama. Yang mana yang harus digunakan pengguna? Yang mana "ortodoks"? Masalah ini kembali ke konsensus. biasanya, yang blockchain memiliki konsensus ortodoks, maka aset di atasnya akan memelihara konsensus nilai asli, sementara aset di blockchain lainnya akan kehilangan nilai dalam seketika.

This drastic change in price will lead to the complete collapse of DeFi application, and the loan application will never be able to close the position. Some people of insight will seize the time window of the bifurcation and exchange the "zeroed" assets into the main chain token through AMM and other applications, thus retaining some value. In the ETHW bifurcation event, we observed a large number of arbitrage behaviors on the bifurcation chain.

ringkasan

Sejauh ini, kita telah menganalisis keamanan garpu blockchain dari lapisan jaringan, lapisan konsensus dan lapisan aplikasi, dan kita dapat melihat bahwa ada risiko teknis. kita harus sangat berhati-hati tentang garpu. Selain itu, di belakang banyak garpu bukan hanya kebutuhan untuk perubahan teknologi, tetapi juga kemungkinan untuk kepentingan komersial langsung. Contohnya, inisiator langsung mendapatkan sejumlah besar koin garpu di garpu, yang membutuhkan pengguna untuk memahami dengan akurat dan menghindari kehilangan yang tidak perlu.

Blockchain adalah sistem yang ditentralisasi. Penuapan tidak bergantung pada satu orang atau organisasi, jadi sulit untuk menghindari bifurkasi dalam blockchain. Meskipun itu membawa kebingungan kepada pengguna komunitas, ia juga mempromosikan sistem untuk berkembang ke depan untuk melayani masyarakat lebih baik.