< Quay lại Tin tức

Ethereum gia nhập SSP — Schnorr multisig trên ERC-4337

·4 phút đọc·Bởi SSP Editorial Team
Phù hiệu RELEASE với biểu tượng chìa khoá, tia chớp, khiên và CPU phía trên dòng tiêu đề Ethereum + Schnorr Multisig — Account Abstraction ERC-4337

Ngày 18 tháng 7 năm 2024, SSP Wallet v1.6.0 đã thêm Ethereum — và SSP trở thành ví đầu tiên triển khai tài khoản Schnorr-multisig thực sự trên Ethereum bằng cách dùng Account Abstraction ERC-4337. Các ví khác tự gọi mình là "Ethereum multisig" bằng cách xếp một tài khoản sở hữu bên ngoài duy nhất phía sau giao diện. SSP đã chọn con đường khó hơn, để cùng mô hình 2-trên-2 đang bảo vệ Bitcoin trong SSP nay cũng bảo vệ ETH.

TL;DR

  • Ethereum (ETH) gia nhập SSP với tư cách một chuỗi hạng nhất.
  • Tài khoản là hợp đồng thông minh theo ERC-4337, không phải EOA — nên sự thực thi 2-trên-2 sống trên chuỗi.
  • Hai chữ ký Schnorr tổng hợp thành một trước khi đến Ethereum, giữ phí gas dễ đoán.
  • Thư viện ký là mã nguồn mở trên npm: @runonflux/aa-schnorr-multisig-sdk.
  • Hỗ trợ token ERC-20 là bước tiếp theo; bản phát hành này mang ETH cùng các nền móng AA bên dưới.

Cái đã đổ bộ: hỗ trợ Ethereum, theo cách khó

Hầu hết các ví "hỗ trợ Ethereum" bằng cách tạo một tài khoản sở hữu bên ngoài (EOA) — một khoá riêng duy nhất, một chữ ký duy nhất, một điểm hỏng duy nhất. Thêm multisig phía trên thường chỉ là một chính sách phần mềm phía ví, không phải một quy tắc do chuỗi áp đặt. Chuỗi vẫn thấy một khoá, và ai cầm khoá ấy có thể tự mình chuyển tiền.

SSP từ chối lối tắt đó. Toàn bộ ý nghĩa của mô hình 2-trên-2 của SSP là cả SSP Wallet trên máy tính lẫn SSP Key trên điện thoại đều không thể tự mình chuyển tiền — đồng ký là tính chất của tài khoản, không phải quy ước của giao diện. Để giữ điều đó trên Ethereum, một EOA sẽ không bao giờ là đủ. Tài khoản Ethereum phải là một hợp đồng thông minh yêu cầu hai chữ ký theo thiết kế. Đó đúng là cái đã ra mắt trong v1.6.0.

Schnorr multisig ở đây có nghĩa là gì

Các script UTXO của Bitcoin có thể biểu diễn 2-trên-2 một cách tự nhiên — đó là cách các chuỗi hiện có của SSP áp đặt đồng ký. Mô hình tài khoản của Ethereum không thể, không phải nếu không có trợ giúp. SSP lấp đầy khoảng cách đó bằng chữ ký Schnorr.

Schnorr là một sơ đồ chữ ký có một tính chất quan trọng ở đây: hai người ký có thể mỗi người tạo ra một chữ ký từng phần, và các phần đó có thể được kết hợp thành một chữ ký hợp lệ duy nhất xác thực dưới một khoá công khai tổng hợp duy nhất. Với bất kỳ ai đọc chuỗi, nó trông như một người ký đã ký một lần. Với SSP, hai thiết bị đã phải đồng thuận. Chiều sâu mật mã — tổng hợp khoá, phối hợp nonce, các vòng kiểu MuSig2 — được trình bày trong bài học viện của chúng tôi về chữ ký Schnorr và tổng hợp multisig nếu bạn muốn xem. Bản tóm tắt phía người dùng thì ngắn: vẫn cái bắt tay SSP Wallet + SSP Key bạn đã dùng, nay được biểu diễn như một chữ ký Schnorr tổng hợp duy nhất trên Ethereum.

Account Abstraction ERC-4337

Account Abstraction (AA) là thuật ngữ ô dù cho việc cho phép các tài khoản Ethereum hành xử như ví có thể lập trình thay vì cặp khoá trần. Trong mô hình Ethereum tiêu chuẩn có hai loại tài khoản: EOA, được điều khiển bởi một khoá riêng duy nhất, và hợp đồng, không thể tự khởi tạo giao dịch. AA xoá bỏ ranh giới đó ở tầng ứng dụng.

ERC-4337 là tiêu chuẩn Ethereum cung cấp AA mà không cần thay đổi chính Ethereum. Thay vì một hard fork, nó định nghĩa một đối tượng giao dịch cấp cao hơn gọi là UserOperation, một bundler biến chúng thành các giao dịch Ethereum thông thường, và một hợp đồng EntryPoint xác thực chúng. "Tài khoản" của bạn là một hợp đồng thông minh tự quyết định cách xác thực chi tiêu — với SSP, quy tắc xác thực đó là: một chữ ký Schnorr tổng hợp từ cả SSP Wallet và SSP Key, hoặc không có gì. Không hard fork L1, không cần các nhà vận hành nút đặc biệt, không có giả định tin cậy nào ngoài cái đã được triển khai trên mainnet.

Thư viện mã nguồn mở

Lớp ký Schnorr-multisig không bị chôn bên trong ứng dụng SSP. Chúng tôi đã tách nó thành một thư viện có thể tái sử dụng và phát hành dưới cùng tư thế mã nguồn mở như phần còn lại của SSP. SDK TypeScript sống trên npm với tên @runonflux/aa-schnorr-multisig-sdk; các hợp đồng Solidity Account Abstraction đi cùng sống trong kho @runonflux/account-abstraction trên GitHub.

Nếu bạn là người làm ví, nhà nghiên cứu bảo mật, hoặc đơn giản tò mò xem AA Schnorr-multisig thực sự ghép lại trên Ethereum như thế nào, cả hai dự án đều ở đó để đọc, fork và đóng góp. Pull request và issue đều được hoan nghênh — chúng tôi thà rèn cứng một thư viện chung với nhiều con mắt hơn là để mỗi ví muốn nguyên thuỷ này phải tự phát minh lại nó.

Cái này mở khoá điều gì

Riêng với v1.6.0, chuỗi được cung cấp là chính Ethereum — số dư ETH, chuyển ETH, vẫn cái công tắc trong bảng Chains bạn dùng cho mọi đồng coin khác, nay có một tài khoản AA phía sau. Đường ống mà bản phát hành này đặt xuống là phần khó hơn. Khi các tài khoản Schnorr AA 2-trên-2 đã tồn tại và hoạt động, mọi số dư có dạng Ethereum đều trở nên với tới được.

Hỗ trợ token ERC-20 là bước tiếp theo tự nhiên và đã có trên lộ trình — chúng tôi sẽ đề cập trong một bài newsroom riêng khi nó ra mắt. Hôm nay, tiêu đề là Ethereum đã ở trong SSP, ở trong SSP theo cách đúng đắn, và các nền móng mật mã cùng hợp đồng thông minh bên dưới đều là mã nguồn mở trên npm và GitHub để bất kỳ ai cũng có thể kiểm tra.

Nguồn: ghi chú phát hành SSP Wallet v1.6.0.

Chia sẻ bài viết này

Bài viết liên quan