Bagaimana cara kerja saluran pembayaran dan jaringan kilat di Bitcoin?

Artikel ini dikhususkan untuk pertimbangan saluran pembayaran off-chain: jenisnya, prinsip operasi dan fitur aplikasi. Materi yang disajikan akan membantu untuk memahami mengapa gagasan saluran pembayaran revolusioner dalam sistem akuntansi keuangan. Kami akan berbicara tentang saluran pembayaran khusus untuk Bitcoin. Artikel ini akan bermanfaat bagi mereka yang tidak terbiasa dengan konsep saluran pembayaran, dan juga akan memberikan pemahaman tentang prinsip-prinsip jaringan kilat.

Saluran pembayaran dan informasi dasar tentang mereka


Apa itu saluran pembayaran?


Saluran pembayaran adalah metode melakukan banyak pembayaran tanpa menambahkan transaksi ke blockchain. Pada saat yang sama, anggota saluran hanya berinteraksi satu sama lain. Kehadiran validator tambahan atau pihak ketiga yang dipercaya tidak diperlukan.

Manfaat Saluran Pembayaran


Apa manfaat saluran pembayaran dibandingkan transaksi reguler?
Sebagai bagian dari saluran pembayaran yang sudah terbuka, peserta mendapatkan kesempatan untuk melakukan pembayaran instan. Pihak penerima melakukan verifikasi independen cepat dan menerima pembayaran. Tidak ada komisi di versi dasar. Dengan demikian, pembayaran mikro dapat dilakukan. Karena fitur ini maka saluran pembayaran juga disebut saluran pembayaran mikro.

Keuntungan menarik lainnya adalah bahwa interaksi para peserta saluran dapat dilakukan secara pribadi. Karenanya, detail setiap pembayaran mikro akan tetap dirahasiakan dari orang lain, meskipun fakta bahwa menggunakan saluran pembayaran antara alamat Bitcoin tertentu akan diketahui semua orang.

Fitur Saluran Pembayaran


Ini bukan untuk mengatakan bahwa saluran pembayaran memiliki kelemahan serius dibandingkan dengan transaksi reguler, tetapi ada beberapa fitur karakteristik.

Saluran pembayaran harus dibuka dan, karenanya, ditutup cepat atau lambat. Ini dilakukan dengan memisahkan transaksi on-chain. Bagi mereka, pembayaran komisi tidak bisa dihindari dan konfirmasi yang tertunda diperlukan. Untuk transaksi pembukaan, lebih baik menunggu konfirmasi penuh.

Dalam saluran tertentu, pembayaran hanya tersedia dalam jumlah yang telah ditentukan. Ini diatur oleh para peserta sendiri, membekukan jumlah yang diinginkan menggunakan skrip Bitcoin khusus.

Saluran pembayaran dapat masing-masing searah dan dua arah, satu arah atau dua arah. Itu tergantung pada metodologi implementasi saluran itu sendiri.

Masa pakai saluran dan jumlah pembayaran maksimum mungkin atau mungkin tidak terbatas. Tergantung tekniknya. Dengan demikian, saluran dapat ditutup setelah waktu tertentu atau lebih cepat dari jadwal. Selain itu, saluran dapat ditutup dengan persetujuan bersama dari para peserta atau atas permintaan salah satu dari mereka, tetapi dengan beberapa fitur.

Dalam versi yang disederhanakan, pengoperasian saluran pembayaran dapat digambarkan dalam skema semacam itu.

gambar

Ada jaringan bitcoin. Ada dua pengguna: Alice dan Bob. Mereka memiliki dompet Bitcoin dengan modul tambahan agar saluran pembayaran berfungsi sesuai dengan metode tertentu. Modul-modul ini bertukar data untuk pembayaran langsung.

Ide siapa?


Untuk pertama kalinya, gagasan saluran pembayaran dijelaskan oleh Satoshi Nakamoto sendiri dalam sebuah surat pribadi kepada salah satu pengembang protokol aktif bertahun-tahun yang lalu. Kemudian kembali dalam Bitcoin, pembaruan yang cukup penting tidak diterima yang memungkinkan untuk merancang saluran pembayaran yang andal. Namun, kemudian menjadi mungkin dan pada 2013 kembali ke ide yang benar-benar menjanjikan ini.

Tentang metode penerapan saluran pembayaran


Kami akan mempertimbangkan empat yang utama.
Saluran pembayaran gaya Spillman adalah versi paling sederhana dari saluran satu arah dengan masa pakai terbatas dan jumlah pembayaran tidak terbatas.

Kemudian, peningkatan lain dari protokol Bitcoin diadopsi dan saluran pembayaran gaya CLTV, yang merupakan metode yang ditingkatkan sebelumnya, menjadi mungkin.

Saluran pembayaran Poon-Dryja adalah metode saluran dua arah dengan runtime tanpa batas. Mereka memerlukan beberapa pembaruan untuk protokol Bitcoin yang baru saja diadopsi. Selain itu, saluran ini digunakan dalam desain jaringan kilat.

Saluran pembayaran dupleks Decker-Wattenhofer adalah opsi untuk menggunakan dua saluran searah pada saat yang sama, meningkatkan properti mereka dengan membentuk bukan rantai berurutan dari transaksi yang dapat diganti, tetapi seluruh rangkaian transaksi yang dapat diganti. Selain itu, saluran tersebut dapat memiliki lebih dari dua peserta.

Kami akan membahas dua metode pertama lebih terinci, tetapi pertama-tama kami akan mengulangi beberapa fitur protokol Bitcoin.

Beberapa protokol Bitcoin


nLockTime adalah bidang di badan setiap transaksi yang berisi stempel waktu atau nomor blokir. Sebelum waktu ini atau ketinggian blockchain, validator tidak diizinkan untuk memasukkan transaksi dalam sebuah blok.

nSequence adalah bidang dalam setiap input transaksi yang berisi nilai waktu di mana konfirmasi transaksi ini tidak dimungkinkan. Selain itu, waktu dihitung relatif ketika output yang dihabiskan input ini dikonfirmasi.

MultiSignature memungkinkan untuk menetapkan kondisi tersebut pada saat keluar dari transaksi, yang menurutnya perlu untuk menyediakan beberapa tanda tangan elektronik. Tanda tangan ini akan diverifikasi oleh kunci publik tertentu.

Saluran pembayaran gaya spillman


Jadi, saluran pembayaran gaya Spillman adalah metode menciptakan saluran pembayaran satu arah di mana ada peran pengirim dan peran penerima. Waktu pengoperasian saluran tersebut ditetapkan secara sewenang-wenang oleh pengirim, sementara penerima dapat menutup saluran secara prematur.

Mari kita lihat langkah-langkah utama saluran tersebut dalam diagram.

gambar

Untuk kenyamanan, bayangkan ada beberapa layanan yang memperdagangkan akses ke jaringan global melalui titik akses wi-fi, dan beberapa klien yang ingin mengakses jaringan selama sehari. Layanan akan dikenakan biaya satu bitcoin. Jelas, klien tidak mempercayai layanan untuk jumlah seperti itu dan ingin membayar lalu lintas per detik.

Kemudian mereka memutuskan untuk membuka saluran pembayaran selama sehari dengan jumlah satu bitcoin. Layanan menghasilkan sepasang kunci baru untuk tanda tangan elektronik dan mentransfer kunci publik ke klien. Klien, pada gilirannya, menghasilkan pasangan kunci baru dan menggunakan kunci publik dan kunci publik layanan untuk membentuk alamat multisignature 2-of-2. Lebih lanjut, klien membentuk transaksi nomor satu, di mana ia mengirim satu bitcoin ke alamat multisignature, menandatanganinya, tetapi tidak mendistribusikannya ke jaringan Bitcoin, karena layanan dapat menggantikan klien dan menolak menandatangani transaksi apa pun untuk transfer lebih lanjut satu bitcoin.

Oleh karena itu, klien membentuk transaksi nomor dua, di mana koin dengan alamat multisignature dikirim ke alamat yang dikontrolnya. Selain itu, ini mengatur bidang nLockTime sehingga transaksi dapat dikonfirmasi dalam sehari. Dia tidak menandatangani transaksi ini, tetapi mengirimkannya ke layanan. Pada gilirannya, layanan setuju bahwa klien dapat mengambil seluruh koin untuk dirinya sendiri, tetapi tidak lebih awal dari dalam sehari, dan menandatangani transaksi dengan kuncinya. Dia memberikan tanda tangan kepada klien, klien memeriksanya. Sekarang dia memiliki kesempatan untuk menandatangani transaksi dengan kuncinya dan dijamin akan mengambil koin kembali jika layanan memutuskan untuk menolak layanan.

Pada langkah berikutnya, klien mendistribusikan transaksi nomor satu ke jaringan Bitcoin atau mentransfernya ke layanan untuk distribusi jika tidak memiliki koneksi itu sendiri. Setelah konfirmasi transaksi pertama, saluran pembayaran dianggap terbuka.

Dalam hal ini, transaksi nomor satu disebut transaksi pendanaan, dan yang kedua adalah transaksi pengembalian uang.

Bagaimana interaksi dilakukan dalam perhitungan dalam saluran pembayaran? Mari kita lihat diagram berikut ini.

gambar

Untuk mengirim pembayaran pertama, klien meminta Bitcoin alamat layanan, yang ia kendalikan secara independen. Lebih lanjut, klien membentuk transaksi nomor tiga, di mana koin dengan alamat multisignature didistribusikan antara dua output: yang pertama adalah pembayaran ke alamat layanan dalam satu detik pengoperasian titik akses, dan yang kedua adalah pengiriman ke alamat klien sendiri. Klien menandatangani transaksi nomor tiga dengan kunci dan meneruskannya ke layanan. Layanan ini memeriksa kebenaran transaksi dan tanda tangan, setelah itu menerima pembayaran, karena ia dapat menandatangani kembali transaksi ini dengan kunci privatnya dan dijamin akan menerima pembayaran untuk detik pertama lalu lintas jika dilakukan dalam 24 jam. Tetapi jika layanan berniat untuk terus memberikan layanan kepada klien dan menerima pembayaran dalam saluran, maka itu hanya menyimpan nomor transaksi tiga secara lokal sampai saluran ditutup.

Untuk mengirim semua pembayaran berikutnya, klien mengubah output dari transaksi nomor tiga, masing-masing, menandatanganinya kembali dan mentransfer hanya tanda tangan dan jumlah perubahan ke layanan. Layanan ini juga memeriksa data yang diterima dan menyimpan versi baru dari transaksi nomor tiga, karena dalam versi ini ia menerima lebih banyak koin.

Bagaimana penutupan saluran dilakukan?

gambar

Diagram menunjukkan bahwa layanan harus memiliki waktu untuk menerbitkan versi terbaru dari transaksi nomor tiga di jaringan Bitcoin sebelum akhir waktu operasi saluran. Jika tidak, pengirim dapat menipu, menandatangani terlebih dahulu dan mempublikasikan transaksi nomor dua, di mana ia akan mengambil seluruh jumlah ke alamatnya.

Perlu dicatat bahwa klien dapat mempublikasikan transaksi pengembalian dana kapan saja selama pengoperasian saluran. Layanan akan menganggap perilaku seperti itu sebagai muggle. Oleh karena itu, ia terus memantau penampilan transaksi ini di jaringan dan, jika terdeteksi, mengakhiri kontrak dengan klien, menutup saluran lebih cepat dari jadwal dengan menerbitkan versi terbaru dari transaksi nomor tiga.

Saluran pembayaran gaya CLTV


Mari sekarang kita lihat versi yang lebih baik dari metode ini, yaitu saluran pembayaran gaya CLTV.

Metode saluran pembayaran ini menjadi berlaku setelah pembaruan Bitcoin softfork dilakukan dengan penambahan kode skrip baru - OP_CHECKLOCKTIMEVERIF. Keunikannya adalah bahwa sekarang dalam output transaksi Anda dapat menetapkan aturan seperti itu yang menurutnya koin hanya dapat digunakan dalam transaksi dengan parameter nLockTime yang ditetapkan tidak kurang dari yang ditentukan. Faktanya, ini berarti bahwa, di antara kondisi-kondisi lain, koin hanya dapat dihabiskan setelah periode waktu tertentu. Sekarang, menggunakan operasi percabangan kondisi scripted, yaitu IF-ELSE, Anda dapat mengatur kondisi pengeluaran yang berbeda tergantung waktu. Keuntungan dari saluran pembayaran ini dibandingkan dengan saluran sebelumnya adalah Anda tidak perlu membuat transaksi pengembalian uang. Sebagai gantinya, Anda dapat menentukan kondisi ganda untuk menghabiskan koin dalam skrip output dari transaksi pendanaan. Artinya, sebelum waktu penutupan saluran, koin dapat dihabiskan sesuai dengan aturan multisignature, dan setelah menutup satu tanda tangan akan cukup.

Bagaimana saluran pembayaran diterapkan?


Ada dua opsi: baik dalam bentuk murni untuk pembayaran reguler antara pihak yang telah ditetapkan, atau pembentukan jaringan kilat dengan mengganti saluran di antara mereka. Berganti berarti kemungkinan melakukan pembayaran antara pengguna yang belum membuka saluran pembayaran satu sama lain, tetapi memiliki saluran terbuka dengan peserta jaringan lainnya. Kemudian nilai akan ditransmisikan melalui rantai saluran peserta yang tidak sah, jika ada.

Dalam kasus jaringan kilat, ada kesulitan dan fitur tambahan. Ini adalah pengembangan format yang diterima secara umum untuk berpindah saluran dan node protokol komunikasi. Penting bahwa dompet dari beberapa pengembang dapat bekerja dengan dompet dari yang lain. Tantangan lain adalah masalah perutean pada jaringan ini. Tugasnya sedemikian rupa sehingga Anda perlu menemukan cara terpendek untuk mentransfer nilai, dengan mempertimbangkan fakta bahwa di setiap saluran ada batasan jumlah transfer di setiap arah.

Fitur Jaringan


Dalam diagram berikut, mari kita lihat fitur-fitur jaringan Bitcoin dan jaringan kilat.

gambar

Dalam jaringan Bitcoin, node bertukar data tentang transaksi dan blok, serta alamat jaringan satu sama lain. Dalam hal ini, konsensus tercapai dan basis data umum dibentuk. Selain menyelesaikan node, ada node ringan di jaringan Bitcoin yang hanya menerima informasi yang mereka butuhkan, tanpa memproses dan menyimpan seluruh sejarah.

Dalam jaringan kilat, node tidak bertukar transaksi yang sudah jadi dan tidak mencapai konsensus. Tetapi penting juga bagi mereka untuk memperbarui informasi tentang keadaan satu sama lain dan bertukar pesan untuk menjaga pekerjaan di dalam saluran pembayaran. Perlu dicatat bahwa jaringan petir juga tidak akan homogen, dalam arti akan ada node dengan beban yang semakin banyak, serta node dengan aktivitas yang tidak stabil. Kemungkinan besar, akan ada hub di jaringan, node dengan sejumlah besar saluran pembayaran terbuka, dan mereka harus mengatasi beban yang besar. Dan pengguna biasa akan membuka paling tidak satu atau dua saluran pembayaran, dan dengan salah satu hub ini.

Ini akan terjadi, karena untuk membuka setiap saluran pembayaran Anda perlu membekukan sejumlah koin, maka Anda hanya dapat menerima dan mengirim pembayaran dalam jumlah terbatas. Jika pengguna biasa membagi koinnya menjadi beberapa bagian dan membuka beberapa saluran, maka sebenarnya ia akan menerima jendela yang sangat kecil untuk pembayaran di setiap saluran dibandingkan dengan jumlah aslinya. Pada saat yang sama, organisasi besar seperti pengembang dompet, sentralisasi pertukaran atau pedagang populer akan bertindak sebagai penghubung. Mereka mampu mempertahankan sejumlah besar saluran terbuka untuk jumlah besar dan untuk jangka waktu yang lama tanpa offline.

Masalah panas


Pertimbangkan pertanyaan umum tentang saluran pembayaran dan jaringan kilat.

- Seberapa andalkah pembayaran di saluran dibandingkan dengan transaksi Bitcoin biasa?

Dengan keandalan, pembayaran di saluran dapat dibandingkan dengan yang biasa, yaitu, koin tidak akan diambil, dan pembayaran tidak akan dibatalkan. Tetapi ada sejumlah fitur seperti kebutuhan untuk membuka dan menutup saluran secara tepat waktu, pembatasan jumlah di dalam saluran, kebutuhan akan sinkronisasi terus-menerus dengan jaringan Bitcoin, kemungkinan pembekuan koin untuk sementara waktu.

- Apakah bandwidth dalam saluran dan jaringan kilat terbatas?

Faktanya adalah bahwa tidak ada batasan, tetapi mungkin ada penundaan terkait dengan pemrosesan saluran, pengintaian jaringan dan pembangunan rute, yang tergantung pada kinerja peserta tertentu. Selain itu, simpul dapat offline secara tak terduga, yang mungkin memiliki batasan tertentu dalam melakukan pembayaran oleh peserta lain.

- Haruskah anggota saluran saling percaya?

Tidak, mekanisme saluran pembayaran memberikan perlindungan terhadap tindakan jahat dari pihak yang berinteraksi.

- Apa gunanya saluran untuk seseorang yang ingin mengirim hanya satu pembayaran?

Jika seseorang ingin menyingkirkan koin terbaru dan tidak lagi berencana untuk menerima dan mengirim pembayaran, maka tidak masuk akal untuk membuka saluran, Anda perlu mengirim transaksi on-chain yang normal. Dalam semua kasus lain, membuka saluran akan bermanfaat.

Salah satu kuliah di kursus online Blockchain β€œ Saluran pembayaran off-chain ” juga dikhususkan untuk topik ini.

Source: https://habr.com/ru/post/id414793/


All Articles