Vào lúc 2:16 sáng ngày 16 tháng 11, BCH đã có một hard fork tại khối 556767. Cuộc chiến fork đã kết thúc và nó được chia thành hai phe: BCH ABC và BCH SV.
Trong đợt hard fork này, cả BCH ABC và BCH SV đều không triển khai "bảo vệ lặp lại". Điều đó có nghĩa là, sau đợt fork này, về mặt lý thuyết, các cuộc tấn công lặp lại có thể dẫn đến sự sụp đổ của sự đồng thuận và sức mạnh tính toán của bất kỳ bên nào bằng không.
"tấn công phát lại" là gì
Trong thuật ngữ máy tính truyền thống, các cuộc tấn công phát lại, còn được gọi là tấn công phát lại hoặc tấn công phát lại, đề cập đến kẻ tấn công gửi một gói dữ liệu đã được máy chủ đích nhận để đạt được mục đích đánh lừa hệ thống. Tấn công lặp lại có thể xảy ra trong bất kỳ quá trình giao tiếp mạng nào và nó là một trong những phương thức tấn công thường được tin tặc sử dụng trong thế giới máy tính. Chủ yếu được sử dụng trong quá trình xác thực.
Trong lĩnh vực blockchain, các cuộc tấn công lặp lại (Replay Attacks) thường xuất hiện khi blockchain bị hard fork, ám chỉ “các giao dịch trên một chuỗi thường hợp pháp trên một chuỗi khác”.
Có một ví dụ có thể minh họa một cách đơn giản thế nào là "tấn công lặp lại" trong chuỗi khối:
Little A mua bia từ một nhà máy bia không xác định được khoản thanh toán một cách hiệu quả (ở đây không thể xác định được đó là khoản thanh toán nào) Khi anh ấy đưa thông tin thanh toán của khoản thanh toán thành công bằng Alipay cho nhân viên bán hàng, nhân viên bán hàng đưa bia cho anh ấy. Sau đó, Xiao A đưa thông tin thanh toán cuối cùng cho một người bán hàng khác, và người bán hàng đã đưa cho anh ta một cốc bia khác. Chỉ cần Tiểu A liên tục đưa ra thông tin thanh toán của mình là có thể liên tục gian lận bia, đối với nhà máy bia mà nói thì đó là một cuộc tấn công lại và mất vô số bia.
Đối với hard fork BCH này, BCH đã thay đổi từ một chuỗi thành hai chuỗi. Khi cả hai chuỗi được hỗ trợ và tiếp tục hoạt động, chuỗi phân nhánh kia đã tạo ra tài sản BSV, nghĩa là cả BCH ABC và BCH SV đều tồn tại . Vì không có bảo vệ lặp lại, nếu bạn để nó một mình sau đợt fork và để nó phát triển tự nhiên, điều này sẽ xảy ra vào lúc này: Khi bạn giao dịch trên chuỗi SV, do cùng một địa chỉ, thuật toán và hình thức giao dịch, bạn sẽ nhận được Nếu chuỗi ABC phát sóng lại, nó có thể được chuỗi ABC công nhận là hợp lệ để có thể thực hiện cùng một hoạt động giao dịch. Khi kẻ tấn công lợi dụng lỗ hổng này và liên tục gửi và rút tiền (BCH SV) trên sàn giao dịch, hắn có thể lấy thêm BCH ABC.
Điều này có nghĩa là tài sản của người dùng BCH không có bảo vệ phát lại đã gặp rủi ro và nghiêm trọng hơn, nó sẽ dẫn đến sự sụp đổ của sự đồng thuận và sức mạnh tính toán bằng không.
Nguồn gốc của "tấn công lặp lại": Ethereum hard fork
Vào tối ngày 20 tháng 7 năm 2016, Ethereum đã có một hard fork ở khối 1,92 triệu, dẫn đến hai chuỗi được gọi là chuỗi ETH và chuỗi ETH Classic, và các mã thông báo trên được gọi là ETH và ETC.
Địa chỉ và thuật toán khóa riêng trên hai chuỗi này giống nhau và định dạng giao dịch cũng hoàn toàn giống nhau, vì vậy các giao dịch trên một trong các chuỗi có thể hoàn toàn hợp pháp trên chuỗi kia. Vì vậy, nếu bạn bắt đầu giao dịch trên một trong các chuỗi và phát lại giao dịch đó trên một chuỗi khác, giao dịch đó cũng có thể được xác nhận.
Do không có kế hoạch trước nên nhiều người đã lợi dụng kẽ hở này để liên tục nạp và rút ETH trên sàn nhằm kiếm thêm ETC. "Replay attack" đã được định nghĩa lại trong thế giới blockchain.
Bị ảnh hưởng bởi các cuộc tấn công lặp lại, các vấn đề hiện tại của Ethereum đang tồn tại đối với người dùng. Bởi vì cả ETH và ETC đều có khối lượng kinh tế tốt và nếu người dùng không thể giải quyết khả năng hoạt động của anh ta bị lặp lại, anh ta muốn bán một trong các tài sản trong khi vẫn giữ tài sản kia hoặc anh ta phải tự tách nó ra hoặc anh ta chỉ có thể làm điều đó trong Nó chỉ có thể được thực hiện với sự hỗ trợ của trao đổi.
Phản hồi: Tách biệt trước khi giao dịch
Vì BCH đã được rẽ nhánh mà không có bảo vệ phát lại nên không thể tránh được việc phát lại. Để tránh tổn thất, các sàn giao dịch và người dùng cần kiểm tra BCH ABC/ BCH SV để phân tách.
Hãy cùng nhìn lại hai phiên bản nâng cấp của BCH: bitcoin abc 0.18.2 và bitcoin sv 0.1.
Sửa đổi chính của phiên bản giao thức Abc0.18.2 là bổ sung thêm hai opcode OPcode, OP_CHECKDATASIG (CDS) và OP_CHECKDATASIGVERIFY (DSV); thay đổi quy tắc sắp xếp thứ tự của các giao dịch trong khối từ sắp xếp tô pô (TTOR) sang sắp xếp chuẩn (CTOR).
Sửa đổi chính của phiên bản giao thức SV0.1 là khôi phục bốn opcode Bitcoin ban đầu OPCode, OP_MUL, OP_LSHIFT, OP_RSHIFT, OP_INVERT; xóa giới hạn 201 opcode cho mỗi tập lệnh; tăng giới hạn trên của kích thước khối lên 128 MB.
Vì cả hai phiên bản đã cập nhật mã hoạt động nên đối với người dùng đã nắm giữ BCH, việc sử dụng mã OP mới cho các hoạt động giao dịch sẽ an toàn hơn, nên tách mã này ra trước khi vận hành tài khoản.
Cách dễ nhất và hiệu quả nhất để phân tách là mua một ít UTXO của các giao dịch coinbase từ nhóm khai thác 100 khối sau điểm phân tách, gửi nó đến ví BCH của bạn, sau đó chuyển tất cả số dư sang địa chỉ mới cùng một lúc. Bạn chỉ cần làm điều này một lần trên một chuỗi và bạn hoàn toàn có thể tách nó ra.
Sau khi tách hai tài sản, bạn có thể sử dụng OPCode mới và sẽ không có mối nguy hiểm nào về an toàn trong OPCode mới trên chuỗi BCH do được phát lại.
Tại đây, SECBIT Lab nhắc nhở những người nắm giữ BCH và các sàn giao dịch hỗ trợ ABC/BSV sử dụng OPCode mới một cách cẩn thận trong các giao dịch trước khi tách BSV của bạn/người dùng của bạn để tránh tổn thất do chơi lại.
