Sekiranya anda pernah berurusan dengan Bitcoin, anda mungkin menderita melalui waktu transaksi selama satu jam (atau paling buruk, sepanjang hari). Menjadi perkara biasa bagi Bitcoin tunggakan 150k + urus niaga yang belum disahkan pada masa jumlah urus niaga yang tinggi, dan apabila kami memasangkannya dengan yurannya yang terlalu tinggi, hairan bagaimana anda akan menggunakannya untuk bayar makanan 5 keping itu di KFC.
Rangkaian kilat ada di sini untuk menolongnya. Konsep ini adalah gagasan Thaddeus Dryja dan Joseph Poon, dan duo ini menghadirkannya dengan kertas putih kembali pada tahun 2015. Sekiranya anda tidak terlalu berminat membaca kapur kertas panjang yang penuh dengan jargon berteknologi, kami akan membentangkannya untuk anda dalam istilah orang awam di sini.
Apakah Rangkaian Kilat?
Pada tahap yang paling asas, rangkaian kilat adalah kaedah bagi pengguna Bitcoin untuk menukar nilai mata wang dari blockchain Bitcoin. Ini dicapai dengan menggunakan beberapa algoritma kompleks yang berinteraksi dengan skrip asas Bitcoin, dan ini memungkinkan, betul, kilat pembayaran cepat dengan sebahagian kecil daripada kos transaksi. Oleh itu, ia telah disajikan sebagai alat skalabilitas yang diperlukan, yang diperlukan oleh Bitcoin sekiranya ingin menjadi pilihan pembayaran yang layak pada masa akan datang. Amalan ini boleh merangkumi pertukaran atom rentas rantai. Pertukaran ini sama dalam praktiknya, kecuali bahawa ia berlaku di antara dua mata wang / blockchain yang berbeza. Kami melihat pertukaran atom dengan lebih terperinci di sini.
Sekarang kita telah membahas penjelasan yang terlalu mudah, sudah tiba masanya untuk penjelasan yang lebih panjang.
Rangkaian Kilat: Bagaimana Ia Berfungsi
Membuka Saluran Pembayaran Dua Hala
Untuk mula menggunakan rangkaian kilat, anda ingin menyiapkan saluran pembayaran. Saluran pembayaran adalah jalan transaksi di mana rangkaian kilat memindahkan nilai. Untuk mewujudkannya, anda harus membuka transaksi untuk saluran ini secara langsung di blockchain.
“Tetapi saya fikir anda mengatakan semua ini berlaku di luar rangkaian?” Jangan bimbang – masih berlaku, tetapi pertama-tama anda harus memberitahu rangkaian Bitcoin bahawa anda sedang membuka transaksi. Setelah anda melakukan ini, anda dan pihak lain yang anda urus niaga akan menyimpan kunci kira-kira pertukaran yang anda buat di saluran. Transaksi dan baki akaun yang dikemas kini akan dicatatkan pada lejar ini setiap kali dana dipindahkan, dan setelah anda menjalankan perniagaan di saluran, anda akan menyiarkan hasil akhir ke blockchain untuk menutup akaun.
Dompet pelbagai tandatangan
“Oleh itu, jika saluran pembayaran berlaku di luar rangkaian, di mana / bagaimana dana tersebut dikendalikan sehingga direkodkan ke blockchain?” Soalan yang bagus. Untuk menggunakan saluran pembayaran, kedua-dua pihak perlu mengirim dana mereka ke alamat dompet pelbagai tandatangan.
Katakanlah Molly dan Steve telah bertaruh pada hasil Super Bowl. Mereka masing-masing bertaruh 1 BTC dan ingin memastikan yang lain memegang akhir tawar-menawarnya, sehingga mereka memasukkan kedua-dua dana mereka ke dalam dompet pelbagai tanda tangan. Dompet ini berfungsi seperti peti deposit simpanan, sementara sekumpulan kunci peribadi untuk transaksi berfungsi seperti kombinasi yang membolehkan salah satu pihak mengakses dana. Dana akan tetap terkunci di dompet sehingga:
- kedua-dua Molly dan Steve menandatangani transaksi akhir dengan kunci peribadi ini,
- satu pihak memutuskan untuk menyelesaikan transaksi itu sendiri, atau
- had masa tercapai dan transaksi dihantar secara automatik. Setelah ini berlaku, dana akan dipindahkan kembali ke dompet masing-masing pihak.
Untuk berjaya menyiapkan dompet pelbagai tanda tangan, kedua Molly dan Steve mencipta nilai (pada dasarnya, kunci rahsia untuk membuka kunci transaksi) yang kemudian mereka gunakan untuk membuat hash dan saling mengirim. Pegang maklumat ini – sangat penting untuk memahami bagaimana transaksi komitmen berfungsi kemudian.
Setelah Molly dan Steve memasukkan dana masing-masing ke dalam dompet pelbagai tanda tangan, mereka kemudian dapat membuat apa yang disebut sebagai urus niaga terbuka dan siarkannya ke blockchain. Setelah ini disiarkan, satu siri urus niaga komitmen kemudian digunakan untuk menguruskan dana.
Memindahkan Nilai dengan Transaksi Komitmen
Ternyata, Molly memenangi pertaruhan, tetapi dia bagus, jadi dia mengatakan Steve hanya berhutang 0,5 BTC, bukan 1. Untuk memulakan pemindahan kekayaan ini, Molly dan Steve akan mengemas kini baki masing-masing di saluran pembayaran dengan menandatangani komitmen transaksi. Transaksi komitmen membahagikan dana antara kedua-dua peserta mengikut persetujuan bersama-pada dasarnya, urus niaga ini bertindak seperti IOU yang akan dibayar setelah saluran pembayaran ditutup.
Sebagai contoh, untuk menukar nilai, Molly menandatangani transaksi yang menghantar 1.5 BTC kepada dirinya sendiri dan .5 ke alamat dompet berbilang tandatangan baru. Kemudian, dia menandatangani transaksi ini dan mengirimkan hashnya kepada Steve. Pada gilirannya, Steve menandatangani transaksi komitmen untuk mencerminkan Molly, di mana dia menghantar .5 BTC kepada dirinya sendiri dan 1.5 ke dompet pelbagai tandatangan yang lain. Dia kemudian menandatangani ini dan mengirimkan hash transaksi ini kepada Molly.
Oleh itu, kita mempunyai a) 2 BTC asal yang duduk di dompet berbilang tanda tangan saluran pembayaran, b) .5 BTC duduk di dompet pelbagai tandatangan yang perlu dibayar kepada Steve, dan c) 1.5 BTC duduk dalam pelbagai tandatangan dompet yang perlu dibayar kepada Molly. Berkesan, apabila salah satu pihak mengirimkan hash transaksi masing-masing, kunci kira-kira dalam pelbagai tandatangan saluran pembayaran akan dikemas kini kerana kedua-dua pihak telah bersetuju untuk memindahkannya. Viola, mata wang telah ditukar tanpa menggunakan blockchain Bitcoin.
Nilai dari dompet ini dapat dibuka hanya dalam tiga keadaan:
- sejumlah masa tamat,
- mana-mana pihak membuka dana dari dompet pelbagai tandatangan yang mereka siapkan dengan nilai (kunci) dompet, atau
- kedua-dua pihak memutuskan untuk menandatangani transaksi bersama.
Penting untuk diperhatikan bahawa, jika satu pihak memutuskan untuk menutup saluran dan menandatangani urus niaga sahaja, dia harus menunggu jumlah masa yang ditentukan (ditentukan oleh kontrak) dari saat transaksi ditandatangani untuk menerima wangnya. Ini mungkin kelihatan berlebihan, tetapi sangat mustahak untuk mengelakkan penipuan melalui saluran pembayaran – lebih banyak lagi mengenai perkara ini.
Pembayaran Berulang / Mengemas kini Saluran
Bagaimana jika Molly dan Steve ingin terus mengemas kini saluran atau membuat lebih daripada satu pertukaran?
Untuk menggambarkannya lebih jauh, katakan Steve membayar Molly untuk perkhidmatan berulang, seperti potongan rambut. Steve memasukkan 0.2 BTC ke dalam dompet bertanda tangan mereka, dan setiap kali kunci dikunci, dia menandatangani transaksi komitmen kepada Molly dengan harga 0,001 BTC dan mengirimkannya ke alamat multi-tandatangan baru. Untuk melakukan ini, dia harus mengulangi langkah-langkah yang baru saja kita lalui, tanpa membuka transaksi di rangkaian seperti yang dilakukan pada saat transaksi komitmen pertama ditandatangani.
Jadi, untuk memproses pembayaran berulang, baki akaun dalam multi-sig perlu dikemas kini setiap kali. Untuk melakukan ini, setiap kali Steve memotong rambutnya, dia akan memberikan sejumlah wang baru ke dompet pelbagai tandatangan yang dia siapkan untuk membayar Molly. Tetapi dengan berbuat demikian, dia mencipta nilai baru dan hash baru untuk transaksi baru ini. Molly melakukan perkara yang sama, dan ketika kedua belah pihak menukar hash baru, mereka juga memasukkan nilai (kunci) lama untuk transaksi sebelumnya.
Akibatnya, ini memastikan bahawa tidak ada pihak yang dapat menipu pihak lain. Sekiranya setelah menutup saluran pembayaran, Steve cuba menipu Molly dari pembayarannya dengan menyiarkan jumlah transaksi lama, dia akan menghadapi masalah.
Sebagai contoh, jika dia menutup saluran, Steve berhutang kepada Molly 1 BTC dari 2 BTC asal yang dia depositkan tetapi dia menandatangani transaksi asal untuk memberikan dirinya jumlah yang asli, Molly dapat memanggilnya kerana dia mempunyai nilai dari semua transaksi sebelumnya . Lebih-lebih lagi, Steve harus menunggu sebelum urus niaganya selesai mengikut jangka masa yang dipersetujui kedua-dua pihak sebelum menjalankan perniagaan, sementara Molly segera. Oleh itu, jika dia melihat bahawa dia telah dibayar 0 BTC untuk perkhidmatannya, dia dapat mendaftar di 2 BTC di dompet pelbagai tanda tangan kerana dia mempunyai kunci untuk transaksi ini, dan dengan itu, kemampuan untuk membuka dana.
Oleh itu, jika satu pihak cuba menipu pihak lain, pihak lawan diberikan semua dana pihak jahat. Denda ini dilaksanakan untuk mencegah pelaku buruk menyalahgunakan peruntukan dana bersama saluran pembayaran.
Selain itu, pengendali nod dan pelombong yang melihat permainan busuk ini boleh bertindak atas nama Molly jika dia tidak berada dalam talian untuk menyedari kecurangan tersebut. Sebagai ganti rugi, para malaikat penjaga ini diberikan hadiah (yuran) dalam mata wang yang diperdagangkan untuk perkhidmatan mereka.
Menutup Saluran Pembayaran
Apabila Molly dan Steve siap menutup akaun mereka, mereka hanya menandatangani transaksi dengan kunci peribadi mereka untuk menyiarkan baki akaun terakhir mereka ke blockchain. Pada ketika ini, pelombong akan mengesahkannya setiap hari dan menyimpannya di lejar umum. Seperti transaksi pembukaan, transaksi penutup ini adalah satu-satunya interaksi yang akan dilakukan oleh kedua-dua pihak dengan blockchain Bitcoin.
Sebagai alternatif, dua pihak juga boleh menetapkan tarikh luput untuk tempoh kontrak. Sebagai contoh, dengan menggunakan algoritma nLockTime, mereka dapat membuka saluran pembayaran selama 30 hari, selepas waktu itu, saluran akan ditutup dan baki akhir akan disiarkan ke blockchain. Setiap kali pihak ingin mengemas kini baki mereka, bagaimanapun, tarikh luputnya berkurang. Oleh itu, jika Molly dan Steve meletakkan pertaruhan pada banyak permainan bola sepak sepanjang musim, setiap kali pertaruhan dibayar, kontrak nLockTime akan mempunyai tarikh luput yang baru dan pendek (contohnya, jika transaksi komitmen pertama akan diselesaikan dalam 30 hari, transaksi kedua akan dibayar pada 29, kemudian yang ketiga akan dibayar pada 28, dan seterusnya).
Tujuan kontrak nLockTime adalah mudah: ia mengemas kini baki akaun dan mengelakkan satu pihak memalsukan penyata akaun. Seperti yang telah kita lakukan lebih awal, setiap kali transaksi komitmen disepakati, baki akaun lama diganti dengan yang baru, dan setiap pihak yang terlibat mempunyai rekod baki baru ini serta nilai transaksi (kunci) lama. Sekiranya ada pihak yang cuba menipu pihak lain, pihak yang melakukan penipuan akan dikenakan hukuman.
Pembayaran Multichannel dan Kontrak Berkunci Hash Time
“Bagaimana jika Molly dan Steve ingin saling mengirim Bitcoin tetapi mereka tidak mempunyai saluran pembayaran yang terbuka?” Mereka boleh melalui perantara. Kami akan memanggil lelaki ini Chuck – beritahu Chuck.
Ternyata, Molly dan Steve keduanya membuka saluran pembayaran dengan Chuck, jadi bukannya membuka saluran baru, mereka memutuskan kepada kami saluran pembayaran dua arah masing-masing untuk berdagang melalui Chuck.
Sekarang, ini secara teorinya adalah perdagangan yang dipercayai, jadi muslihatnya adalah mempermudah pertukaran dengan cara yang selamat. Untuk melakukan ini, Lightning Network melaksanakan Hash Time Locked Contracts (HTLC).
Katakanlah Molly ingin memberikan 0,5 BTC kepada Steve kerana dia benar-benar baik seperti itu-sungguh, sungguh persik. Untuk melakukannya, Steve mesti membuat rentetan nombor kriptografi yang disebut nilai (asasnya adalah kod pengesahan atau kunci). Dia kemudian membuat hash nilai ini untuk dihantar ke Molly. Untuk mempermudah ilustrasi bertulis ini, kami akan mewakili nilai dengan V dan hash dengan H.
Apabila Molly menerima H, dia membagikannya kepada Chuck. Pada ketika ini, Molly hanya akan mengirim Chuck 0,5 BTC jika dia mendedahkan V. Untuk mendapatkan V, Chuck mengirimkan 0,5 BTC sendiri kepada Steve sebagai ganti V. Setelah dia memiliki nombor ini, dia akan mengirim V kepada Molly yang kemudian mengirim 0,5 BTC ke Chuck. Dan di sana anda memilikinya – Molly dengan berkesan memindahkan 0.5 BTC kepada Steve.
Sekiranya anda tersesat, berikut adalah keadaannya:
Steve membuat V dan H → Steve menghantar H ke Molly → Molly menghantar H ke Chuck → Chuck menghantar BTC ke Steve → Steve menghantar V ke Chuck → Chuck menghantar V ke Molly → Molly menghantar BTC ke Chuck
Oleh itu, nilai (V) berfungsi sebagai kod pengesahan / kunci untuk hash (H), yang mewakili resit / kunci untuk transaksi.
“Itu baik-baik saja dan bagus, tapi bagaimana Molly tahu bahawa nilai yang Chuck kirimkan kepadanya adalah sah, dan apa yang membuat Steve tidak lari dengan BTC Chuck membayarnya?”
Sekali lagi, soalan yang baik. Sama seperti nLockTime membuat semua orang jujur dalam saluran pembayaran dua arah, Kontrak Terkunci Waktu Hash membuat pihak bertanggungjawab dalam model ini.
Dengan HTLC, dana Bitcoin yang ditransaksikan akan dikunci sekali lagi dalam dompet pelbagai tandatangan dan hanya dapat dibuka a) setelah nilai (V) dan hash (H) ditunjukkan atau b) kontrak tamat selepas tempoh masa tamat.
Akibatnya, ini bermaksud bahawa, ketika Molly dan Chuck membuat perjanjian untuk Molly membayar Steve, dia mengunci Bitcoin yang dia berhutang kepada Chuck dalam dompet pelbagai tandatangan menggunakan HTLC. Setelah Chuck membayar Steve dan menerima V, dia kemudian dapat memasukkan V dan H ke dalam HTLC untuk dibayar balik dengan Bitcoin Molly yang berkomitmen untuk kontrak. Sebagai alternatif, jika Chuck gagal bertahan pada akhir tawaran dan kontraknya tamat selepas, katakanlah, seminggu, Bitcoin Molly dibebaskan dan masuk kembali ke dompet peribadinya.
Interaksi yang sama berlaku di saluran pembayaran Chuck dan Steve sendiri. Chuck tidak boleh melepaskan Bitcoinnya kepada Steve sehingga Steve mendedahkan V. Setelah Steve mendedahkan V ke dalam kontrak multi-sig, Chuck sekarang mempunyai V dan Steve menerima BTC-nya.
Proses ini, secara teorinya, dapat dijalankan melalui beberapa saluran pembayaran dan beberapa individu.
Mengemas: Mengapa Rangkaian Petir Penting
Ini topik yang rumit. Mensintesiskan maklumat ini menjadi potongan yang mudah dicerna cukup sukar, jadi sorakanlah anda kerana terus menggunakannya.
Untuk rangkuman TL; DR: Rangkaian Lightning adalah sistem di luar rantai yang membolehkan individu menukar mata wang beberapa kali tanpa perlu meletakkan semua transaksi ini secara berantai. Sebaliknya, hanya dua urus niaga (dan pembukaan dan penutupan) yang direkodkan di blockchain, sementara semua transaksi lain, sebanyak mungkin, diproses melalui lapisan sekunder nod rantai.
Terdapat beberapa faedah utama untuk model ini:
Transaksi mikro yang berkesan: Rangkaian Lightning diarahkan pada mikrotransaksi Daripada harus membayar yuran yang terlalu tinggi yang mungkin melebihi nilai yang dipindahkan, Rangkaian Pencahayaan memungkinkan pengguna untuk mengirim sejumlah kecil mata wang antara satu sama lain tanpa harus melalui rangkaian Bitcoin secara langsung. Mereka masih perlu membayar yuran untuk mengendali simpul, tetapi sangat kecil jika dibandingkan dengan yuran rangkaian Bitcoin yang biasa.
Penyelesaian skalabiliti dan kependaman: Sesuai dengan titik sebelumnya, Lightning Network akan mengurangkan jaringan bloat. Mengurangkan jumlah urus niaga dalam rantaian bermaksud lebih sedikit kerja untuk pelombong yang seterusnya bermaksud masa transaksi yang lebih cepat dan bayaran yang lebih rendah. Sekiranya setiap transaksi tidak perlu diletakkan di lejar umum blockchain, rangkaian akan berjalan dengan lebih lancar. Selanjutnya, urus niaga Lightning Network akan lebih cepat daripada yang dilakukan dalam rangkaian.
Anda mungkin tertanya-tanya bagaimana mana-mana pengguna rata-rata dapat menavigasi proses berbilang langkah yang telah kami gariskan dengan betul. Nah, Dryja, Poon, dan lain-lain sedang mengerjakan aplikasi / antara muka yang dapat menyelesaikan semua langkah rumit untuk anda – yang harus anda lakukan hanyalah menekan beberapa butang.
Pada masa ini, Lightning Networks sedang dikembangkan untuk Bitcoin, Litecoin, dan Vertcoin. Lightning Network masih dalam testnet, dan belum ada tarikh pelancaran utama yang disahkan pada masa penerbitan ini.