Đánh giá kỹ thuật của MetaMask Snap: Kinh nghiệm phát triển, Hạn chế về năng lực, Bảo mật và Phân tích tiềm năng kinh doanh

Nâng cao12/24/2023, 8:22:48 AM
Bài viết này giới thiệu các tính năng nâng cao của MetaMask Snap, khám phá cách công nghệ này cho phép ví MetaMask có được nhiều ứng dụng đa dạng hơn thông qua plugin. Nó nhấn mạnh cách nó vượt qua những hạn chế của ví truyền thống trong khi vẫn duy trì tính bảo mật, giải phóng tiềm năng lớn hơn.

MetaMask Snap là gì?

Một vài ngày trước, ConsenSys đã thông báo ra mắt công chúng MetaMask Snaps Open Beta. MetaMask Snaps về cơ bản là các plugin giúp mở rộng khả năng của ví MetaMask. Những “Snaps” này là những ứng dụng do bên thứ ba phát triển và có thể được cài đặt để bổ sung các chức năng mới.

Nếu chúng ta so sánh sự chuyển đổi MetaMask của ConsenSys thành WeChat, thì Snap có thể được coi là Chương trình WeChat Mini. Kết quả là, rõ ràng là MetaMask, với tham vọng của mình, kết hợp với quy mô của ConsenSys và cơ sở người dùng của MetaMask, sẽ thay đổi cục diện của lĩnh vực ví.

Trang web chính thức đã liệt kê 35 Snap có sẵn và ra mắt Cửa hàng ứng dụng Snap: https://snaps.metamask.io/.

Danh sách một phần của Snaps

Khía cạnh kỹ thuật của MetaMask Snap

Vậy MetaMask Snaps trông như thế nào từ góc độ kỹ thuật? Khả năng và hạn chế của họ là gì? Chúng có an toàn không? Trải nghiệm của nhà phát triển như thế nào? Tất cả những yếu tố này có thể xác định tiềm năng trong tương lai của MetaMask Snaps.

Bắt đầu từ năm ngoái, LXDAO đã tham gia sâu vào việc nghiên cứu triển khai Snaps. Một số thành viên đã tham gia phát triển Snap và tham gia các cuộc thi hackathon liên quan. Hôm nay, chúng ta sẽ đi sâu vào những câu hỏi này từ góc độ kỹ thuật và thậm chí phát triển Snap để mang đến cho bạn trải nghiệm thực tế của nhà phát triển.

Bắt đầu với MetaMask Snap

Cài đặt MetaMask Snap

Nói chung, bạn có thể cài đặt Snaps từ thị trường MetaMask Snap chính thức hoặc trực tiếp từ trang web của dự án. Ví dụ: với UniPass, khi bạn truy cập trang ứng dụng, sẽ có một nút để kết nối MetaMask của bạn.

Nhấp vào nó sẽ bắt đầu cài đặt Snap:

Sử dụng MetaMask Snap

Sau khi cài đặt, bạn có thể bắt đầu sử dụng sản phẩm và các tính năng của nó. Trong trường hợp này, UniPass sẽ tạo một tài khoản hợp đồng thông minh cho bạn mà bạn có thể kiểm soát thông qua MetaMask EOA (Tài khoản thuộc sở hữu bên ngoài) của mình.

Khi bạn bắt đầu chuyển tiền, UniPass sẽ kích hoạt cửa sổ bật lên Snap để xác nhận xem bạn có muốn thực hiện thao tác cho ví UniPass AA hay không.

Sau khi xác nhận thông qua MetaMask, bạn có thể tiến hành giao dịch. Trong trường hợp này, MetaMask giành quyền kiểm soát ví UniPass AA thông qua Snap, loại bỏ nhu cầu UniPass phải phát triển plugin ví của riêng mình. Điều này cũng cho phép người dùng tham gia với chi phí thấp thông qua MetaMask.

Chúng tôi có thể thu thập thông tin chi tiết nào từ quá trình cài đặt và sử dụng này?

  1. Kiểm soát quyền chi tiết: Snaps cung cấp các cài đặt quyền phức tạp, bao gồm các kết nối ví, yêu cầu mạng, v.v. Chúng được thiết kế theo cách tiếp cận “Nguyên tắc đặc quyền tối thiểu”, đặt bảo mật lên hàng đầu.
  2. Quản lý gói qua NPM: Như được chỉ định bởi npm:@unipasswallet/unipass-snap, Snap dựa vào NPM để quản lý gói và phiên bản, điều này có thể có vấn đề bảo mật, chúng tôi sẽ trình bày chi tiết sau.
  3. Tính linh hoạt cao nhưng giao diện người dùng ngắn gọn: Snap có khả năng thích ứng cao, cho phép các dự án phát triển và đưa ra các tính năng cũng như logic của riêng chúng. Tuy nhiên, giao diện người dùng có thể cần một số cải tiến.
  4. Trải nghiệm đơn giản và đáng tin cậy: Snaps mang lại trải nghiệm người dùng mượt mà và đáng tin cậy, đáp ứng cả tiêu chuẩn cấp Beta và cấp sản xuất.

Bảo mật luôn được ưu tiên khi nói đến các sản phẩm ví. Hãy đi sâu vào thiết kế bảo mật của Snaps.

Snaps có an toàn không?

Phân tích thời gian chạy của mã Snap

Snaps dựa trên NPM, ngụ ý chúng là các ứng dụng web và JavaScript. Như chúng ta biết, JavaScript rất linh hoạt nhưng dễ bị tấn công như XSS và lừa đảo. Vậy MetaMask Snap giải quyết những thách thức này như thế nào?

Sau khi nghiên cứu, chúng tôi phát hiện ra rằng MetaMask đã tài trợ và tích hợp Hardened JavaScript (hoặc Secure EcmaScript) của Agoric như một giải pháp hộp cát “ảo hóa hoàn toàn”. Agoric đã soạn thảo API hạn chế JavaScript và gửi đề xuất dự thảo tới TC-39: đề xuất TC-39.

Nói một cách đơn giản, Hardened JavaScript là một tập hợp con an toàn hơn của JavaScript tiêu chuẩn. Bằng cách điều chỉnh một số khả năng của JavaScript và hạn chế lệnh gọi API, nó sẽ giảm thiểu nhiều rủi ro khác nhau. Nó tạo ra một hộp cát an toàn để thực thi mã và tuân theo “Nguyên tắc đặc quyền tối thiểu” trong việc lập kế hoạch cấp phép mã.

Để biết thêm chi tiết kỹ thuật cụ thể về Hardened JavaScript, vui lòng tham khảo: https://tvcutsem.github.io/assets/HardenedJS_BlueLava2022.pdf.

Agoric và MetaMask đã đồng phát triển LavaMoat (https://github.com/LavaMoat/lavamoat) dự án tăng cường tính bảo mật của Snaps. LavaMoat chủ yếu giải quyết các rủi ro bảo mật của các phần phụ thuộc bên ngoài trong các dự án JavaScript.

Cả Agoric và MetaMask đều đã trải qua các cuộc kiểm tra bảo mật hộp đen và hộp trắng và đã công bố các báo cáo bảo mật chi tiết. (Thêm chi tiết: https://agoric.com/blog/technology/purple-teaming-how-metamask-and-agoric-hunted-bugs-to-harden-javascript). Do đó, ở cấp độ thực thi mã, chúng tôi có nhiều lý do để tin rằng Snaps an toàn.

Mã nguồn mở và đã được kiểm tra

Ngoài ủy quyền người dùng rõ ràng và thiết kế ít đặc quyền nhất, để được công nhận chính thức, Snaps phải có nguồn mở, giảm khả năng xảy ra mã độc. Chúng tôi cũng quan sát thấy rằng các Snap được liệt kê trên trang web chính thức đã trải qua quá trình kiểm tra bảo mật của bên thứ ba, điều này càng nâng cao độ tin cậy của chúng.

Có rủi ro bảo mật nào với Snaps được quản lý qua NPM không?

Hiện tại, Snaps được quản lý dựa trên các gói và phiên bản NPM. NPM là một công cụ quản lý gói được sử dụng rộng rãi để Phát triển Web, cho phép các nhà phát triển và nhóm dự án phát hành các gói và mã mới một cách độc lập.

MetaMask không kiểm soát việc phát hành phiên bản trên nền tảng NPM. Có khả năng những thay đổi trong phiên bản mới nhất có thể không có nguồn mở hoặc được kiểm tra, phải không?

Sau khi được làm rõ chính thức, tất cả các thay đổi đối với phiên bản gói NPM cần phải được nhóm chính thức xem xét và thêm vào danh sách trắng trước khi chúng có thể được cài đặt. Do đó, ngay cả khi nhóm dự án phát hành gói NPM mới, người dùng cũng không thể cài đặt gói này cho đến khi nó được liệt kê chính thức. Cách làm này chắc chắn sẽ làm tăng chi phí cập nhật các phiên bản Snap nhưng thực sự là giải pháp an toàn nhất. Nó phản ánh triết lý thiết kế của MetaMask Snap là ưu tiên bảo mật hơn tất cả.

Khả năng kỹ thuật và hạn chế của MetaMask Snap

MetaMask Snap mới được công bố chính thức gần đây nhưng thực tế nó đã được phát triển hơn 4 năm! Ý tưởng ban đầu về MetaMask Snap được Dan Finlay phát hành vào ngày 10 tháng 10 năm 2019 trên Medium. Bài viết trung bình.

Cân bằng giữa bảo mật, tính linh hoạt và hiệu quả là một thách thức đáng kể. Rõ ràng là MetaMask đã đầu tư rất nhiều nguồn lực và sự chuẩn bị cho nỗ lực này.

Hiện tại, ba API chính chủ yếu được đưa ra:

  1. Khả năng tương tác: Cho phép nhà phát triển xây dựng ví cho các chuỗi khác dựa trên MetaMask.
  2. Thông tin chi tiết về giao dịch: Cho phép nhà phát triển truy xuất dữ liệu giao dịch trước khi người dùng bắt đầu giao dịch để đánh giá rủi ro.
  3. Thông báo: Cho phép nhắn tin trực tiếp tới người dùng qua Snaps, mặc dù điều này dường như yêu cầu hỗ trợ trang web và có vẻ hơi hạn chế.

Dưới đây là phần giới thiệu ngắn gọn về các khả năng và hiệu ứng cụ thể được mở bởi MetaMask Snap, nhằm giúp bạn hiểu rõ hơn.

Khả năng thông báo

Giao diện Snap_notify có thể hiển thị thông báo trong MetaMask hoặc trình duyệt. Snaps có thể gửi tin nhắn trực tiếp tới người dùng thông qua giao diện này, như trong hình bên dưới.

Khả năng hiểu biết về giao dịch

Khi người dùng tương tác với hợp đồng thông minh, MetaMask sẽ kích hoạt sự kiện onTransaction của Snap. MetaMask chuyển giao dịch thô chưa được ký sang phương thức xử lý onTransaction. Sau đó, Snaps có thể trả về giao diện trên trang xác nhận phụ của giao dịch, tùy chỉnh nội dung hiển thị.

Thông qua khả năng này, các tính năng như kiểm tra an toàn thông tin giao dịch và hiển thị thông tin mở rộng có thể được thực hiện.

Giao diện hộp thoại và khả năng giao diện tùy chỉnh

Khả năng Hộp thoại cho phép Snaps bật trực tiếp một cửa sổ riêng biệt, tương tự như các hộp thoại Cảnh báo/Xác nhận/Nhắc truyền thống. Chúng được sử dụng để nhắc nhở, xác nhận và gửi thông tin tương ứng.

Thông qua Dialog, bạn sẽ có thể tùy chỉnh các giao diện và thao tác tương tác đơn giản để tích hợp với DApp của mình.

MetaMask Snap không thể đạt được điều gì vào lúc này?

Vì lý do bảo mật, Snap hiện không hỗ trợ khung giao diện người dùng của bên thứ ba và chỉ cung cấp UIKit hạn chế. Ở đây, chúng tôi vẫn sử dụng Insight làm ví dụ, giới thiệu thư viện thành phần UI có sẵn cho nhà phát triển.

Như được hiển thị trong hình ảnh, các tính năng hiện tại bao gồm Tiêu đề (văn bản lớn), Văn bản (văn bản nhỏ), Bảng điều khiển (thẻ sử dụng một lần), Bộ chia, Có thể sao chép (nhấp để sao chép) và một tập hợp con các tính năng Markdown (in đậm và in nghiêng). Do đó, khả năng tương tác dường như tạm thời không thể đạt được và không thể sử dụng HTML nhúng cho các tương tác. Tuy nhiên, sau khi đặt câu hỏi trong Discord chính thức, họ cho biết những hạn chế này là vì lý do bảo mật và có thể được nới lỏng trong các phiên bản sắp tới.

Hơn nữa, vì lý do bảo mật, các yêu cầu bên ngoài chỉ được hỗ trợ thông qua phương thức Tìm nạp và không hỗ trợ các giao thức yêu cầu bổ sung như WebSocket. Do các giới hạn về bảo mật, khả năng và quyền riêng tư, bạn cũng không thể truy cập thông tin khách hàng, chẳng hạn như URL hiện tại đã kích hoạt Snap, khiến việc triển khai nhiều tính năng hơn trở nên khó khăn.

Hầu hết các vấn đề này đều xuất phát từ những lo ngại về an ninh. Chúng tôi tin rằng khi bảo mật được xác thực theo thời gian thì sẽ có nhiều quyền hơn được cấp.

Với sự ra đời của các API này, MetaMask về cơ bản đã phát triển thành một sản phẩm nền tảng mở. Cảm giác này giống như khi WeChat ra mắt Tài khoản chính thức và các chương trình nhỏ, chuyển đổi từ một công cụ trò chuyện đơn thuần.

Trở lại năm 2019, MetaMask đã thấy trước bối cảnh thị trường hiện tại với nhiều chuỗi công khai, các bên tham gia dự án và các yêu cầu về ví tùy chỉnh. Thay vì mỗi dự án phát triển plugin riêng và người dùng phải cài đặt nhiều plugin, việc phát triển dựa trên MetaMask Snap sẽ hiệu quả hơn. Trong đợt Snaps đầu tiên, chúng tôi đã thấy các ví từ các hệ sinh thái khác ngoài EVM, như Ví Sui, Ví Solana và Ví Arweave. Với cơ sở người dùng hiện có, MetaMask Snap chắc chắn sẽ tác động đáng kể đến bối cảnh ví.

Trên thực tế, tiềm năng của MetaMask Snap có thể còn lớn hơn chúng ta tưởng tượng, vượt ra ngoài phạm vi ví. Chúng ta cũng có thể thấy những nỗ lực từ nhóm EthSign, những người đã tạo ra một trình quản lý mật khẩu phổ quát có tên KeyChain dựa trên MetaMask Snaps. Tất cả mật khẩu trình duyệt có thể được mã hóa và lưu trữ bằng khóa ví. Bằng cách bảo mật ví của mình, về cơ bản bạn đang bảo mật tất cả mật khẩu của mình.

Ngoài ra còn có một sáng tạo từ nhóm Web3MQ. Web3MQ là mạng chuyển tiếp truyền thông phi tập trung hiệu suất cao. Web3MQ Snap sẽ đóng vai trò là ứng dụng khách để hỗ trợ tương tác tin nhắn, thông báo, cảnh báo và chức năng đẩy. Nó sẽ tích hợp với các DApp khác được kết nối với Web3MQ, chẳng hạn như các công cụ trò chuyện hoặc trò chơi dựa trên blockchain, cùng với các ứng dụng khác. Với sự trợ giúp của Web3MQ Snap, các tin nhắn và cập nhật sẽ được tự động gửi tới người dùng Metamask Snap, loại bỏ nhu cầu ủy quyền bổ sung cho người dùng. Điều này thiết lập một kết nối không tin cậy giữa người dùng và giữa người dùng và ứng dụng.

Snaps lấy nhà phát triển làm trung tâm. Với API mở, trải nghiệm của nhà phát triển thế nào? Hãy cùng đi sâu vào việc tạo Snap để tìm hiểu.

Tạo Snap để thử nghiệm

Quá trình suy nghĩ

Điều nổi tiếng là hầu hết người dùng thường không biết các hợp đồng thông minh mà họ đang tương tác, bao gồm các mối quan tâm sau:

  1. Liệu hợp đồng giao dịch có bị thay thế bởi một trang web lừa đảo hay không.
  2. Liệu hợp đồng giao dịch có thể nâng cấp được hay không.
  3. Hợp đồng thông minh mới được triển khai và chưa được nhiều người xác minh.
  4. Liệu hợp đồng giao dịch có phải là nguồn mở hay không.

Đối với người dùng bình thường, việc mong đợi họ xem lại quy tắc vững chắc của hợp đồng trước mỗi hoạt động là một yêu cầu cao. Tình huống này lý tưởng cho tính năng Giao dịch hiểu biết sâu sắc để phân tích các hợp đồng thông minh, chẳng hạn như sử dụng AI để kiểm tra bảo mật sơ bộ, có thể lọc ra 80% các cuộc tấn công lừa đảo cơ bản.

Thiết lập môi trường phát triển

Cài đặt ví

Đầu tiên, cài đặt MetaMask Flask.

MetaMask Flask là phiên bản tiện ích mở rộng MetaMask lấy nhà phát triển làm trung tâm, chủ yếu được sử dụng để xem trước các tính năng mới và phát triển chức năng thử nghiệm. Hãy nhớ rằng, nó dành cho sự phát triển chứ không phải để sử dụng hàng ngày. Không nhập khóa riêng sử dụng hàng ngày của bạn. Chúng tôi chủ yếu sử dụng Flask ở đây để xem trước Snap được phát triển tại địa phương của chúng tôi.

Bạn nên tạm thời vô hiệu hóa ví MetaMask thông thường của mình và các ví trình duyệt khác sau khi cài đặt hoặc tạo hồ sơ Chrome mới để tránh xung đột.

Tạo tài khoản

Sau khi cài đặt ví, hãy tạo một ví mới giống như ví MetaMask thông thường. Đây là ví thử nghiệm, vì vậy đừng nhập ví sử dụng hàng ngày của bạn.

Tiếp theo, chúng ta cần gửi một số đồng tiền thử nghiệm vào ví mới tạo, có thể lấy được thông qua vòi. Snap được thảo luận trong bài viết này sử dụng Goerli nên nội dung sau sẽ chủ yếu tập trung vào Goerli.

Để khởi tạo Snap dựa trên mẫu, hãy làm theo tài liệu chính thức. Đầu tiên, sử dụng CLI @metamask/create-snap để tạo dự án Snap mới. Đồng thời, chúng tôi sẽ khởi tạo bằng mẫu chính thức:

sợi tạo @metamask/snap giao dịch-insights-snap && cd giao dịch-insights-snap

Cấu trúc tệp đính kèm

Các tệp Snap chính nằm trong ./packages/snap. Cấu trúc thư mục là:

Tệp cấu hình của Snap nằm trong snap.mainfest.json, và phần chính của Snap nằm trong ./src/index.ts, khá ngắn gọn.

Kích hoạt quyền

Đầu tiên, kích hoạt quyền. Thêm ba dòng sau vào snap.mainfest.json:

jsonSao chép mã

“Quyền ban đầu”: {

“endowment:transaction-insight”: {}, // Thông tin chi tiết về giao dịch

“tài trợ:ethereum-provider”: {}, // Truy cập vào RPC

“tài sản: truy cập mạng”: {} //

Trong tệp kê khai, bạn cũng có thể cập nhật descriptionproposedName để sửa đổi mô tả và tên của dự án.

Tìm nạp giao dịch

Đối với bản demo này, tất cả những gì cần làm là sửa đổi tệp index.ts để hoàn thành tất cả các chức năng. Dưới đây là một đoạn mã đơn giản. Để có mã có thể chạy hoàn chỉnh, vui lòng truy cập: https://github.com/LidamaoHub/insights.

tsxSao chép mã

nhập { OnTransactionHandler, OnRpcRequestHandler } từ ' @metamask/snaps-types';

nhập { heading, panel, text, copyable, divider } từ ' @metamask/snaps-ui';

xuất const onTransaction: OnTransactionHandler = async ({ transaction }) => {

// transaction bao gồm các giá trị to (địa chỉ hợp đồng) và data (dữ liệu tương tác)

// Mã ví dụ để lấy thông tin Kiểm tra cho hợp đồng bên dưới

thông tin const = đang chờ tìm nạp(http://contract-info.audit.dev/?address=${transaction.to});

// Dưới đây là mã mẫu giao diện người dùng

trở lại {

nội dung: [

 text( 

 `${info.riskList.length} mục rủi ro`, 

 ), 

 tiêu đề(`${info.riskList.length ? 'Risk List' : ''}`), 

 ...info.riskList.map((item, i) => text(`${i + 1} ${item.text}`)), 

 Divider(), 

 text( 

 `Thêm thông tin kiểm tra từ url sau`, 

 ), 

 có thể sao chép( 

 `https://contract- info.audit.dev/mm${info.token}`, 

 )

]

};

};

Để biết thêm các tính năng chuyên sâu, hãy tham khảo Tài liệu dành cho nhà phát triển MetaMask Snap.

Sau khi cài đặt, mọi giao dịch của bạn sẽ hiển thị các cảnh báo rủi ro tương tự:

Trải nghiệm phát triển với Snaps hiện khá suôn sẻ, có rất ít vấn đề. Các mẫu chính thức cũng rất phong phú và đa dạng. Các nhà phát triển có kinh nghiệm thường có thể bắt đầu và phát triển Snap theo yêu cầu của họ trong vòng vài giờ. Tuy nhiên, nút thắt lớn nhất đối với các bản phát hành chính thức phục vụ đối tượng phổ thông sẽ là kiểm tra bảo mật. Không phải tất cả các nhà phát triển độc lập hoặc nhóm nhỏ đều có đủ tài nguyên để tiến hành kiểm tra Snap của họ. Do đó, dự kiến số lượng và sự đa dạng của Snaps sẽ không tăng trưởng bùng nổ trong một thời gian đáng kể.

Hỗ trợ nhà phát triển

Nếu bạn có thể thực hiện thành công ví dụ trên, xin chúc mừng, bạn là nhà phát triển mới bắt đầu sử dụng Snap đủ tiêu chuẩn!

Năm ngoái, MetaMask đã chính thức ra mắt MetaMask Grants DAO để tài trợ cho các dự án có giá trị cao trong hệ sinh thái MetaMask. Đây là một sáng kiến thử nghiệm do nhân viên điều hành, nhằm mục đích cung cấp các khoản tài trợ cho các nhà phát triển bên ngoài toàn cầu để xây dựng những trải nghiệm có tác động mạnh mẽ trong hệ sinh thái MetaMask. Một phần lợi nhuận hàng quý của MetaMask được chuyển vào DAO này và ngân sách hàng năm hiện tại của nó là 2,4 triệu USD.

Bất kỳ dự án nào làm phong phú hệ sinh thái MetaMask đều có thể đăng ký Tài trợ MetaMask chính thức từ DAO Tài trợ MetaMask. Để biết thêm thông tin, vui lòng truy cập https://metamaskgrants.org/.

Điều đáng nói là LXDAO rất vinh dự khi được nộp đơn xin và nhận được tài trợ từ MetaMask trong năm nay, đồng thời đã tích cực tham gia phát triển các dự án liên quan, đóng góp cho hệ sinh thái MetaMask!

Phần kết luận

Chúng tôi đã mổ xẻ Snap là gì từ góc độ kỹ thuật, các cân nhắc về bảo mật, các hạn chế và trải nghiệm của nhà phát triển. Tóm tắt:

  • Snaps giống như WeChat Mini Programs, mở ra nhiều khả năng hơn cho MetaMask.
  • Độ bảo mật tương đối đáng tin cậy. Mã chạy trong môi trường hộp cát bị hạn chế. Mã cần phải có nguồn mở và được kiểm tra. Nhóm chính thức đã thiết lập danh sách trắng cài đặt để ủy quyền cài đặt.
  • Do lo ngại về bảo mật, bề mặt API hiện tại có phần hạn chế. Tuy nhiên, nó vẫn cho phép tạo ra nhiều Snaps giàu trí tưởng tượng.
  • Với bốn năm sàng lọc và thử nghiệm trong thế giới thực, trải nghiệm của nhà phát triển là đỉnh cao. Tuy nhiên, do các biện pháp phòng ngừa bảo mật tích hợp, bao gồm cơ chế danh sách trắng và kiểm tra bắt buộc, đừng mong đợi một lượng lớn Snaps sẽ sớm tràn ngập thị trường. Nhưng điều này cũng dễ hiểu thôi, WeChat Mini Programs đã có khởi đầu chậm chạp với số lượng API rất hạn chế, bùng nổ kể từ năm 2018 và hiện có hơn 450 triệu DAU và 7 triệu+ chương trình nhỏ.

Hiện tại, MetaMask Snap vẫn đang trong quá trình phát triển nhanh chóng. Người ta dự đoán rằng nhiều quyền và khả năng hơn sẽ được mở ra trong tương lai. Có hy vọng về việc giới thiệu một cơ chế mở nhưng an toàn hơn, chẳng hạn như hệ thống kiểm tra chi phí thấp an toàn và không cần xin phép, để cho phép nhiều nhà phát triển hơn tham gia với chi phí thấp hơn. Nếu vấn đề này được giải quyết, nhu cầu có thể sẽ tăng vọt trong tương lai. Thậm chí có thể xuất hiện các vị trí nhà phát triển Snap chuyên dụng.

Tận dụng cơ sở người dùng khổng lồ của MetaMask, các nhà phát triển độc lập cũng có thể tìm thấy những cơ hội độc đáo. Chúng ta hãy chú ý theo dõi những cải tiến mang tính thay đổi trò chơi tiếp theo mà Snaps sẽ mang đến.

Cuối cùng xin cảm ơn bài viết của bạn. Tôi tin rằng nó sẽ góp phần đáng kể vào việc nâng cao nhận thức về tình trạng hiện tại của MetaMask Snaps.

Vui lòng tiếp tục theo dõi Twitterhttps://twitter.com/LXDAO_Officialcủa chúng tôi: @lxdao_official . Chúng tôi sẽ triển khai thêm nhiều nội dung liên quan đến MetaMask Snap như hội thảo, vì vậy hãy chú ý theo dõi!

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được in lại từ [Medium]. Mọi bản quyền đều thuộc về tác giả gốc [LXDAO]. Nếu có phản đối về việc tái bản này, vui lòng liên hệ với nhóm Gate Learn(gatelearn@gate.io ), và họ sẽ xử lý kịp thời.
  2. Tuyên bố miễn trừ trách nhiệm pháp lý: Các quan điểm và ý kiến trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Việc dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch đều bị cấm.

Đánh giá kỹ thuật của MetaMask Snap: Kinh nghiệm phát triển, Hạn chế về năng lực, Bảo mật và Phân tích tiềm năng kinh doanh

Nâng cao12/24/2023, 8:22:48 AM
Bài viết này giới thiệu các tính năng nâng cao của MetaMask Snap, khám phá cách công nghệ này cho phép ví MetaMask có được nhiều ứng dụng đa dạng hơn thông qua plugin. Nó nhấn mạnh cách nó vượt qua những hạn chế của ví truyền thống trong khi vẫn duy trì tính bảo mật, giải phóng tiềm năng lớn hơn.

MetaMask Snap là gì?

Một vài ngày trước, ConsenSys đã thông báo ra mắt công chúng MetaMask Snaps Open Beta. MetaMask Snaps về cơ bản là các plugin giúp mở rộng khả năng của ví MetaMask. Những “Snaps” này là những ứng dụng do bên thứ ba phát triển và có thể được cài đặt để bổ sung các chức năng mới.

Nếu chúng ta so sánh sự chuyển đổi MetaMask của ConsenSys thành WeChat, thì Snap có thể được coi là Chương trình WeChat Mini. Kết quả là, rõ ràng là MetaMask, với tham vọng của mình, kết hợp với quy mô của ConsenSys và cơ sở người dùng của MetaMask, sẽ thay đổi cục diện của lĩnh vực ví.

Trang web chính thức đã liệt kê 35 Snap có sẵn và ra mắt Cửa hàng ứng dụng Snap: https://snaps.metamask.io/.

Danh sách một phần của Snaps

Khía cạnh kỹ thuật của MetaMask Snap

Vậy MetaMask Snaps trông như thế nào từ góc độ kỹ thuật? Khả năng và hạn chế của họ là gì? Chúng có an toàn không? Trải nghiệm của nhà phát triển như thế nào? Tất cả những yếu tố này có thể xác định tiềm năng trong tương lai của MetaMask Snaps.

Bắt đầu từ năm ngoái, LXDAO đã tham gia sâu vào việc nghiên cứu triển khai Snaps. Một số thành viên đã tham gia phát triển Snap và tham gia các cuộc thi hackathon liên quan. Hôm nay, chúng ta sẽ đi sâu vào những câu hỏi này từ góc độ kỹ thuật và thậm chí phát triển Snap để mang đến cho bạn trải nghiệm thực tế của nhà phát triển.

Bắt đầu với MetaMask Snap

Cài đặt MetaMask Snap

Nói chung, bạn có thể cài đặt Snaps từ thị trường MetaMask Snap chính thức hoặc trực tiếp từ trang web của dự án. Ví dụ: với UniPass, khi bạn truy cập trang ứng dụng, sẽ có một nút để kết nối MetaMask của bạn.

Nhấp vào nó sẽ bắt đầu cài đặt Snap:

Sử dụng MetaMask Snap

Sau khi cài đặt, bạn có thể bắt đầu sử dụng sản phẩm và các tính năng của nó. Trong trường hợp này, UniPass sẽ tạo một tài khoản hợp đồng thông minh cho bạn mà bạn có thể kiểm soát thông qua MetaMask EOA (Tài khoản thuộc sở hữu bên ngoài) của mình.

Khi bạn bắt đầu chuyển tiền, UniPass sẽ kích hoạt cửa sổ bật lên Snap để xác nhận xem bạn có muốn thực hiện thao tác cho ví UniPass AA hay không.

Sau khi xác nhận thông qua MetaMask, bạn có thể tiến hành giao dịch. Trong trường hợp này, MetaMask giành quyền kiểm soát ví UniPass AA thông qua Snap, loại bỏ nhu cầu UniPass phải phát triển plugin ví của riêng mình. Điều này cũng cho phép người dùng tham gia với chi phí thấp thông qua MetaMask.

Chúng tôi có thể thu thập thông tin chi tiết nào từ quá trình cài đặt và sử dụng này?

  1. Kiểm soát quyền chi tiết: Snaps cung cấp các cài đặt quyền phức tạp, bao gồm các kết nối ví, yêu cầu mạng, v.v. Chúng được thiết kế theo cách tiếp cận “Nguyên tắc đặc quyền tối thiểu”, đặt bảo mật lên hàng đầu.
  2. Quản lý gói qua NPM: Như được chỉ định bởi npm:@unipasswallet/unipass-snap, Snap dựa vào NPM để quản lý gói và phiên bản, điều này có thể có vấn đề bảo mật, chúng tôi sẽ trình bày chi tiết sau.
  3. Tính linh hoạt cao nhưng giao diện người dùng ngắn gọn: Snap có khả năng thích ứng cao, cho phép các dự án phát triển và đưa ra các tính năng cũng như logic của riêng chúng. Tuy nhiên, giao diện người dùng có thể cần một số cải tiến.
  4. Trải nghiệm đơn giản và đáng tin cậy: Snaps mang lại trải nghiệm người dùng mượt mà và đáng tin cậy, đáp ứng cả tiêu chuẩn cấp Beta và cấp sản xuất.

Bảo mật luôn được ưu tiên khi nói đến các sản phẩm ví. Hãy đi sâu vào thiết kế bảo mật của Snaps.

Snaps có an toàn không?

Phân tích thời gian chạy của mã Snap

Snaps dựa trên NPM, ngụ ý chúng là các ứng dụng web và JavaScript. Như chúng ta biết, JavaScript rất linh hoạt nhưng dễ bị tấn công như XSS và lừa đảo. Vậy MetaMask Snap giải quyết những thách thức này như thế nào?

Sau khi nghiên cứu, chúng tôi phát hiện ra rằng MetaMask đã tài trợ và tích hợp Hardened JavaScript (hoặc Secure EcmaScript) của Agoric như một giải pháp hộp cát “ảo hóa hoàn toàn”. Agoric đã soạn thảo API hạn chế JavaScript và gửi đề xuất dự thảo tới TC-39: đề xuất TC-39.

Nói một cách đơn giản, Hardened JavaScript là một tập hợp con an toàn hơn của JavaScript tiêu chuẩn. Bằng cách điều chỉnh một số khả năng của JavaScript và hạn chế lệnh gọi API, nó sẽ giảm thiểu nhiều rủi ro khác nhau. Nó tạo ra một hộp cát an toàn để thực thi mã và tuân theo “Nguyên tắc đặc quyền tối thiểu” trong việc lập kế hoạch cấp phép mã.

Để biết thêm chi tiết kỹ thuật cụ thể về Hardened JavaScript, vui lòng tham khảo: https://tvcutsem.github.io/assets/HardenedJS_BlueLava2022.pdf.

Agoric và MetaMask đã đồng phát triển LavaMoat (https://github.com/LavaMoat/lavamoat) dự án tăng cường tính bảo mật của Snaps. LavaMoat chủ yếu giải quyết các rủi ro bảo mật của các phần phụ thuộc bên ngoài trong các dự án JavaScript.

Cả Agoric và MetaMask đều đã trải qua các cuộc kiểm tra bảo mật hộp đen và hộp trắng và đã công bố các báo cáo bảo mật chi tiết. (Thêm chi tiết: https://agoric.com/blog/technology/purple-teaming-how-metamask-and-agoric-hunted-bugs-to-harden-javascript). Do đó, ở cấp độ thực thi mã, chúng tôi có nhiều lý do để tin rằng Snaps an toàn.

Mã nguồn mở và đã được kiểm tra

Ngoài ủy quyền người dùng rõ ràng và thiết kế ít đặc quyền nhất, để được công nhận chính thức, Snaps phải có nguồn mở, giảm khả năng xảy ra mã độc. Chúng tôi cũng quan sát thấy rằng các Snap được liệt kê trên trang web chính thức đã trải qua quá trình kiểm tra bảo mật của bên thứ ba, điều này càng nâng cao độ tin cậy của chúng.

Có rủi ro bảo mật nào với Snaps được quản lý qua NPM không?

Hiện tại, Snaps được quản lý dựa trên các gói và phiên bản NPM. NPM là một công cụ quản lý gói được sử dụng rộng rãi để Phát triển Web, cho phép các nhà phát triển và nhóm dự án phát hành các gói và mã mới một cách độc lập.

MetaMask không kiểm soát việc phát hành phiên bản trên nền tảng NPM. Có khả năng những thay đổi trong phiên bản mới nhất có thể không có nguồn mở hoặc được kiểm tra, phải không?

Sau khi được làm rõ chính thức, tất cả các thay đổi đối với phiên bản gói NPM cần phải được nhóm chính thức xem xét và thêm vào danh sách trắng trước khi chúng có thể được cài đặt. Do đó, ngay cả khi nhóm dự án phát hành gói NPM mới, người dùng cũng không thể cài đặt gói này cho đến khi nó được liệt kê chính thức. Cách làm này chắc chắn sẽ làm tăng chi phí cập nhật các phiên bản Snap nhưng thực sự là giải pháp an toàn nhất. Nó phản ánh triết lý thiết kế của MetaMask Snap là ưu tiên bảo mật hơn tất cả.

Khả năng kỹ thuật và hạn chế của MetaMask Snap

MetaMask Snap mới được công bố chính thức gần đây nhưng thực tế nó đã được phát triển hơn 4 năm! Ý tưởng ban đầu về MetaMask Snap được Dan Finlay phát hành vào ngày 10 tháng 10 năm 2019 trên Medium. Bài viết trung bình.

Cân bằng giữa bảo mật, tính linh hoạt và hiệu quả là một thách thức đáng kể. Rõ ràng là MetaMask đã đầu tư rất nhiều nguồn lực và sự chuẩn bị cho nỗ lực này.

Hiện tại, ba API chính chủ yếu được đưa ra:

  1. Khả năng tương tác: Cho phép nhà phát triển xây dựng ví cho các chuỗi khác dựa trên MetaMask.
  2. Thông tin chi tiết về giao dịch: Cho phép nhà phát triển truy xuất dữ liệu giao dịch trước khi người dùng bắt đầu giao dịch để đánh giá rủi ro.
  3. Thông báo: Cho phép nhắn tin trực tiếp tới người dùng qua Snaps, mặc dù điều này dường như yêu cầu hỗ trợ trang web và có vẻ hơi hạn chế.

Dưới đây là phần giới thiệu ngắn gọn về các khả năng và hiệu ứng cụ thể được mở bởi MetaMask Snap, nhằm giúp bạn hiểu rõ hơn.

Khả năng thông báo

Giao diện Snap_notify có thể hiển thị thông báo trong MetaMask hoặc trình duyệt. Snaps có thể gửi tin nhắn trực tiếp tới người dùng thông qua giao diện này, như trong hình bên dưới.

Khả năng hiểu biết về giao dịch

Khi người dùng tương tác với hợp đồng thông minh, MetaMask sẽ kích hoạt sự kiện onTransaction của Snap. MetaMask chuyển giao dịch thô chưa được ký sang phương thức xử lý onTransaction. Sau đó, Snaps có thể trả về giao diện trên trang xác nhận phụ của giao dịch, tùy chỉnh nội dung hiển thị.

Thông qua khả năng này, các tính năng như kiểm tra an toàn thông tin giao dịch và hiển thị thông tin mở rộng có thể được thực hiện.

Giao diện hộp thoại và khả năng giao diện tùy chỉnh

Khả năng Hộp thoại cho phép Snaps bật trực tiếp một cửa sổ riêng biệt, tương tự như các hộp thoại Cảnh báo/Xác nhận/Nhắc truyền thống. Chúng được sử dụng để nhắc nhở, xác nhận và gửi thông tin tương ứng.

Thông qua Dialog, bạn sẽ có thể tùy chỉnh các giao diện và thao tác tương tác đơn giản để tích hợp với DApp của mình.

MetaMask Snap không thể đạt được điều gì vào lúc này?

Vì lý do bảo mật, Snap hiện không hỗ trợ khung giao diện người dùng của bên thứ ba và chỉ cung cấp UIKit hạn chế. Ở đây, chúng tôi vẫn sử dụng Insight làm ví dụ, giới thiệu thư viện thành phần UI có sẵn cho nhà phát triển.

Như được hiển thị trong hình ảnh, các tính năng hiện tại bao gồm Tiêu đề (văn bản lớn), Văn bản (văn bản nhỏ), Bảng điều khiển (thẻ sử dụng một lần), Bộ chia, Có thể sao chép (nhấp để sao chép) và một tập hợp con các tính năng Markdown (in đậm và in nghiêng). Do đó, khả năng tương tác dường như tạm thời không thể đạt được và không thể sử dụng HTML nhúng cho các tương tác. Tuy nhiên, sau khi đặt câu hỏi trong Discord chính thức, họ cho biết những hạn chế này là vì lý do bảo mật và có thể được nới lỏng trong các phiên bản sắp tới.

Hơn nữa, vì lý do bảo mật, các yêu cầu bên ngoài chỉ được hỗ trợ thông qua phương thức Tìm nạp và không hỗ trợ các giao thức yêu cầu bổ sung như WebSocket. Do các giới hạn về bảo mật, khả năng và quyền riêng tư, bạn cũng không thể truy cập thông tin khách hàng, chẳng hạn như URL hiện tại đã kích hoạt Snap, khiến việc triển khai nhiều tính năng hơn trở nên khó khăn.

Hầu hết các vấn đề này đều xuất phát từ những lo ngại về an ninh. Chúng tôi tin rằng khi bảo mật được xác thực theo thời gian thì sẽ có nhiều quyền hơn được cấp.

Với sự ra đời của các API này, MetaMask về cơ bản đã phát triển thành một sản phẩm nền tảng mở. Cảm giác này giống như khi WeChat ra mắt Tài khoản chính thức và các chương trình nhỏ, chuyển đổi từ một công cụ trò chuyện đơn thuần.

Trở lại năm 2019, MetaMask đã thấy trước bối cảnh thị trường hiện tại với nhiều chuỗi công khai, các bên tham gia dự án và các yêu cầu về ví tùy chỉnh. Thay vì mỗi dự án phát triển plugin riêng và người dùng phải cài đặt nhiều plugin, việc phát triển dựa trên MetaMask Snap sẽ hiệu quả hơn. Trong đợt Snaps đầu tiên, chúng tôi đã thấy các ví từ các hệ sinh thái khác ngoài EVM, như Ví Sui, Ví Solana và Ví Arweave. Với cơ sở người dùng hiện có, MetaMask Snap chắc chắn sẽ tác động đáng kể đến bối cảnh ví.

Trên thực tế, tiềm năng của MetaMask Snap có thể còn lớn hơn chúng ta tưởng tượng, vượt ra ngoài phạm vi ví. Chúng ta cũng có thể thấy những nỗ lực từ nhóm EthSign, những người đã tạo ra một trình quản lý mật khẩu phổ quát có tên KeyChain dựa trên MetaMask Snaps. Tất cả mật khẩu trình duyệt có thể được mã hóa và lưu trữ bằng khóa ví. Bằng cách bảo mật ví của mình, về cơ bản bạn đang bảo mật tất cả mật khẩu của mình.

Ngoài ra còn có một sáng tạo từ nhóm Web3MQ. Web3MQ là mạng chuyển tiếp truyền thông phi tập trung hiệu suất cao. Web3MQ Snap sẽ đóng vai trò là ứng dụng khách để hỗ trợ tương tác tin nhắn, thông báo, cảnh báo và chức năng đẩy. Nó sẽ tích hợp với các DApp khác được kết nối với Web3MQ, chẳng hạn như các công cụ trò chuyện hoặc trò chơi dựa trên blockchain, cùng với các ứng dụng khác. Với sự trợ giúp của Web3MQ Snap, các tin nhắn và cập nhật sẽ được tự động gửi tới người dùng Metamask Snap, loại bỏ nhu cầu ủy quyền bổ sung cho người dùng. Điều này thiết lập một kết nối không tin cậy giữa người dùng và giữa người dùng và ứng dụng.

Snaps lấy nhà phát triển làm trung tâm. Với API mở, trải nghiệm của nhà phát triển thế nào? Hãy cùng đi sâu vào việc tạo Snap để tìm hiểu.

Tạo Snap để thử nghiệm

Quá trình suy nghĩ

Điều nổi tiếng là hầu hết người dùng thường không biết các hợp đồng thông minh mà họ đang tương tác, bao gồm các mối quan tâm sau:

  1. Liệu hợp đồng giao dịch có bị thay thế bởi một trang web lừa đảo hay không.
  2. Liệu hợp đồng giao dịch có thể nâng cấp được hay không.
  3. Hợp đồng thông minh mới được triển khai và chưa được nhiều người xác minh.
  4. Liệu hợp đồng giao dịch có phải là nguồn mở hay không.

Đối với người dùng bình thường, việc mong đợi họ xem lại quy tắc vững chắc của hợp đồng trước mỗi hoạt động là một yêu cầu cao. Tình huống này lý tưởng cho tính năng Giao dịch hiểu biết sâu sắc để phân tích các hợp đồng thông minh, chẳng hạn như sử dụng AI để kiểm tra bảo mật sơ bộ, có thể lọc ra 80% các cuộc tấn công lừa đảo cơ bản.

Thiết lập môi trường phát triển

Cài đặt ví

Đầu tiên, cài đặt MetaMask Flask.

MetaMask Flask là phiên bản tiện ích mở rộng MetaMask lấy nhà phát triển làm trung tâm, chủ yếu được sử dụng để xem trước các tính năng mới và phát triển chức năng thử nghiệm. Hãy nhớ rằng, nó dành cho sự phát triển chứ không phải để sử dụng hàng ngày. Không nhập khóa riêng sử dụng hàng ngày của bạn. Chúng tôi chủ yếu sử dụng Flask ở đây để xem trước Snap được phát triển tại địa phương của chúng tôi.

Bạn nên tạm thời vô hiệu hóa ví MetaMask thông thường của mình và các ví trình duyệt khác sau khi cài đặt hoặc tạo hồ sơ Chrome mới để tránh xung đột.

Tạo tài khoản

Sau khi cài đặt ví, hãy tạo một ví mới giống như ví MetaMask thông thường. Đây là ví thử nghiệm, vì vậy đừng nhập ví sử dụng hàng ngày của bạn.

Tiếp theo, chúng ta cần gửi một số đồng tiền thử nghiệm vào ví mới tạo, có thể lấy được thông qua vòi. Snap được thảo luận trong bài viết này sử dụng Goerli nên nội dung sau sẽ chủ yếu tập trung vào Goerli.

Để khởi tạo Snap dựa trên mẫu, hãy làm theo tài liệu chính thức. Đầu tiên, sử dụng CLI @metamask/create-snap để tạo dự án Snap mới. Đồng thời, chúng tôi sẽ khởi tạo bằng mẫu chính thức:

sợi tạo @metamask/snap giao dịch-insights-snap && cd giao dịch-insights-snap

Cấu trúc tệp đính kèm

Các tệp Snap chính nằm trong ./packages/snap. Cấu trúc thư mục là:

Tệp cấu hình của Snap nằm trong snap.mainfest.json, và phần chính của Snap nằm trong ./src/index.ts, khá ngắn gọn.

Kích hoạt quyền

Đầu tiên, kích hoạt quyền. Thêm ba dòng sau vào snap.mainfest.json:

jsonSao chép mã

“Quyền ban đầu”: {

“endowment:transaction-insight”: {}, // Thông tin chi tiết về giao dịch

“tài trợ:ethereum-provider”: {}, // Truy cập vào RPC

“tài sản: truy cập mạng”: {} //

Trong tệp kê khai, bạn cũng có thể cập nhật descriptionproposedName để sửa đổi mô tả và tên của dự án.

Tìm nạp giao dịch

Đối với bản demo này, tất cả những gì cần làm là sửa đổi tệp index.ts để hoàn thành tất cả các chức năng. Dưới đây là một đoạn mã đơn giản. Để có mã có thể chạy hoàn chỉnh, vui lòng truy cập: https://github.com/LidamaoHub/insights.

tsxSao chép mã

nhập { OnTransactionHandler, OnRpcRequestHandler } từ ' @metamask/snaps-types';

nhập { heading, panel, text, copyable, divider } từ ' @metamask/snaps-ui';

xuất const onTransaction: OnTransactionHandler = async ({ transaction }) => {

// transaction bao gồm các giá trị to (địa chỉ hợp đồng) và data (dữ liệu tương tác)

// Mã ví dụ để lấy thông tin Kiểm tra cho hợp đồng bên dưới

thông tin const = đang chờ tìm nạp(http://contract-info.audit.dev/?address=${transaction.to});

// Dưới đây là mã mẫu giao diện người dùng

trở lại {

nội dung: [

 text( 

 `${info.riskList.length} mục rủi ro`, 

 ), 

 tiêu đề(`${info.riskList.length ? 'Risk List' : ''}`), 

 ...info.riskList.map((item, i) => text(`${i + 1} ${item.text}`)), 

 Divider(), 

 text( 

 `Thêm thông tin kiểm tra từ url sau`, 

 ), 

 có thể sao chép( 

 `https://contract- info.audit.dev/mm${info.token}`, 

 )

]

};

};

Để biết thêm các tính năng chuyên sâu, hãy tham khảo Tài liệu dành cho nhà phát triển MetaMask Snap.

Sau khi cài đặt, mọi giao dịch của bạn sẽ hiển thị các cảnh báo rủi ro tương tự:

Trải nghiệm phát triển với Snaps hiện khá suôn sẻ, có rất ít vấn đề. Các mẫu chính thức cũng rất phong phú và đa dạng. Các nhà phát triển có kinh nghiệm thường có thể bắt đầu và phát triển Snap theo yêu cầu của họ trong vòng vài giờ. Tuy nhiên, nút thắt lớn nhất đối với các bản phát hành chính thức phục vụ đối tượng phổ thông sẽ là kiểm tra bảo mật. Không phải tất cả các nhà phát triển độc lập hoặc nhóm nhỏ đều có đủ tài nguyên để tiến hành kiểm tra Snap của họ. Do đó, dự kiến số lượng và sự đa dạng của Snaps sẽ không tăng trưởng bùng nổ trong một thời gian đáng kể.

Hỗ trợ nhà phát triển

Nếu bạn có thể thực hiện thành công ví dụ trên, xin chúc mừng, bạn là nhà phát triển mới bắt đầu sử dụng Snap đủ tiêu chuẩn!

Năm ngoái, MetaMask đã chính thức ra mắt MetaMask Grants DAO để tài trợ cho các dự án có giá trị cao trong hệ sinh thái MetaMask. Đây là một sáng kiến thử nghiệm do nhân viên điều hành, nhằm mục đích cung cấp các khoản tài trợ cho các nhà phát triển bên ngoài toàn cầu để xây dựng những trải nghiệm có tác động mạnh mẽ trong hệ sinh thái MetaMask. Một phần lợi nhuận hàng quý của MetaMask được chuyển vào DAO này và ngân sách hàng năm hiện tại của nó là 2,4 triệu USD.

Bất kỳ dự án nào làm phong phú hệ sinh thái MetaMask đều có thể đăng ký Tài trợ MetaMask chính thức từ DAO Tài trợ MetaMask. Để biết thêm thông tin, vui lòng truy cập https://metamaskgrants.org/.

Điều đáng nói là LXDAO rất vinh dự khi được nộp đơn xin và nhận được tài trợ từ MetaMask trong năm nay, đồng thời đã tích cực tham gia phát triển các dự án liên quan, đóng góp cho hệ sinh thái MetaMask!

Phần kết luận

Chúng tôi đã mổ xẻ Snap là gì từ góc độ kỹ thuật, các cân nhắc về bảo mật, các hạn chế và trải nghiệm của nhà phát triển. Tóm tắt:

  • Snaps giống như WeChat Mini Programs, mở ra nhiều khả năng hơn cho MetaMask.
  • Độ bảo mật tương đối đáng tin cậy. Mã chạy trong môi trường hộp cát bị hạn chế. Mã cần phải có nguồn mở và được kiểm tra. Nhóm chính thức đã thiết lập danh sách trắng cài đặt để ủy quyền cài đặt.
  • Do lo ngại về bảo mật, bề mặt API hiện tại có phần hạn chế. Tuy nhiên, nó vẫn cho phép tạo ra nhiều Snaps giàu trí tưởng tượng.
  • Với bốn năm sàng lọc và thử nghiệm trong thế giới thực, trải nghiệm của nhà phát triển là đỉnh cao. Tuy nhiên, do các biện pháp phòng ngừa bảo mật tích hợp, bao gồm cơ chế danh sách trắng và kiểm tra bắt buộc, đừng mong đợi một lượng lớn Snaps sẽ sớm tràn ngập thị trường. Nhưng điều này cũng dễ hiểu thôi, WeChat Mini Programs đã có khởi đầu chậm chạp với số lượng API rất hạn chế, bùng nổ kể từ năm 2018 và hiện có hơn 450 triệu DAU và 7 triệu+ chương trình nhỏ.

Hiện tại, MetaMask Snap vẫn đang trong quá trình phát triển nhanh chóng. Người ta dự đoán rằng nhiều quyền và khả năng hơn sẽ được mở ra trong tương lai. Có hy vọng về việc giới thiệu một cơ chế mở nhưng an toàn hơn, chẳng hạn như hệ thống kiểm tra chi phí thấp an toàn và không cần xin phép, để cho phép nhiều nhà phát triển hơn tham gia với chi phí thấp hơn. Nếu vấn đề này được giải quyết, nhu cầu có thể sẽ tăng vọt trong tương lai. Thậm chí có thể xuất hiện các vị trí nhà phát triển Snap chuyên dụng.

Tận dụng cơ sở người dùng khổng lồ của MetaMask, các nhà phát triển độc lập cũng có thể tìm thấy những cơ hội độc đáo. Chúng ta hãy chú ý theo dõi những cải tiến mang tính thay đổi trò chơi tiếp theo mà Snaps sẽ mang đến.

Cuối cùng xin cảm ơn bài viết của bạn. Tôi tin rằng nó sẽ góp phần đáng kể vào việc nâng cao nhận thức về tình trạng hiện tại của MetaMask Snaps.

Vui lòng tiếp tục theo dõi Twitterhttps://twitter.com/LXDAO_Officialcủa chúng tôi: @lxdao_official . Chúng tôi sẽ triển khai thêm nhiều nội dung liên quan đến MetaMask Snap như hội thảo, vì vậy hãy chú ý theo dõi!

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được in lại từ [Medium]. Mọi bản quyền đều thuộc về tác giả gốc [LXDAO]. Nếu có phản đối về việc tái bản này, vui lòng liên hệ với nhóm Gate Learn(gatelearn@gate.io ), và họ sẽ xử lý kịp thời.
  2. Tuyên bố miễn trừ trách nhiệm pháp lý: Các quan điểm và ý kiến trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Việc dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch đều bị cấm.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!