Bộ phận giữ áo ở một đám cưới mà tôi từng làm dùng vé giấy đánh số — xé một nửa, giữ nửa còn lại, mỗi áo tương ứng với một số. Đơn giản, miễn là máy chỉ in mỗi số một lần.
Nhưng nó bị kẹt giữa đêm và bắt đầu in lại các số đã bị xóa. Có hai người đến và cầm theo vé số #114. Chỉ có đúng một chiếc áo từng treo dưới số đó.
Từ mà tôi đoán là phù hợp: vé “thừa” — một yêu cầu/claim được cấp phát nhiều hơn một lần, vì bất cứ thứ gì in các claim đều không kiểm tra phía sau thực sự có gì đang treo. Các token liquid-staking của Bitcoin cũng có mức phơi nhiễm tương tự: một biên nhận được tạo ra dựa trên khoản tiền gửi, chỉ “trung thực” bằng chính mức độ trung thực của đoạn mã tạo ra biên nhận đó.
Tháng Ba, ví BRO của Solv Protocol cho phép một khoản nạp 1 BTC đúc ra nhiều SolvBTC hơn mức nó đáng lẽ phải tạo. Một lỗi reentrancy cho phép một lần nạp NFT duy nhất kích hoạt callback, phát hành một đợt token thứ hai trước khi lần đúc đầu tiên kịp hoàn tất — công ty an ninh Halborn lần theo đến nhánh “đúc hai lần” đó, trị giá khoảng 2,7 triệu USD. Người dùng được hoàn trả, nhưng trong một thời gian, token biên nhận đã chạy nhanh hơn Bitcoin đứng đằng sau nó.
Phần tích hợp staking của Babylon tự bỏ qua bước token biên nhận vì đúng lý do này. Một vault BTC được stake mang sẵn ba điều kiện chi tiêu được ký trước lúc tạo — unstake, liquidate, slashing — được thực thi trực tiếp bởi chính script của Bitcoin, chứ không phải một smart contract đúc claim dựa trên khoản tiền gửi. Không có token thứ hai nào có thể bị cấp phát hai lần, vì không hề có token.
Điều tôi vẫn luôn canh cánh: Solv có thể vá hợp đồng sau khi khai thác và hoàn trả cho người dùng. Một vault đã ký sẵn không thể vá được — bất kỳ điều kiện nào được ký tại thời điểm tạo sẽ là các điều kiện cho toàn bộ vòng đời của vault đó. Đem một lỗ hổng mà bạn có thể sửa lấy đổi lấy một sai lầm mà bạn không thể sửa là một kiểu rủi ro khác.
Vé số #114 là con số mà tôi còn nhớ, hơn cả bản thân cái áo.
Yêu cầu rút tiền của tôi từ testnet vẫn đang nằm trong giai đoạn thử thách — sẽ báo lại khi nó thực sự được ghi vào ví, chứ không chỉ hiển thị trên bảng điều khiển.
@BabylonLabs_io $BABY #baby
Nhưng nó bị kẹt giữa đêm và bắt đầu in lại các số đã bị xóa. Có hai người đến và cầm theo vé số #114. Chỉ có đúng một chiếc áo từng treo dưới số đó.
Từ mà tôi đoán là phù hợp: vé “thừa” — một yêu cầu/claim được cấp phát nhiều hơn một lần, vì bất cứ thứ gì in các claim đều không kiểm tra phía sau thực sự có gì đang treo. Các token liquid-staking của Bitcoin cũng có mức phơi nhiễm tương tự: một biên nhận được tạo ra dựa trên khoản tiền gửi, chỉ “trung thực” bằng chính mức độ trung thực của đoạn mã tạo ra biên nhận đó.
Tháng Ba, ví BRO của Solv Protocol cho phép một khoản nạp 1 BTC đúc ra nhiều SolvBTC hơn mức nó đáng lẽ phải tạo. Một lỗi reentrancy cho phép một lần nạp NFT duy nhất kích hoạt callback, phát hành một đợt token thứ hai trước khi lần đúc đầu tiên kịp hoàn tất — công ty an ninh Halborn lần theo đến nhánh “đúc hai lần” đó, trị giá khoảng 2,7 triệu USD. Người dùng được hoàn trả, nhưng trong một thời gian, token biên nhận đã chạy nhanh hơn Bitcoin đứng đằng sau nó.
Phần tích hợp staking của Babylon tự bỏ qua bước token biên nhận vì đúng lý do này. Một vault BTC được stake mang sẵn ba điều kiện chi tiêu được ký trước lúc tạo — unstake, liquidate, slashing — được thực thi trực tiếp bởi chính script của Bitcoin, chứ không phải một smart contract đúc claim dựa trên khoản tiền gửi. Không có token thứ hai nào có thể bị cấp phát hai lần, vì không hề có token.
Điều tôi vẫn luôn canh cánh: Solv có thể vá hợp đồng sau khi khai thác và hoàn trả cho người dùng. Một vault đã ký sẵn không thể vá được — bất kỳ điều kiện nào được ký tại thời điểm tạo sẽ là các điều kiện cho toàn bộ vòng đời của vault đó. Đem một lỗ hổng mà bạn có thể sửa lấy đổi lấy một sai lầm mà bạn không thể sửa là một kiểu rủi ro khác.
Vé số #114 là con số mà tôi còn nhớ, hơn cả bản thân cái áo.
Yêu cầu rút tiền của tôi từ testnet vẫn đang nằm trong giai đoạn thử thách — sẽ báo lại khi nó thực sự được ghi vào ví, chứ không chỉ hiển thị trên bảng điều khiển.
@BabylonLabs_io $BABY #baby