Rangkaian Stesen Minyak Ethereum (GSN)
Rangkaian Stesen Minyak Ethereum (GSN) merumuskan proses pembayaran gas daripada pengguna akhir yang meminimumkan geseran UX untuk dapps. Dengan GSN, pelanggan tanpa gas boleh berinteraksi dengan kontrak pintar Ethereum tanpa pengguna memerlukan ETH untuk yuran transaksi. GSN ialah sistem terdesentralisasi yang meningkatkan kebolehgunaan dapp tanpa mengorbankan keselamatan.
Contoh kes penggunaan untuk GSN:
- Privasi : Mendayakan pengeluaran token tanpa ETH yang dihantar ke alamat stealth
- Bayar gas dalam token ERC-20 yang disokong : Benarkan pengguna membayar gas dalam token ERC-20 yang menyokong
permit
fungsi - Bayar untuk gas di luar rantaian : Benarkan pengguna membayar gas secara tidak langsung melalui rollup L2 atau kad kredit
- Onboarding : Benarkan dapps mensubsidi proses onboarding untuk pengguna baharu
Masalah
Tanpa GSN, sesiapa yang menghantar transaksi Ethereum perlu mempunyai ETH untuk membayar yuran gas. Ini memaksa pengguna baharu untuk melepasi KYC dan membeli ETH sebelum mereka boleh mula menggunakan mana-mana dapp. Ini boleh menjadi halangan utama bagi pengguna tanpa pengalaman kripto sebelumnya yang tidak biasa dengan konsep perlu menyimpan ETH dalam dompet mereka untuk mendapatkan gas.
Ini juga merupakan kesakitan UX bagi pengguna sedia ada yang perlu terus menambah baki ETH mereka untuk membayar yuran gas walaupun mereka mempunyai token ERC-20 yang mencukupi dalam dompet mereka untuk membayar transaksi yang mereka perlukan.
Seni bina
Pelanggan: menandatangani & menghantar transaksi meta ke pelayan penyampai
Transaksi meta ialah nama yang menarik untuk idea mudah: pelayan geganti boleh menghantar transaksi pengguna dan membayar kos gas itu sendiri. Daripada menandatangani transaksi Ethereum, yang memerlukan ETH untuk gas, pengguna menandatangani mesej yang mengandungi maklumat tentang transaksi yang mereka ingin laksanakan dan menghantarnya ke pelayan geganti.
Pelayan geganti: menyerahkan transaksi dan membayar yuran gas protokol Ethereum untuk berbuat demikian
Setelah menerima permintaan untuk menyampaikan transaksi daripada pelanggan, pelayan Relay akan mengesahkan transaksi ini untuk memastikan ia membayar balik amaun ETH yang meliputi perbelanjaan menghantarnya dan beberapa bayaran tambahan untuk membolehkan penyampai memperoleh keuntungan.
Jika semuanya baik-baik saja, penyampai menandatangani transaksi Ethereum asli, menyerahkannya kepada mempool dan mengembalikan transaksi yang ditandatangani kepada pelanggan untuk pengesahan. Sekiranya berlaku sebarang masalah, pelanggan hanya boleh memilih pelayan geganti yang berbeza dan cuba menghantar transaksi melalui yang baharu.
Ini mewujudkan kesan “satu untuk semua dan semua untuk satu” di mana mengalih keluar bahagian hadapan mana-mana dapp adalah sama sukarnya dengan menghapuskan keseluruhan rangkaian. Lebih banyak dapps mengambil bahagian, lebih teguh jaminan ketersediaan.
Paymaster: bersetuju untuk membayar balik pelayan geganti untuk bayaran gas
Dalam GSN semua logik bayaran balik gas dilaksanakan di dalam kontrak Paymaster. Seorang jurubayar mengekalkan baki ETH dalam RelayHub dan boleh melaksanakan sebarang logik perniagaan untuk memutuskan sama ada untuk menerima atau menolak transaksi meta. Contohnya, hanya menerima urus niaga oleh pengguna yang disenarai putih, atau kepada kaedah kontrak yang diperlukan untuk pengguna yang menerima captcha, atau hanya urus niaga yang termasuk pembayaran balik dalam token kepada Jurubayar, dsb.
Forwarder: mengesahkan tandatangan penghantar dan tidak
Kontrak penerima maklum transaksi meta hanya bergantung pada kontrak penghantar kecil yang dipercayai untuk keselamatan mereka. Kontrak ini mengesahkan tandatangan dan bukan pengirim asal.
Kontrak penerima: melihat pengirim asal dan melaksanakan transaksi asal
Sebarang kaedah awam kontrak penerima boleh dilaksanakan melalui GSN.
Untuk menyokong transaksi meta, kontrak penerima mewarisi daripada kelas asas yang mudah dan menggantikan msg.sender
dengan _msgSender()
. Ia mengembalikan pengirim asal yang menandatangani permintaan transaksi meta.
Anda masih boleh membuat panggilan transaksi asli kepada kontrak ini. Kaedah ini _msgSender()
hanya akan kembali msg.sender
jika kontrak dipanggil terus.
RelayHub: menyelaraskan proses dengan cara yang tidak amanah
RelayHub menghubungkan pengguna yang menjalankan klien, pelayan geganti dan jurubayar supaya peserta tidak perlu mengetahui atau mempercayai satu sama lain.
Pembangun Dapp tidak perlu memahami atau mempercayai kerja dalaman RelayHub untuk disepadukan dengan GSN. Kontrak penerima tidak terdedah kepada potensi isu keselamatan dalam RelayHub.
Di bawah hud RelayHub membantu pelanggan menemui pelayan geganti pihak ketiga yang terbaik, menghalang pelayan geganti pihak ketiga daripada menapis urus niaga dan memastikan Paymasters membayar balik pelayan geganti untuk yuran gas serta yuran transaksi.
Reviews
There are no reviews yet.