Đăng lại từ tài khoản chính thức: yuppie cũ
Bài viết này tìm hiểu câu hỏi về cách Web2 chuyển đổi sang hệ sinh thái Web3 và nhận dạng đóng vai trò quan trọng như thế nào trong việc này.
Tôi nghĩ rằng Web3 sẽ ở đây trong một thời gian. Với Web3, ý tôi là các triết lý, khái niệm và công nghệ ưu tiên sự lựa chọn và quyền sở hữu của người dùng và có thể được sử dụng để xây dựng các dịch vụ phi tập trung. Chuỗi khối (ví dụ: Ethereum , Solana), mã thông báo, giao thức (ví dụ: IPFS, TheGraph, Lit), dịch vụ (ví dụ: ENS, Filecoin), dApps và khóa của người dùng tạo nên Web3 (tôi không liệt kê một danh sách nào ở đây đầy đủ).
Tôi không biết nó sẽ thành công như thế nào và tôi không nghĩ mọi thứ sẽ như ngày hôm nay. Nhưng tôi nghĩ rằng nó sẽ làm việc. Tôi tin rằng nó đã thành công trong một số cách.
Tôi cũng nghĩ rằng Web3 không phải là trang web "duy nhất" tồn tại. Nó sẽ cùng tồn tại với Web2, ít nhất là trong vài năm (thập kỷ). Tôi không phải là người duy nhất nghĩ như vậy.
Sau đó, có thể một mô hình khác sẽ xuất hiện. Là một nhà phát triển, đặc biệt là người xây dựng sản phẩm cho các nhà phát triển khác, tôi dành nhiều thời gian suy nghĩ về ý nghĩa của điều này. Tôi nghĩ sẽ rất vui nếu chia sẻ suy nghĩ của mình bằng văn bản.
Bài viết này chủ yếu dành cho:
Trong bài đăng này, tôi liên kết đến các tài liệu và khái niệm về Ethereum vì tôi quen thuộc nhất với những thứ này và nó là nền tảng dành cho nhà phát triển lớn nhất hiện nay. Những điều tương tự áp dụng cho nhiều chuỗi khác.
Các ứng dụng Web2 sử dụng kiến trúc Web3
Các ứng dụng Web2 có thể nâng cao trải nghiệm của người dùng thông qua các cấu trúc Web3.
——Shopify đang đi sâu vào "thương mại mã thông báo" để tùy chỉnh trải nghiệm mua sắm dựa trên NFT của người dùng. Đây là một bài viết rất rõ ràng, chuyên sâu về chủ đề này. Thương mại token hóa là một ý tưởng tuyệt vời. Những gì bạn có nói rất nhiều về những gì bạn thích. Việc tùy chỉnh trải nghiệm mua sắm dựa trên NFT của bạn mang lại cảm giác tự nhiên. (
https://help.shopify.com/en-US/manual/products/digital-service-product/nfts)
— Twitter và Stripe đang hợp tác để cho phép thanh toán bằng tiền điện tử, giúp người tạo nội dung dễ dàng được thanh toán bằng tiền điện tử. (
https://stripe.com/blog/expanding-global-payouts-with-crypto)
- Reddit đang xây dựng hệ thống điểm cộng đồng của mình trên blockchain. (
https://www.reddit.com/community-points/)
Đây là những nền tảng hướng tới người tiêu dùng lớn. Chúng không trở thành dApps, nhưng chúng đang tìm hiểu về Web 3.
Điều này có ý nghĩa gì đối với các nhà phát triển?
Các nhà phát triển sẽ cần tìm ra cách tích hợp thế giới Web2 và Web3. Chúng tôi đã bắt đầu thấy điều này diễn ra theo nhiều cách khác nhau, nhưng các công ty tạo ra các công cụ và cơ sở hạ tầng dành cho nhà phát triển đang khám phá và triển khai tích hợp Web3.
Stripe đang xây dựng cơ sở hạ tầng thanh toán Web3 (https://stripe.com/use-cases/crypto)
Auth0 đã công bố hỗ trợ đăng nhập Ethereum (https://auth0.com/blog/sign-in-with-ethereum-siwe-now-available-on-auth0/)
Google Cloud đang xây dựng nhóm Web3
Các mẫu: Các công ty lớn đã xây dựng cơ sở hạ tầng phát triển Web2 này hiện đang tạo các thành phần cho phép các nhà phát triển ứng dụng Web2 dễ dàng tích hợp với các khái niệm Web3 (NFT, tiền điện tử, ENS, v.v.) dApps).
Họ đang xây dựng cầu nối giữa thế giới Web2 và Web3. Cầu nối của họ là về việc cho phép các nhà phát triển Web2 tương tác với kết cấu Web3, đây là trọng tâm của bài đăng này.
Một khía cạnh khác của bắc cầu là cung cấp dữ liệu Web2 cho các nhà phát triển Web3. Nếu bài viết này khiến các nhà phát triển quan tâm, tôi có thể viết một bài đăng blog khác về nó.
Mô hình tin cậy của Web3
Ý tưởng của Web3 là phân quyền. Mỗi người dùng sở hữu dữ liệu của họ, mã thông báo $ của họ, v.v.
Mô hình tin cậy của Web3 dựa trên mật mã bất đối xứng, trong đó nguồn tin cậy là khóa riêng của người dùng.
Mặc dù có một số trường hợp sử dụng ủy quyền, người dùng thường sẽ không chọn bên thứ ba làm đại diện đáng tin cậy và ủy quyền sẽ là lựa chọn của người dùng.
Để tồn tại cầu nối giữa Web2 và Web3, niềm tin về quyền sở hữu địa chỉ người dùng phải chảy theo cả hai hướng.
Bản sắc là cấu trúc của cây cầu
Vào cuối ngày, trong ngữ cảnh của Web3, địa chỉ của người dùng là "danh tính" của họ. Điều này thể hiện họ là ai. Vì vậy, họ có thể có nhiều danh tính thuộc loại này hay loại khác, mỗi danh tính là một "danh tính" riêng biệt mà họ thể hiện trong các bối cảnh khác nhau.
Kết nối thế giới Web2 và Web3 có nghĩa là giải quyết các danh tính ở cả hai phía của cây cầu và cho phép các nhà phát triển dễ dàng xây dựng trên đó.
Tất nhiên, không nên thỏa hiệp các nguyên tắc của Web 3 khi xây dựng cầu nối. Chúng tôi có thể cần điều chỉnh giao thức nhận dạng Web3 (như OIDC:
https://openid.net/connect/, OAuth 2: https://oauth.net/2/) và các phương pháp làm việc tiêu chuẩn để thích ứng với nhu cầu và khái niệm của Web 3.
Mọi thứ bắt đầu với địa chỉ
Địa chỉ Web3 có khóa riêng và khóa chung được liên kết.
Số lượng địa chỉ đang tăng lên nhanh chóng:
Địa chỉ Ethereum (https://etherscan.io/chart/address)
Nhưng số lượng địa chỉ đang hoạt động tăng chậm hơn:
Địa chỉ Ethereum đang hoạt động https://etherscan.io/chart/active-address
Từ biểu đồ trên, chúng ta có thể suy ra rằng tỷ lệ người dùng internet tích cực sử dụng địa chỉ Ethereum là thấp. Metamask cho biết hai tháng trước rằng họ có 30 triệu người dùng hoạt động hàng tháng. Nhưng còn những người dùng không sở hữu địa chỉ thì sao?
Để Web3 đạt được sự chấp nhận lâu dài của người dùng đại chúng, phải có một con đường trải sẵn để người dùng đại chúng chấp nhận. Không phải ai cũng quan tâm đến thế giới tiền điện tử. Một phương pháp cho phép người dùng tiếp tục sử dụng các mẫu mà họ đã quen (đăng nhập bằng Facebook, Google, Twitter, v.v.) và chỉ nhận ra sau này khi họ muốn biết về chuỗi khối (và các khóa) là cực kỳ có giá trị.
Mặc dù số lượng địa chỉ đang tăng cực kỳ nhanh, nhưng một nhóm tương đối nhỏ gồm tất cả người dùng internet sở hữu khóa riêng tư của họ: bằng cách tạo các cặp khóa ngoại tuyến hoặc thông qua ví phần cứng. Hầu hết chúng tồn tại dưới dạng "ví lưu ký" và các khóa được quản lý bởi các tổ chức dịch vụ. Các sàn giao dịch tập trung như Binance hoặc Coinbase là những ví dụ phổ biến nhất.
Mặc dù điều này có thể không "thuần túy" từ góc độ Web3/phân cấp, nhưng nó rất tích cực. Nó mang một số ý tưởng của Web 3 đến với công chúng.
Từ góc độ nhà phát triển, kết nối thế giới Web2 và Web3 có nghĩa là dịch vụ lưu trữ phải liên kết địa chỉ chuỗi khối với tài khoản người dùng, quản lý khóa an toàn và cung cấp các biện pháp kiểm soát (ít nhất là cho các nhóm phát triển nội bộ khác) để quản lý tương tác Ví.
Các dịch vụ như magic.link, bitski và venly đang giúp Web2 kết nối với thế giới Web3, tạo các cặp khóa cho cơ chế đăng nhập Web2 điển hình, đồng thời cung cấp API và giao diện người dùng cho nhà phát triển để quản lý các khóa riêng tư này.
Sau khi người dùng kiểm soát khóa riêng tư, đây là lúc niềm vui bắt đầu :)
đăng nhập bằng khóa riêng của tôi
Chúng ta hãy xem một kịch bản tương đối đơn giản và xem nó hoạt động như thế nào trong các ứng dụng Web2 và Web3. người dùng:
Được công nhận trên một ứng dụng.
Thay đổi hình đại diện của họ thành {input A} và lưu lại.
Nhận ra rằng họ đã phạm sai lầm ở #2.
Thay đổi hình đại diện của họ thành {input B} và lưu lại.
Một ứng dụng Web3 (dApp) cho phép người dùng "kết nối" một trong các địa chỉ của họ. Hoạt động này về cơ bản cung cấp cho trình duyệt địa chỉ chuỗi khối của người dùng. Không có "phụ trợ" nào ngoài chuỗi khối và các dịch vụ phi tập trung khác. Thông thường, các hoạt động yêu cầu xác thực người dùng trên thành phần Web3 yêu cầu thông tin đã ký từ khóa riêng của người dùng.
Trường hợp cho Web 3
Với giao thức Web2, người dùng không cần phải thực hiện hành động để chứng minh danh tính của họ mỗi khi họ hoạt động. Người dùng thường chỉ cần đăng nhập một lần và ứng dụng khách/trình duyệt lưu trữ thông tin xác thực và gửi thông tin xác thực đó đến chương trình phụ trợ trong các yêu cầu tiếp theo, sử dụng thông tin xác thực đó để xác thực người dùng.
Trường hợp Web 2
Sơ đồ trên được đơn giản hóa quá mức vì lợi ích của điểm
Trải nghiệm người dùng của Web2 tốt hơn. Kết nối thế giới Web2 và thế giới Web3 yêu cầu duy trì trải nghiệm người dùng giống như Web2, chứng minh rằng người dùng kiểm soát khóa riêng và dự định thực hiện từng hành động cụ thể khi gọi chuỗi khối (hoặc bất kỳ dịch vụ gốc Web3 nào khác).
Làm cách nào để các nhà phát triển liên kết địa chỉ với tài khoản người dùng như một phần của ứng dụng Web2?
Các dịch vụ được đề cập trong phần trước đã liên kết khóa riêng với tài khoản người dùng. Nhưng còn những dịch vụ không có thì sao? Nếu người dùng sử dụng Metamask, Argent, Trezor hoặc bất kỳ loại ví nào khác thì sao?
Đây là vấn đề được giải quyết bằng đăng nhập Ethereum (
https://eips.ethereum.org/EIPS/eip-4361). Nó cho phép người dùng thiết lập một phiên (theo nghĩa Web2) với một dịch vụ, sử dụng khóa riêng của họ làm chứng chỉ chứng minh quyền sở hữu địa chỉ.
Nguồn hình ảnh: https://auth0.com/blog/sign-in-with-ethereum-siwe-now-available-on-auth0/
Nếu điều này nghe có vẻ thú vị, bạn nên theo dõi @signinwitheth và @SpruceID.
Và một khi ứng dụng Web2 biết rằng địa chỉ chuỗi khối của người dùng là có thật, nó sẽ mở ra một thế giới khả năng.
trường hợp sử dụng tiềm năng
Khi danh tính Web3 của người dùng được biết, các nhà phát triển Web2 sẽ tự nhiên muốn tiến xa hơn. Điều này có nghĩa là:
Đọc/ghi dữ liệu có sẵn công khai liên quan đến địa chỉ (chẳng hạn như dữ liệu trên chuỗi) và sử dụng dữ liệu đó cho logic kinh doanh. Chúng tôi gọi đây là "các thao tác không yêu cầu xác thực người dùng".
Đọc/ghi dữ liệu yêu cầu xác thực (chẳng hạn như video riêng tư của người dùng được lưu trữ trong kho lưu trữ phi tập trung hoặc thực hiện các giao dịch trực tuyến). Hãy gọi đây là "các thao tác yêu cầu xác thực người dùng".
Hãy xem xét từng chi tiết để hiểu cách thức hoạt động của nó.
Các hoạt động không yêu cầu xác thực người dùng
Đây là trường hợp đơn giản nhất. Các nhà phát triển sẽ có thể gọi bất kỳ API nào yêu cầu địa chỉ và không yêu cầu xác thực. Một số trường hợp sử dụng xuất hiện trong tâm trí là:
Đọc ENS (https://ens.domains/) hoặc Miền không thể ngăn chặn (https://unstoppabledomains.com/) để biết dữ liệu hồ sơ và hiển thị dữ liệu đó, đây sẽ là "Cấu hình và tên người dùng công khai toàn cầu" nếu người dùng chọn có nó File Picture" mở ra khả năng.
Kiểm soát truy cập mã thông báo đạt được bằng cách lấy POAP của người dùng và hạn chế quyền truy cập vào tài nguyên dựa trên các POAP này (https://poap.xyz/).
Chuyển tài sản đến địa chỉ trên chuỗi của người dùng.
Bước tiếp theo, nếu họ trở thành chủ đạo, hãy sử dụng một dịch vụ như Proof of Humanity để tránh tài khoản người dùng giả mạo.
Lưu ý rằng có nhiều cách khác để đạt được một số mục tiêu này bằng chứng chỉ có thể kiểm chứng kỹ thuật số và những cách này không yêu cầu dữ liệu công khai. Nhưng đó là một câu chuyện cho một bài báo khác ...
Các hoạt động yêu cầu xác thực người dùng
Ồ, mọi thứ bắt đầu trở nên phức tạp rồi :) Tất cả chúng ta đã quen với những cuộc đối thoại như thế này.
Nếu bạn muốn ứng dụng Web2 truy cập dữ liệu Gmail của mình, bạn đăng nhập bằng Google và nhận được hộp thoại đồng ý với các tài nguyên trong tài khoản mà bạn muốn ứng dụng Web2 truy cập.
Điều này nên hoạt động như thế nào đối với các dịch vụ Web 3? Nếu ứng dụng Web2 của bạn muốn đọc dữ liệu tồn tại trong hai dịch vụ Web3 khác nhau.
Bạn có nên "đăng nhập" tất cả chúng cùng một lúc không?
Hay chỉ đồng ý cấp quyền ứng dụng cho cả hai?
Trải nghiệm người dùng như thế nào trong mỗi trường hợp?
Trong ngữ cảnh của ứng dụng Web2, mã thông báo do máy chủ xác thực cấp (Google trong ví dụ trước) được sử dụng để truy cập API của Gmail (Gmail là "máy chủ tài nguyên"). Ứng dụng web 2 gửi mã thông báo này khi thay mặt người dùng thực hiện nhiều cuộc gọi tới API. Điều này nên hoạt động như thế nào trong trường hợp dịch vụ Web3?
Người dùng có nên ký thỏa thuận cho mọi tương tác với dịch vụ Web3 không? Đó không phải là trải nghiệm người dùng tốt nhất ...
Họ có nên ủy quyền cho ứng dụng không? Làm thế nào để ủy thác?
Làm thế nào để các dịch vụ Web3 cần phù hợp với các tình huống ủy quyền này?
Các nhà phát triển tại Spruce đã bắt đầu suy nghĩ về cách giải quyết thách thức này. Tôi nghĩ đó là một bước tiến tích cực. Chúng ta cần hiểu các trường hợp sử dụng và các tình huống trong thế giới thực để khái quát hóa các trường hợp này thành các mẫu/nguyên tắc có thể lặp lại cho tất cả các nhà phát triển.
Tôi nghĩ đó là một phần lớn của thách thức trong tương lai.
tóm tắt
Tôi muốn biết bạn nghĩ gì về điều này vì tôi đang tích cực suy nghĩ và cố gắng tìm ra nội dung này. Là một phần công việc của nhóm tôi tại Auth0Lab, chúng tôi đang khám phá cách có thể kết nối thế giới Web2 và Web3, không chỉ trong ngữ cảnh của một ứng dụng mà còn trong ngữ cảnh cung cấp công cụ cho tất cả các nhà phát triển.