Blockchain (Bitcoin) sebagai basis data?

16

Saya sedang membaca artikel Berita BBC ini dan kutipan berikut, menarik perhatian saya. Kedengarannya seperti Always On Availability Groups atau High Availability Mirroring, mungkin dengan keamanan disertakan secara otomatis.

Apakah blockchain merupakan solusi basis data yang potensial untuk aplikasi volume transaksi modern dan tinggi?

Sangat mudah untuk melihat nilainya untuk transaksi volume rendah seperti catatan medis pribadi, tetapi bagaimana dengan database volume tinggi?

Apa itu blockchain?

Blockchain mengandalkan kriptografi untuk memungkinkan satu set komputer membuat perubahan ke rekor global tanpa perlu aktor sentral.

Menghapus perantara memotong biaya di hampir setiap sektor.

Blockchain adalah buku besar yang mencatat segala sesuatu yang terjadi pada kumpulan data yang dikenal sebagai "blok" dalam urutan kronologis atau "rantai".

Sebagai mata uang, ini adalah fitur penting karena memungkinkan pengguna untuk memastikan uang digital mereka adalah salah satu dari jenis, cara yang sama setiap catatan di dompet Anda unik.

"Teknologi Blockchain akan menjadi cara kami menciptakan aset karena memungkinkan Anda mentransfer informasi digital tanpa menyalin," kata Adam Ludwin, kepala eksekutif Chain.com, yang membangun jaringan blockchain.

Blockchain dapat digunakan untuk melacak sejarah semua jenis informasi dan mempertahankan nilainya, jadi, misalnya, dokter dapat menggunakannya untuk memperbarui catatan medis.

Karena setiap perubahan pada blockchain dilakukan secara bersamaan di seluruh jaringan, tidak ada informasi yang hilang dan karena perubahan tidak dapat diurungkan, sistem mempertahankan transparansi. Diperlukan kunci khusus untuk membuat perubahan pada setiap blok, sehingga individu dapat menyimpan catatan mereka dengan melindungi kunci itu.

James Jenkins
sumber

Jawaban:

15

Apakah blockchain merupakan solusi basis data yang potensial untuk aplikasi volume transaksi modern dan tinggi ?

Teknologi blockchain pada umumnya memiliki beberapa karakteristik yang membuatnya sulit untuk bekerja dengan volume tinggi.

Lihatlah Bitcoin misalnya. Transaksi rata-rata per hari tidak pernah lebih dari 300 ribu: Transaksi per hari (sumber blockchain.info)

masukkan deskripsi gambar di sini

Yang lebih penting, waktu konfirmasi median untuk transaksi adalah sekitar 8 menit !: Waktu Konfirmasi Transaksi Median (Hanya Dengan Biaya) dan gambar yang bagus dari Quandl :

masukkan deskripsi gambar di sini

Sekarang berapa banyak komputer di seluruh dunia yang bertanggung jawab untuk menjaga basis data bitcoin? Saya bukan ahli bitcoin tapi saya pikir sejarah lengkap transaksi disimpan dalam rantai blok, jadi semua komputer yang berpartisipasi dalam jaringan bitcoin pada dasarnya menyimpan salinan seluruh basis data (bagian transaksi tentu saja, bukan info akun) dan kunci rahasia, ini disimpan di dompet pribadi).

Kami hanya dapat memperkirakan berapa jumlahnya, tetapi saya kira jumlahnya lebih dari satu juta. 300 ribu transaksi dalam sehari dengan sejuta komputer tidak terdengar seperti volume tinggi. Dan 8 menit untuk konfirmasi?

RDBMS modern dalam perangkat keras yang layak dapat dengan mudah mencapai 1 ribu transaksi per detik. Itu sekitar 86 juta transaksi per hari. Waktu konfirmasi? Itu tergantung pada ukuran transaksi (berapa banyak tabel dan baris yang mempengaruhi) tetapi untuk transaksi kecil dari jenis bitcoin (menghapus 42 koin dari akun A dan menambahkan 42 koin ke akun B), itu akan menjadi milidetik.

Kesimpulannya perbedaan volume dan waktu adalah 1000 hingga 100.000 kali lipat saat ini.

Jika teknologi blockchain memecahkan masalah ini di masa mendatang, mungkin saja dapat digunakan dalam aplikasi volume sedang atau tinggi. Kita dapat membaca diskusi dan saran tentang bagaimana masalah tersebut harus diselesaikan - banyak perusahaan yang disebutkan dalam tautan benar-benar menangani masalah ini - tetapi kami belum melihat solusi atau produk kerja aktual yang menawarkan volume dan kecepatan tinggi.

ypercubeᵀᴹ
sumber
Masalah lain yang saya miliki dengan blockchain adalah berdarah tidak konsisten. Semuanya dimuat dan klien yang memproses transaksi tidak 'didedikasikan' sehingga Anda dapat melihat banyak yang keluar atau ditambahkan. 8 menit kedengarannya benar, mungkin 10 menit terakhir adalah satu atau dua menit ekstra untuk persetujuan untuk menjangkau semua klien? Tidak yakin, siapa tahu dengan lebih banyak node mungkin sudah turun! Apa pun tautan yang bagus. Terima kasih.
Ali Razeghi
2
Artikel ini technologyreview.com/s/540921/... mengklaim bahwa ada batas konseptual tujuh transaksi per detik.
a_horse_with_no_name
@a_horse_with_no_name rantai samping dapat dengan mudah skala tanpa batas keras dan tetap disinkronkan ke bitcoin blockchain, yang dapat ditangani secara transparan.
jangorecki
16

Saya sangat akrab dengan cryptocurrency dan database, dan saya dapat memberitahu Anda itu bukan mesin DB yang bagus sama sekali.

Menggunakan blockchain sebagai database langsung:

Anggap saja sebagai bentuk normal pertama tanpa kemampuan penelusuran atau pengindeksan yang benar-benar bagus sejauh blockchain berjalan. Pada dasarnya lembar excel tanpa kemampuan komputasi apa pun yang hanya memberi Anda kemampuan 'baca / tulis' dengan banyak verifikasi dan validasi. Blockchain adalah cara yang bagus untuk memvalidasi data Anda dibersihkan dan benar sebelum Anda memasukkannya ke dalam basis data yang memungkinkan Anda menanyakannya secara berbeda, mengindeksnya, dll.

Manfaat dari blockchain:

Blockchain dalam kasus ini adalah murni buku besar dan API untuk permintaan PUT dan GET. Itu saja. Blockchain menarik karena Anda memerlukan mayoritas node untuk lulus transaksi sebagai valid dan tidak ada rollback, setelah berkomitmen, berkomitmen. Jadi, jika seseorang mencoba melakukan transaksi palsu itu akan ditangkap kecuali orang yang melakukannya memiliki kumpulan yang memiliki saham mayoritas kuat. Kemudian mereka dapat memvalidasinya di kolam mereka sebelum seseorang dapat menolaknya. Itulah poin kuat dari blockchain. Verifikasi bahwa data akurat. Ini juga biasanya sangat lambat. Anda sedang melihat sekitar 10 menit di bawah beban normal untuk mendapatkan validasi. Di bawah beban berat waktu naik cukup sedikit.

Setelah Anda memvalidasi bahwa transaksi itu sah dan tidak curang menggunakan blockchain, Anda kemudian dapat mengimpor data itu ke dalam basis data dan bekerja dengannya sesuka Anda. Saya memiliki beberapa pengalaman dengan ini tetapi perhatikan bahwa setiap transaksi pada arsitektur bitcoin saat ini akan dicatat sehingga memiliki beberapa info menarik untuk dianalisis.

Meminta data dari skema blockchain dalam DBMS:

Berikut adalah diagram bitcoin yang dapat Anda gunakan untuk membuat skema di PostgreSQL. Dengan menggunakan ini Anda dapat memasukkannya ke dalam DBMS relasional: https://bitcointalk.org/index.php?topic=38246 masukkan deskripsi gambar di sini

Repo kode ini juga membantu jika Anda ingin mengimpor data ke RDBMS nyata: https://github.com/bitcoin-abe/bitcoin-abe

Sejauh apa DBMS Anda harus memasukkannya, itu terserah kasus penggunaan Anda. Jika Anda ingin menganalisis ID transaksi / dompet untuk melihat beberapa pola atau melakukan BI, saya akan merekomendasikan DB relasional. Jika Anda ingin mengatur konsumsi langsung dengan beberapa cryptocoin saya akan merekomendasikan sesuatu yang tidak memerlukan log transaksi sehingga solusi MongoDB akan baik. Saya tidak berpikir Anda perlu khawatir tentang Pencarian Elastis kecuali jika Anda ingin mulai melakukan rekaman langsung semua cryptocoin pada saat yang sama dan akan menggunakannya untuk melakukan perdagangan otomatis atau sesuatu yang sama-sama gila. :)

Ali Razeghi
sumber
8

Pada 2014 kami membangun ascribe.io dengan premis menggunakan Bitcoin sebagai basis data untuk klaim Kekayaan Intelektual. Setelah dirilis, kami terhubung ke jaringan karena tidak dapat menangani throughput, latensi setidaknya 10 menit dan kami dibatasi oleh apa yang bisa kami masukkan ke OP_RETURN, memaksa kami untuk menyimpan file digital aktual terkait dengan klaim di Amazon S3 . Kami menyadari bahwa Bitcoin dalam bentuk saat ini tidak akan pernah menjadi basis data transaksi yang tinggi.

Tetapi gagasan apakah kita bisa memiliki basis data gaya blockchain - kontrol terdesentralisasi, imutabilitas (tamper-resistance) dan aset langsung pada jaringan terjebak bersama kita. Jadi pada pertengahan 2014, kami mulai mengerjakan BigchainDB

Singkatnya - kita dapat memproses 100k tps dengan latensi 100mS dan memiliki kapasitas petabyte. Kodenya adalah BigchainDB Github kami, dokumentasi teknis di sini dan pemikiran mendasar dalam whitepaper kami .

Jika Anda memiliki use case untuk transaksi tinggi, database terdesentralisasi - kami membuat BigchainDB persis untuk ini.

Bruce Pon
sumber
2

Blockchain yang berasal dari Bitcoin lambat dan mahal; jumlah data yang dapat disimpan dalam suatu blok sangat sederhana. Mekanisme di balik blockchains (mendistribusikan buku besar) dimaksudkan untuk menyediakan penyimpanan data yang tidak dapat dirusak, sangat direplikasi; peer to peer kurang fitur penting daripada "persyaratan politik" untuk menghindari munculnya kontrol pusat. Saya telah bekerja selama sekitar 18 bulan untuk menghasilkan buku besar yang didistribusikan berkinerja tinggi (lihat metrognomo.com untuk satu contoh) yang membutuhkan sesedikit mungkin dari Bitcoin. Pada akhirnya, sebuah buku besar yang didistribusikan terlihat cukup mirip dengan file berurutan yang dapat ditambahkan tetapi tidak diedit setelah penambahan. Ini adalah hal yang berharga untuk beberapa aplikasi, tetapi bukan apa yang kebanyakan orang pikirkan sebagai basis data.

London
sumber