Blockchain sebagai struktur data

Halo, Habr!



Hari ini kami ingin menguraikan topik baru untuk diskusi, memeriksa secara singkat blockchain dari sudut pandang ilmu komputer - sebagai salah satu struktur data. Akhir-akhir ini, blockchain semakin banyak digunakan di luar segmen cryptocurrency , dan tren ini tentunya patut mendapat perhatian. Mari kita bicarakan tentang itu!



Teknologi blockchain dapat dijelaskan dengan berbagai cara. Sampai saat ini, blockchain dilihat terutama dalam hal cryptocurrency. Bitcoin adalah asosiasi blockchain pertama yang dimiliki banyak dari kita. Tetapi menyimpan transaksi cryptocurrency hanyalah salah satu dari banyak kasus penggunaan untuk blockchain. Pada artikel ini, kami akan mundur dari sudut pandang ini dan mempertimbangkan blockchain dalam konteks ilmu komputer yang lebih umum.



Blockchain adalah struktur data



Struktur data adalah cara menyimpan, mengatur, dan mengelola data. Struktur data memungkinkan Anda untuk mengakses data ini, menambahkannya, memodifikasi dan mencari data yang terdapat dalam struktur ini. Struktur data yang paling umum dan dasar mencakup array dan daftar tertaut .



Himpunan



Array berisi sejumlah elemen yang disebutkan. Ini bisa berupa angka, huruf, kata, atau bahkan seluruh file. Berkat indeksnya, Anda bisa merujuk ke setiap elemen dalam array. Jadi, jika Anda ingin mengubah entri dalam larik dan Anda tahu di mana tempatnya, Anda dapat langsung mengaksesnya .







Array satu dimensi dengan enam elemen



Daftar Tertaut



Node adalah item data yang termasuk dalam daftar tertaut. Node berisi setidaknya satu objek data dan penunjuk ke item berikutnya. Fungsi pointer adalah untuk memberi tahu komputer di mana item berikutnya dalam daftar yang diberikan.



Jika Anda melihat item pertama dalam daftar dan ingin merujuk ke item kedua, lihat penunjuk yang akan membawa Anda ke node berikutnya. Lebih mudah menambahkan data ke daftar tertaut daripada ke array, karena perlu diperluas oleh satu node, dan menambahkan data ke array akan menambah jumlah elemen dalam array ini. Namun saat bekerja dengan daftar tertaut, Anda tidak memiliki akses instan ke data.



Jika Anda mencari item data tertentu dalam daftar tertaut, pertama-tama Anda melihat node pertama dalam daftar ini, kepalanya... Jika ini bukan elemen yang Anda cari, maka Anda mengikuti penunjuk yang membawa Anda ke simpul berikutnya. Jika node ini tidak berisi data yang Anda cari, maka Anda terus mengikuti link dari node ke node sampai Anda menemukan data yang Anda butuhkan.







Daftar tertaut tiga node



Blockchain



Dalam konteks struktur data, blockchain paling mirip dengan daftar tertaut. Selain itu, di dalam blockchain, data dibagi menjadi wadah yang disebut blok . Blok sangat mirip dengan node daftar tertaut. Setiap blok berisi tautan yang merupakan hash dari blok sebelumnya. Ini bertindak sebagai tautan ke blok sebelumnya dan membantu menjaga ketertiban dalam rantai blok.







Perbedaan utama antara blockchain dan daftar tertaut adalah bahwa setiap tautan di blockchain aman secara kriptografis. Anda mungkin pernah mendengar istilah "hanya menambahkan" yang diterapkan ke blockchain. Artinya, Anda dapat menambahkan data baru ke blockchain hanya dengan menyelesaikan rantai dari depan. Validitas tautan yang dilindungi terus diperiksa. Jika dimungkinkan untuk memasukkan blok berbahaya ke tengah-tengah blockchain, misalnya, antara blok 1 dan 3 pada diagram di bawah ini, maka dimungkinkan untuk menempatkan tautan ke blok 1 sebelumnya, tetapi tidak ke blok 3 berikutnya.







Setiap blok baru dibangun di atas yang sudah ada, dan prosedur ini biasanya disebut konfirmasi. Semakin tua bloknya, semakin banyak konfirmasi yang dimilikinya. Setiap konfirmasi membuatnya sulit untuk mengutak-atik data di blok tersebut. Pada diagram berikut, Blok 2 memiliki satu konfirmasi. Untuk memalsukan data di blok 2, Anda harus membuat ulang satu blok valid yang berisi tautan baru yang valid. Setelah setiap konfirmasi berikutnya, Anda harus membuat ulang blok lain. Jadi, semakin tua blok tersebut, semakin tinggi keyakinan bahwa tidak ada perubahan yang akan dilakukan pada blok ini.



Referensi antar blok tidak hanya bergantung pada urutan blok, tetapi juga pada data apa yang terkandung di setiap blok. Tidak mungkin menambah atau menghapus data dari blok di blockchain. Di properti inilah kepercayaan didasarkan bahwa tidak ada yang akan terjadi pada data yang ditempatkan di blockchain. Secara alami, semua palsu terlihat jelas dalam struktur data blockchain. Setiap perubahan yang dibuat pada data memutuskan tautan ke semua blok berikutnya.



Meskipun tidak mungkin untuk menghapus atau mengubah data di blockchain, mudah untuk menambahkan data ke blok baru yang terhubung ke rantai. Misalnya, transaksi baru dapat ditambahkan ke blockchain cryptocurrency. Transaksi mudah diverifikasi karena semua transaksi sebelumnya yang tercatat di jaringan tidak dapat diubah. Jika sejumlah X diperlukan dari alamat Y, saldo alamat ini harus memiliki jumlah setidaknya X.



Cryptocurrency hanyalah aplikasi tertentu dari teknologi blockchain. Blockchain dengan cepat menjadi pilihan yang semakin layak untuk manajemen rantai pasokan, manajemen armada, dan tujuan lainnya.



Kesimpulan



Blockchain adalah metode penyimpanan data yang dapat diterapkan dalam ilmu komputer. Elemen-elemen dari blockchain - bloknya - secara kriptografis terhubung satu sama lain. Tidak mungkin mengubah data setelah ditulis ke blok. Ini adalah nilai dari blockchain. Ini adalah registri yang tidak dapat diubah tempat Anda dapat menyimpan data dengan aman saat beroperasi di lingkungan yang tidak tepercaya.



Saya ingin mengakhiri artikel ini dengan tweet yang berisi intisari dari properti teknologi blockchain dan mengilustrasikan tempatnya di antara struktur data lainnya.



, , .



, , . , – — @NickSzabo4



All Articles