Diposting ulang dari akun resmi: yuppie tua
Artikel ini mengeksplorasi pertanyaan tentang bagaimana transisi Web2 ke dalam ekosistem Web3, dan bagaimana identitas memainkan peran penting dalam hal ini.
Saya pikir Web3 ada di sini untuk sementara waktu. Yang saya maksud dengan Web3 adalah filosofi, konsep, dan teknologi yang memprioritaskan pilihan dan kepemilikan pengguna dan dapat digunakan untuk membangun layanan terdesentralisasi. Blockchain (mis. Ethereum , Solana), token, protokol (mis. IPFS, TheGraph, Lit), layanan (mis. ENS, Filecoin), dApps, dan kunci pengguna membentuk Web3 (saya tidak mencantumkan satu pun daftar lengkap di sini).
Saya tidak tahu seberapa suksesnya itu, dan saya rasa tidak akan ada yang terjadi hari ini. Tapi saya pikir itu akan berhasil. Saya percaya itu telah berhasil dalam beberapa hal.
Saya juga berpikir bahwa Web3 bukanlah web "satu-satunya" yang ada. Itu akan hidup berdampingan dengan Web2, setidaknya selama beberapa tahun (puluhan tahun). Saya bukan satu-satunya yang berpikir demikian.
Setelah itu, mungkin akan muncul paradigma lain. Sebagai pengembang, terutama yang membuat produk untuk pengembang lain, saya menghabiskan banyak waktu untuk memikirkan apa artinya ini. Saya pikir mungkin menyenangkan untuk membagikan pemikiran saya secara tertulis.
Artikel ini terutama untuk:
Dalam posting ini, saya menautkan ke dokumentasi dan konsep Ethereum karena saya paling mengenalnya dan ini adalah platform pengembang terbesar saat ini. Hal serupa berlaku untuk banyak rantai lainnya.
Aplikasi Web2 menggunakan arsitektur Web3
Aplikasi Web2 dapat meningkatkan pengalaman pengguna melalui konstruksi Web3.
——Shopify terjun ke "perdagangan tokenengated" untuk menyesuaikan pengalaman berbelanja berdasarkan NFT pengguna. Inilah artikel yang sangat jelas dan mendalam tentang masalah ini. Tokenisasi perdagangan adalah ide yang bagus. Apa yang Anda miliki mengatakan banyak tentang apa yang Anda sukai. Menyesuaikan pengalaman berbelanja berdasarkan NFT Anda terasa alami. (
https://help.shopify.com/en-US/manual/products/digital-service-product/nfts)
— Twitter dan Stripe bekerja sama untuk memungkinkan pembayaran mata uang kripto, memudahkan pembuat konten untuk menerima pembayaran dalam mata uang kripto. (
https://stripe.com/blog/expanding-global-payouts-with-crypto)
- Reddit sedang membangun sistem poin komunitasnya di atas blockchain. (
https://www.reddit.com/community-points/)
Ini adalah platform besar yang menghadap konsumen. Mereka tidak menjadi dApps, tetapi mereka berkecimpung di Web 3.
Apa artinya ini bagi pengembang?
Pengembang perlu mencari cara untuk mengintegrasikan dunia Web2 dan Web3. Kami sudah mulai melihat ini dimainkan dengan cara yang berbeda, tetapi perusahaan yang membuat alat dan infrastruktur pengembang sedang mengeksplorasi dan menerapkan integrasi Web3.
Stripe sedang membangun infrastruktur pembayaran Web3 (https://stripe.com/use-cases/crypto)
Auth0 mengumumkan dukungan untuk login Ethereum (https://auth0.com/blog/sign-in-with-ethereum-siwe-now-available-on-auth0/)
Google Cloud sedang membangun tim Web3
Pola: Perusahaan besar yang membangun infrastruktur pengembangan Web2 ini sekarang membuat komponen yang memungkinkan pengembang aplikasi Web2 dengan mudah berintegrasi dengan konsep Web3 (NFT, cryptocurrency, ENS, dll.) dApps).
Mereka membangun jembatan antara dunia Web2 dan Web3. Jembatan mereka adalah tentang memungkinkan pengembang Web2 untuk berinteraksi dengan struktur Web3, yang merupakan fokus dari posting ini.
Aspek lain dari menjembatani adalah membuat data Web2 tersedia untuk pengembang Web3. Jika artikel ini membuat pengembang tertarik, saya mungkin akan menulis posting blog lain tentangnya.
Model Kepercayaan Web3
Gagasan Web3 adalah desentralisasi. Setiap pengguna memiliki data mereka, $token mereka, dll.
Model kepercayaan Web3 bergantung pada kriptografi asimetris, di mana sumber kepercayaan adalah kunci pribadi pengguna.
Meskipun ada beberapa kasus penggunaan untuk pendelegasian, pengguna biasanya tidak akan memilih pihak ketiga sebagai perwakilan tepercaya, dan pendelegasian akan menjadi pilihan pengguna.
Untuk menjembatani antara Web2 dan Web3 ada, kepercayaan mengenai kepemilikan alamat pengguna harus mengalir di kedua arah.
Identitas adalah struktur jembatan
Pada akhirnya, dalam konteks Web3, alamat pengguna adalah "identitas" mereka. Ini mewakili siapa mereka. Jadi, mereka mungkin memiliki banyak identitas dari satu jenis atau lainnya, masing-masing merupakan "identitas" terpisah yang mereka tampilkan dalam konteks yang berbeda.
Menjembatani dunia Web2 dan Web3 berarti menyelesaikan identitas di kedua sisi jembatan dan memungkinkan pengembang untuk dengan mudah membangun di atasnya.
Tentu saja, prinsip Web 3 tidak boleh dikompromikan saat membangun jembatan. Kami mungkin perlu menyesuaikan protokol identitas Web3 (seperti OIDC:
https://openid.net/connect/, OAuth 2: https://oauth.net/2/) dan metode kerja standar untuk menyesuaikan dengan kebutuhan dan konsep Web 3.
Semuanya dimulai dengan alamat
Alamat Web3 memiliki kunci pribadi dan publik terkait.
Jumlah alamat berkembang pesat:
Alamat Ethereum (https://etherscan.io/chart/address)
Tetapi jumlah alamat aktif tumbuh lebih lambat:
Alamat Ethereum aktif https://etherscan.io/chart/active-address
Dari grafik di atas, kita dapat menyimpulkan bahwa persentase pengguna internet yang secara aktif menggunakan alamat Ethereum tergolong rendah. Metamask mengatakan dua bulan lalu bahwa mereka memiliki 30 juta pengguna aktif bulanan. Tapi bagaimana dengan pengguna yang tidak memiliki alamat?
Agar Web3 dapat mencapai adopsi massal pengguna jangka panjang, harus ada jalan beraspal untuk adopsi pengguna massal. Tidak semua orang tertarik dengan dunia crypto. Sebuah metode yang memungkinkan pengguna untuk terus menggunakan pola yang biasa mereka gunakan (login dengan Facebook, Google, Twitter, dll.) dan baru menyadari kemudian ketika mereka ingin tahu tentang blockchain (dan kunci) sangatlah berharga.
Sementara jumlah alamat tumbuh sangat cepat, sekelompok kecil pengguna internet memiliki kunci pribadi mereka: baik dengan membuat pasangan kunci secara offline, atau melalui dompet perangkat keras. Sebagian besar ada dalam bentuk "dompet kustodian", dan kuncinya dikelola oleh organisasi layanan. Pertukaran terpusat seperti Binance atau Coinbase adalah contoh yang paling umum.
Meskipun ini mungkin tidak "murni" dari perspektif Web3/desentralisasi, ini sangat positif. Ini membawa beberapa ide Web 3 ke massa.
Dari perspektif pengembang, menjembatani dunia Web2 dan Web3 berarti layanan hosting harus mengaitkan alamat blockchain dengan akun pengguna, mengelola kunci dengan aman, dan memberikan kontrol (setidaknya ke tim pengembangan internal lainnya) untuk mengelola interaksi Wallet.
Layanan seperti magic.link, bitski, dan venly membantu Web2 terhubung ke dunia Web3, membuat pasangan kunci untuk mekanisme login Web2 biasa, dan menyediakan API dan UI bagi pengembang untuk mengelola kunci pribadi ini.
Setelah pengguna mengontrol kunci pribadi, di sinilah kesenangan dimulai :)
masuk dengan kunci pribadi saya
Mari kita lihat skenario yang relatif sederhana dan lihat cara kerjanya di aplikasi Web2 dan Web3. pengguna:
Diakui di satu aplikasi.
Ubah avatar mereka menjadi {input A} dan simpan.
Menyadari mereka membuat kesalahan di #2.
Ubah avatar mereka menjadi {input B} dan simpan.
Aplikasi Web3 (dApp) memungkinkan pengguna untuk "menghubungkan" salah satu alamat mereka. Operasi ini pada dasarnya menyediakan browser dengan alamat blockchain pengguna. Tidak ada "backend" selain blockchain dan layanan terdesentralisasi lainnya. Biasanya, operasi yang memerlukan autentikasi pengguna pada komponen Web3 memerlukan informasi yang ditandatangani dari kunci privat pengguna.
Kasus untuk Web 3
Dengan protokol Web2, pengguna tidak perlu mengambil tindakan untuk membuktikan identitas mereka setiap kali beroperasi. Pengguna biasanya hanya perlu masuk sekali, dan klien/browser menyimpan kredensial dan mengirimkannya ke backend pada permintaan berikutnya, yang menggunakannya untuk mengautentikasi pengguna.
Kasus Web 2
Diagram di atas terlalu disederhanakan demi poin
Pengalaman pengguna Web2 lebih baik. Menjembatani dunia Web2 dan dunia Web3 memerlukan pemeliharaan pengalaman pengguna seperti Web2, membuktikan bahwa pengguna mengontrol kunci pribadi dan bermaksud untuk melakukan setiap tindakan tertentu saat memanggil blockchain (atau layanan asli Web3 lainnya).
Bagaimana pengembang mengasosiasikan alamat dengan akun pengguna sebagai bagian dari aplikasi Web2?
Layanan yang disebutkan di bagian sebelumnya sudah mengaitkan kunci privat dengan akun pengguna. Tapi bagaimana dengan layanan yang tidak? Bagaimana jika pengguna menggunakan Metamask, Argent, Trezor, atau jenis dompet lainnya?
Ini adalah masalah yang diselesaikan dengan login Ethereum (
https://eips.ethereum.org/EIPS/eip-4361). Ini memungkinkan pengguna untuk membuat sesi (dalam pengertian Web2) dengan layanan, menggunakan kunci pribadi mereka sebagai kredensial yang membuktikan kepemilikan alamat.
Sumber gambar: https://auth0.com/blog/sign-in-with-ethereum-siwe-now-available-on-auth0/
Jika ini terdengar menarik, Anda harus mengikuti @signinwitheth dan @SpruceID.
Dan begitu aplikasi Web2 mengetahui bahwa alamat blockchain pengguna adalah fakta, itu membuka banyak kemungkinan.
kasus penggunaan potensial
Setelah identitas Web3 pengguna diketahui, pengembang Web2 secara alami ingin melangkah lebih jauh. Ini berarti:
Baca/tulis data yang tersedia untuk umum terkait alamat (seperti data on-chain) dan gunakan untuk logika bisnis. Kami menyebutnya sebagai "operasi yang tidak memerlukan autentikasi pengguna".
Baca/tulis data yang memerlukan autentikasi (seperti video pribadi pengguna yang disimpan di penyimpanan terdesentralisasi atau melakukan transaksi on-chain). Sebut saja ini "operasi yang memerlukan otentikasi pengguna".
Mari kita lihat masing-masing secara mendetail untuk memahami cara kerjanya.
Operasi yang tidak memerlukan autentikasi pengguna
Ini adalah kasus paling sederhana. Pengembang akan dapat memanggil API apa pun yang memerlukan alamat dan tidak memerlukan autentikasi. Beberapa kasus penggunaan yang muncul di pikiran adalah:
Membaca ENS (https://ens.domains/) atau Unstoppable Domains (https://unstoppabledomains.com/) untuk data profil dan menampilkannya, yang akan menjadi "Nama Pengguna dan Konfigurasi Publik Global" jika pengguna memilih untuk memilikinya Gambar File" membuka kemungkinan.
Kontrol akses token dicapai dengan mendapatkan POAP pengguna dan membatasi akses ke sumber daya berdasarkan POAP ini (https://poap.xyz/).
Mentransfer aset ke alamat on-chain pengguna.
Langkah selanjutnya, jika mereka menjadi mainstream, gunakan layanan seperti Proof of Humanity untuk menghindari akun pengguna palsu.
Perhatikan bahwa ada cara lain untuk mencapai beberapa tujuan ini dengan sertifikat yang dapat diverifikasi secara digital, dan ini tidak memerlukan data publik. Tapi itu cerita untuk artikel lain ...
Operasi yang membutuhkan autentikasi pengguna
Oh, segalanya mulai menjadi rumit :) Kita semua terbiasa dengan dialog seperti ini.
Jika Anda ingin aplikasi Web2 mengakses data Gmail Anda, Anda masuk dengan Google dan mendapatkan dialog untuk menyetujui sumber daya di akun yang Anda inginkan untuk diakses oleh aplikasi Web2.
Bagaimana seharusnya ini beroperasi untuk layanan Web 3? Jika aplikasi Web2 Anda ingin membaca data yang ada di dua layanan Web3 berbeda.
Haruskah Anda "masuk" semuanya sekaligus?
Atau hanya setuju untuk memberikan izin aplikasi kepada keduanya?
Seperti apa pengalaman pengguna dalam setiap kasus?
Dalam konteks aplikasi Web2, token yang dikeluarkan oleh server autentikasi (Google pada contoh sebelumnya) digunakan untuk mengakses API Gmail (Gmail adalah "server sumber daya"). Aplikasi web 2 mengirimkan token ini saat melakukan banyak panggilan ke API atas nama pengguna. Bagaimana seharusnya ini beroperasi dalam kasus layanan Web3?
Haruskah pengguna menandatangani perjanjian untuk setiap interaksi dengan layanan Web3? Ini bukan pengalaman pengguna terbaik...
Haruskah mereka mendelegasikan izin ke aplikasi? Bagaimana cara mempercayakan?
Bagaimana layanan Web3 harus sesuai dengan situasi otorisasi ini?
Pengembang di Spruce sudah mulai memikirkan cara mengatasi tantangan ini. Saya pikir ini adalah langkah maju yang positif. Kita perlu memahami kasus penggunaan dan skenario dunia nyata untuk menggeneralisasikan kasus ini menjadi pola/pedoman yang dapat diulang untuk semua developer.
Saya pikir itu adalah bagian besar dari tantangan ke depan.
Meringkaskan
Saya tertarik untuk mengetahui pendapat Anda tentang hal ini karena saya secara aktif berpikir dan mencoba memikirkan hal ini. Sebagai bagian dari pekerjaan tim saya di Auth0Lab, kami mengeksplorasi bagaimana kami dapat menjembatani dunia Web2 dan Web3, tidak hanya dalam konteks satu aplikasi, tetapi dalam konteks menyediakan alat untuk semua pengembang.