Có rủi ro tài chính đối với Lightning Network không? Một bài viết giải thích nguyên tắc và phương pháp xử lý của nó
南枳
2023-10-22 07:24
本文约1509字,阅读全文需要约6分钟
Tấn công theo chu kỳ thay thế: Quan trọng nhưng không gây chết người.

Bản gốc - Odaily

Tác giả - Nam Trí

giới thiệu

Vào ngày 20 tháng 10, nhà phát triển cốt lõi Bitcoin Core /dev/fd0 đã công bố trên nền tảng X,Sẽ ngừng tham gia vào việc phát triển Lightning Network và triển khai nó, bao gồm cả việc điều phối xử lý các vấn đề bảo mật ở cấp độ giao thức

/dev/fd0 có nghĩa là mỗi nút Bitcoin có nhóm bộ nhớ riêng. Giao dịch được chuyển tiếp bởi các nút ngang hàng. Nếu nút Lightning Network được sử dụng để mở kênh và chấp nhận chuyển tiếp HTLC, thì nó dễ bị tấn công.Tấn công chu kỳ thay thế(Replacement Cycling Attacks)。

“Cuộc tấn công vòng lặp thay thế” mà nhà phát triển đề cập đến là gì và nó được thực hiện như thế nào, Odaily sẽ tiết lộ trong bài viết này.

Mạng sét

TPS của mạng Bitcoin chỉ khoảng 7 và phí xử lý cao. Để giải quyết nhu cầu thanh toán nhỏ, Lightning Network đã ra đời.

Lightning Network là giải pháp mở rộng quy mô lớp thứ hai cho Bitcoin và các loại tiền điện tử khác được thiết kế để giải quyết các vấn đề về khả năng mở rộng và tốc độ giao dịch của mạng tiền điện tử.

Nguyên tắc thực hiện của nó có thể được đơn giản hóa như sau:

  1. Bên giao dịch A và B thiết lập “kênh giao dịch” (thực chất là ví đa chữ ký)

  2. A và B lần lượt nạp tiền A1 và B1 (bước này nằm trên chuỗi)

  3. Bất kỳ giao dịch nào giữa A và B đều xảy ra ngoài chuỗi và số tiền chuyển ròng của A là

  4. Cập nhật giao dịch của A1-X và B1+X trên chuỗi

Thông qua quy trình trên, cho dù A và B thực hiện bao nhiêu giao dịch ngoài chuỗi, họ chỉ cần trả hai khoản phí trên chuỗi, tiết kiệm rất nhiều thời gian.

Hợp đồng khóa thời gian băm (HTLC)

Biểu mẫu được giới thiệu ở trên được giới hạn ở các kênh giao dịch trực tiếp giữa A và B và các nút chuyển tiếp xuất hiện để thanh toán qua kênh.Nút chuyển tiếp chuyển tiếp các giao dịch giữa hai bên để tạo điều kiện thanh toán đa kênh.và nút chuyển tiếp có thể tính phí các mẹo.

Nhưng điều này phải đối mặt với một vấn đề:Cần đảm bảo rằng mọi người tham gia trong mỗi kênh đều trung thực và đáng tin cậy, được bảo mật trên các liên kết đa kênh.

Vì vậy, HTLC (Hash Time-Lock Contract, Hash Time Lock Contract) xuất hiện, giao dịch thanh toán bằng HTLC có thể được đơn giản hóa thành:

  1. A chuẩn bị mã bí mật R và tính giá trị băm H của nó

  2. A đặt ra giới hạn thời gian T

  3. A gửi giao dịch thanh toán bằng HTLC cho B. Giao dịch cuối cùng chỉ được thiết lập khi đáp ứng được hai điều kiện sau.

    • B trả lời mã bí mật R (được xác minh bởi H)

    • Thời gian trả lời của B nằm trong khoảng T (ví dụ: câu trả lời được đưa ra trong vòng 10 khối)

  4. Nếu B không biết mật khẩu hoặc trả lời hết thời gian, tiền sẽ được trả lại cho A

quá trình giao dịch bình thường

Thông qua HTLC trên, quy trình thanh toán liên quan đến các nút chuyển tiếp như sau:

  1. Người nhận cuối cùng C cung cấp mã bí mật cho người gửi A

  2. A bắt đầu thanh toán HTLC với giá trị băm H (xin lưu ý rằngLúc này số tiền vẫn chưa đến tay B

  3. B nhận thông tin thanh toán và bắt đầu thanh toán HTLC cho C bằng giá trị băm H

  4. Để nhận tiền, C trả lời mã và nhận tiền. Lúc này B cũng đã biết mật khẩu

  5. B sử dụng mã bí mật để nhận khoản thanh toán do A thực hiện, nhận tiền và giao dịch được hoàn tất.

Quá trình liên quan đến ba nút này như trên. Một số nút chuyển tiếp khác cũng có thể được thêm vào ở giữa, trong khi chế độ thanh toán vẫn không thay đổi. Khoản thanh toán được gửi đến người nhận cuối cùng thông qua chuỗi và sau đó mã bí mật được truyền trở lại người nhận. nút chuyển tiếp ban đầu. Cuối cùng, niêm phong giao dịch.

Nếu nút chuyển tiếp không nhận được tín hiệu bí mật R trong một thời gian dài,(Tôi sẽ không đưa ra câu trả lời, thời hạn do chính nút chuyển tiếp quyết định), thì nút chuyển tiếp có thể chọn đóng kênh,Nếu upload thành côngKhi đó, khoản thanh toán do B thực hiện sẽ không hợp lệ và sẽ không bị mất tiền.

cuộc tấn công thay thế chu kỳ

Quay lại nguyên tắc cơ bản của HTLC, ngoài việc trả lời mã bí mật, nút chuyển tiếp còn cần phải đáp ứng một điều kiện khác “thời gian để nút chuyển tiếp trả lời nằm trong khoảng T”, và những kẻ tấn công độc hại đang nhắm đến điểm này để tấn công:

  1. A và C thông đồng ác ý, nạn nhân là nút chuyển tiếp B (B yêu cầu nút tiếp theo trả lời trong vòng 3 khối)

  2. A bắt đầu thanh toán cho B (giả sử chiều cao khối là 1000 tại thời điểm này) và yêu cầu phản hồi trước khối 1020

  3. B bắt đầu thanh toán cho C (chiều cao khối 1005)

  4. Khi chiều cao khối là 1008, B thấy C chưa trả lời và quyết định đóng kênh, điều này sẽ có hiệu lực ở khối 1009.

  5. C bắt đầu một giao dịch gas cao ① (khối 1008), ngăn giao dịch do B khởi tạo xâm nhập vào nhóm bộ nhớ.

  6. C bắt đầu giao dịch gas cao ② (khối 1009), nhưng B vẫn không thể vào nhóm bộ nhớ.

  7. C hoạt động theo vòng lặp vô hạn cho đến khối 1020, cung cấp mật khẩu R và rút tiền.

Mặc dù B đã lấy được mật khẩu nhưng anh ta không còn thời gian để phản hồi khoản thanh toán do A thực hiện. Số tiền đã được trả lại cho A và khoản thanh toán cho C đã được thiết lập. Cuối cùng, cuộc tấn công thay thế theo chu kỳ đã được thực hiện.. Ngoài ra, A và C cũng có thể đạt được chi tiêu gấp đôi bằng cách thông đồng và tấn công theo chu kỳ vào giao dịch đã đóng của B.

Phần kết luận

Mặc dù các đường tấn công trên tồn tại nhưng điều đó không có nghĩa là kẻ tấn công có thể làm bất cứ điều gì chúng muốn và đánh cắp tiền trong Lightning Network. Tác giả cũng đề xuất năm giải pháp trong bài viết gốc, chẳng hạn như nhóm bộ nhớ cục bộ và giám sát lưu lượng chuyển tiếp giao dịch, bộ nhớ khai thác Giám sát hồ bơi, v.v.

Tương lai tươi sáng nhưng con đường thì quanh co. Năm nay, một loạt thứ mới như Ordinals, BRC-20 và Taproot Asset đã ra đời trên mạng Bitcoin. Mặc dù vẫn còn tồn tại vấn đề nhưng việc tiếp tục phát triển cuối cùng sẽ giải quyết được chúng.

Người giới thiệu

  1. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-October/022032.html

  2. https://github.com/ariard/mempool-research/blob/2023-10-replacement-paper/replacement-cycling.pdf


南枳
作者文库