Pengiriman versus pembayaran pada Blockchain Data Intelligence PlatoBlockchain. Pencarian Vertikal. ai.

Pengiriman versus pembayaran pada blockchain

Bagaimana blockchain dapat memecahkan masalah tertua dalam buku

Perdagangan antar manusia sama tuanya dengan usia manusia itu sendiri. Itu dimulai pada saat ketika manusia gua Ogg berkata kepada manusia gua Ugg: "Saya memberi Anda batu, Anda memberi saya buah beri". Tetapi perdagangan membawa serta masalah mendasar: itu membutuhkan percaya. Apa yang menghentikan Ogg dari menggunakan batu untuk memukul Ugg, lalu meraih kedua batu dan berry sebelum melarikan diri? Bagaimana kita menerjemahkan kesepakatan pertukaran verbal ke dalam mekanisme penegakan yang memastikan kedua belah pihak menepati janjinya?

Untuk mengambil contoh modern, beberapa tahun yang lalu saya menjual mobil di pasar barang bekas. Saya menemukan pembeli melalui Internet, kami bertemu langsung, dia menguji mobil dan kami menyepakati harga. Jadi dia pergi ke banknya untuk mengambil cek kasir, yang secara efektif merupakan uang tunai dalam bentuk yang lebih ringkas. Kami berjalan bersama ke kantor pos, di mana saya dapat menandatangani dan menyerahkan formulir resmi pemerintah yang mentransfer kepemilikan sah mobil tersebut.

Jadi begitulah kami, berdiri di jendela kantor pos, dan kami menemui jalan buntu yang canggung. Cek itu masih ada di sakunya, dan aku memegang formulir yang sudah ditandatangani. Kami bertemu beberapa jam yang lalu dan tidak punya alasan untuk saling percaya. Apakah saya menyerahkan formulir terlebih dahulu lalu berharap dia memberi saya cek, daripada melarikan diri? Atau apakah dia memberi saya cek lalu berharap saya memberikan formulir? Either way, seseorang mengekspos diri mereka pada risiko pengkhianatan.

Dan kemudian saya sadar bahwa saya harus berhenti khawatir dan hanya menyerahkan formulir. Mengapa? Karena salah satu dari dua hal bisa terjadi selanjutnya. Entah pembeli menyerahkan saya cek, dalam hal ini semua orang senang dan pertukaran selesai. Tapi bagaimana jika dia malah kabur? Dalam hal ini, petugas kantor pos akan melihat, dan merobek formulir yang baru saja saya berikan kepadanya. Bingo, kami memiliki pertukaran yang aman.

Apakah Anda melihat apa yang terjadi di sana? Dilema kami diselesaikan melalui penggunaan perantara, dalam hal ini petugas kantor pos. Petugas memastikan bahwa baik transaksi yang adil terjadi, atau tidak ada transaksi sama sekali. Dan tidak sembarang perantara dapat menyediakan layanan ini. Itu harus seseorang yang dipercaya oleh kedua belah pihak. Dalam kasus seorang pegawai kantor pos milik pemerintah, ini bermula dari kepercayaan kita pada pemerintah itu sendiri. Jika pegawai kantor pos bisa disuap, saya atau pembeli bisa merekayasa situasi di mana kita akan mendapatkan uang tunai dan mobil. Memang, di beberapa negara, korupsi seperti ini bisa sangat menguras kemakmuran.

Manusia gua dan mobil adalah satu hal, tetapi mari kita alihkan fokus kita ke dunia keuangan, di mana perdagangan berperan Peran utama. Tentu saja, bank tidak membayar karyawannya untuk kabur dengan saham orang lain. Tetapi pertukaran aset keuangan yang aman tetap menjadi masalah penting, karena ada cara-cara yang kurang kartun di mana peserta dalam suatu transaksi dapat gagal untuk menepati janji mereka. Misalnya, satu pihak mungkin menjadi bangkrut, atau perubahan mendadak dalam kondisi pasar dapat mencegah mereka mengamankan aset. Mereka dapat mengalami kesalahan klerikal atau dari efek knock-on dari suatu penipuan akuntansi di rekanan lain.

Sebagai akibat dari ini โ€œrisiko penyelesaianโ€, sebagian besar transaksi keuangan diselesaikan menggunakan pengiriman versus pembayaran (DvP). Ini hanya istilah mewah untuk proses kantor pos yang dijelaskan di atas. DvP memastikan bahwa, jika satu pihak dalam suatu transaksi tidak memberikan apa yang dijanjikan, pihak lain dapat menyimpan aset yang mereka tawarkan sebagai gantinya.

Dan bagaimana pengiriman versus pembayaran diterapkan di dunia keuangan? Anda dapat menebaknya, melalui perantara tepercaya. Ini bisa berupa bank lain, lembaga kliring atau penyimpanan surat berharga pusat. Karena sebagian besar perdagangan hari ini terjadi secara digital, ini bukan masalah mengelola transfer sertifikat fisik atau uang tunai. Sebaliknya, DvP dicapai oleh perantara secara bersamaan memperbarui sejumlah catatan dalam database mereka dan/atau mengirimkan instruksi ke institusi lain.

Pengiriman versus pembayaran dengan blockchain

Berbicara tentang database membawa kita ke topik blockchain. Blockchain memungkinkan buku besar atau database untuk dibagikan dan disinkronkan antara sejumlah pihak. Namun, tidak seperti database biasa, database blockchain dapat dengan aman dan langsung dimodifikasi oleh banyak pengguna bahkan jika mereka bersaing ketat satu sama lain. Jika Anda bekerja di TI perusahaan, Anda mungkin ingin memikirkan implikasi dari kalimat itu.

Untuk memahami cara kerja pengiriman versus pembayaran di blockchain, kita harus mulai dengan memahami model transaksional bitcoin. Perlu dicatat di sini bahwa desain blockchain lainnya menggunakan model yang berbeda untuk transaksi, dan kita akan berbicara lebih banyak tentang perbedaan ini nanti.

Transaksi bitcoin memiliki serangkaian input dan output. Setiap input terhubung ke satu output dari transaksi sebelumnya, dengan semua bitcoin dari output sebelumnya mengalir masuk. Bitcoin dalam input transaksi kemudian didistribusikan kembali ke seluruh outputnya sesuai dengan jumlah yang tertulis di dalamnya. Selain itu, setiap keluaran transaksi berisi pengidentifikasi publik dari pemilik barunya, di mana pemilik memegang kunci pribadi yang sesuai. Transaksi bitcoin hanya valid jika:

  • Jumlah total bitcoin dalam input transaksi lebih besar atau sama dengan kuantitas yang tertulis di outputnya. Setiap perbedaan dikumpulkan sebagai biaya oleh โ€œpenambangโ€ yang mengkonfirmasi transaksi di blok, menciptakan mekanisme pasar dimana transaksi dapat mengajukan tawaran untuk konfirmasi.
  • Transaksi tersebut disetujui oleh pemilik dari setiap keluaran sebelumnya yang "dibelanjakan" oleh transaksi tersebut. Persetujuan ini dinyatakan melalui tanda tangan kriptografi dari konten transaksi baru. Tanda tangan untuk keluaran sebelumnya hanya dapat dibuat menggunakan kunci pribadi yang cocok dengan pengenal publiknya.

Kedua aturan ini sangat penting dalam buku besar keuangan yang dibagi antara pihak yang tidak percaya. Tanpa yang pertama, siapa pun bisa membuat bitcoin dari udara tipis. Dan tanpa yang kedua, semua orang bisa menghabiskan bitcoin orang lain. Tetapi kita juga membutuhkan aturan ketiga, yang diterapkan secara global daripada dalam transaksi individual:

  • Setiap output transaksi hanya dapat digunakan oleh satu transaksi berikutnya. Ini mencegah serangan yang dikenal sebagai pengeluaran ganda di mana bitcoin yang sama dikirim ke lebih dari satu penerima.

Untuk menegakkan aturan ini, blockchain berisi log kronologis transaksi valid yang tidak bertentangan satu sama lain, dan log ini diverifikasi secara independen oleh setiap node dalam jaringan.

Model transaksi bitcoin dapat dengan mudah diperluas untuk mewakili aset keuangan apa pun. Alih-alih output transaksi yang mengandung bitcoin, ia dapat menyimpan pengenal dan kuantitas aset. Semua aturan yang mencakup transaksi bitcoin masih berlaku, mencegah peserta dari (a) menciptakan aset secara tiba-tiba, (b) membelanjakan aset orang lain, dan (c) membelanjakan aset yang sama dua kali. Untuk aset non-mata uang kripto, kami cenderung bersikeras bahwa jumlah input dan output seimbang dengan tepat, daripada membiarkan penambang mengumpulkan selisihnya.

Jadi bagaimana kita membuat transaksi pengiriman versus pembayaran yang aman menggunakan model ini? Katakanlah Alice dan Bob telah setuju untuk menukar ยฃ10 Alice dengan $15 milik Bob. Demi kenyamanan, kita akan berasumsi bahwa Alice sudah memiliki tepat ยฃ10 dalam satu keluaran transaksi, dan Bob juga memiliki $15. (Jika ini tidak terjadi, mereka dapat dengan mudah mengalihkan dana mereka untuk membuatnya demikian.)

Untuk memulainya, salah satu pihak membangun transaksi dengan dua input dan dua output. Kedua input menghabiskan output sebelumnya yang masing-masing berisi ยฃ10 Alice dan $15 Bob. Adapun output, yang pertama berisi pengenal Alice dan $15, dan yang kedua pergi ke Bob berisi ยฃ10. Karena jumlah input dan output dalam kedua mata uang tersebut seimbang, maka transaksi kami memenuhi syarat pertama di atas. Untuk memenuhi yang kedua, baik Alice dan Bob sekarang harus menandatangani transaksi, karena ia menghabiskan keluaran sebelumnya milik masing-masing.

Transaksi sekarang dapat diselesaikan dengan memasukkannya ke dalam blockchain, tetapi kita masih perlu mempertimbangkan masalah pengeluaran ganda. Bagaimana jika Alice telah membuat transaksi yang bertentangan dengan menukar ยฃ10 yang sama dengan rekanan berbeda yang menawarkan kesepakatan yang lebih baik? Di sini aturan ketiga ikut bermain, di mana blockchain memastikan bahwa setiap output hanya dapat dihabiskan sekali. Jika transaksi yang bersaing ditransmisikan setelah pertukaran Alice dengan Bob ada di blockchain, maka itu tidak akan dikonfirmasi. Dan jika transaksi pesaing dikonfirmasi terlebih dahulu, pertukaran Alice dengan Bob akan gagal. Either way, blockchain memastikan pengiriman versus pembayaran untuk pertukaran Alice dan Bob, serta yang lainnya. Jika Bob tidak mendapatkan ยฃ10 Alice, maka Alice tidak mendapatkan $15-nya.

Kekuatan transaksi parsial

Jadi blockchain memberi kita cara bagi dua pihak untuk berkumpul, membangun dan menandatangani transaksi pertukaran, dan memastikan bahwa itu berhasil atau gagal secara keseluruhan. Ini memungkinkan pengiriman versus pembayaran pada buku besar bersama, tanpa memerlukan perantara tepercaya untuk mengelola prosesnya. Penambang yang mengkonfirmasi transaksi di blok masih memiliki kekuatan, tetapi jauh lebih sedikit daripada perantara tradisional. Hal terburuk yang bisa mereka lakukan adalah menolak untuk mengkonfirmasi transaksi tertentu secara keseluruhan, dan ini tidak melanggar DvP. Selanjutnya, jika penambangan dibagi antara pihak-pihak yang benar-benar membuat transaksi, risiko ini hilang sepenuhnya, karena setiap orang akan mendapatkan kesempatan untuk mengonfirmasi sendiri.

Sejauh ini baik. Tetapi blockchain bergaya bitcoin memiliki lebih banyak trik. Ingatlah bahwa suatu transaksi harus ditandatangani oleh pemilik dari setiap keluaran sebelumnya yang dibelanjakan transaksi tersebut. Secara default, tanda tangan ini mengunci daftar lengkap input dan output dalam transaksi. Kriptografi memastikan bahwa modifikasi sekecil apa pun pada input atau output akan membuat tanda tangan tidak valid. Untuk mengikuti contoh di atas, jika Bob diganti dengan Carol setelah Alice menandatangani transaksi, maka transaksi akan gagal total.

Tapi bagaimana jika Alice tidak peduli dengan siapa dia melakukan pertukaran? Untuk sebagian besar tujuan, kenapa dia harus peduli? Kecuali Alice bertekad untuk bekerja secara khusus dengan Bob, hanya ada dua bagian dari transaksi yang benar-benar menjadi perhatiannya. Pertama, fakta bahwa output ยฃ10-nya akan dibelanjakan, bukan kuantitas atau aset yang berbeda. Kedua, bahwa dia menerima $15 dalam output baru sebagai imbalannya. Selama semua uang dalam sistem bersih, Alice tidak terlalu keberatan dari mana $15 itu berasal, atau apa lagi yang mungkin terjadi untuk memfasilitasi pertukarannya.

Mungkin satu pihak akan datang dengan $15 dan melakukan pertukaran langsung untuk Alice ยฃ10. Tapi mungkin Bob dan Carol hanya ingin menukar $7.50 masing-masing. Dalam hal ini, mereka akan menambahkan dua input ke transaksi, bersama dengan dua output yang masing-masing mengumpulkan ยฃ5. Atau mungkin Carol sebenarnya ingin menukar $15 dengan 950 rubel, sementara Sasha di Moskow memiliki 950 rubel dan mencari ยฃ10. Dalam hal ini pertukaran 3 arah dapat terjadi, di mana masing-masing pihak masih hanya peduli dengan potongan puzzle mereka sendiri. Transaksi yang dimulai Alice dapat diselesaikan dalam jumlah tak terbatas dengan berbagai cara. Tetapi dari sudut pandang Alice, semua ini mencapai tujuan yang sama untuk memberinya $15 sebagai ganti ยฃ10, dan semuanya membuatnya sama-sama bahagia.

Pertukaran-skenario

Bagaimana blockchain memfasilitasi ini? Melalui transaksi parsial dan tanda tangan parsial. Alice memulai transaksi dengan satu input (ยฃ10 miliknya) dan satu output ($15 untuknya). Dia mengunci bagian transaksi ini dengan tanda tangan digital yang menyatakan bahwa sejumlah input atau output lain dapat ditambahkan. Dia menyerahkan sebagian transaksi ini kepada Bob dan berkata "lihat apa yang bisa kamu lakukan". Mungkin dia juga menyerahkannya kepada Carol, dan ke sejumlah rekanan potensial atau pembangun sindikat lainnya. Masing-masing dapat menambahkan pasangan input dan outputnya sendiri, baik untuk menyeimbangkan pertukaran, atau untuk membuat transaksi parsial yang lebih besar yang dapat diserahkan kembali. Tidak peduli apa yang dilakukan orang, transaksi hanya dapat dieksekusi (yaitu diselesaikan melalui konfirmasi pada blockchain) setelah aset input dan output seimbang.

Transaksi blockchain hanyalah sepotong data digital, sehingga sebagian transaksi ini dapat dikirim melalui email atau media komunikasi lainnya. Mereka bahkan dapat diposting secara publik, karena para peserta dalam transaksi potensial tahu bahwa blockchain akan mengurus mereka. Tanda tangan Alice memastikan bahwa dia hanya akan menghabiskan ยฃ10 jika seseorang memberinya $15 sebagai gantinya.

Terakhir, jika Alice memilih untuk menonaktifkan penawaran, yang harus dia lakukan adalah membelanjakan ยฃ10 yang sama itu dalam transaksi lain, paling mudah dengan mengirimkannya kembali ke dirinya sendiri. Karena blockchain tidak akan membiarkan output yang sama dibelanjakan dua kali, ini membuat transaksi parsial yang ada menjadi tidak berharga. Semua peserta lain di blockchain akan melihat ini, dan berhenti membuang waktu mereka untuk menyelesaikan pertukaran.

Dari DvP hingga kontrak pintar

Seperti yang saya punya berdebat sebelumnya, blockchain bergaya bitcoin dapat dilihat sebagai cara untuk mengelola sinkronisasi dan keamanan dalam database relasional bersama. Baik transaksi bitcoin dan database diperlakukan secara atom, artinya mereka berhasil atau gagal secara keseluruhan. Kunci analogi ini adalah kesetaraan antara output transaksi di blockchain, dan baris dalam database. Transaksi blockchain yang menghabiskan beberapa output dan membuat beberapa lainnya sama dengan transaksi database yang menghapus beberapa baris dan membuat beberapa baris lainnya sebagai gantinya. (Operasi basis data yang mengubah baris yang ada sama dengan menghapus baris itu dan membuat baris baru yang diperbarui sebagai gantinya. Kesetaraan ini mendasari populernya MVCC metode kontrol konkurensi dalam basis data, di mana blockchain bergaya bitcoin dapat dilihat sebagai bentuk terdistribusi.)

Jadi mari kita bayangkan bahwa data keuangan kita disimpan dalam database, di mana setiap baris berisi tiga informasi: pengidentifikasi pemiliknya, pengidentifikasi aset, dan kuantitas aset. Blockchain memungkinkan buku besar ini dibagikan dengan aman di antara para pesertanya, bahkan jika mereka tidak saling percaya sama sekali. Dalam bahasa database, ini memastikan bahwa:

  • Jumlah aset di baris yang dihapus oleh transaksi cocok dengan jumlah di baris yang dibuatnya.
  • Untuk setiap baris yang dihapus (atau diubah) oleh suatu transaksi, transaksi tersebut harus ditandatangani oleh pemilik baris tersebut.
  • Jika baris database dihapus oleh satu transaksi, ini mencegah transaksi lain menghapusnya lagi.

Mari kita lihat aturan pertama ini, yaitu bahwa transaksi harus menjaga jumlah aset. Kita dapat memperluas ini menjadi gagasan umum tentang "kendala transaksi". Batasan transaksi berbentuk kotak hitam yang melihat dua set baris untuk setiap transaksi: (a) baris yang dihapus oleh transaksi, (b) baris yang dibuatnya. Tugas kotak hitam adalah melihat dua set ini dan menjawab 'ya' atau 'tidak' apakah transaksi tersebut valid. Dalam kasus khusus kami, itu hanya akan menjawab ya jika jumlah total aset di kedua set sama persis.

Setelah kami memiliki kemampuan untuk menerapkan batasan transaksi, batasan tersebut dapat diperluas untuk memuat serangkaian aturan apa pun. Beberapa contoh mungkin "satu unit aset ini hanya dapat dibuat jika ketiga aset lainnya ini secara bersamaan dikunci di escrow" atau "aset ini hanya dapat ditransfer jika ada baris yang sesuai yang melaporkan hujan yang tidak mencukupi". Dari perspektif arsitektur terdistribusi blockchain, logika di dalam kotak tidak ada bedanya, selama itu dapat memberi kita evaluasi yang pasti dan konsisten dari setiap transaksi yang dilihatnya.

Akibatnya, kendala transaksi dapat berfungsi sebagai metode umum untuk membatasi transformasi data yang dapat dilakukan oleh peserta blockchain. Pendekatan untuk "kontrak pintar" ini memberikan alternatif untuk prosedur yang tersimpan digunakan dalam Ethereum dan perusahaan Eris turunan. Di bagian mendatang, kita akan menyelami lebih dalam kelebihan dan kekurangan dari kedua paradigma ini, dalam hal kesederhanaan, skalabilitas, dan konkurensi.

Anda dapat ikuti saya di Twitter di sini. Lihat juga: Mengakhiri debat bitcoin vs blockchain.

Tambahan teknis

Untuk membangun transaksi DvP parsial, gunakan a jenis tanda tangan of SINGLE|ANYONECANPAY. Jika Anda menggunakan MultiRantai, yang preparelockunspent, createrawexchange dan appendrawexchange Panggilan API mengurus rincian untuk Anda. Lihat Mulai halaman untuk contoh sederhana tentang bagaimana mereka dapat digunakan.

Silakan kirim komentar di LinkedIn.

Sumber: https://www.multichain.com/blog/2015/09/delivery-versus-payment-blockchain/

Stempel Waktu:

Lebih dari Multichain