Web3 mang lại tiềm năng to lớn làm cho Internet trở nên có giá trị, hấp dẫn và cởi mở hơn. Bây giờ mọi người đều có quyền truy cập để học hỏi và phát triển. Tuy nhiên, nếu người dùng muốn tương tác với giao thức DeFi hoặc tìm hiểu sâu về siêu dữ liệu thông qua trò chơi blockchain, thì xác thực Web3 là điều cần thiết. Hãy cùng Omatech Team thảo luận về cách xác thực và cấp quyền với ví Web3 qua bài viết này nhé!

Các ứng dụng Web3 rất có thể gặp lỗi nếu chúng không có khả năng đăng nhập người dùng vào chuỗi khối. Vì vậy, để triển khai thành công các ứng dụng web3 hoặc dApps thế hệ tiếp theo bằng cách sử dụng chuỗi khối, ứng dụng có thể sử dụng xác thực web3. Web3 cho phép người dùng xem trình duyệt của họ không chỉ đơn thuần là một trình duyệt web. Bao gồm các công cụ DeFi như ví có thể cung cấp nhận dạng người dùng mạnh mẽ cho các ứng dụng web. Web3 cho phép người dùng sử dụng mã hóa khóa công khai và ví blockchain để xác định người dùng, không giống như các dịch vụ tập trung theo dõi và thu thập thông tin cá nhân của người dùng. Người dùng có thể chọn liên kết danh tính của họ với địa chỉ bằng các giao thức như IDX và ENS hoặc có nhiều địa chỉ để phù hợp với các loại ứng dụng hoặc trường hợp sử dụng khác nhau. Để chứng minh quyền sở hữu địa chỉ có thể sử dụng chữ ký mật mã. Những chữ ký này có thể được sử dụng để ký các giao dịch với chuỗi khối và giải mã thông báo trên thư viện web3 như web3.js và ethers.js. Kỹ thuật này cho phép chúng tôi thực hiện xác thực và ủy quyền web3 chỉ trong một vài dòng mã.
Web3 là gì
Phiên bản web1.0 là khởi đầu của đổi mới công nghệ. Web2 là một bước tiến gần hơn đến một mạng internet thân thiện với người dùng hơn. Tuy nhiên, web2 đã trao cho một số ít nhà tư bản quyền kiểm soát dữ liệu và thông tin. Điều này dẫn đến sự phụ thuộc gia tăng và tiềm năng hạn chế của internet. Sau Web2, Web3 đã được đổi mới dựa trên khái niệm về một mạng internet phi tập trung, nơi quyền lực không thuộc về một số người hoặc tổ chức. Cơ sở hạ tầng cốt lõi của Web3 được xây dựng trên công nghệ chuỗi khối, cung cấp cho người dùng tính bảo mật, tính minh bạch và tính bất biến vô song. Nó là một mạng gồm nhiều nút ngang hàng hoạt động độc lập từ mọi nơi trên thế giới. Các chuyên gia công nghệ tin rằng internet phi tập trung sẽ thay đổi cách thế giới hoạt động. Nó sẽ biến đổi các tổ chức, tiền bạc và internet. Điều này sẽ tạo ra một cơ sở hạ tầng dân chủ tự do. Vì vậy, sự hiểu biết về blockchain là cần thiết để hiểu rõ hơn về công nghệ web3. Web3 dựa trên nền tảng chuỗi khối, tiền điện tử và mã thông báo không thể thay thế. Điều này cho phép mọi người lấy lại quyền sở hữu. Hơn nữa, web3 là về đọc, viết và sở hữu.

Tính năng nổi bật của công nghệ web3 là:
- It is decentralized
- Permissionless
- Uses cryptocurrency
- Trustless
- Secured and reliable
Tại sao cần xác thực web3?
Xác thực Web3 nghe có vẻ lạnhưng trên thực tế, nó là một công cụ đăng nhập. Các trang web Web2 sử dụng email và mật khẩu để xác thực người dùng, nhưng các ứng dụng web3 sử dụng địa chỉ tiền điện tử. Các trang web, ứng dụng và dịch vụ khác của Web3 chạy trên các chuỗi khối cụ thể. Người dùng phải có cách kết nối với các mạng tiền điện tử này một cách an toàn. Xác thực Web3 cho phép người dùng kết nối với một mạng cụ thể. Sau khi xác thực, người dùng được phép kết nối với mạng và tương tác với người dùng đã xác thực. Vì vậy, xác thực này là bắt buộc đối với mọi web3 dApp.
Dưới đây là một số lý do xác thực web3 tốt hơn email/mật khẩu hoặc đăng nhập mạng xã hội.
- Tăng cường bảo mật – Chứng minh quyền sở hữu bằng mã hóa khóa công khai an toàn hơn bằng chứng quyền sở hữu qua email, mật khẩu hoặc bên thứ ba. Ví Web3 hoặc các công cụ ủy quyền có thể lưu trữ thông tin đăng nhập cục bộ trên thiết bị thay vì trên máy chủ. Điều này làm cho bề mặt tấn công nhỏ hơn.
- Tăng cường quyền riêng tư – Không cần email và không có bên thứ ba nào tham gia.
- Giao diện người dùng được đơn giản hóa – Đó là quy trình đăng nhập mà người dùng có thể thực hiện chỉ bằng một cú nhấp chuột trong vòng vài giây. Họ không cần phải nhớ hoặc viết bất kỳ mật khẩu nào.
Luồng ủy quyền sử dụng xác thực web3 hoàn toàn tương thích với các phương thức đăng nhập truyền thống. Ngoài ra, việc ánh xạ phải được thực hiện giữa địa chỉ công khai của mỗi tài khoản và luồng ủy quyền xác thực web3. Tuy nhiên, luồng ủy quyền này có thể không phải là một lựa chọn tốt cho tất cả mọi người. Bởi vì để thực hiện xác thực –
- Người dùng phải có ứng dụng xác thực – Luồng ủy quyền này không hoạt động nếu không có ứng dụng ủy quyền web3 như MetaMask. Ứng dụng này không dễ để người dùng tải xuống và có thể rất tốn kém để phát triển.
- Phần back-end cần hoạt động – Mặc dù việc triển khai xác thực web3 rất đơn giản, nhưng nó sẽ yêu cầu một số sửa đổi trong tất cả các lĩnh vực xác thực, bao gồm đăng ký, tuyến xác thực, cơ sở dữ liệu, v.v.
Mật mã để bảo vệ người dùng và mạng blockchain phức tạp hơn. Ngoài ra, đăng nhập thủ công sẽ liên quan đến việc xử lý các cặp khóa công khai, có thể khó sử dụng. May mắn thay, nhiều ví tiền điện tử nóng đáng tin cậy có sẵn trong tiện ích mở rộng trình duyệt hoặc ứng dụng dành cho thiết bị di động. Những ví này cũng có thể được sử dụng để lưu trữ và quản lý tiền điện tử.
Ví Web3 là gì?
Ví Web3 đang thiết lập một tiêu chuẩn mới trong ngành internet bằng cách giới thiệu cách sáng tạo để quản lý và kiếm tiền từ nội dung, tài sản và danh tính. Ví Web3 cho phép người dùng sử dụng phần cứng hoặc phần mềm để truy cập tiền mặt nhưng cũng để kết nối với các ứng dụng phi tập trung, thu thập NFT và xây dựng trên chuỗi. Chúng linh hoạt hơn nhiều so với ví truyền thống. Mặc dù ví không chứa tiền điện tử, nhưng chúng có thông tin để truy cập tiền kỹ thuật số.
Ví tiền điện tử được tạo thành từ ba thành phần:
- Khóa công khai – Đây là địa chỉ mà giao dịch có thể được gửi đến và nhận. Đây giống như một địa chỉ email.
- Khóa cá nhân – Khóa này phải được giữ bí mật. Khóa này cho phép người dùng truy cập tiền và có thể được sử dụng cho các giao dịch mới. Điều này được sử dụng làm chữ ký người dùng trong một giao dịch.
- Cụm từ giống – Đây là cụm từ được sử dụng để tạo nhiều khóa riêng tư. Mã này đóng vai trò là mã gốc của ví, cấp quyền truy cập vào tất cả các khóa và địa chỉ. Điều này cũng có thể được sử dụng để tạo khóa riêng mới.
Có nhiều loại ví có sẵn trong miền web3. Mỗi cái đều có ưu điểm và có thể hữu ích tùy thuộc vào cách người dùng quản lý tài chính và dữ liệu của họ. Người dùng nên thử nghiệm để tìm ví tốt nhất cho họ.
Các loại ví web3
Có hai loại ví web3 – Ví nóng và Ví lạnh. Mỗi ví có nhiều thành phần phụ.
Ví nóng
Có thể được lưu trữ trên thiết bị có kết nối mạng internet và tiền điện tử; đó là lý do tại sao ví nóng còn được gọi là ví phần mềm. Bởi vì họ có thể lưu trữ, truyền và nhận mã thông báo. Chúng linh hoạt hơn các loại ví khác. Ví nóng là ví web3 phổ biến nhất. Tuy nhiên, ví nóng có thể bị hack dễ dàng hơn ví lạnh vì chúng được kết nối với internet. Dưới đây là một số ví dụ về ví nóng:
Có thể tải ví máy tính để bàn xuống máy tính để bàn hoặc máy tính xách tay. Điều này có nghĩa là ví có thể được cài đặt cục bộ và chạy trên máy tính. Đây là hình thức ví nóng an toàn nhất.
Có thể cài đặt ví dựa trên web trên máy chủ hoặc PC của bên thứ ba. Nó cho phép tương tác thông qua một giao diện web. Không cần thiết phải tải xuống hoặc cài đặt bất cứ thứ gì trên thiết bị. Nó sử dụng cùng một trình khám phá khối và chuỗi khối để tìm kiếm các giao dịch và khối, đồng thời có các khả năng giống như ví máy tính để bàn.
Ví di động/ví di động tương tự như ví máy tính để bàn và hoạt động tương tự nhưng được dự định là ứng dụng di động dành cho điện thoại thông minh. Người tiêu dùng có quyền truy cập ngay vào tiền của họ. Ví di động đơn giản hơn các chương trình máy tính để bàn do không gian hạn chế và nhu cầu đơn giản.
Ví lạnh
Ví lạnh an toàn hơn ví nóng. Bởi vì các khóa có thể được lưu ngoại tuyến trên phương tiện vật lý. Chiến lược này cải thiện khả năng chống hacker đối với ví lạnh (hay còn gọi là kho lạnh). Chiến lược này đặc biệt có lợi cho các nhà đầu tư dài hạn. Dưới đây là một vài ví dụ về ví lạnh.
Ví phần cứng
Ví phần cứng có thể được mô tả là thiết bị điện hữu hình trông giống như thiết bị USB. Họ tạo khóa riêng và khóa chung bằng Trình tạo số ngẫu nhiên (RNG). Bởi vì nó có thể lưu trữ cả khóa riêng tư và khóa chung, đây được coi là một trong những tùy chọn tốt nhất vì nó lưu trữ khóa mà không cần kết nối internet. Ví phần cứng được sử dụng để lưu trữ lạnh, giúp tăng tính bảo mật và bảo vệ người tiêu dùng khỏi tin tặc. Ví phần cứng phù hợp hơn cho việc lưu trữ và đầu tư dài hạn vì chúng khó truy cập hơn. Nó cung cấp mức độ bảo vệ cao cho số tiền lớn không dành cho mục đích sử dụng thường xuyên.
Ví giấy
Ví giấy là một tờ giấy hữu hình trên đó ghi khóa riêng tư và địa chỉ chuỗi khối. Các phím này có thể được in bằng mã QR. Bất kỳ ai cũng có thể quét mã QR để quyên góp tiền. Ví giấy không còn được sử dụng và thường không được khuyến khích do những sai sót cố hữu của chúng. Ví giấy không thể chuyển tiền theo từng phần và chỉ có thể gửi toàn bộ số tiền cùng một lúc.
Làm cách nào để thực hiện xác thực và ủy quyền trong web3 bằng ví?
Ví web3 có thể được sử dụng để xác thực giao dịch web3. Một số giải pháp đáng tin cậy nhất là MetaMask, WalletConnect, Web3Auth và Formatic. Mỗi tùy chọn cung cấp trải nghiệm người dùng tuyệt vời. MetaMask, WalletConnect và Formatic hoàn hảo cho người dùng tiền điện tử gốc, trong khi Web3Auth và Formatic dễ tiếp cận hơn đối với tất cả người dùng. MetaMask có lẽ là giải pháp tốt nhất cho người dùng trực tuyến, trong khi WalletConnect là giải pháp bắt buộc đối với người dùng di động. Chúng tôi sẽ coi MetaMask là một giải pháp ví ở đây, vì vậy cần phải biết tổng quan về MetaMask trước khi mô tả các bước kỹ thuật xác thực web3 thông qua nó.
MetaMask là một tiện ích mở rộng của trình duyệt hoạt động như một ứng dụng và ví tiền điện tử. Nó là một cổng vào chuỗi khối và phần mở rộng trình duyệt. Có thể tải xuống và cài đặt MetaMask dưới dạng tiện ích mở rộng trình duyệt. MetaMask cho phép người dùng quản lý khóa riêng kiểm soát địa chỉ Ethereum và tạo điều kiện thuận lợi cho các giao dịch với các ứng dụng chuỗi khối. MetaMask bao gồm mạng Ethereum và các testnet Ethereum phổ biến nhất theo mặc định. Vì vậy, thật dễ dàng để thêm các mạng tương thích với EVM. Đăng nhập bằng MetaMask rất nhanh chóng và thuận tiện, vì vậy đây là lựa chọn thích hợp hơn để xác thực trong web3. Ngoài ra, MetaMask giúp tạo dApps dễ dàng hơn nhiều.
Xác thực ví tăng cường bảo mật ứng dụng bằng cách loại bỏ các hoạt động quản lý mật khẩu rủi ro và giảm chi phí quản lý mật khẩu trong DB. Khi chúng tôi kết nối với ví, chúng tôi sẽ nhận được khóa công khai/địa chỉ công khai/địa chỉ ví mà chúng tôi có thể sử dụng để lập bản đồ và quản lý dữ liệu của người dùng.
Sơ đồ trình tự sau đây có thể giúp hiểu rõ hơn về quy trình.

Điều kiện tiên quyết
Đầu tiên, người dùng cần cài đặt ví web3 và kết nối với ví.
Ví dụ: nếu người dùng đang sử dụng ví MetaMask, thì trước tiên, họ cần cài đặt ví này từ trang web MetaMask vào trình duyệt. Điều này sẽ cung cấp một địa chỉ Ethereum duy nhất mà người dùng có thể sử dụng để gửi và nhận ether hoặc mã thông báo.
Để xác minh xem trình duyệt có đang chạy MetaMask hay không, hãy sao chép và dán đoạn mã bên dưới vào bảng điều khiển dành cho nhà phát triển của trình duyệt web:

Dưới đây là các bước thực hiện để xác thực web3 bằng ví web3.
1. Kết nối ví từ đầu máy khách và lấy địa chỉ công khai/khóa công khai/địa chỉ ví (chúng ta có thể lấy địa chỉ này bằng cách sử dụng web3 hoặc thư viện ether).

2. Gửi địa chỉ công khai cho phía máy chủ.
3. Tìm người dùng trong DB dựa trên địa chỉ công cộng. Nếu người dùng không tồn tại, hãy tạo một người dùng mới.
4. Bây giờ, hãy tạo mã thông báo truy cập dựa trên id/khóa công khai/địa chỉ công khai của người dùng.
5. Trả lại mã thông báo truy cập cho giao diện người dùng.
6. Sử dụng mã thông báo truy cập từ giao diện người dùng để tương tác với các tài nguyên khác trong DB.
Tầm quan trọng của việc giữ an toàn cho chìa khoá
Chúng tôi có thể lưu trữ khóa riêng cục bộ bằng cách mã hóa chúng bằng mật khẩu.
Khi chúng tôi tạo một tài khoản mới hoặc tạo một khóa mới trong ví, chúng tôi sẽ nhận được một danh sách các từ mã (thường là mười hai từ). Danh sách này là khóa riêng của chúng tôi. Điều quan trọng là phải giữ an toàn, thường là bằng mật khẩu trên hệ thống của chúng tôi.
Nếu chúng tôi mất khóa, chúng tôi sẽ không còn quyền truy cập vào tài khoản mà khóa đó bảo vệ. Nếu người khác có quyền truy cập vào khóa của chúng tôi, người đó sẽ có tất cả quyền truy cập vào tài khoản của chúng tôi. Không có cách nào để các ứng dụng hoặc bản thân chuỗi khối phân biệt giữa bạn và một người khác có khóa riêng này.
Ví không hết hạn. Vì vậy, chúng tôi không cần phải thay đổi danh sách từ của chúng tôi theo định kỳ. Nhưng nếu khóa đã bị tiết lộ, điều quan trọng là phải tạo khóa/tài khoản mới và chuyển mọi thứ sang ví mới.
Tương tự, chúng ta có thể lưu trữ khóa chung trong cơ sở dữ liệu và ánh xạ nó với các thuộc tính của người dùng khác để lưu trữ và truy xuất thông tin. Chúng tôi có thể bảo mật nó bằng cách sử dụng mã thông báo truy cập JWT (Json Web Token).
Các bước sau cần thực hiện để lưu trữ và ánh xạ khóa chung.
- Gửi địa chỉ công khai cho phía máy chủ.
- Chương trình phụ trợ cố gắng tìm người dùng trong DB dựa trên địa chỉ/khóa công khai. Nếu người dùng không tồn tại, nó sẽ tạo một người dùng mới. Giờ đây, chúng tôi có thể ánh xạ các thuộc tính của người dùng khác dựa trên khóa chung được lưu trữ này.
- Sau đó, ứng dụng phụ trợ sẽ tạo mã thông báo truy cập dựa trên id/khóa chung của người dùng.
- Chương trình phụ trợ trả lại mã thông báo truy cập cho giao diện người dùng.
- Giao diện người dùng sử dụng mã thông báo truy cập để tương tác với các tài nguyên khác trong DB.
Làm cách nào để lưu trữ và xác thực các vai trò trong sổ cái web3?
Các vai trò trong một hệ thống có thể được quản lý bằng cách lưu trữ chúng trong sổ cái web3 đối với các khóa công khai/địa chỉ công khai/địa chỉ ví.
- Có thể sử dụng các hợp đồng thông minh để lưu trữ các vai trò đối với các khóa công khai trong sổ cái web3.
- Có thể xác định trước vai trò theo hệ thống/ứng dụng.
Ví dụ: – Trong bất kỳ ứng dụng trò chơi nào, có thể có NGƯỜI CHƠI, NGƯỜI TẠO TRÒ CHƠI, QUẢN TRỊ VIÊN, v.v.
Giờ đây, theo yêu cầu của người dùng, chúng tôi có thể lưu trữ vai trò của họ trong sổ cái web3 và sử dụng ánh xạ địa chỉ ví/khóa công khai.
Đây là đoạn mã để lưu trữ và xác thực các vai trò trong sổ cái web3.

Tạo hồ sơ
Chúng tôi sẽ sử dụng địa chỉ để lập bản đồ chi tiết của địa chỉ ví cụ thể
Chúng tôi sẽ sử dụng địa chỉ để lập bản đồ chi tiết của địa chỉ ví cụ thể

Kết luận
Xác thực Web3 rất quan trọng khi xây dựng các ứng dụng phi tập trung. Mặc dù khái niệm xác thực web3 nghe có vẻ phức tạp, nhưng với sự trợ giúp của các ví web3 có uy tín, chúng tôi hoàn toàn có thể thực hiện xác thực. Nhiều ví tiền điện tử hiện có sẵn dưới dạng tiện ích mở rộng trình duyệt hoặc ứng dụng dành cho thiết bị di động. Chúng cung cấp UI/UX thân thiện với người dùng và có nhiều định dạng khác nhau. Chúng có thể được sử dụng để đăng nhập web3 và mục đích chính là lưu trữ và quản lý tiền điện tử. Ví Web3 cho phép lưu trữ, gửi và nhận các token có thể thay thế và không thể thay thế. Những ví này cho phép người dùng truy cập vào các nền tảng DeFi và thị trường NFT. Vì vậy, ví web3 là thứ bắt buộc phải có đối với các nhà phát triển chuỗi khối. Với xác thực web3, người dùng có thể tương tác với những người dùng và tính năng được xác thực khác của mạng.
Nếu bạn đang dự định tạo ví web3 để xác thực ứng dụng web3 của mình, hãy kết nối với các chuyên gia web3 của chúng tôi để được hướng dẫn thêm và nhận các dịch vụ phát triển web3.