Vào cuối ngày chủ nhật 9/10, các nhà nghiên cứu đã phát hiện ra một lỗi xác thực nghiêm trọng trên LND, một triển khai phổ biến của Bitcoin Lightning Network do Lightning Labs sở hữu.
Cụ thể, triển khai node đầy đủ Bitcoin của LND là BTCD, đã có một lỗi trong quá trình thực hiện Taproot. (BTCD là một triển khai node đầy đủ cho Bitcoin, phổ biến đối với người dùng Lightning Network).
Lỗi này ảnh hưởng đến các phiên bản LND 0.15.1 trở lên. LND đã kêu gọi tất cả người dùng nâng cấp lên phiên bản 0.15.2.
Lỗi LND gây tác động đến cách các node Lightning hoạt động và ngăn người dùng LND đăng xuất khỏi Lightning Network layer 2 vào mạng chính thức, layer 1 Bitcoin trong vài giờ. Trong khi lỗi chưa được xử lý, người dùng LND không thể tạo hoặc đóng các kênh Lightning mới.
Giao dịch Taproot multi-sig lớn đã giúp phát hiện lỗi
Các nhà nghiên cứu đã phát hiện ra lỗi LND trong khi kiểm tra các giới hạn của Bitcoin Scripting Language, một ngôn ngữ lập trình của Bitcoin. Họ muốn thử nghiệm một hợp đồng thông minh cực kỳ tiên tiến yêu cầu đồng xác thực của nhiều bên.
Để thực hiện thử nghiệm này, nhà nghiên cứu Burak đã tạo ra một giao dịch Taproot multi-sig lớn 998/999. Giao dịch này yêu cầu 998 chữ ký khóa cá nhân để xác thực việc gửi bitcoin – một lượng lớn người đồng ký tên bất thường.
Để đặt con số 998 đó vào ngữ cảnh, hãy xem xét rằng người dùng Lightning Network thường mở các kênh chỉ bằng cách sử dụng 2/2 giao dịch multi-sig.
Giao dịch Taproot 998/999 multi-sign đã được chấp nhận bởi các nhà sản xuất block testnet. Giao dịch sau đó đã được khai thác trong một block Bitcoin của mạng chính thức và phá vỡ LND.
Ngoài ra, giao dịch đó cũng đã gây nhầm lẫn về phương pháp được LND sử dụng để tính toán block Bitcoin gần đây nhất là gì. Cụ thể, LND không thể phân tích cú pháp một block mới do thư viện bị lỗi của nó. Thông báo sau sẽ xuất hiện trong nhật ký lỗi: “Không thể hoàn tất quá trình quét lại chuỗi: readScript: mục xác định được tập lệnh lớn hơn kích thước tối đa cho phép.”
Lightning Labs ngay lập tức bắt đầu tiến hành sửa lỗi LND, cập nhật thư viện phân tích cú pháp dây của BTCD và lên kế hoạch phát hành phiên bản 0.15.2
Nhấn mạnh sự cần thiết của các dịch vụ tháp canh quá trình triển khai chéo
Sau quá trình xử lý lỗi, các nhà nghiên cứu bắt đầu bày tỏ nhu cầu về các dịch vụ tháp canh mang tính bất khả tri.
Lỗi này chỉ ảnh hưởng đến LND. LND là một triển khai nổi bật của Lightning Network. Các triển khai khác bao gồm Éclair và Core Lightning.
Tháp canh là dịch vụ của bên thứ ba nhằm giám sát Bitcoin Lightning Network, có thể xem công khai và cho phép người dùng tìm kiếm sự bồi thường cho các hành vi sai trái. Tháp canh này có thể giám sát tất cả mọi triển khai của Lightning để bảo vệ người dùng trong suốt khoản thời gian ngừng hoạt động của bất kỳ triển khai cụ thể nào.
Ví dụ, vì hầu hết người dùng tham gia Lightning như một giao dịch 2/2 multi-sign, họ thường tin tưởng vào một đối tác không đưa sai thông tin về số dư cuối cùng của bitcoin thuộc sở hữu của nhau khi đóng kênh và thoát mạng vào mạng chính thức Bitcoin.
Nếu ai đó nói dối về số bitcoin mà họ sở hữu khi cố gắng đóng kênh Lightning, người dùng có thể minh chứng rằng lời nói dối này có thể thực hiện một giao dịch khác, được gọi là “Giao dịch hợp pháp” và lấy 100% bitcoin trong kênh của họ làm phần thưởng cho hành vi bắt được kẻ nói dối.
Một tháp canh giám sát tất cả các hoạt động triển khai (LND, Core Lightning, Éclair, v.v.) có thể bảo vệ người dùng khi có lỗi hoặc hack, cho phép họ thực hiện Giao dịch hợp pháp nếu có ai đó cố gắng ăn cắp tiền của họ trong thời gian ngừng hoạt động. Có một số tháp canh nhỏ, triển khai chéo như Eye of Satoshi, nhưng chúng không được sử dụng rộng rãi.