Chúng tôi đã phát triển EIP7702Proxy, một hợp đồng proxy ERC-1967 nhẹ được thiết kế để đóng vai trò là chuyển tiếp logic cơ bản của ủy quyền EIP-7702 cho EOA... giải quyết một số thách thức duy nhất đối với các tài khoản được ủy quyền EIP-7702. Bài viết này là từ một bài báo được viết bởi cộng đồng Boardlink và được biên soạn, biên soạn và đóng góp bởi ForesightNews. (Tóm tắt nội dung: Ethereum Pectra nâng cấp "hacker flip", Wintermute cảnh báo: EIP-7702 tự động hóa việc triển khai một số lượng lớn các hợp đồng) (Bổ sung cơ bản: "Dự án bảo mật một nghìn tỷ đô la" của Ethereum Foundation phát hành báo cáo đầu tiên: Sắp xếp các hợp đồng thông minh, cơ sở hạ tầng và bảo mật đám mây... Sáu thách thức sinh thái EIP-7702 cho phép các ví Ethereum đơn giản (EOA) nâng cấp lên ví hợp đồng thông minh, cung cấp bảo mật cao hơn, các tính năng nâng cao, cơ hội tài trợ gas và các lợi ích khác. Trong lịch sử, ví thông minh phải được xây dựng từ đầu, nhưng với sự ra đời của EIP-7702, ví truyền thống có thể được nâng cấp và giữ tất cả tài sản và lịch sử trên chuỗi của chúng, với cùng một địa chỉ ví. Nó giống như chuyển từ điện thoại cố định sang điện thoại thông minh mà không cần phải lấy số mới. EOA được nâng cấp bằng cách thiết lập "chỉ định ủy quyền", tức là con trỏ đến hợp đồng thông minh đại diện, sau đó ủy quyền logic của hợp đồng thông minh để quản lý EOA. Do đó, EOA được nâng cấp có thể có các chức năng, đặt lưu trữ, phát ra sự kiện và thực hiện tất cả các hoạt động khác mà hợp đồng thông minh có thể thực hiện. EOA có thể thay đổi hoặc xóa ủy quyền này bất kỳ lúc nào với ủy quyền EIP-7702 mới, đã ký. Mặc dù điều này mở ra nhiều khả năng mới, nhưng tính năng mạnh mẽ này cũng đưa ra những thách thức bảo mật mới đòi hỏi phải xem xét cẩn thận và các giải pháp sáng tạo. Để cho phép EOA hoạt động như một ví hợp đồng thông minh, chúng tôi đã phát triển EIP7702Proxy, một hợp đồng proxy ERC-1967 nhẹ được thiết kế để phục vụ như một đại biểu EIP-7702 cho EOA. Ngoài việc chuyển tiếp logic cơ bản do tổng đài viên thực hiện, EIP7702Proxy bao gồm các tính năng bổ sung và lựa chọn thiết kế giải quyết một số thách thức duy nhất đối với các tài khoản được ủy quyền EIP-7702. Một mục tiêu của việc thiết kế EIP7702Proxy là duy trì khả năng ngang hàng càng nhiều càng tốt giữa ví thông minh Coinbase "được triển khai tiêu chuẩn" và ví thông minh Coinbase được ủy quyền EIP-7702, có nghĩa là trừu tượng hóa sự phức tạp bổ sung cần thiết cho cơ chế EIP-7702 thành một proxy chuyên dụng và tiếp tục dựa vào việc triển khai ban đầu của CoinbaseSmartWallet. Giải pháp cho thách thức này có thể được áp dụng hiệu quả cho bất kỳ logic triển khai nào, không chỉ triển khai CoinbaseSmartWallet, đồng thời giúp EOA giữ an toàn trong môi trường hỗ trợ 7702. Dưới đây chúng tôi trình bày những thách thức cụ thể và các giải pháp thiết kế tương ứng cho phép chúng tôi điều chỉnh an toàn bất kỳ triển khai ví hợp đồng thông minh hiện có nào để nâng cấp EIP-7702. Thách thức #1: Thực thi khởi tạo an toàn Rào cản lớn đầu tiên để triển khai EIP-7702 đến từ các ràng buộc khởi tạo của nó. Ví hợp đồng thông minh truyền thống, bao gồm CoinbaseSmartWallet, thường xử lý khởi tạo an toàn (thiết lập quyền sở hữu tài khoản) một cách nguyên tử trong quá trình triển khai, thường thông qua một hợp đồng nhà máy riêng biệt. Tính nguyên tử này có nghĩa là nhiều triển khai như vậy có các hàm khởi tạo không được bảo vệ chỉ có thể được gọi một lần. Tuy nhiên, thiết kế của EIP-7702 không cho phép thực hiện dữ liệu cuộc gọi khởi tạo trong quá trình ủy quyền mã (bước tương đương của "triển khai"), vì vậy điều này không thể được thực hiện một cách nguyên tử. Sự tách biệt các bước này tạo ra một cửa sổ lỗ hổng nghiêm trọng. Khi hợp đồng triển khai được "triển khai" cho EOA thông qua EIP-7702, không có gì đảm bảo rằng giao dịch EVM tiêu chuẩn cho ví nâng cấp và khởi tạo 7702 này sẽ được thực hiện nguyên tử. Về mặt kỹ thuật, ngay cả khi được cam kết cùng một lúc, mã đặt ủy quyền có thể độc lập với ứng dụng giao dịch khởi tạo, điều này có thể cho phép kẻ tấn công thực hiện trước giao dịch khởi tạo và yêu cầu quyền sở hữu tài khoản thông minh. Giải pháp: Cần có chữ ký EOA để cấu hình triển khai nguyên tử và khởi tạo Lưu ý rằng ví thông minh Coinbase hiện có được triển khai sau proxy ERC-1967 với triển khai UUPSUpgradeable (logic CoinbaseSmartWallet thực tế). Mã trong địa chỉ tài khoản thực tế là một proxy sử dụng vị trí lưu trữ thông thường được xác định bởi ERC-1967 để lưu trữ các con trỏ đến logic triển khai của nó. Giải pháp của chúng tôi cho lỗ hổng khởi tạo trong bối cảnh 7702 bao gồm việc nhận ra rằng bất kỳ logic triển khai nào cũng trở nên hoạt động (và do đó nguy hiểm) chỉ khi tác nhân thực sự thiết lập kết nối với nó. Vì vậy, nếu chúng ta không thể buộc triển khai và khởi tạo nguyên tử, chúng ta có thể buộc thiết lập và khởi tạo triển khai nguyên tử. EIP-7702Cấu trúc hợp đồng CoinbaseSmartWallet và quy trình ủy quyền hợp lý Trong bối cảnh của EIP-7702, bản thân EOA là cơ quan ban đầu để thực hiện bất kỳ thay đổi nào đối với tài khoản của mình và chữ ký phải được cung cấp để ủy quyền cho bất kỳ chủ sở hữu nào khởi tạo và thiết lập tài khoản thông minh mới. Hợp đồng EIP7702Proxy của chúng tôi triển khai chức năng setImplementation thiết lập nguyên tử các triển khai logic mới và khởi tạo tài khoản. setImplementing function: Xác minh chữ ký từ EOA, bao gồm dữ liệu chính như địa chỉ của hợp đồng triển khai mới, khởi tạo calldata, địa chỉ của hợp đồng xác thực sẽ đánh giá tính bảo mật của trạng thái tài khoản cuối cùng và bảo vệ phát lại chữ ký cơ bản như nonce và thời gian hết hạn. Đặt giá trị của con trỏ ERC-1967 đến triển khai mới và thực thi dữ liệu cuộc gọi được cung cấp đối với triển khai logic mới. Gọi hàm validateAccountState, hàm này phải được thực hiện bởi người chứng nhận có trong chữ ký. Trình xác thực là một hợp đồng triển khai cụ thể chứa logic để đánh giá xem nó có coi trạng thái tài khoản cuối cùng an toàn hay không. Ví dụ: đối với CoinbaseSmartWallet, CoinbaseSmartWalletValidator kiểm tra xem trạng thái quyền sở hữu của tài khoản có trống hay không và do đó không còn dễ bị khởi tạo tùy ý. Thách thức #2: Lưu trữ chia sẻ được ủy quyền trên EIP-7702 Những thách thức phức tạp nhất của EIP-7702 có thể liên quan đến quản lý lưu trữ. EOA có thể tự do ủy quyền lại logic của nó cho một hợp đồng khác bất cứ lúc nào hoặc xóa hoàn toàn ủy quyền. Tất cả các đại biểu chia sẻ địa chỉ EOA trên...
Nội dung chỉ mang tính chất tham khảo, không phải là lời chào mời hay đề nghị. Không cung cấp tư vấn về đầu tư, thuế hoặc pháp lý. Xem Tuyên bố miễn trừ trách nhiệm để biết thêm thông tin về rủi ro.
Bảo đảm nâng cấp Ethereum EIP-7702: một mô hình đại diện an toàn cho việc chuyển đổi từ EOA sang Ví tiền thông minh
Chúng tôi đã phát triển EIP7702Proxy, một hợp đồng proxy ERC-1967 nhẹ được thiết kế để đóng vai trò là chuyển tiếp logic cơ bản của ủy quyền EIP-7702 cho EOA... giải quyết một số thách thức duy nhất đối với các tài khoản được ủy quyền EIP-7702. Bài viết này là từ một bài báo được viết bởi cộng đồng Boardlink và được biên soạn, biên soạn và đóng góp bởi ForesightNews. (Tóm tắt nội dung: Ethereum Pectra nâng cấp "hacker flip", Wintermute cảnh báo: EIP-7702 tự động hóa việc triển khai một số lượng lớn các hợp đồng) (Bổ sung cơ bản: "Dự án bảo mật một nghìn tỷ đô la" của Ethereum Foundation phát hành báo cáo đầu tiên: Sắp xếp các hợp đồng thông minh, cơ sở hạ tầng và bảo mật đám mây... Sáu thách thức sinh thái EIP-7702 cho phép các ví Ethereum đơn giản (EOA) nâng cấp lên ví hợp đồng thông minh, cung cấp bảo mật cao hơn, các tính năng nâng cao, cơ hội tài trợ gas và các lợi ích khác. Trong lịch sử, ví thông minh phải được xây dựng từ đầu, nhưng với sự ra đời của EIP-7702, ví truyền thống có thể được nâng cấp và giữ tất cả tài sản và lịch sử trên chuỗi của chúng, với cùng một địa chỉ ví. Nó giống như chuyển từ điện thoại cố định sang điện thoại thông minh mà không cần phải lấy số mới. EOA được nâng cấp bằng cách thiết lập "chỉ định ủy quyền", tức là con trỏ đến hợp đồng thông minh đại diện, sau đó ủy quyền logic của hợp đồng thông minh để quản lý EOA. Do đó, EOA được nâng cấp có thể có các chức năng, đặt lưu trữ, phát ra sự kiện và thực hiện tất cả các hoạt động khác mà hợp đồng thông minh có thể thực hiện. EOA có thể thay đổi hoặc xóa ủy quyền này bất kỳ lúc nào với ủy quyền EIP-7702 mới, đã ký. Mặc dù điều này mở ra nhiều khả năng mới, nhưng tính năng mạnh mẽ này cũng đưa ra những thách thức bảo mật mới đòi hỏi phải xem xét cẩn thận và các giải pháp sáng tạo. Để cho phép EOA hoạt động như một ví hợp đồng thông minh, chúng tôi đã phát triển EIP7702Proxy, một hợp đồng proxy ERC-1967 nhẹ được thiết kế để phục vụ như một đại biểu EIP-7702 cho EOA. Ngoài việc chuyển tiếp logic cơ bản do tổng đài viên thực hiện, EIP7702Proxy bao gồm các tính năng bổ sung và lựa chọn thiết kế giải quyết một số thách thức duy nhất đối với các tài khoản được ủy quyền EIP-7702. Một mục tiêu của việc thiết kế EIP7702Proxy là duy trì khả năng ngang hàng càng nhiều càng tốt giữa ví thông minh Coinbase "được triển khai tiêu chuẩn" và ví thông minh Coinbase được ủy quyền EIP-7702, có nghĩa là trừu tượng hóa sự phức tạp bổ sung cần thiết cho cơ chế EIP-7702 thành một proxy chuyên dụng và tiếp tục dựa vào việc triển khai ban đầu của CoinbaseSmartWallet. Giải pháp cho thách thức này có thể được áp dụng hiệu quả cho bất kỳ logic triển khai nào, không chỉ triển khai CoinbaseSmartWallet, đồng thời giúp EOA giữ an toàn trong môi trường hỗ trợ 7702. Dưới đây chúng tôi trình bày những thách thức cụ thể và các giải pháp thiết kế tương ứng cho phép chúng tôi điều chỉnh an toàn bất kỳ triển khai ví hợp đồng thông minh hiện có nào để nâng cấp EIP-7702. Thách thức #1: Thực thi khởi tạo an toàn Rào cản lớn đầu tiên để triển khai EIP-7702 đến từ các ràng buộc khởi tạo của nó. Ví hợp đồng thông minh truyền thống, bao gồm CoinbaseSmartWallet, thường xử lý khởi tạo an toàn (thiết lập quyền sở hữu tài khoản) một cách nguyên tử trong quá trình triển khai, thường thông qua một hợp đồng nhà máy riêng biệt. Tính nguyên tử này có nghĩa là nhiều triển khai như vậy có các hàm khởi tạo không được bảo vệ chỉ có thể được gọi một lần. Tuy nhiên, thiết kế của EIP-7702 không cho phép thực hiện dữ liệu cuộc gọi khởi tạo trong quá trình ủy quyền mã (bước tương đương của "triển khai"), vì vậy điều này không thể được thực hiện một cách nguyên tử. Sự tách biệt các bước này tạo ra một cửa sổ lỗ hổng nghiêm trọng. Khi hợp đồng triển khai được "triển khai" cho EOA thông qua EIP-7702, không có gì đảm bảo rằng giao dịch EVM tiêu chuẩn cho ví nâng cấp và khởi tạo 7702 này sẽ được thực hiện nguyên tử. Về mặt kỹ thuật, ngay cả khi được cam kết cùng một lúc, mã đặt ủy quyền có thể độc lập với ứng dụng giao dịch khởi tạo, điều này có thể cho phép kẻ tấn công thực hiện trước giao dịch khởi tạo và yêu cầu quyền sở hữu tài khoản thông minh. Giải pháp: Cần có chữ ký EOA để cấu hình triển khai nguyên tử và khởi tạo Lưu ý rằng ví thông minh Coinbase hiện có được triển khai sau proxy ERC-1967 với triển khai UUPSUpgradeable (logic CoinbaseSmartWallet thực tế). Mã trong địa chỉ tài khoản thực tế là một proxy sử dụng vị trí lưu trữ thông thường được xác định bởi ERC-1967 để lưu trữ các con trỏ đến logic triển khai của nó. Giải pháp của chúng tôi cho lỗ hổng khởi tạo trong bối cảnh 7702 bao gồm việc nhận ra rằng bất kỳ logic triển khai nào cũng trở nên hoạt động (và do đó nguy hiểm) chỉ khi tác nhân thực sự thiết lập kết nối với nó. Vì vậy, nếu chúng ta không thể buộc triển khai và khởi tạo nguyên tử, chúng ta có thể buộc thiết lập và khởi tạo triển khai nguyên tử. EIP-7702Cấu trúc hợp đồng CoinbaseSmartWallet và quy trình ủy quyền hợp lý Trong bối cảnh của EIP-7702, bản thân EOA là cơ quan ban đầu để thực hiện bất kỳ thay đổi nào đối với tài khoản của mình và chữ ký phải được cung cấp để ủy quyền cho bất kỳ chủ sở hữu nào khởi tạo và thiết lập tài khoản thông minh mới. Hợp đồng EIP7702Proxy của chúng tôi triển khai chức năng setImplementation thiết lập nguyên tử các triển khai logic mới và khởi tạo tài khoản. setImplementing function: Xác minh chữ ký từ EOA, bao gồm dữ liệu chính như địa chỉ của hợp đồng triển khai mới, khởi tạo calldata, địa chỉ của hợp đồng xác thực sẽ đánh giá tính bảo mật của trạng thái tài khoản cuối cùng và bảo vệ phát lại chữ ký cơ bản như nonce và thời gian hết hạn. Đặt giá trị của con trỏ ERC-1967 đến triển khai mới và thực thi dữ liệu cuộc gọi được cung cấp đối với triển khai logic mới. Gọi hàm validateAccountState, hàm này phải được thực hiện bởi người chứng nhận có trong chữ ký. Trình xác thực là một hợp đồng triển khai cụ thể chứa logic để đánh giá xem nó có coi trạng thái tài khoản cuối cùng an toàn hay không. Ví dụ: đối với CoinbaseSmartWallet, CoinbaseSmartWalletValidator kiểm tra xem trạng thái quyền sở hữu của tài khoản có trống hay không và do đó không còn dễ bị khởi tạo tùy ý. Thách thức #2: Lưu trữ chia sẻ được ủy quyền trên EIP-7702 Những thách thức phức tạp nhất của EIP-7702 có thể liên quan đến quản lý lưu trữ. EOA có thể tự do ủy quyền lại logic của nó cho một hợp đồng khác bất cứ lúc nào hoặc xóa hoàn toàn ủy quyền. Tất cả các đại biểu chia sẻ địa chỉ EOA trên...