Tiêu đề ban đầu:
Tiêu đề ban đầu:tiêu đề phụ
Ethereum là gì
Ethereum là gì? Nghìn người có cả nghìn câu trả lời, và điều mà bài viết này muốn bàn luận chính là câu trả lời nhất quán nhất, đó là giao thức của Ethereum là gì? Hoặc trong một mô tả kỹ thuật hơn - nếu tôi muốn phát triển ứng dụng khách Ethereum (chuỗi PoW/ETH1), tôi cần tuân theo những quy tắc nào?
tiêu đề cấp đầu tiên
Tổng quan
Tổng quan
Các nhánh cứng trước đây của Ethereum có thể được thông quatrang nàyKiểm tra. Kể từ khi ra mắt vào ngày 30 tháng 7 năm 2015, tổng cộng 14 hard fork đã được thực hiện, bao gồm 39 EIP ("Constantinople" và "Petersburg" được coi là giống nhau). Hai hard fork gần nhất cách nhau 26 ngày và hai lần xa nhất cách nhau 490 ngày.
Hard fork được chia thành "nâng cấp tích cực" và "nâng cấp thụ động". Nâng cấp chủ động đề cập đến sáng kiến của nhóm phát triển nhằm sửa đổi giao thức Ethereum, trong khi nâng cấp thụ động là một hành động "phải" được thực hiện để đối phó với các rủi ro bảo mật tiềm ẩn. Nâng cấp thụ động bao gồm ít nhất "DAO Fork", "Tangerine Whistle", "Spurious Dragon", "Muir Glacier", "Arrow Glacier" và "Grey Glacier", có thể đối phó với hành vi trộm cắp của hacker (DAO Fork) hoặc đối phó với Các cuộc tấn công DDOS (Tangerine Whistle, Spurious Dragon) hoặc đơn giản là xử lý bom độ khó (Muir Glacier, Arrow Glacier, Grey Glacier). "Nâng cấp tích cực" gần như phù hợp với kế hoạch của sách trắng (ít nhất là về cách đặt tên), Frontier (Frontier, Frontier Thawing), Homestead, Metropolis (Byzantium, Constantinople/Petersburg, Istanbul), trong khi Berlin và London là sau khi thay đổi lộ trình Ethereum, nâng cấp chuyển tiếp. Ngoài ra, một số nâng cấp chủ động cũng bao gồm tùy chọn trì hoãn quả bom độ khó.
tiêu đề phụ
Giải thích các hard fork đại diện
ngã ba ĐÀO
ngã ba ĐÀO
Sự kiện ngã ba DAO là sự kiện sâu rộng nhất trong quá trình phát triển của Ethereum. Kể từ khi hợp đồng thông minh của DAO bị hack, khoảng 3,6 triệu ether đã bị tin tặc đánh cắp, nhưng đã có 28 ngày bị đóng băng. Trong giai đoạn này, với sự trợ giúp của Carbonvote, chủ sở hữu mã thông báo bày tỏ mong muốn của họ và Ethereum FoundationQuyết địnhPhần tiền này được chuyển sang một hợp đồng thông minh mới, cho phép các nhà đầu tư rút tiền. Đợt fork này đã tạo ra Ethereum Classic, thứ cũng đã gây ra rất nhiều cuộc tranh luận trên mạng xã hội.
DOS Thượng Hải
Trong Devcon 2, các nhà phát triển cốt lõi của Ethereum đã tập trung tại Thượng Hải, nhưng mạng Ethereum đã phải chịu rất nhiều lưu lượng truy cập mạngtấn công, dẫn đến Từ chối Dịch vụ (DOS). Do tài nguyên hệ thống thực tế được sử dụng bởi mã hoạt động EXTCODESIZE cao hơn nhiều so với phí giao dịch mà kẻ tấn công phải trả, nên kẻ tấn công liên tục gọi mã hoạt động này, khiến hầu hết các nút trong toàn bộ mạng không bắt kịp khối mới nhất. Trong khi điều phối nhóm khai thác và các nút đầy đủ để cho phép ứng dụng khách Parity ít bị ảnh hưởng hơn, các nhà phát triển đã thương lượng để giảm gas khối (từ 5 M xuống 1,5 M). Cuối cùng, với sự trợ giúp của hai nhánh cứng Tangerine Whistle và Spurious Dragon, giá của các opcode liên quan đã được điều chỉnh và trạng thái đã được dọn sạch để giảm bớt tác động của cuộc tấn công DOS. Đợt hard fork này cũng mang lại những tác động tiếp theo, do việc triển khai EIP-161 (có trong Spurious Dragon) không đúng cách (Go-ethereum và Parity đều triển khai sai), dẫn đến một đợt hard fork đồng thuận.
Raiders của hai lâu đài
dựa theo
dựa theoBáo cáo của ChainSecurity, EIP-1283 sẽ đưa ra nguy cơ tấn công vào lại đối với một số hợp đồng. TrailOfBits mang lạiphân tích chi tiết hơnVà cung cấp một danh sách các hợp đồng có thể bị ảnh hưởng. 32 giờ trước khi kích hoạt hard fork, Ethereum Foundation đã đưa ra một tài liệu nhắc nhở các nút nâng cấp hoặc hạ cấp để hoãn việc nâng cấp Constantinople, sau đó phát hành một phiên bản mới để giới thiệu hard fork Petersburg. Một hard fork Constantinople cao hoặc bị vô hiệu hóa.
khủng hoảng bom
Lý do tại sao chỉ có 26 ngày giữa hai nhánh cứng Muir Glacier và Istanbul là do các nhà phát triển cốt lõi đã tính toán sai thời gian phát nổ của quả bom độ khó, dẫn đến đề xuất trì hoãn quả bom độ khó không được đưa vào Istanbul. Khi phát hiện ra rằng quả bom độ khó sắp có tác động đến mạng,Cuộc họp các nhà phát triển cốt lõi lần thứ 76EIP-2384 nhanh chóng được chấp nhận và tích hợp vào hard fork Muir Glacier.
Quá trình ra quyết định hard fork thay đổi
Hard fork được quyết định như thế nào? Trên thực tế, Ethereum đã thiếu các tài liệu bằng văn bản trong một thời gian dài và dựa nhiều hơn vào "sự đồng thuận xã hội" (vui lòng sửa cho tôi nếu tôi sai). EIP-233 đã cố gắng chính thức hóa quy trình forking chính thức, nhưng không được chấp nhận.
Mặc dù bài viết này không thể hiển thị cuộc thảo luận về quy trình quyết định hard fork trong cộng đồng Ethereum, quy trình quyết định hard fork trong Ethereum rõ ràng đã thay đổi. Trước hard fork Berlin, trước tiên các nhà phát triển xác định thời điểm hard fork, sau đó quyết định EIP nào sẽ bao gồm, sau đó triển khai và thử nghiệm nó. Mỗi hard fork trước Berlin là một Meta EIP, ví dụ, hard fork của Istanbul đã được thông quaEIP-1679Định nghĩa (gọi tắt là HFM-1679).
Martin Holst Swende trình bàyQuy trình hard fork tập trung vào EIP, quan điểm cốt lõi là tách biệt việc chấp nhận EIP khỏi hard fork. Các nhà phát triển cốt lõi tập trung vào việc phê duyệt, triển khai và thử nghiệm một EIP duy nhất. Khi một EIP duy nhất được chấp nhận, các hard fork tiếp theo có thể chọn đưa EIP vào . Hard fork Berlin không còn được dùng nữa, mặc dù tại thời điểm viết bài, người ta vẫn chưa tìm ra cách quy trình này được chấp nhận bởi các nhà phát triển lõi EthereumHFM-2070, Nhưngnhận con nuôiQuá trình do Martin đề xuất đã được tuân theo.
Sự thay đổi trong quá trình ra quyết định diễn ra nhanh chóng và hai tuần trước khi kích hoạt mạng thử nghiệm hard fork Berlin, các nhà phát triển đã tham gia vào một cuộc tranh luận sôi nổi về việc ngừng sử dụng EIP-2315 và cuối cùng đã loại bỏ EIP-2315. Do áp dụng quy trình mới, thay đổi vào phút cuối không ảnh hưởng quá nhiều đến hard fork và cuối cùng nó đã diễn ra đúng kế hoạch. Để biết thêm chi tiết, vui lòng tham khảo phần "Loại bỏ EIP-2315: Phanh khẩn cấp trước khi nâng cấp Ethereum Berlin》
không thay đổi thay đổi
báo cáo nghiên cứubáo cáo nghiên cứu。
Phân tích chuyên sâu EIP
Những EIP này có tác động gì đến Ethereum và ai đã ảnh hưởng đến việc ra quyết định của Ethereum. Bài viết này sắp xếp tất cả các EIP có trong hard fork Ethereum (không bao gồm các đề xuất meta), xem liên kết để biết chi tiết.
EIP đang làm gì
Các loại EIP có trong hard fork chủ yếu bao gồm thay đổi mô hình thanh toán, giới thiệu opcode mới, bom độ khó, mô hình kinh tế, tiền biên dịch, cân nhắc bảo mật, v.v.
Thay đổi mô hình thanh toán
Thay đổi mô hình thanh toán là số lượng EIP lớn nhất, với tổng số 10, chiếm 25,6%. Nó cân bằng sự không phù hợp giữa mức tiêu thụ gas và tài nguyên hệ thống thực tế bằng cách tăng hoặc giảm đơn giá của mã hoạt động, điều này có thể loại bỏ nguy cơ tiềm ẩn của hệ thống bị tấn công bởi DOS hoặc tạo điều kiện triển khai các loại ứng dụng cụ thể. Một số mối nguy hiểm tiềm ẩn của DOS là do đánh giá sai tài nguyên hệ thống. EIP-150 và EIP-160 giải quyết vấn đề này; trong khi một phần khác của các mối nguy hiểm tiềm ẩn của DOS là các đặc điểm vốn có của hệ thống. Với sự gia tăng của dữ liệu trạng thái, nguồn lực thực tế của trạng thái truy cập Mức tiêu thụ dữ liệu cũng tăng theo nên đơn giá của opcode tương ứng cần được điều chỉnh định kỳ, điển hình là EIP-1884 (theo tôi là một trong những EIP được viết tốt nhất).
Do mô hình đại diện trạng thái của Ethereum, mô hình thanh toán phải được điều chỉnh định kỳ, đây là một tính năng, không phải trục trặc.
Các opcode mới được giới thiệu
Tổng cộng có 9 EIP đã giới thiệu opcode mới cho Máy ảo Ethereum (không bao gồm EIP-1884), chiếm 23,08%. Những cái có ảnh hưởng hơn bao gồm EIP-7 (DELEGATECALL), EIP-1014(CREATE2), EIP-3198(BASEFEE), v.v.
quả bom khó khăn
Tổng cộng có 6 EIP đang hoãn bom độ khó, chiếm 15,4%. Có 2 hard fork đi kèm với việc điều chỉnh mô hình kinh tế, tức là giảm phần thưởng khối mới. Ba trong số các nhánh này được triển khai chỉ để trì hoãn quả bom độ khó, hard fork có tên là Glacier. Đối với lịch sử của quả bom khó khăn, xemMô hình kinh tế。
Mô hình kinh tế
Có 4 EIP ảnh hưởng đến mô hình kinh tế, 2 EIP giảm phần thưởng khối mới, 1 EIP điều chỉnh mô hình tính toán độ khó (EIP-100) và EIP-1559 gây tranh cãi nhiều hơn đã điều chỉnh phí thị trường. .
biên dịch trước
Có 4 EIP để biên dịch trước một số hoạt động mật mã, vì vậy chúng không cần được thực thi trong EVM để cải thiện hiệu quả hoạt động. Bao gồm EIP-152, EIP-196, EIP-197, EIP-198.
Cân nhắc về Bảo mật
khác
khác
Các EIP khác cũng bao gồm cải tiến giao thức mạng (EIP-8), thêm giao diện trạng thái thực hiện giao dịch (EIP-658), thêm các loại giao dịch mới (EIP-2718), v.v. Ngoài ra, EIP-2 chứa tất cả các bản cập nhật của Homestead, phức tạp hơn.
Ai đóng góp cho EIP
Tổng cộng có 43 người và 77 người đã tham gia viết các EIP này, trong đó có 11 tác giả đã tham gia hơn 2 (bao gồm) EIP. Vitalik Buterin tham gia sáng tác nhiều nhất, với tổng số 17 bài, chiếm 43,6%. Martin Swende và Christian Reitwiessner mỗi người tham gia 5 trận, Alex Beregszaszi và James Hancock mỗi người tham gia 3 trận và những người còn lại tham gia không quá 2 trận.
Martin Swende là giám đốc bảo mật của Ethereum Foundation, một kỹ sư Go-ethereum và là người đề xuất quy trình hard fork tập trung vào EIP; Christian Reitwiessner là người phát minh ra ngôn ngữ Solidity.
tóm tắt
tóm tắt
Bài viết này giới thiệu các đợt hard fork trước đây trong lịch sử của Ethereum, diễn giải các sự kiện tiêu biểu đằng sau một số đợt hard fork và mô tả chi tiết sự thay đổi của quy trình ra quyết định hard fork của Ethereum lấy EIP làm trung tâm. Bài báo cũng cung cấp một phân tích chuyên sâu về vai trò của EIP trong các đợt hard fork trước đây và những người đóng góp đằng sau chúng.
Ethereum sắp mở ra một kỷ nguyên mới, và quá khứ hiện về trong tâm trí Độc giả, bạn cảm thấy thế nào?
đọc mở rộng
https://github.com/ethereum/execution-specs
https://www.ethereum.cn/the-history-of-ethereum-hard-forks
https://etherscan.io/chart/gaslimit
https://github.com/ethereum/go-ethereum/pull/3341/files#r89548312
https://blog.ethereum.org/2019/01/15/security-alert-ethereum-constantinople-postponement
https://ethereum-magicians.org/t/hardfork-meta-eip-2070-berlin-discussion/3561
https://notes.ethereum.org/@holiman/S1ELAYY7S?type=view
thỏa thuận chia sẻ
Tác phẩm này được cấp phép theo Giấy phép Quốc tế Creative Commons Ghi công-Phi thương mại-Chia sẻ tương tự 4.0.


