Bạn có từng gặp phải tình huống như thế này chưa? Mạng vận chuyển ghi là “đã ký nhận”, nhưng bạn chẳng thấy đâu cả. Tra camera thì mới biết nhân viên giao hàng đúng là đã đặt gói trước cửa—chỉ là sau đó bị người khác lấy mất. Thông tin logistics từ đầu đến cuối đều đúng, nhưng kết quả lại không phải thứ bạn muốn. Trên blockchain cũng có những thời điểm kỳ lạ kiểu “ghi nhận không sai, nhưng hậu quả lại không đúng”—nó nằm trong một thành phần được lướt qua trong Mục 9 của bản whitepaper.
@BabylonLabs_io Mục 9 nói rằng khi triển khai đa chuỗi, mỗi chuỗi được kết nối vào kho tiền (vault) phải chạy một “Bitcoin light client” để kiểm chứng rằng BTC của bạn thực sự được khóa một cách ngoan ngoãn trên chuỗi Bitcoin. Cách light client làm việc khá gọn—chỉ đồng bộ tiêu đề khối, rồi dùng Merkle để xác nhận sự tồn tại của một giao dịch nào đó. Nghe có vẻ rất đáng tin, nhưng lại có một lỗ hổng hiếm khi được đem ra bàn: tái cấu trúc chuỗi (reorg).
Chuỗi Bitcoin thỉnh thoảng có thể reorg, có thể rút đi trong lịch sử tới vài chục khối. Light client chỉ tin tiêu đề khối, và trong mắt nó chỉ có “chuỗi dài nhất”. Nhưng nếu giao dịch gửi tiền của kho tiền bạn lại vừa được đóng gói trong một khối sau đó bị cô lập, thì khi reorg kết thúc, light client sẽ nhận ra—khoản tiền gửi đó đã “bốc hơi” khỏi hư không. Phiền ở chỗ nào? Trong vài phút xảy ra reorg, trên chuỗi hợp đồng, collBTC có thể đã được đúc từ sớm. Logistics thì chốt cứng rằng gói đã được giao, mở hộp ra thì rỗng.
#baby
Cơ chế quản trị trong whitepaper Babylon—$BABY —được đưa ra để đối phó với những tình huống “xác suất thấp đến mức bụi bay, nhưng một khi xảy ra thì sẽ chọc thủng trời”. Cần đặt số lượng khối xác nhận cho reorg là bao nhiêu? 6 xác nhận liệu đã đủ hay nên thận trọng canh đến 12? Trong thời gian reorg, kho tiền sẽ dừng khẩn hay vẫn chạy bình thường? Những tham số này không thể đóng đinh vào code của kho tiền; nói cho cùng, đó không phải vấn đề kỹ thuật, mà là vấn đề khẩu vị rủi ro. Người nắm phiếu bầu BABY về bản chất đang vẽ một vạch chia cho mức độ “chịu đựng sự không chắc chắn” của cả hệ thống.
Thứ mà việc giảm thiểu niềm tin muốn triệt tiêu bằng mọi giá là động cơ làm điều sai trái của con người. Nhưng reorg không phải là sự làm ác—mà là quy luật vật lý. Mã nguồn có thể chặn kẻ xấu đứng ngoài cửa, nhưng lại không chặn được xác suất len lỏi vào một cách lặng lẽ. DYOR.
@BabylonLabs_io Mục 9 nói rằng khi triển khai đa chuỗi, mỗi chuỗi được kết nối vào kho tiền (vault) phải chạy một “Bitcoin light client” để kiểm chứng rằng BTC của bạn thực sự được khóa một cách ngoan ngoãn trên chuỗi Bitcoin. Cách light client làm việc khá gọn—chỉ đồng bộ tiêu đề khối, rồi dùng Merkle để xác nhận sự tồn tại của một giao dịch nào đó. Nghe có vẻ rất đáng tin, nhưng lại có một lỗ hổng hiếm khi được đem ra bàn: tái cấu trúc chuỗi (reorg).
Chuỗi Bitcoin thỉnh thoảng có thể reorg, có thể rút đi trong lịch sử tới vài chục khối. Light client chỉ tin tiêu đề khối, và trong mắt nó chỉ có “chuỗi dài nhất”. Nhưng nếu giao dịch gửi tiền của kho tiền bạn lại vừa được đóng gói trong một khối sau đó bị cô lập, thì khi reorg kết thúc, light client sẽ nhận ra—khoản tiền gửi đó đã “bốc hơi” khỏi hư không. Phiền ở chỗ nào? Trong vài phút xảy ra reorg, trên chuỗi hợp đồng, collBTC có thể đã được đúc từ sớm. Logistics thì chốt cứng rằng gói đã được giao, mở hộp ra thì rỗng.
#baby
Cơ chế quản trị trong whitepaper Babylon—$BABY —được đưa ra để đối phó với những tình huống “xác suất thấp đến mức bụi bay, nhưng một khi xảy ra thì sẽ chọc thủng trời”. Cần đặt số lượng khối xác nhận cho reorg là bao nhiêu? 6 xác nhận liệu đã đủ hay nên thận trọng canh đến 12? Trong thời gian reorg, kho tiền sẽ dừng khẩn hay vẫn chạy bình thường? Những tham số này không thể đóng đinh vào code của kho tiền; nói cho cùng, đó không phải vấn đề kỹ thuật, mà là vấn đề khẩu vị rủi ro. Người nắm phiếu bầu BABY về bản chất đang vẽ một vạch chia cho mức độ “chịu đựng sự không chắc chắn” của cả hệ thống.
Thứ mà việc giảm thiểu niềm tin muốn triệt tiêu bằng mọi giá là động cơ làm điều sai trái của con người. Nhưng reorg không phải là sự làm ác—mà là quy luật vật lý. Mã nguồn có thể chặn kẻ xấu đứng ngoài cửa, nhưng lại không chặn được xác suất len lỏi vào một cách lặng lẽ. DYOR.