Blokir pribadi lebih dari sekadar "berbagi" basis data

Mengapa pencela blockchain kehilangan intinya

Demikian seterusnya. Dari postingan populer untuk tweet hina untuk prediksi tentang masa depan, dunia dan ibunya berbaris untuk melempar tomat di blockchain pribadi, sebelumnya bahkan memahami apa itu.

Mengatakan bahwa blockchain pribadi hanyalah basis data bersama seperti mengatakan bahwa HTML dan HTTP adalah "hanya" hiperteks terdistribusi. Itu salah dalam dua cara. Pertama, yang semantik: blockchains pribadi adalah teknologi itu memungkinkan database bersama, seperti pena memungkinkan penulisan dan HTML / HTTP memungkinkan hiperteks terdistribusi. Bitcoin blockchain dan aplikasi utamanya tidak dapat dipisahkan secara bermakna, karena yang satu tidak bisa ada tanpa yang lain. Tetapi kesetaraan ini tidak berlaku untuk blockchains pribadi sama sekali.

Kesalahan kedua adalah penggunaan kata "adil". Hanya? Apakah HTML dan HTTP hanya cara untuk melakukan distribusi hypertext? Hypertext tadinya diciptakan beberapa dekade sebelumnya, jadi apakah teknologi ini catatan kaki kecil dalam sejarah komputer? Oh, tetapi saya ingin menghitung cara mereka mendapatkan tempat mereka: (a) sederhana bahasa markup yang dapat dipelajari oleh orang awam, (b) a skema pengalamatan hirarkis yang berfungsi baik dengan TCP / IP dan model tempat konseptual kami, (c) a protokol sederhana untuk pengambilan konten secara bebas-negara, dan (d) keduanya klien dan Server perangkat lunak yang menghidupkan semuanya. Kita mungkin juga mengatakan bahwa Newton hanyalah seorang ilmuwan dan Dostoyevsky hanya seorang penulis.

Jadi mari kita perjelas dengan jelas: Ya, blockchains pribadi hanyalah cara untuk berbagi basis data. Tetapi mereka memungkinkan tipe baru dari database bersama, dengan implikasi besar bagi dunia keuangan dan seterusnya. Dan jika Anda mau membaca terus, saya akan memberi tahu Anda alasannya.

Apa itu database?

Basis data adalah gudang informasi terstruktur, disusun dalam tabel. Anda dapat menganggapnya sebagai kumpulan dari satu atau lebih lembar kerja Excel, yang secara opsional dapat dihubungkan bersama. Setiap tabel berisi informasi tentang satu set entitas dari tipe tertentu, dengan satu entitas per baris. Setiap tabel juga memiliki satu atau lebih kolom, yang menggambarkan berbagai aspek entitas tersebut. Misalnya, tabel untuk direktori staf internal WidgetCo mungkin memiliki kolom untuk ID karyawan, nama depan, nama belakang, departemen, nomor telepon internal, dan nomor kamar.

Salah satu cara penting di mana database melampaui spreadsheet adalah bahwa mereka berisi aturan tentang data yang disimpan di dalamnya. Aturan-aturan ini membantu memastikan bahwa informasi tetap waras dan konsisten untuk kepentingan seluruh organisasi. Hari ini kebanyakan database populer, aturannya mengambil sejumlah bentuk umum:

  • Grafik skema basis data mendefinisikan jenis informasi apa yang diizinkan di setiap kolom. Misalnya, nomor telepon harus berisi 4 digit dan tidak boleh dibiarkan kosong ("null").
  • Kunci unik yang menyatakan bahwa kolom tertentu (misalnya ID karyawan) harus memiliki nilai yang berbeda di setiap baris.
  • Periksa kendala yang menegakkan hubungan antara nilai kolom di setiap baris. Misalnya, jika departemen adalah "Pengadaan" maka nomor kamar harus dimulai dengan angka 3 atau 4.
  • Kunci asing yang menegakkan hubungan antar tabel. Misalnya, jika database berisi tabel lain yang digunakan untuk penggajian, mungkin ada aturan bahwa setiap ID karyawan dalam tabel penggajian juga harus ada di direktori staf.

Transaksi adalah kumpulan perubahan pada basis data yang diterima atau ditolak secara keseluruhan. Setiap kali transaksi memodifikasi database, perangkat lunak memastikan bahwa aturan database dipatuhi. Jika ada bagian dari transaksi yang melanggar salah satu aturan ini, seluruh transaksi akan ditolak dengan kesalahan yang sesuai.

Ada beberapa jenis aturan esoteris lain yang bisa saya daftarkan, tetapi semuanya memiliki satu kesamaan. Mereka menjawab pertanyaan: Apakah basis data dalam keadaan valid? Dengan kata lain, mereka bertindak sebagai kendala pada konten basis data bila dilihat pada satu titik waktu. Dan ini berfungsi dengan baik untuk database yang berada di dalam satu organisasi, karena tugas utama dari kendala adalah untuk mencegah kesalahan programmer. Jika salah satu aplikasi internal WidgetCo mencoba memasukkan nomor telepon 3-digit ke dalam direktori, ini bukan karena kedengkian, melainkan karena bug dalam pemikiran atau kode pengembang. Kemampuan database untuk menangkap kesalahan ini tidak diragukan lagi berguna, dan membantu mencegah penyebaran informasi yang buruk dalam suatu organisasi, tetapi itu tidak memperbaiki masalah kepercayaan. (Kendala juga dapat membantu menyederhanakan logika aplikasi, misalnya via cascading kunci asing or klausa on-duplikat, tetapi ini masih cara untuk membantu pengembang.)

Berbagi basis data

Sekarang mari kita pikirkan tentang bagaimana direktori staf internal WidgetCo dapat dibagikan dengan dunia luar. Dalam banyak kasus, tidak ada masalah dalam menyediakan dibagikan baca mengakses. Direktori dapat diekspor ke file teks dan diemail ke pelanggan dan pemasok. Itu dapat diposting di Internet, sama seperti yang ini. Bahkan dapat diberikan API untuk memungkinkan pencarian dengan kode eksternal. Baca bersama adalah teknik menghindari, pertanyaan untuk memutuskan siapa yang dapat melihat apa.

Tetapi hal-hal mulai menjadi lengket ketika kita pikirkan berbagi tulis. Bagaimana jika WidgetCo menginginkan entitas eksternal memodifikasi databasenya? Mungkin ponsel sedang diganti oleh PhoneCo, yang kemudian akan memperbarui nomor telepon di direktori staf. Dalam hal ini, WidgetCo akan membuat "akun" baru untuk digunakan PhoneCo. Tidak seperti akun untuk penggunaan internal WidgetCo, akun PhoneCo hanya diizinkan untuk mengubah kolom nomor telepon, dan tidak pernah menambah atau menghapus baris. Semua transaksi PhoneCo diproses oleh sistem database WidgetCo, yang sekarang menerapkan dua jenis pembatasan:

  • Aturan global yang berlaku untuk semua pengguna basis data. Misalnya, perusahaan telepon tidak dapat mengubah nomor yang hanya berisi 3 digit, dan tidak ada orang lain.
  • Aturan per-akun membatasi apa yang dapat dilakukan PhoneCo, dalam hal ini hanya memodifikasi kolom nomor telepon dari baris yang ada.

Sejauh ini baik. Kami memiliki database tulis bersama. Ini berfungsi karena WidgetCo bertanggung jawab atas database dan perusahaan telepon memperoleh akses berdasarkan kebaikan WidgetCo. Jika PhoneCo mulai mengatur nomor telepon secara acak, WidgetCo dapat mematikan akses mereka, mengakhiri kontrak mereka, dan mengembalikan beberapa data lama dari cadangan. Dan jika WidgetCo mulai melakukan kesalahan, katakanlah dengan membalikkan nomor telepon baru yang dimasukkan oleh PhoneCo, yah itu sama sekali tidak ada gunanya, karena itu hanya akan membahayakan WidgetCo sendiri. Perusahaan telepon akan menganggap WidgetCo sebagai pelanggan khusus tetapi tidak terlalu peduli, selama mereka membayar tagihan tepat waktu.

Tapi sekarang mari kita lihat apa yang terjadi jika dua atau lebih pihak ingin berbagi basis data yang (a) tidak ada yang dikendalikan oleh pihak, (b) dapat ditulis oleh pihak mana pun, dan (c) dapat diandalkan oleh semua orang. Untuk membuat segalanya menjadi lebih buruk, katakanlah bahwa pihak-pihak ini memiliki insentif yang berbeda, tidak percaya satu sama lain dan bahkan mungkin pesaing yang sengit. Dalam hal ini, solusinya selalu sama: perkenalkan perantara yang tepercaya. Perantara ini mengelola basis data secara terpusat, menyediakan akun untuk semua pihak, dan memastikan bahwa semua operasi diizinkan menurut seperangkat aturan yang diketahui. Dalam banyak kasus, terutama keuangan, setiap pihak masih menyimpan salinan datanya sendiri, sehingga semua orang menghabiskan banyak waktu memeriksa database mereka setuju.

Semuanya menjadi agak berantakan dan tidak praktis. Tetapi jika kita berbicara tentang a database tulis bersama dalam lingkungan kepercayaan terbatas, saat ini tidak ada alternatif. Itulah salah satu alasan utama mengapa transaksi keuangan berjalan pusat kliring rumah, mengapa Anda gunakan Google Calendar bahkan dalam kelompok kerja kecil, dan mengapa orang banyak itu bertanya-tanya Wikipedia menghabiskan jutaan dolar di hosting. Bahkan sebagai antarmuka pengguna web pindah ke sisi klien, server terpusat terus menyimpan data di mana antarmuka itu bergantung.

Berbagi nyata

Jadi katakanlah kita ingin mengizinkan database untuk dibagikan, dalam arti menulis, tanpa otoritas pusat. Sebagai contoh, beberapa perusahaan yang bersaing ingin mempertahankan direktori staf bersama untuk kepentingan pelanggan bersama mereka. Seperti apa sebenarnya itu? Yah, itu perlu sejumlah hal:

  • Jaringan peer-to-peer yang kuat yang memungkinkan transaksi dibuat oleh pihak mana pun dan disebarkan dengan cepat ke semua node yang terhubung.
  • Cara untuk mengidentifikasi konflik antara transaksi dan menyelesaikannya secara otomatis.
  • Teknologi sinkronisasi yang memastikan semua rekan bertemu pada salinan database yang identik.
  • Metode untuk menandai berbagai informasi sebagai milik peserta yang berbeda, dan menegakkan bentuk kepemilikan data ini tanpa otoritas pusat.
  • Paradigma untuk menyatakan pembatasan operasi yang diizinkan, misalnya untuk mencegah satu perusahaan menggelembungkan direktori dengan entri fiktif.

Wah. Itu daftar yang sulit di sana, dan itu tidak didukung oleh basis data yang ada saat ini. Arus teknologi replikasi peer-to-peer canggung dan memiliki pendekatan yang kompleks untuk penyelesaian konflik. Database yang mendukung keamanan berbasis baris masih membutuhkan otoritas pusat untuk menegakkannya. Dan batasan tingkat basis data standar seperti kunci unik dan batasan pemeriksaan tidak dapat melindungi basis data terhadap modifikasi berbahaya. Intinya adalah ini:

Kami membutuhkan banyak hal baru untuk database tulis bersama agar berfungsi, dan kebetulan blockchain menyediakannya.

Saya tidak akan membahas terlalu detail bagaimana blockchain melakukan hal ini, karena saya sudah banyak menutupi itu sebelumnya. Beberapa elemen kunci termasuk reguler peer-to-peer teknik, pengelompokan transaksi menjadi blok, satu arah fungsi hash kriptografis, multi-partai algoritma konsensus, didistribusikan kontrol konkurensi multiversion dan izin per-baris berdasarkan kriptografi kunci publik. Daftar panjang ide lama digabungkan dengan cara baru. HTML / HTTP, jika Anda suka.

Selain semua ini, database penulisan bersama memerlukan jenis aturan yang sama sekali baru, untuk batasi transformasi yang dapat dilakukan transaksi. Ini adalah inovasi yang sangat penting, dan membuat perbedaan jika kita berbagi database antara entitas yang tidak percaya. Jenis aturan ini dapat dinyatakan sebagai kendala transaksi gaya bitcoin atau gaya Ethereum yang ditegakkan prosedur yang tersimpan ("Kontrak pintar"), yang masing-masing memiliki keuntungan dan kerugian. Mungkin ada cara lain yang lebih baik menunggu untuk ditemukan. Tetapi mereka semua berbagi properti untuk mengikat kondisi database sebelum dan sesudah transaksi terjadi. Dengan kata lain, mereka menjawab pertanyaan: Apakah itu transaksi yang valid? Ini pada dasarnya berbeda dengan menanyakan apakah database valid pada satu titik waktu.

Jika Anda bertanya-tanya apakah jenis database ini memiliki aplikasi dunia nyata yang berguna, baik itu pertanyaan yang wajar. Tapi Anda mungkin memperhatikan minat kuat pada blockchain pribadi setidaknya satu sektor, karena potensi mereka untuk menyederhanakan proses dan mengurangi biaya dan penundaan. Lembaga keuangan adalah pengguna berat platform basis data saat ini, dan platform tersebut tidak memungkinkan skenario penulisan bersama. Inilah yang dicari bank.

Masalah ini dan solusinya sama sekali tidak ada hubungannya dengan bitcoin dan gagasan uang bebas sensor. Bahkan, satu-satunya koneksi ke bitcoin adalah teknis kesamaan antara bitcoin blockchain dan bagaimana beberapa blockchain pribadi ini diimplementasikan hari ini. Salah satu perbedaan utama adalah bahwa blockchain pribadi tidak perlu bukti kerja menambang, karena blok dibuat oleh set tertutup peserta yang diidentifikasi. Lama-kelamaan kedua dunia ini mungkin akan menyimpang lebih jauh, karena persyaratan mereka benar-benar berbeda. Apakah Anda suka regulasi keuangan atau tidak, fakta sederhananya adalah bahwa blockchain pribadi berpotensi berguna di dunia yang diatur, sedangkan untuk saat ini setidaknya, blockchain publik tidak.

Jika saya bisa menyelesaikan dengan analogi, PBB Deklarasi tentang Prinsip Hukum Internasional tidak memberi tahu negara-negara bahwa mereka dapat memiliki wilayah yang mereka inginkan, asalkan dikelilingi oleh pagar yang ditandai dengan jelas. Sebaliknya, ia menyatakan bahwa "Tidak ada akuisisi teritorial yang dihasilkan dari ancaman atau penggunaan kekuatan yang diakui sebagai hukum". Dengan kata lain, ini adalah aturan tentang legitimasi perubahan, bukan hanya dari situasi. Dan deklarasi PBB, yang tampak sangat jelas bagi kita sekarang, adalah revolusi total dalam hukum internasional. Itu berarti dunia tidak lagi didasarkan pada kekuatan dan otoritas sepihak, tetapi dunia di mana perbedaan dapat diselesaikan dengan konsensus bersama.

Ketika datang ke database bersama, blockchains pribadi melakukan hal yang persis sama.

Stempel Waktu:

Lebih dari Multichain