
Giải mã: Vấn đề tạm dừng giao dịch blockchain ETC, phân tích và tái hiện sự việc
Tuyển chọn TechFlowTuyển chọn TechFlow

Giải mã: Vấn đề tạm dừng giao dịch blockchain ETC, phân tích và tái hiện sự việc
Đối với các giao dịch nói chung, sự kiện này không gây ảnh hưởng lớn, vì số lượng giao dịch trong các khối này rất ít. Hơn nữa, các giao dịch chưa được khai thác ngoài những khối này cuối cùng cũng sẽ được gửi lại.
Kiến thức nền tảng:
Vào ngày 31 tháng 7 theo giờ Bắc Kinh, Multi-geth đã phát hành phiên bản 1.9.18, tuyên bố chấm dứt hỗ trợ cho Ethereum Classic, nguyên nhân chính là do Ethereum Classic trong quá trình hard fork Phoenix đã phá vỡ tính bất biến (immutability) của mã nguồn và nguyên tắc "mã hóa là luật pháp" (Code-is-law), dẫn đến việc hàm hồi phục trong một số hợp đồng thông minh bị vô hiệu.
Bản thân Multi-geth là một bộ công cụ phát triển giao thức Ethereum phi tập trung, hỗ trợ nhiều chuỗi khối khác nhau. Việc chấm dứt hỗ trợ đối với Ethereum Classic biểu thị rằng sẽ xuất hiện nhiều chuỗi thay thế, và tất cả các nút của Ethereum Classic sẽ tự quyết định nút nào là chuỗi chính dựa trên các tiêu chí khác nhau. Một số nút có thể chọn chuỗi dài nhất làm chuỗi chính, một số nút khác có thể chọn chuỗi có độ khó khối lớn nhất làm chuỗi chính, tương tự, cũng sẽ có những nút chọn khai thác trên chuỗi có khối lượng công việc lớn nhất hiện tại.
Diễn biến sự kiện:
Hôm qua, Ethereum Classic (ETC) đã đăng thông báo trên tài khoản Twitter chính thức cho biết hiện đang tiến hành bảo trì mạng lưới, kêu gọi các nhà cung cấp dịch vụ như sàn giao dịch, mỏ đào tạm ngừng gửi tiền ETC để kiểm tra sâu hơn các vấn đề về mạng.

Trước đó, Hudson Jameson, quản lý cộng đồng Quỹ Ethereum, đã tweet rằng blockchain Ethereum Classic gặp sự cố, các sàn giao dịch cần tạm ngừng gửi và rút tiền. Ông cũng khuyến nghị các thợ đào nên hợp tác khai thác trên cùng một chuỗi, từ bỏ những chuỗi được khai thác bởi một nhóm nhỏ người dùng cho đến khi vấn đề được giải quyết.

Vào ngày 2 tháng 8 theo giờ Bắc Kinh, Ethereum Classic Labs đã chính thức thông báo trên Medium rằng mạng ETC đã hoàn thành việc tổ chức lại chuỗi khối (blockchain reorganization) và khẳng định vấn đề đã được giải quyết.
Do lỗi không xác định, OpenEthereum / Parity và Open-ETC không còn hoạt động bình thường. Lỗi này gây ra sự phân tách thành chuỗi tạm thời và chuỗi thiểu số. Trong tương lai, bất kỳ nút Ethereum Classic nào chạy OpenEthereum hoặc Open-ETC đều có thể dẫn đến việc khai thác trên chuỗi sai.
Phân tích vấn đề và tái hiện sự kiện:
Quy trình xảy ra sự kiện lần này như sau:
1. Thợ đào độc hại (địa chỉ ETC: 0x75d1e5477f1fdaad6e0e3d433ab69b08c482f14e) đã đào khoảng 3000 khối.
2. Mỏ đào 2Miners tạm ngừng hoạt động để bảo trì do Multi-geth chấm dứt hỗ trợ Ethereum Classic.
3. Trong thời gian bảo trì của mỏ đào 2Miners, không có khối mới nào được tạo ra. Sau khi kết thúc bảo trì và đi vào hoạt động trở lại, khoảng 3000 khối đã được chèn đồng thời vào mỏ đào 2Miners.
4. Do tất cả các nút Parity hoặc OpenEthereum trên Ethereum Classic đều không thể xử lý 3693 khối đến từ các nút Core-Geth, dẫn đến hiện tượng phân nhánh chuỗi: các thợ đào trên các nút Parity hoặc OpenEthereum vẫn tiếp tục khai thác trên chuỗi chính ban đầu, trong khi các thợ đào trên nút Core-Geth lại khai thác trên chuỗi mới được chèn thêm khoảng 3000 khối.
5. Theo cơ chế đồng thuận Proof-of-Work (POW), khối lượng công việc trên chuỗi mới dần vượt qua chuỗi chính ban đầu. Một số thợ đào sử dụng nút Parity trên chuỗi chính ban đầu dựa theo nguyên tắc "chọn khai thác trên chuỗi có khối lượng công việc lớn hơn", chuyển sang khai thác trên chuỗi mới.
6. Cuối cùng, tại độ cao khối 10904146, tổng cộng 3693 khối đã được thêm vào blockchain thông qua cơ chế tổ chức lại (reorganization). Tổ chức lại là một đặc điểm của blockchain, thường được sử dụng để thực hiện thao tác hoàn tác (rollback) trên blockchain.
Có phải là một cuộc tấn công hay không:
Việc xác định có phải là một cuộc tấn công hay không chủ yếu phụ thuộc vào cách mà khoảng 3000 khối này được tạo ra. Nguyên nhân thực sự nằm ở chỗ: đây là do vô tình mất kết nối mạng và đào khối trong thời gian mất kết nối, hay là hành động cố ý?
Dựa trên thông báo chính thức hiện tại về "lỗi chưa xác định", chúng ta vẫn chưa thể xác định rõ ràng toàn bộ sự thật đằng sau sự kiện này.
Tác động:
Đối với các giao dịch, ảnh hưởng của sự kiện này không lớn, vì số lượng giao dịch bên trong các khối này rất ít. Hơn nữa, các giao dịch chưa được đào ngoài những khối này cuối cùng cũng sẽ được gửi lại.
Tuy nhiên, đối với bản thân "chuỗi", sự kiện này có thể gây ra một số ảnh hưởng. Bởi vì vấn đề xảy ra ngay trong vòng chưa đầy một ngày sau khi Multi-geth chấm dứt hỗ trợ Ethereum Classic. Mặc dù tình huống lần này tương đối đơn giản, nhưng nếu đây là hành động lặp đi lặp lại có tổ chức của những tay chơi chuyên nghiệp sử dụng cùng một thủ thuật, thì mục đích có phải là cố tình gây ra nhiều lần phân nhánh hay không là điều chưa thể biết. Và bằng cách này, kẻ tấn công độc hại có thể phát động cuộc tấn công 51% nhằm kiểm soát blockchain, thực hiện tấn công kép (double-spend) hoặc xóa các giao dịch đã tồn tại trên chuỗi.
Liên kết tham khảo:
https://coinfomania.com/the-ethereum-classic-blockchain-etc-51-attack/
https://hashdeploy.com/?p=38898
https://hackmd.io/@cUBb4hAvQciAEPoU2yfrzQ/Skd4X6MZw
https://twitter.com/pool2miners/status/1289475794230587394?s=21
https://github.com/multi-geth/multi-geth/releases/tag/v1.9.18
https://cointelegraph.com/news/ethereum-classic-blockchain-splits-due-to-reorg-by-a-single-miner
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














