Một trong những điểm nổi bật của Web3 là cung cấp cho người dùng toàn quyền kiểm soát quyền riêng tư và cách họ tương tác với nền tảng của nó. Tìm hiểu cách quản lý phê duyệt và quyền trong MetaMask.

Ngay cả khi trải nghiệm tương tác với các chuỗi khối như Ethereum của bạn bị giới hạn ở việc gửi các giao dịch đơn giản giữa các ví, bạn vẫn sẽ phê duyệt, ủy quyền hoặc ký giao dịch của mình. Điều này đơn giản có nghĩa là bạn đang xác nhận việc gửi nó lên blockchain.

Quy trình tương tự này cũng áp dụng tương tự cho việc tương tác với dapp trong Web3: có rất nhiều điều để đồng ý, phê duyệt và cho phép. Nhưng điều gì thực sự có trong phê duyệt MetaMask?

Để chia nhỏ câu hỏi này, trước tiên chúng ta cần đề cập đến một số khía cạnh cốt lõi của mật mã.

Khóa và mật mã: phê duyệt là gì?

Tất cả hoạt động tiền điện tử của bạn đều dựa trên mật mã khóa công khai. Về cơ bản, mỗi ví có một ‘khóa’ công khai và riêng tư phù hợp được tạo khi tạo ví. Hãy tưởng tượng một cánh cửa yêu cầu bạn phải mở chốt và vặn chốt để vào, với mỗi chìa khóa khác nhau. Sở hữu một chiếc chìa khóa duy nhất sẽ không đưa bạn đến đâu cả - bạn cần có cả cặp chìa khóa đó.

Mặc dù đơn giản hóa quá mức nhưng chúng ta có thể vượt qua thử thách của cánh cửa giả định này và áp dụng logic tương tự vào ví tiền điện tử của bạn. Cả khóa riêng và khóa chung của bạn đều cần thiết để giao dịch: khóa riêng để bạn chứng minh rằng bạn đã bắt đầu giao dịch và khóa chung để người nhận xác minh nguồn gốc. Đây là cách nó hoạt động:

  1. Bạn quyết định gửi mã thông báo đến một liên hệ.

  2. Khi bạn biết địa chỉ ví của người nhận, bạn giữ khóa chung của họ – khóa trước chỉ đơn giản là phiên bản băm (được mã hóa) của khóa sau. Khóa công khai được sử dụng để mã hóa giao dịch.

  3. Người nhận, người giữ khóa riêng, sẽ nhận được giao dịch. Vì các khóa của họ thuộc về nhau nên chỉ có khóa riêng tương ứng – mà chỉ họ nắm giữ – mới có thể giải mã được giao dịch được gửi bằng khóa chung của họ.

Cho đến nay, thật tốt: chúng tôi đã thiết lập cách các cặp khóa riêng và khóa chung tương tác để củng cố các giao dịch blockchain. Tuy nhiên, để áp dụng kiến ​​thức này vào việc phê duyệt/chữ ký, chúng tôi đảo ngược vai trò của các khóa: thay vào đó, người gửi mã hóa tin nhắn bằng khóa riêng của họ. Vì những người khác có thể dễ dàng tìm ra khóa chung của người gửi (địa chỉ ví của họ), nên các khóa này có thể kết hợp để giải mã tin nhắn, xác minh danh tính của người gửi. Chỉ có cặp khóa phù hợp mới tiết lộ nội dung của tin nhắn, nghĩa là không ai có thể tranh cãi về nguồn gốc.

Việc in một loại chữ ký lên mỗi giao dịch đảm bảo tính bất biến, không ai khác ngoài bạn – người nắm giữ khóa riêng của bạn – có thể bắt chước bạn một cách gian lận

Quyền của Dapp

Loại phê duyệt đầu tiên trong hai loại phê duyệt chính mà bạn sẽ gặp phải là kết nối ví của bạn với dapp lần đầu tiên – có thể là DeFi, một dịch vụ như Etherscan hoặc thị trường NFT.

Điều này liên quan đến việc cấp cho dapp quyền truy xuất địa chỉ ví của bạn và là điều kiện tiên quyết để tương tác với nền tảng. Điều này cũng giải thích tại sao bạn sẽ thấy nó được gọi là “quyền” hoặc “quyền”; danh từ mô tả chính xác những gì bạn đang làm. Trong một số trường hợp, dapp sẽ nhắc bạn tự động cấp quyền; những người khác yêu cầu bạn nhấp vào các nút có nhãn “kết nối” hoặc tương tự.

Trong trường hợp của chúng tôi, việc cho phép của bạn sẽ trông giống như thế này:

Phê duyệt mã thông báo

Cho dù bạn là người mới sử dụng tiền điện tử có kinh nghiệm hay là người mới bắt đầu, để tương tác với bất kỳ hợp đồng thông minh nào – loại chạy dapp (bao gồm DeFi, trò chơi blockchain, mua NFT) – bạn cần phê duyệt quyền truy cập vào mã thông báo của mình.

Quá trình này được gọi theo nhiều cách khác nhau, không có gì đáng ngạc nhiên, là phê duyệt mã thông báo. Những gì bạn đang làm ở đây là:

  1. Cho phép hợp đồng thông minh truy cập vào số dư mã thông báo của bạn. Hãy coi đây là 'giai đoạn hợp đồng thông minh'. Tại thời điểm này, MetaMask sẽ cho biết rõ ràng bạn sẽ nhượng lại bao nhiêu quyền truy cập: một số dapp có thể chỉ định số lượng token hữu hạn, trong khi những dapp khác yêu cầu quyền truy cập không giới hạn.

  2. Xác nhận rằng bạn muốn hoàn tất giao dịch được đề cập: tức là 'giai đoạn blockchain', nơi bạn cho phép hợp đồng thông minh thay mặt bạn gửi giao dịch tới mạng.

Giả sử bạn muốn thực hiện hoán đổi token trên Uniswap, sàn giao dịch phi tập trung (DEX) lớn nhất tính theo khối lượng giao dịch. Khi bạn bắt đầu hoán đổi một cặp mã thông báo lần đầu tiên, bạn sẽ được yêu cầu phê duyệt hợp đồng thông minh cho cặp mã thông báo ERC-20 mà bạn đang giao dịch (mặc dù không phải cho chính ETH nên không cần phê duyệt). Mặc dù điều này chỉ xảy ra trong lần đầu tiên bạn giao dịch cặp đó, nhưng bước tiếp theo – tức là bước hai ở trên – sẽ luôn được yêu cầu và có nghĩa là các giao thức của Uniswap sẽ thực hiện giao dịch của bạn theo yêu cầu.

Quá trình này sẽ giống như dưới đây:

  • Đầu tiên, bạn sẽ được nền tảng nhắc phê duyệt mã thông báo. Nhấp vào lời nhắc và MetaMask sẽ bắt đầu hoạt động.

  • MetaMask sẽ hiển thị cho bạn địa chỉ hợp đồng của token, xác nhận rằng nó đang yêu cầu khả năng truy cập và di chuyển tiền của bạn. Để đảm bảo rằng bạn đang cho phép hợp đồng chính xác, bạn nên tham khảo chéo địa chỉ mã thông báo với địa chỉ được liệt kê trên trang web của dapp – địa chỉ này thường có thể được tìm thấy trong trung tâm trợ giúp, cơ sở kiến ​​thức hoặc tài liệu của họ. Bạn thậm chí còn có tùy chọn để chỉ định mức độ bạn muốn quyền này đi xa - để thực hiện việc này, hãy nhấn 'Chỉnh sửa quyền'.

  • Tùy chọn này cho phép bạn biết chính xác mức độ truy cập mà bạn cho phép. Trong trường hợp này, Uniswap muốn có quyền truy cập vào số lượng stETH gần như không giới hạn (1.1659), nhưng chúng tôi có thể đặt giới hạn cho quyền này nếu được yêu cầu bằng cách sử dụng trường 'Giới hạn chi tiêu tùy chỉnh'.

Với tính năng này, MetaMask giúp bạn kiểm soát việc phê duyệt mã thông báo của mình – bạn không bao giờ cần phải mù quáng cho phép một dapp truy cập nhiều hơn những gì bạn muốn hoặc chấp nhận rủi ro không mong muốn khi thử nền tảng mới.

Bản thân yêu cầu giao dịch là nơi xuất hiện cặp khóa của bạn: bạn ký giao dịch bằng khóa riêng của mình. Hãy nghĩ đến việc ký tên vào đường chấm bằng bút; mặc dù với mật mã khóa công khai, nguy cơ gian lận danh tính là không đáng kể. Trong ví dụ của chúng tôi, việc đồng ý có nghĩa là bạn đã ủy quyền cho hợp đồng thông minh Uniswap thay mặt bạn di chuyển mã thông báo đó đến và từ ví của bạn. Mỗi lần bạn thử và bắt đầu trao đổi, hợp đồng thông minh có thể kiểm tra ‘tin nhắn’ của bạn – tức là hướng dẫn thực hiện trao đổi – và xác minh rằng bạn, với tư cách là người duy nhất có quyền truy cập vào khóa riêng của bạn, là người khởi tạo.

Làm cách nào tôi có thể quản lý phê duyệt và quyền?

Một trong những điểm nổi bật của Web3 là cung cấp cho người dùng toàn quyền kiểm soát quyền riêng tư và cách họ tương tác với nền tảng của nó. Thiết kế không giam giữ của MetaMask phản ánh điều này. Tuy nhiên, các nguyên tắc của nó còn mở rộng sang các tính năng khác; khả năng xem và quản lý phê duyệt dapp và hợp đồng thông minh là một trong số đó.

Xem các trang web được kết nối trong MetaMask

MetaMask bao gồm một tính năng gốc để xem xét những trang web mà ví của bạn được kết nối. Nó được gọi là 'Các trang web được kết nối' (như bạn có thể biết, chúng tôi không muốn phức tạp hóa quá mức). Đơn giản tương tự là phương pháp để loại bỏ chúng.

Xem phê duyệt mã thông báo

Etherscan gần đây đã triển khai trình kiểm tra phê duyệt mã thông báo cho phép bạn xem và thu hồi… phê duyệt mã thông báo.

Danh sách phê duyệt mã thông báo được hiển thị sau khi bạn kết nối MetaMask và cấp cho Etherscan quyền xem ví của bạn – bạn có quen không? Sau đó, bạn có thể tự do kiểm tra mức độ liên quan hiện tại của chúng và thu hồi tương ứng. Thật hữu ích, bạn cũng có thể xem tài sản cụ thể có liên quan, người mà bạn đã phê duyệt (ví dụ: dapp nào, được tham chiếu theo tên) và số lượng mã thông báo mà bạn đã phê duyệt quyền truy cập.

Ngoài ra còn có một số lựa chọn thay thế, bao gồm đã được phê duyệt.zone, Revoke và Trình kiểm tra trợ cấp mã thông báo (TAC).

Đừng nói thẳng

Cơ quan cá nhân đi kèm với việc quản lý ví không giám sát như MetaMask là con dao hai lưỡi. Cũng giống như việc giữ an toàn cho cụm từ khôi phục bí mật là trách nhiệm cá nhân của bạn và đòi hỏi phải cảnh giác trước những kẻ lừa đảo, bạn là người duy nhất có thể quản lý các quyền của dapp và phê duyệt hợp đồng thông minh. Kết hợp điều này với việc tạo mã thông báo ERC-20 mới dễ dàng như thế nào – có khoảng 485.000 mã thông báo tại thời điểm viết bài – và rủi ro trở nên rất rõ ràng. Trong khi hầu hết sẽ được thực hiện một cách thiện chí, nhưng bất kỳ điều gì cũng có thể được tạo ra bởi một kẻ xấu.

Phê duyệt mã thông báo là một phương thức tấn công lừa đảo tương đối phổ biến – chỉ cần kiểm tra rekt.news để có ấn tượng về quy mô và bài viết Finematics này để có ấn tượng về các phương pháp. Như đã đề cập trước đó, dapp phải chỉ định số lượng token mà họ muốn truy cập. Ví dụ, MetaMask sẽ đảm bảo rằng thông tin này được hiển thị trên màn hình phê duyệt trước khi bạn xác nhận, mang lại cho bạn bức tranh rõ ràng hơn về chính xác những gì bạn đang đăng ký.

Yêu cầu truy cập từ dapp có thể khác nhau, từ số lượng cụ thể, có giới hạn cho đến hoàn toàn không bị khai thác, trong đó hợp đồng thông minh có thể rút bao nhiêu tùy thích từ ví của bạn. Về cơ bản, quyền truy cập không giới hạn bản thân nó không phải là một vấn đề hay cờ đỏ – nhiều nền tảng có uy tín như các DEX lớn thực hiện điều này để giúp bạn tránh khỏi việc phải thường xuyên phê duyệt lại nếu bạn sử dụng dapp thường xuyên. Vấn đề xảy ra với các dapp yêu cầu quyền truy cập không giới hạn vào (các) mã thông báo của bạn với mục đích đánh cắp rõ ràng.

Trước khi phê duyệt quyền truy cập của hợp đồng thông minh vào bất kỳ số lượng mã thông báo nào, bạn nên xem qua danh sách kiểm tra tinh thần để đánh giá rủi ro. Bạn sẽ thường thấy từ viết tắt 'DYOR' được đề cập trên mạng: tự nghiên cứu trước khi cho phép truy cập chắc chắn là một thói quen tốt nên áp dụng. Ví dụ:

  • Dự án có mức độ nổi tiếng như thế nào?

  • Nó đã tồn tại được bao lâu rồi?

  • Nó có kênh cộng đồng đang hoạt động trên Discord, Telegram hoặc Twitter không?

  • Các nhà phát triển/chủ sở hữu dapp có minh bạch và có thể tiếp cận công khai không, ví dụ: trên Twitter hay Discord?

  • Gần đây nó có vi phạm an ninh không? Thật đáng để tìm kiếm ở đây.

  • Họ đã trải qua quá trình kiểm tra hợp đồng thông minh của bên thứ ba chưa?

  • Kiểm tra địa chỉ hợp đồng trên block explorer. Một số trình khám phá, chẳng hạn như Etherscan, có cơ chế báo cáo do người dùng điều khiển trong đó các địa chỉ gian lận (hợp đồng hoặc ví) bị gắn cờ. Ngay cả khi chúng không bị gắn cờ, hãy kiểm tra hoạt động đáng ngờ, chẳng hạn như dòng tiền vào hoặc dòng tiền lớn trong khoảng thời gian ngắn.

Để tóm tắt:

Thay vì chỉ là một cử chỉ mã thông báo thể hiện sự đồng ý, phê duyệt mã thông báo là một khía cạnh thiết yếu, bình thường khi tương tác với Web3. Một số điểm chính:

  • Mật mã khóa công khai được sử dụng để xác thực quyền của bạn khi tương tác với dapp.

  • Quyền của Dapp liên quan đến việc cho phép Dapp xem số dư ví của bạn.

  • Phê duyệt mã thông báo liên quan đến việc cho phép hợp đồng thông minh của dapp truy cập và di chuyển một mã thông báo cụ thể trong ví của bạn.

  • Luôn nghiên cứu thông tin xác thực của dapp và đảm bảo rằng nó đáng tin cậy trước khi phê duyệt hợp đồng thông minh của nó.

HOA QUẢ