BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Sau EIP-1559, EIP-3074 là gì mà cộng đồng Ethereum quan tâm?

Đọc bài viết này mất 22 phút
EIP-3074 là một đề xuất cải tiến khác được cộng đồng mong đợi trong quá trình nâng cấp
Tiêu đề gốc: "Cuộc tấn công liên tục vào Ethereum: EIP-3074 sau EIP-1559"
Nguồn gốc: ChinaDeFi


▪️ Testnet Ropsten được ra mắt vào ngày 24 tháng 6 với chiều cao khối là 10.499.401.


▪️ Khoảng 88.500 testnet Ethereum đã bị đốt cháy kể từ khi triển khai, trị giá 177,6 triệu USD.


▪️ Cùng thời điểm Eth3 ra mắt, 100.000 Ethereum trị giá 200 triệu USD Hợp đồng cầm cố đã được gửi vào Eth3.


Đề xuất cải tiến Ethereum rất được mong đợi EIP-1559 cuối cùng đã được triển khai trên mạng thử nghiệm Ropsten, sử dụng Về bản nâng cấp London sắp tới của Ethereum. Một vài ngày trước, ngày phát hành ba mạng thử nghiệm Ethereum cho đợt hard fork ở London đã được công bố. Nhà phát triển lõi Ethereum Tim Beiko đã thông báo rằng chiều cao khối cho các mạng thử nghiệm Ropsten, Goerli và Rinkeby đã được xác định. Ropsten có chiều cao 10499401 và được hạ thủy vào ngày 24/6. Mặt khác, Goerli vào ngày 30 tháng 6 và Rinkeby sẽ vào ngày 7 tháng 7.


Cơ chế đốt EIP-1559 có thể có lợi cho giá của token


Trong khi có 5 đề xuất cải tiến Ethereum cho đợt hard fork ở London, thì EIP-1559 đã thu hút mọi sự chú ý. Việc nâng cấp mới dự kiến sẽ tiêu tốn phí giao dịch trên mạng. Theo trang web theo dõi EIP-1559 Watch the Burn, khoảng 88.500 testnet Ethereum trị giá 177,6 triệu USD đã bị đốt cháy kể từ khi testnet Ropsten được nâng cấp ở London. Tuy nhiên, số lượng lớn Ethereum bị đốt cháy bởi EIP-1559 một lần nữa làm dấy lên các cuộc thảo luận về cuộc cải tổ giảm phát của Eth3. Do cơ chế đốt cháy nên ether cháy nhanh hơn nguồn cung lưu thông. Điều này có thể rất có lợi cho giá ETH.


Sau EIP-1559, cộng đồng đang tập trung vào EIP-3074, nhằm giải quyết vấn đề bảo mật vấn đề


Tuy nhiên, EIP-1559 không phải là EIP duy nhất được cộng đồng Ethereum quan tâm. EIP-3074 là một đề xuất cải tiến khác được cộng đồng rất mong đợi trong quá trình nâng cấp. Theo David Mihal và các tweet của ông, một vấn đề bảo mật lớn mà Ethereum đang bỏ qua là việc phê chuẩn ERC20. Anh ấy nói thêm rằng anh ấy đã thúc đẩy ERC777 và cơ hội duy nhất để sửa lỗi này là EIP-3074. Cải tiến được đề xuất này đối với Ethereum sẽ cho phép người dùng phê duyệt chuyển khoản, thực hiện các hành động và thu hồi phê duyệt trong một giao dịch.


Trước đây, các nhà phát triển Ethereum nhận thấy rằng EIP-1559 không được thiết kế để giảm chi phí gas. : Nhưng Nhiều người vẫn tin rằng đề xuất này chắc chắn sẽ giảm chi phí gas đáng kể. Điều này thậm chí có thể làm giảm 50% thu nhập của thợ mỏ, dẫn đến "cuộc nổi dậy của thợ mỏ" nhưng cuối cùng đã thất bại. Tuy nhiên, việc nâng cấp ở London dự kiến sẽ thúc đẩy xu hướng tăng giá của Ethereum. Nhà phân tích tiền điện tử nổi tiếng CryptoQuant đã chỉ ra rằng cùng thời điểm Eth3 ra mắt, 100.000 Ethereum trị giá 200 triệu USD đã được gửi vào hợp đồng đặt cược của Eth3. Hiện tại, hơn 5% nguồn cung ETH bị khóa, trị giá khoảng 11,75 tỷ USD.


EIP-3074 là gì?


Khi muốn gửi token tới hợp đồng thông minh, chúng ta thường phải thực hiện hai giao dịch: Giao dịch đầu tiên được phê duyệt là hợp đồng chi tiêu mã thông báo của chúng tôi, giao dịch thứ hai là giao dịch TransferFrom gửi mã thông báo đến hợp đồng.


EIP-3074 giới thiệu hợp đồng thông minh cho các tài khoản thuộc sở hữu bên ngoài (EOA) hoặc đơn giản là hợp đồng thông thường Địa chỉ Ethereum) để giải quyết vấn đề.

EIP này giới thiệu hai hướng dẫn EVM, AUTH và AUTHCALL. Cái đầu tiên đặt biến bối cảnh *được ủy quyền* dựa trên chữ ký ECDSA. Cuộc gọi thứ hai gửi cuộc gọi dưới dạng *được ủy quyền*. Về cơ bản, điều này ủy quyền kiểm soát EOA cho hợp đồng thông minh [a].


不断进击的以太坊:EIP-1559 之后的 EIP-3074


Hướng dẫn AUTH và AUTHCALL EVM (còn gọi là opcode) cho phép hợp đồng thông minh ủy quyền EOA dựa trên tin nhắn đã ký và gửi giao dịch ("cuộc gọi") từ EOA đó. Điều này mang lại nhiều khả năng, chẳng hạn như:


Giao dịch được tài trợ (còn gọi là siêu giao dịch): Thanh toán gas cho một giao dịch từ tài khoản khác. Điều này cũng sẽ cho phép chúng tôi gửi tiền từ một địa chỉ mà không cần bất kỳ ether nào.


Giao dịch hàng loạt: Gửi nhiều giao dịch trong một cuộc gọi. Điều này đảm bảo rằng hai hoặc nhiều giao dịch được thực hiện trong cùng một khối và cũng giảm phí giao dịch.


Trải nghiệm người dùng (UX) được cải thiện: Ví dụ: chúng ta có thể gọi phê duyệt và chuyểnFrom.


Không giống như các giải pháp hiện có cho những vấn đề này, EIP-3074 không yêu cầu ví hợp đồng thông minh. Chúng ta có thể chỉ cần gửi giao dịch đến người được gọi là người thực hiện giao dịch. Người gọi là những hợp đồng thông minh không quốc tịch, không đáng tin cậy, họ không yêu cầu chúng tôi gửi trước số dư của mình cho hợp đồng. EIP-3074 cũng không giới thiệu các loại giao dịch mới. Bằng cách chỉ giới thiệu hai hướng dẫn EVM mới, về mặt kỹ thuật sẽ dễ thực hiện hơn.


Mã hoạt động AUTH và AUTHCALL


EIP-3074 xác định hai opcode mới có thể được gọi từ hợp đồng thông minh:


AUTH (0xf6) - Cấp phép tài khoản thuộc sở hữu bên ngoài dựa trên chữ ký và cam kết. Nó chấp nhận bốn tham số đầu vào: cam kết và yParity, r và s của chữ ký.


AUTHCALL (0xf7) - Cuộc gọi (giao dịch) được gửi trong bối cảnh EOA được ủy quyền . Nó chấp nhận 8 tham số đầu vào: gas, addr, value, valueExt, argsOffset, argsLength, retOffset, retLength. Điều này tương tự với opcode CALL hiện có.


Để ủy quyền cho EOA, chúng tôi cần một thông báo có chữ ký từ EOA. Hợp đồng thông minh gọi AUTH có thể khôi phục người ký từ chữ ký tin nhắn và sau đó đặt chữ ký tin nhắn thành biến ngữ cảnh EVM được ủy quyền. Bây giờ, bất cứ khi nào hợp đồng thông minh gọi AUTHCALL, người gọi sẽ được đặt thành địa chỉ được ủy quyền. Khi hợp đồng thông minh được gọi gọi CALLER (ví dụ: thông qua tin nhắn.sender của Solidity), đây hiện là địa chỉ của EOA ủy quyền chứ không phải địa chỉ của người gọi hợp đồng thông minh đã thực hiện cuộc gọi.

Quy trình cơ bản để gửi một hoặc nhiều giao dịch như sau:


不断进击的以太坊:EIP-1559 之后的 EIP-3074


Luồng EIP-3074 cơ bản trong đó hợp đồng người gọi sẽ gửi nhiều giao dịch.


Thông tin ủy quyền ký EOA;


EOA hoặc người trả gas khác gửi dữ liệu giao dịch và thông tin ủy quyền đến hợp đồng người gọi;


Hợp đồng người gọi sử dụng AUTH để thực hiện ủy quyền và AUTHCALL để gửi giao dịch.


Việc ai gửi giao dịch vào hợp đồng không quan trọng, miễn là chữ ký của người đó EOA có hiệu lực. Điều này cho phép người khác (hoặc tài khoản khác) gửi giao dịch.


Thông báo ủy quyền và gửi


Để thực hiện ủy quyền, EOA phải ký vào tin nhắn theo định dạng cụ thể:


Để thực hiện ủy quyền, EOA phải ký vào tin nhắn theo định dạng cụ thể:


不断进击的以太坊:EIP-1559 之后的 EIP-3074

 (Lưu ý: || được sử dụng làm toán tử nối byte)


Nó bao gồm ba Phần bao gồm: một byte ma thuật (0x03), địa chỉ người gọi được đệm thành 32 byte (địa chỉ của hợp đồng thông minh được ủy quyền sẽ thực thi) và 32 byte cam kết.


不断进击的以太坊:EIP-1559 之后的 EIP-3074



Định dạng thông báo ủy quyền, bao gồm các ví dụ có thể được sử dụng để gửi


Việc gửi mô tả đối tượng được gửi bởi EOA và có thể được tính toán dựa trên các thuộc tính nhất định của cuộc gọi (chẳng hạn như địa chỉ, giá trị). Hợp đồng người gọi có thể tính toán lại việc gửi dựa trên các thuộc tính được cung cấp và thực hiện ủy quyền nếu các trường này chính xác.


Ví dụ: giả sử chúng tôi muốn gửi giao dịch sau (được biểu thị dưới dạng JSON):


不断进击的以太坊:EIP-1559 之后的 EIP-3074


Chúng ta có thể băm các trường này (ví dụ: nối chúng lại với nhau theo cách xác định hoặc sử dụng EIP-712 hoặc thứ gì đó) và sử dụng nó như một cam kết.


Chúng tôi có thể cung cấp chữ ký của giao dịch và thông báo ủy quyền sẽ được gửi trong hợp đồng thông minh, như dữ liệu JSON này được hiển thị. Hàm hợp đồng có thể như thế này:


不断进击的以太坊:EIP-1559 之后的 EIP-3074


Hợp đồng thông minh tính toán lại giao dịch cam kết và cung cấp cam kết này (cùng với chữ ký) cho Cuộc gọi AUTH. Điều này sẽ cố gắng khôi phục địa chỉ của người ký và nếu việc gửi không hợp lệ, địa chỉ sai sẽ được khôi phục từ chữ ký, nghĩa là giao dịch sẽ thất bại.


Người gọi hoàn toàn chịu trách nhiệm đảm bảo rằng việc gửi này được an toàn. Chúng tôi chỉ cần ký vào tin nhắn như đã cam kết với 0x0 và cấp cho hợp đồng thông minh quyền truy cập đầy đủ vào EOA. Các phiên bản trước của EIP-3074 bao gồm định dạng gửi chặt chẽ hơn bao gồm những thứ như bảo vệ chống phát lại, nhưng định dạng này sau đó đã bị loại bỏ để có tính linh hoạt hơn. Vì vậy, điều quan trọng là phải tin tưởng những người gọi mà chúng ta tương tác.


Các hạn chế và vấn đề bảo mật


EIP-3074 có khả năng thay đổi NGƯỜI GỌI dựa trên chữ ký, thay đổi đáng kể cách thức hoạt động của EVM. Điều này có thể gây ra các lỗ hổng tiềm ẩn trong các hợp đồng mới và hiện có. Do đó, EIP-3074 đã được kiểm tra.


Một số vấn đề bảo mật có thể xảy ra được giải thích bên dưới. Vì những lý do khác nhau này, EIP-3074 khuyên bạn chỉ nên tương tác với những người gọi đáng tin cậy.


Các cuộc tấn công gửi và phát lại yếu


Như đã đề cập ở trên, EIP-3074 không xác định định dạng chuẩn hóa cho các bài gửi. Người gọi có thể tự do thực hiện điều này theo bất kỳ cách nào họ muốn. Điều này có nghĩa là người gọi hoàn toàn chịu trách nhiệm cung cấp sự bảo vệ đầy đủ chống lại (ví dụ) các cuộc tấn công lặp lại.


Nếu bài gửi không chứa một loại thông tin không có ý nghĩa nào đó, bạn có thể chỉ cần lấy tin nhắn đã ký và gửi lại cho cuộc gọi Bởi. Người gọi độc hại có thể giành quyền kiểm soát EOA bằng cách không xác thực cam kết nào cả. Chúng ta phải luôn cẩn thận khi ký tin nhắn.


EIP-3074 có khả năng bảo vệ chống lại các cuộc tấn công lặp lại bằng cách đưa địa chỉ của người gọi vào bảo vệ cơ bản của thông báo ủy quyền . Điều này khiến cho việc phát lại tin nhắn ủy quyền của người gọi đến người gọi khác là không thể.


Chương trình gọi điện có thể nâng cấp


EIP-3074 tuyên bố rõ ràng rằng chương trình gọi điện phải không thể nâng cấp được. Nếu trình gọi có thể nâng cấp được, thì ai đó có thể triển khai một phiên bản khác của trình gọi không xác thực các cam kết, trao cho hợp đồng toàn quyền kiểm soát EOA.


Tấn công tái nhập


Hiện tại, hợp đồng thông minh có thể sử dụng require(tx.origin == msg.sender), để kiểm tra xem giao dịch có được gửi từ EOA hay không (không phải hợp đồng khác). Điều này cho phép ngăn chặn việc đăng nhập lại đơn giản vì nó ngăn hợp đồng gọi các chức năng.


EIP-3074 cũng cho phép tx.origin trở thành người ký các thông báo ủy quyền. Ngay cả khi cuộc gọi được thực hiện bởi hợp đồng thông minh AUTHCALL, bất kỳ lệnh nào được người gọi thực hiện sẽ khiến tx.origin == msg.sender trở thành đúng, có khả năng gây ra một cuộc tấn công reentrancy. EIP-3074 đề cập: "[...] Tác giả của EIP này không thể tìm thấy bất kỳ ví dụ nào về hình thức bảo vệ tái nhập này, mặc dù việc tìm kiếm chưa đầy đủ."


Kết luận


EIP-3074 Mang lại nhiều khả năng mới thú vị cho Ethereum. AUTH và AUTHCALL cho phép EOA ủy quyền kiểm soát tài khoản cho người gọi hợp đồng thông minh, giúp gửi giao dịch số lượng lớn, giao dịch được tài trợ, v.v. Tuy nhiên, nó mang lại một số thay đổi đáng kể về cách thức hoạt động của các giao dịch trên Ethereum, vì vậy sẽ cần phải suy nghĩ nhiều hơn về vấn đề bảo mật trước khi EIP-3074 có thể được kích hoạt trên mạng chính.


Liên kết gốc


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi