zkApp: Bộ công cụ zk của Mina để thiết kế dApp

Các dự án blockchain luôn khuyến khích các lập trình viên thiết kế dApp trên blockchain của mình. Một trong những cách để tạo ra sự thuận lợi đó là tung ra bộ công cụ hỗ trợ thiết kế dApp cho các lập trình viên. Mina Protocol là một trong những dự án blockchain đang làm được điều này, khi họ giới thiệu bộ công cụ zkApp. Chúng ta sẽ cùng tìm hiểu những thông tin căn bản về bộ công cụ zkApp này.

1. zkApp của Mina Protocol là gì?

zkApp là bộ công cụ thiết kế dApp của Mina Protocol được hỗ trợ bởi zero knowledge proofs, cụ thể là zk-SNARKs. zkApp sử dụng mô hình trạng thái off-chain và cũng thực thi off-chain, giúp cho việc lưu thông tin trạng thái và thông tin thực thi được giữ riêng tư (hoặc công khai nếu muốn).

zkApps có thể thực hiện các phép tính phức tạp tùy ý off-chain trong khi chỉ phải trả một khoản phí cố định cho việc gửi kết quả của thông tin zk-proof lên chuỗi để xác minh tính toán này, trái ngược với các blockchain khác chạy tính toán on-chain và sử dụng phí gas thay đổi.

Mina zkApp zero knowledge app architecture diagram

2. Ưu điểm của zkApp

zkApps bảo vệ quyền riêng tư của người dùng. Họ sử dụng mật mã để chứng minh điều gì đó là sự thật mà không tiết lộ bối cảnh hoặc thông tin bổ sung xung quanh sự thật đã nói. Vì vậy, điều này có nghĩa là người dùng cuối của zkApps có thể tương tác bằng cách sử dụng bằng chứng về dữ liệu cá nhân của họ, thay vì chia sẻ dữ liệu đó. Ví dụ: zkApps có thể kết nối với nhà cung cấp điểm tín dụng để chứng minh rằng điểm tín dụng của bạn cao hơn một ngưỡng nhất định. Chẳng bao lâu nữa, bạn sẽ có thể chứng minh được nhiều hơn thế từ bất kỳ trang web nào. Điều này đảm bảo trải nghiệm riêng tư và an toàn cho người dùng, đồng thời không tạo gánh nặng cho nhà phát triển trong việc lưu trữ và bảo vệ dữ liệu nhạy cảm của người dùng.

zkApps có thể thực hiện các phép tính off-chain không giới hạn với mức phí cố định. Các blockchain khác thường sử dụng mô hình dựa trên phí gas thay đổi phụ thuộc vào cung và cầu của mạng tại bất kỳ thời điểm nào. Ngược lại, zkApps có thể thực hiện các phép tính phức tạp tùy ý off-chain trong khi chỉ phải trả một khoản phí cố định cho việc gửi kết quả của thông tin zk-proof lên chuỗi để xác minh tính toán này.

zkApps có thể kết nối Web2 với Web3. Hiện tại, các blockchain khác không thể dễ dàng đưa thông tin trên internet vào chuỗi, hạn chế tiện ích của các ứng dụng blockchain. Tuy nhiên, zkApps có thể tương tác riêng tư với bất kỳ trang web nào, chứng minh sự thật về API và trang web trên internet, đồng thời truy cập dữ liệu thế giới thực đã được xác minh để sử dụng trên chuỗi. Khả năng này có thể thực hiện được thông qua zkOracles, sử dụng HTTPS để kết nối dữ liệu trong thế giới thực với blockchain theo cách đáng tin cậy nhất có thể.

zkApps có thể được truy cập từ các chuỗi và thiết bị khác. Nhờ thiết kế cô đọng của Mina, khả năng lập trình zk-proof của Mina có thể được truy cập từ các chuỗi khác và cuối cùng là cả các thiết bị của người dùng cuối như điện thoại thông minh. Ví dụ: có một cầu nối được thiết lập giữa Mina và Ethereum để bất kỳ dapp nào được xây dựng trên Ethereum cũng có thể tận dụng quyền riêng tư của Mina và các lợi ích khác. Tính năng này được kích hoạt bởi công nghệ zkBridge, công nghệ này sẽ có sẵn để kết nối Mina với các blockchain khác.

zkApps được viết bằng Typescript. Thay vì được viết bằng ngôn ngữ lập trình mới mà các nhà phát triển phải học, zkApps được lập trình bằng SnarkyJS, một thư viện dựa trên Typescript. Điều này mở rộng đáng kể nhóm nhà phát triển có thể dễ dàng bắt đầu xây dựng zkApps.

3. Cách hoạt động của zkApp

zkApps chạy trong các phiên bản mới nhất của trình duyệt web Chrome , Firefox , Edge và Brave.

Một zkApp bao gồm hai phần:

  • Một hợp đồng thông minh
  • Giao diện người dùng (UI) để người dùng tương tác với zkApp
Sơ đồ hiển thị hai phần của zkApp
  • Thuật ngữ hợp đồng thông minh dùng để chỉ mã code được viết dựa trên thư viện o1js (thư viện Typescript sử dụng zk-SNARKs, SnarkyJS là tên gọi trước đó của o1js)
  • Thuật ngữ zkApp dùng để chỉ UI + hợp đồng thông minh.

Đọc thêm: https://docs.minaprotocol.com/zkapps/how-zkapps-work

4. Cách sử dụng zkApp

zkApp sử dụng:

  • Ngôn ngữ lập trình Typescript
  • Với giao diện Mina zkApp CLI: Là nhà phát triển zkApp, bạn sử dụng giao diện zkApp CLI (Command Line Interface) để xây dựng và triển khai dự án của mình.
  • Và dùng thư viện o1js

Để bắt đầu, hãy triển khai zkApp theo 5 bước:

  1. npm install -g zkapp-cli để cài đặt zkApp CLI và cung cấp lệnh zk trên hệ thống của bạn
  2. zk project <name>
  3. cd <name>
  4. zk config

Làm theo lời nhắc lệnh để định cấu hình file config.json cho dự án.

  • tên: berkeley (hoặc bất cứ tên gì)
  • URL API Mina GraphQL: https://proxy.berkeley.minaexplorer.com/graphql
  • Phí giao dịch: 0.1

Làm theo hướng dẫn để yêu cầu Testnet MINA (tMINA) nạp tiền vào tài khoản người trả phí của bạn. Nhấp vào URL trong terminal để yêu cầu tMINA theo address của bạn. Đợi ~3 phút cho khối tiếp theo để bạn có đủ tMINA để gửi giao dịch.

  1. zk deploy berkeley Dự án bạn vừa tạo chứa một hợp đồng thông minh mẫu có tên Add.ts lưu trữ một số ở trạng thái on-chain và thêm 2 vào đó bất cứ khi nào tài khoản zkApp nhận được giao dịch.

Bạn đã vừa triển khai xong zkApp!

Đọc thêm:

  • https://docs.minaprotocol.com/zkapps/how-to-write-a-zkapp
  • https://docs.minaprotocol.com/zkapps/tutorials/hello-world

Sau khi vọc xong thì có thể ra một số ứng dụng ví dụ như thế này:

Example zkApp zero knowledge applications.

Tham khảo cuộc thi zkIgnite Cohort 3 và danh sách các dApp giành chiến thắng khi sử dụng bộ công cụ zkApp ở cuộc thi zkIgnite Cohort 2.

Click Digital

  • Đầu tư vào các công ty quảng cáo blockchain hàng đầu bằng cách MUA token Saigon (SGN) trên Pancakeswap: https://t.co/KJbk71cFe8 (đừng lo lắng về tính thanh khoản, hãy trở thành nhà đầu tư sớm)
  • Được hỗ trợ bởi Công ty Click Digital
  • Nâng cao kiến thức về blockchain và crypto
  • Lợi nhuận sẽ dùng để mua lại SGN hoặc đốt bớt nguồn cung SGN để đẩy giá SGN tăng.
  • Địa chỉ token trên mạng BSC: 0xa29c5da6673fd66e96065f44da94e351a3e2af65
  • Twitter: https://twitter.com/SaigonSGN135
  • Staking SGN: http://135web.net
Rate this post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *