Account abstraction (AA) là gì? Công cụ hướng tới mass adoption

Account abstraction (AA) là đề xuất nâng cấp nhằm mang lại trải nghiệm phải chăng cho người mua lúc dùng đồng thời nâng cao tính linh hoạt, logic cho những loại ví cá nhân. Đây là đề xuất mang tính đột phá của Ethereum founder có thể giúp thị trường lôi kéo được hàng triệu người mua trong tương lai.

Account abstraction là gì?

Account abstraction (AA) là 1 loại Ethereum Account, đề xuất AA này cho phép chuyển đổi những loại account thành những hợp đồng thông minh có logic riêng của chúng để có thể tự xác định thế nào là 1 thanh toán hợp lệ, trả phí tổn thanh toán và thực hành việc khởi tạo thanh toán.

Trong thuật ngữ ngành khoa học máy tính, những account đấy được coi là đã được trừu tượng hoá (abstracted), từ đấy dẫn tới cái tên Account abstraction.

Điều này có nghĩa là sẽ ko còn trường hợp 1 account được dùng cho mọi những mục đích. Giống như việc tách những “vật thể” đang nắm giữ token (account) ra khỏi “vật thể” được dùng để trao quyền/cho phép thanh toán những token (signer).

Việc này hướng tới việc giúp cho mỗi person có thể có 1 loại account ưu thích có nhu cầu cá nhân của họ.

Có những person muốn dùng thuật toán xác minh chữ ký khác bên cạnh ECDSA, dùng nhiều key để cấp quyền những thanh toán, thay đổi signer của account mỗi tuần, họ có thể viết 1 account riêng để thực hành những điều đấy.

Trên thực tế, khái niệm Account abstraction ko nên quá mới, Vitalik đã đề cập tới AA từ đề xuất EIP-86 của Ethereum từ 5 2017, tuy nhiên do bắc buộc quá nhiều thay đổi từ protocol để thực hành. Sau đấy, Vitalik đã cập nhật thêm những bản cải tiến là EIP-2938 và phiên bản sắp nhất là EIP-4337 để có thể dễ dàng triển khai hơn.

2 dự án đã công bố chính thức ứng dụng Account abstraction là những dự án Layer 2 StarkNet và zkSync phiên bản 2.0.

Ethereum Account là gì?

Ethereum Account được định nghĩa là 1 thực thể (entity) có số dư ETH và có thể thực hành những thanh toán trên mạng lưới Ethereum. Những account có thể do người mua điều khiển hoặc cũng có thể được triển khai dưới dạng hợp đồng thông minh.

Ethereum có 2 loại account chính:

  • Externally-owned Accounts (EOA): Kiểm soát bởi bất kì ai chỉ cần người đấy nắm giữ personal key.
  • Contract Accounts (CA): Là những hợp đồng thông minh được triển khai trên mạng lưới, kiểm soát bởi những dòng code.

Cả 2 loại account trên đều có những khả năng:

  • Nhận, giữ, gửi ETH và những loại token trên mạng Ethereum.
  • Tương tác có những sensible contracts khác.

1 vài điểm khác biệt cơ bản giữa 2 loại account:

Có Externally-owned:

  • Tạo những toàn khoản Externally-owned đơn giản và miễn phí tổn.
  • Có thể khởi tạo những thanh toán.
  • Thanh toán giữa 2 toàn khoản Externally-owned chỉ có thể là thanh toán chuyển ETH/token.

Có Contract:

  • Việc tạo 1 contract sẽ cần có 1 khoản phí tổn do dùng bộ nhớ mạng
  • Chỉ có thể gửi thanh toán lúc nhận được thanh toán
  • Những thanh toán từ account Exterior tới 1 account Contract có thể kích hoạt mã code thực thi nhiều hành động khác nhau như thanh toán token, tạo 1 contract mới…
Xem Thêm  Digitex Futures (DGTX) là gì? Toàn tập về tiền điện tử DGTX

Nhìn chung, cả 2 loại account đều có 4 đặc tính:

  • Nonce: 1 bộ đếm cho biết số lượng thanh toán được gửi từ account, đảm bảo những thanh toán sẽ chỉ được thực hành 1 lần. Có Contract account, con số này đại diện cho số contracts được tạo bởi account này.
  • Steadiness: Số dư đại diện cho lượng ETH account sở hữu
  • codeHash: Mã hàm băm này được tham khảo từ mã của 1 account trên Ethereum Digital Machine (EVM). Account Contract có những đoạn mã được lập trình để thực hành những hoạt động khác nhau. Khác có những trường đặc tính khác, mã này ko thể bị thay đổi.
  • storageRoot: Hay còn được gọi là hàm băm lữu trữ (storage hash), được dùng để mã hoá hàm băm của nội dung được lữu trữ trên account.

Ở thời điểm hiện tại, EOA là loại account chủ yếu mà người mua tương tác và cũng có tác động nhiều nhất tới người mua. Ko chỉ vậy, mọi những thanh toán trên Ethereum cũng đều được khởi tạo từ ví EOA.

Mỗi ví EOA sẽ được tạo thành bởi 1 cặp khoá mật mã: public key và personal key. 2 loại khoá này giúp chứng minh 1 thanh toán thực sự được ký bởi người gửi và ngăn chặn những hành vi fake mạo. Non-public key là công cụ để người mua ký (signal) những thanh toán, vì vậy cấp cho người mua quyền kiểm soát đối có tài sản nằm trong account đấy.

Hay nói theo bí quyết khác, người mua chưa bao giờ thực sự nắm giữ crypto, thay vào đấy nắm giữ những personal key để truy cập vào số fund luôn nằm trên sổ cái của Ethereum.

Điều gì xảy ra giả dụ người mua đánh mất personal key hoặc ai đấy sở hữu nó?

Cơ chế của account và signer trên thực tế đã từng bị hacker lợi dụng để chiếm đoạt tài sản người mua trong quá khứ. 1 câu hỏi nữa đặt ra là giả dụ người mua đánh mất personal key thì điều gì sẽ xảy ra?

Non-public key cũng chính là account của người mua, mất personal key đồng nghĩa có việc đánh mất account và mọi token trong account đấy. Trong trường hợp này, người mua hầu như ko có bí quyết nào để cứu chữa, đã có triệu đô bị mất hoặc đánh cắp có những lí do liên quan tới personal key.

Tất nhiên, customers cũng có thể dùng những thiết bị ví cứng lưu trữ personal key trong môi trường ko có hợp tác web và viết personal key ra giấy. Đây là biện pháp an toàn nhất cho tới thời điểm hiện tại, tuy nhiên vẫn chưa nên là tối ưu nhất, siêu khó để tiến tới mass adoption có hàng trăm triệu customers có bí quyết thức này.

Chính vì vậy, những nhà phát triển thành của Ethereum đang tiến hành phát triển thành giải pháp Account abstraction để giải quyết vấn đề trên.

Mục đích của Account abstraction

Mục đích của việc triển khai AA là để cải thiện đáng nói trải nghiệm người mua trong việc tương tác có blockchain Ethereum qua những ví, Dapps, DeFi. Account abstraction cũng đóng vai trò là 1 base layer trên Ethereum để quyết định lúc nào 1 account có thể tự trả phí tổn fuel và hình thức trả phí tổn fuel diễn ra như nào.

Xem Thêm  Chỉ dẫn bí quyết bật Bluetooth trên máy tính Win 10 và Win 7

Cụ thể, AA giúp giải quyết những hạn chế ngăn chặn sự phát triển thành trong 1 số lĩnh vực quan yếu:

  • Tạo ví hợp đồng thông minh dùng những loại xác minh chữ ký khác bên cạnh ECDSA (Schnorr, BLS…).
  • Tạo ví hợp đồng thông minh bao gồm những tính năng như xác minh multisig, khôi phục xã hội (social restoration), giảm nguy cơ mất hoặc bị đánh cắp tài sản.
  • Những hệ thống bảo vệ quyền riêng tư như twister.money.
  • Cải thiện hiệu quả dùng phí tổn fuel của những DeFi protocols bằng bí quyết ngăn chặn những thanh toán ko đáp ứng điều kiện cao cấp được đưa vào chuỗi.
  • Giúp người mua có thể dùng 1 loại token khác để trả phí tổn thay vì bắt buộc nên dùng ETH (thí dụ: chuyển đổi token đấy thành ETH cần để trả phí tổn fuel ngay trong thanh toán theo thời kì thực).

1 trong những thí dụ dễ hiểu nhất của Account abstraction có thể được hiểu như sau.

Fake sử người mua muốn chuyển token sang muốn cái ví mới vì lí do bảo mật. Sau đấy, người mua vô tình gửi toàn bộ số ETH tới ví mới trước. Điều này có nghĩa ko có ETH, ví cũ sẽ ko thể chuyển những token còn lại.

Tất nhiên, bí quyết đơn giản nhất vẫn có thể chỉ đơn giản gửi 1 phần ETH lại liên hệ ví cũ, lãng phí tổn chút thời kì và phí tổn fuel. Trường hợp này nghe đơn giản nhưng đã có nhiều người mua gặp nên, AA có thể đem tới cho người mua giải pháp “biến” cái vi thành sensible contract pockets và cho phép dùng những token có sẵn trong ví khiến phí tổn fuel.

Sensible contract pockets, hay còn gọi là ví hợp đồng thông minh, là 1 loại account blockchain được triển khai, quản lý on-chain qua những hợp đồng thông minh thay vì personal key. Loại ví này phân phối những giải pháp giảm thiểu rủi ro lập trình và thân thiện có người mua có những tính năng như bảo mật nhiều chữ ký (multi-signature safety), khôi phục xã hội (social restoration), cho phép/chặn những liên hệ ví khác, thanh toán theo “lô” (batched transactions), đóng băng ví…

Những loại ví sensible contract đã xuất hiện khá nhiều cho tới thời điểm hiện tại và đã có lúc được coi như 1 “development” mới. Những loại ví sensible contract nổi bật nhất nên nói tới ví Argent, Authereum, Gnosis Multisig, Gnosis Protected, ConsenSys Multisig…

Bí quyết hoạt động của Account abstraction

Theo giới thiệu của EIP-2938 trên trang chủ Ethereum, EIP-2938 có thể hoạt động bằng bí quyết đưa ra những protocol adjustments có 1 loại thanh toán AA mới bắc buộc 2 mã opcode mới: NONCE và PAYGAS; thay đổi những quy tắc của mempool và extensions để tương trợ những ứng dụng nâng cao.

Tuy nhiên bí quyết khiến này tương đối phức tạp, Vitalik đã đưa ra phiên bản phát triển thành ERC-4337 để đạt được account abstraction như những gì EIP-2938 khiến được mà ko cần những protocol adjustments.

Xem Thêm  Marlin Protocol - Thông tin chi tiết về POND Token

Người mua sẽ gửi những messages 1 bí quyết off-chain được gọi là UserOperation, sau đấy sẽ được thu thập và đóng gói hàng loạt thành 1 thanh toán bởi người đề xuất khối qua module bundler.

Người đề xuất khối có trách nghiệm lọc những hoạt động để đảm bảo rằng chỉ chấp nhận những hoạt động có trả phí tổn. Sẽ có 1 mempool riêng cho những UserOperation và những node được kết nối có mempool này để thực hành xác thực chuyên dụng cho ERC-4337 để đảm bảo 1 UserOperation bất kì luôn được trả phí tổn trước lúc chuyển đi.

Chuyển đổi EOA thành sensible contract pockets

Để cho phép những account EOA có thể được nâng cấp lên thành ví ERC-4337, có thể tạo EIP cho phép những EOA thực hành 1 thao tác thiết lập mã hợp đồng (contract code). 1 lúc EOA thực hành điều này, sự chuyển đổi sẽ ko thể bị đảo ngược và nói từ thời điểm đấy, account đấy sẽ chỉ có thể hoạt động như 1 ví hợp đồng thông minh.

Đã có 1 vài proposal về bí quyết thực hành quy trình nâng cấp này như thanh toán substitute code hay AUTH_USURP (EIP-5003).

Hạn chế của ERC-4337

Nhìn chung, ERC-4337 cũng có thể tương tác có những chuẩn ERC khác, tuy nhiên cũng có 1 vài yếu điểm:

  • Người mua hiện tại ko thể nâng cấp giả dụ ko chuyển toàn bộ tài sản sang 1 account hoàn toàn mới.
  • Cần chi phí tổn fuel bổ sung (~42,000 gwei cho 1 UserOperation cơ bản so có ~21k cho 1 thanh toán bình thường).
  • Nhận ít lợi ích từ những kĩ thuật chống kiểm thông qua trong giao thức như crLists, vì chúng sẽ nhắm tới mục tiêu là những thanh toán và sẽ bỏ qua UserOperation.

Roadmap dự kiến của Account abstraction

Do phiên bản AA hoàn thiện nhất tới thời điểm hiện tại là ERC-4337 nên bài viết sẽ tập trung vào roadmap của ERC-4337.

Trong short-term

  • Đưa ERC-4337 phát triển thành sản phẩm hoàn thiện. Mở rộng thêm khả năng tổng hợp chữ ký.
  • Vươn lên là ví trình thông qua dễ tiếp cận dùng loại ví ERC-4337.
  • Khởi động hệ sinh thái ERC-4337 trong những giao thức Layer 2, ở đấy phí tổn fuel rẻ hơn siêu nhiều.

Trong medium-term

  • Triển khai Verkle bushes (tương tự có Merkle Tree), thêm những EIPs mới để giảm phí tổn fuel.
  • Thêm những giải pháp tuỳ chọn nâng cấp EOA lên ERC-4337.
  • Có thể thêm crList logic.

Trong long-term

  • Cân nhắc ứng dụng việc chuyển đổi bắt buộc từ EOA.

Tổng kết

Account abstraction từ lâu đã là giấc mơ chung của cùng đồng những nhà phát triển thành Ethereum. Thay vì những dòng EVM code chỉ được dùng để triển khai logic của những ứng dụng/dapps, nó cũng có thể được dùng để triển khai logic của những ví người mua cá nhân.

Điều này có thể mở ra cánh cửa cho sự sáng tạo trong bí quyết thiết kế ví, mang tới cho người mua nhiều tính năng quan yếu mới mà ko cần quá phụ thuộc vào personal key nữa. Cùng chờ đón những sự phát triển thành của AA nói chung và ERC-4337 nói riêng trong tương lai!