Cập nhật Ethereum: Tại sao Fork Constantinople lại quá “khó” để thực hiện?

0
34

Hơn một năm trước, nhà phát triển phần mềm và thành viên của Ethereum Foundation, Hudson Jameson, đã công bố kế hoạch ra mắt Metropolis, giai đoạn thứ ba trên chặng đường chuyển đổi nền tảng sang Proof-of-Stake (PoS). Trong toàn bộ khoảng thời gian này, các nhà phát triển đã giữ bí mật về ngày chính thức của giai đoạn cuối cùng, được gọi là Constantinople, được tổ chức dưới hình thức một hardfork trên mạng.

Fork Constantinople kho thuc hien 1

Vào ngày 14/09, trong một cuộc gọi điện video định kỳ 2 lần/ tuần của nhóm, cuối cùng hardfork cũng được lên kế hoạch phát hành mainnet vào tháng 11. Tuy nhiên, do “một vấn đề đồng thuận” xảy ra trong quá trình thử nghiệm bản cập nhật mới vào ngày 13/10, các nhà phát triển đã quyết định trì hoãn Constantinople cho đến tháng 01/2019.

Con đường đến với PoS đầy chông gai

Ethereum được thiết kế như một nền tảng cho các ứng dụng phi tập trung (DApp), và bốn nâng cấp chính đã được đặt ra trong quá trình phát triển của nó nhằm làm cho chức năng của mạng phù hợp hơn với mục đích này. Với mục tiêu cuối cùng của Ethereum Foundation là dõi theo tầm nhìn của Vitalik Buterin và chuyển từ Proof-of-Work (PoW) sang một giao thức PoS, được cho là đang nhắm mục tiêu giải quyết các vấn đề liên quan đến khai thác và mở rộng.

Trong khi quá trình chuyển đổi này được lên kế hoạch thực hiện trong quá trình nâng cấp cuối cùng của hệ thống được gọi là Serenity, việc chuẩn bị đã bắt đầu gần như ngay lập tức sau khi mạng Ethereum ra mắt. Lộ trình được chia thành năm phần chính, với Byzantium và Constantinople là một phần của giai đoạn gọi là Metropolis.

Fork Constantinople kho thuc hien 2

Constantinople là gì?

Hardfork Constantinople sắp tới bao gồm 5 đề xuất cải tiến Ethereum khác nhau (EIP) nhằm tạo điều kiện thuận lợi cho quá trình chuyển đổi từ PoW sang PoS. Sau khi phát hành, họ sẽ thay đổi Blockchain Ethereum thông qua một loạt các nâng cấp mới, ngăn chặn bất kỳ khả năng tương thích ngược nào, có nghĩa là các node phải cập nhật đồng bộ với toàn bộ hệ thống hoặc tiếp tục chạy như một thực thể Blockchain riêng biệt.

Fork Constantinople kho thuc hien 3

Vai trò thiết yếu của Constantinople trong việc trì hoãn “Bom độ khó”

Hơn nữa, hardfork Constantinople bao gồm những thay đổi đối với chính sách kinh tế khai thác tiềm ẩn của Ethereum và sự trì hoãn của “bom độ khó”, nhằm tạo ra các khối mới phức tạp hơn và làm giảm sự thuận lợi trong khai thác. Đây là một bộ mã được lập trình để kích hoạt cái gọi là “Kỷ băng hà Ethereum”, mục đích chính là khai thác mỏ không lợi nhuận và thúc đẩy sự chuyển đổi sang PoS.

Kỷ băng hà Ethereum được thiết kế để đảm bảo rằng tất cả những người tham gia chuyển sang mạng mới sau khi thực hiện một hardfork. Quả bom dần dần làm phức tạp quá trình khai thác ETH, tăng thời gian khai thác mỏ. Với sự ra đời của bản cập nhật Casper như là một phần của cột mốc Serenity, sự phức tạp được cho là đã tăng lên level mới. Miner sẽ khó có khả năng thích nghi với sự gia tăng tính phức tạp: việc mua thiết bị mới và cấu hình của nó đơn giản là sẽ không có lợi về mặt kinh tế. Do đó, mạng sẽ bị bỏ lại mà không có miner và sẽ “đóng băng” – Kỷ băng hà sẽ xuất hiện. Quả bom được giới thiệu vào tháng 09/2015, ngay sau khi ra mắt mạng Ethereum.

Việc trì hoãn “bom độ khó” sẽ được hàm chứa trong Constantinople để duy trì sự ổn định của hệ thống, bằng cách rời khỏi mạng trong cùng một trạng thái như trước. Giảm phần thưởng khối cũng làm giảm khả năng của một chuỗi khai thác nhỏ được tách ra khi Ethereum tiếp cận PoS.

5 yếu tố của Constantinople

Tối ưu hóa code và ổn định mạng, mục đích chính của Constantinople giống như một phần của lộ trình mở rộng quy mô, sẽ đạt được thông qua việc thực hiện 5 EIP. Đây là những tiêu chuẩn, được phát triển bởi các thành viên nền tảng Ethereum vào những thời điểm khác nhau, bao gồm các đặc tả giao thức lõi, API ứng dụng khác và các tiêu chuẩn hợp đồng.

EIP 145

Ngày 13/02/2017

Một đề xuất cải tiến được viết bởi Alex Beregszaszi và Pawel Bylica để giới thiệu dịch chuyển bit nguyên bản như một phương pháp xử lý thông tin hiệu quả hơn trên blockchain Ethereum.

EIP 1014

Ngày 20/04/2018

Được tạo ra bởi Vitalik Buterin, việc nâng cấp nhằm mục đích cung cấp một giải pháp mở rộng tốt hơn dựa trên các giao dịch “off-chain”. Nó cho phép tương tác được thực hiện với các địa chỉ không tồn tại trên chuỗi nhưng có thể tin tưởng.

EIP 1052

Ngày 02/05/2018

Một đề xuất của nhà phát triển lõi Nick Johnson, cho phép tối ưu hóa thực thi code quy mô lớn trên Ethereum.

EIP 1234

Ngày 19/07/2018

Được viết bởi người quản lý phát hành Parity Afri Schoedon, EIP 1234 được cho là giảm phần thưởng khai thác khối từ 3 ETH xuống còn 2 ETH, và trì hoãn “bom độ khó” trong 12 tháng. Những thay đổi chủ yếu hướng tới ổn định mạng và chuẩn bị mượt mà hơn cho việc thực hiện các nâng cấp tiếp theo, để dần dần di chuyển ra khỏi PoW.

EIP 1283

Ngày 01/08/2018

Dựa trên EIP 1087, bản nâng cấp này chủ yếu mang lại lợi ích cho các nhà phát triển hợp đồng thông minh bằng cách giảm phí gas vượt mức khi nó không phù hợp với cách thức hoạt động của hầu hết công việc.

“Tóm lại, tất cả 5 EIP có tác động đến Ethereum ảnh hưởng đến một số mục tiêu và sáng kiến rộng hơn vẫn được quản lý sau phát hành cuối cùng của Constantinople. Péter Szilágyi, nhà phát triển hàng đầu của một khách hàng Ethereum nổi tiếng, Geth, nói rằng “các EIP gần như đã hoàn thành””.

Mốc thời gian của lỗi hardfork

Việc nâng cấp ban đầu được dự kiến sẽ được đưa ra trên mạng thử nghiệm Ropsten vào ngày 14/10, nhưng bất ngờ đã xảy ra trước 24 giờ so với lịch trình.

“Hardfork bắt đầu vào khoảng 15:21 giờ UTC hôm thứ bảy, hoặc sớm hơn gần 1 ngày so với dự kiến kể từ hash power và do đó thời gian khối trên Ropsten nổi tiếng là khó dự đoán. Tuy nhiên, sau đó, hardfork đã đóng băng và không có khối mới nào được khai thác” – Lane Rettig (@lrettig) ngày 15/10/2018

Đầu tiên, hardfork bị treo ở khối 4,299,999 trong hai giờ, cho thấy rằng Constantinople không được kích hoạt đúng cách bởi các miner. Ngay cả sau khi xử lý khối testnet được tiếp tục sau một thời gian tạm dừng dài, các giao dịch zero được nhìn thấy trong các khối trước hardfork.

Fork Constantinople kho thuc hien 4

Các giao dịch zero được ghi lại trên Etherscan, ngày 21/10/2018. Nguồn hình ảnh: Etherscan

Afri Schoedon, một nhà phát triển tại Parity, là người đầu tiên cung cấp một bản cập nhật vững chắc trên Twitter của mình. Ông giải thích rằng không may một vấn đề đồng thuận đã xảy ra, xúc tác cho một fork ba nhánh giữa Geth, Parity và các khách hàng Ethereum khác chịu trách nhiệm duy trì và nâng cấp mạng. Vấn đề là có tới mười nhóm nhà phát triển có liên quan đến việc phát triển EIP và thực hiện các bài kiểm tra, và không phải tất cả họ đều được trang bị để phát hành đúng giờ.

Fork Constantinople kho thuc hien 5

Nguồn hình ảnh: Github

Sáu ngày sau nỗ lực thất bại, vào ngày 19/10, các nhà phát triển đã tổ chức một cuộc gọi video, Schoedon cung cấp một phân tích chuyên sâu hơn về những gì đã xảy ra.

Fork Constantinople kho thuc hien 6

Ông chỉ ra rằng độ lệch so với thời gian được lên lịch thực hiện đã khiến nhiều thành viên cộng đồng Ethereum và các miner không xoay sở kịp để hỗ trợ, dẫn đến sự không đồng bộ hóa các chuỗi.

Ngay cả sau khi khối 4,300,000 đã được khai thác, trước đây được thiết lập như là một điểm khởi đầu của quá trình ra mắt Constantinople, Schoedon giải thích rằng các khách hàng “đang sử dụng cấu hình sai” và tuân theo giao thức Byzantium, đó chính là những gì mà mainnet Ethereum được xây dựng ngày hôm nay.

Thảo luận về cái chết của hardfork Ropsten, nhà phát triển Parity đã đưa ra một vài điểm nữa:

• Công suất băm tăng gần đây đã làm giảm thời gian khối và là nguyên nhân khiến hardfork diễn ra sớm hơn nhiều so với dự kiến vào thứ Bảy, nghĩa là, thời gian tồi tệ nhất cho một hardfork.
• Hard fork chỉ xảy ra 6 ngày sau khi phát hành Geth và 1 ngày sau khi phát hành Etherity Parity, người dùng không có đủ thời gian để nâng cấp.
• Không có sẵn màn hình fork, chỉ có http://ropsten-stats.parity.io nhưng cũng không tiết lộ chi tiết về các dây chuyền khác nhau.

Tuy nhiên, việc trì hoãn Constantinople có thể là một quyết định hợp lý, theo Schoeden, khi nó xuất hiện giữa sự thiếu hiệu quả ở trên sẽ tạo ra nhiều vấn đề hơn là giải quyết:

“Tôi tiếp tục có cảm giác rằng chúng tôi đang cố gắng để thúc đẩy điều này và tôi nhấn mạnh lại rằng chúng ta nên thư giãn và chờ xem điều gì sẽ xảy ra… Hiện tôi chưa thể nói chính xác ngày diễn ra hardfork cho đến khi chúng tôi có các bài kiểm tra để Constantinople sẵn sàng”.

Trong cuộc họp, nhóm Ethereum Foundation đã thảo luận thêm về hardfork Constantinople, được công bố trên tài khoản GitHub chính thức của Ethereum. Cuộc gọi tiếp theo sẽ diễn ra vào ngày 09/11, do DevCon chủ trì, sẽ được tổ chức từ ngày 30/10 đến ngày 02/11.

Kết thúc cuộc họp, nhà phát triển công nghệ Parity, Afri Schoedon, đã thông báo cho cộng đồng rằng hardfork mainnet sẽ không diễn ra cho đến cuối tháng 1 năm sau. Ông cũng làm rõ rằng các nhà phát triển Ethereum Foundation cần tối thiểu sáu tuần sau khi hoàn thành các bài kiểm tra và nâng cấp mainnet.

“Chậm mà chắc”

Trong khi các nhà phát triển đang phân tích vấn đề, các đề xuất cải tiến khác nhau đã được đề xuất. Chúng bao gồm việc cung cấp đặc tả rõ ràng hơn về EIP, bao gồm cả pseudo-code (mã giả), được đơn giản hóa và dễ hiểu hơn và thực hiện các đánh giá chéo của khách hàng về các thay đổi, khi các nhà phát triển từ các nhóm nhà phát triển khác nhau kiểm tra code của nhau. Tất cả đều nhất trí rằng tốt hơn nên “chậm mà chắc”.

Những lo ngại về việc tăng áp lực lên các nhà phát triển cốt lõi đã được Afri Schoedon đưa ra, người đã không loại trừ nguy cơ tiềm tàng cho toàn bộ dự án Ethereum và trấn an người dùng rằng việc trì hoãn là quyết định khôn ngoan nhất.

Phản ứng của cộng đồng

Hudson Jameson đã tạo ra một chuỗi Reddit chuyên dụng cho một cuộc đối thoại mở với những người dùng đang lo lắng về vấn đề này, nơi các nhà phát triển gặp phải các nhà phê bình và các thông điệp cáo buộc, tổng số người tham gia đã vượt quá một trăm.

“Bạn không có ý tưởng về sự cạnh tranh trong không gian này. Sự trì hoãn harddfork lớn và vô ích này có tác động rất tiêu cực đến độ tin cậy của dự án Ethereum. Bạn nên kết thúc” – Produde (@Dudtrade) ngày 20/10/2018

“Với tốc độ này, chúng ta sẽ có Casper vào năm 2030” @TrueValueCapital

Trong khi Schoedon và Jameson cố gắng kêu gọi cộng đồng ngừng gây áp lực lên các nhà phát triển và ngừng thúc giục họ thì vẫn có những người thể hiện sự hiểu biết và hỗ trợ, và thậm chí còn đùa rằng miner có thể cảm thấy vui vẻ về viêc trì hoãn phát hành.

“Tôi thích họ trì hoãn vào 3 phút cuối cùng, các bản vá lỗi khẩn cấp giống như năm ngoái. Hãy dành thời gian và làm điều đó. Phần mềm đã rất rõ ràng” @Potatodotexe

“Chỉ cần tiếp tục làm những gì bạn cần làm để đảm bảo an toàn và cảm ơn vì tất cả những công việc tuyệt vời” @Clarkster

Trong khi bản phát hành mainnet của Constantinople được cho là đã lên kế hoạch cho tháng 1, thì ngày ra mắt của tesnet hardfork vẫn chưa được xác định, theo báo cáo của Hudson Jameson với Cointelegraph. Trong thời gian chuyển tiếp, vẫn còn thời gian để theo dõi sự tiến bộ Constantinople và giám sát quá trình chuyển đổi của blockchain Ethereum sang một thuật toán PoS, đó là điều cần thiết cho sự phát triển của mạng, theo Vitalik Buterin.

“Tôi nghĩ rằng tôi đã khá nhất quán về quan điểm của tôi rằng (i) mỗi blockchain đang có sẵn hiện tại, bao gồm cả ETH và BTC, đều gây thất vọng, và (ii) PoS là cần thiết. Không biết tại sao lại có người ngạc nhiên về điều này” – Vitalik Non-giver of Ether (@VitalikButerin) ngày 04/09/2018.

LEAVE A REPLY