Đôi khi tôi tự bắt gặp mình nghĩ rằng nếu tôi tự quản lý Bitcoin thì chính tôi là người ký cho mọi giao dịch. Có vẻ đó là cách mà tự lưu ký hoạt động: bạn giữ khóa, bạn quyết định khi nào tiền được chuyển đi, và chuỗi xác nhận. Rồi tôi bắt đầu tìm hiểu Babylon Labs, và tôi nhận ra rằng các Trustless Bitcoin Vaults của họ được xây dựng dựa trên một giả định khác.
Điểm thú vị không hẳn nằm ở việc tạo vault. Nhiều giao thức cho phép bạn khóa Bitcoin. Điều khiến tôi bất ngờ là luồng chuộc lại (redemption). Bên vay sẽ hoàn trả khoản vay. Sau đó thì… không có gì nữa. Nhà cung cấp Vault gửi một bằng chứng (proof), một thời gian thách thức (challenge window) mở ra. Khóa riêng của người dùng nằm yên. Không cần chữ ký. Nếu đây vẫn là tự lưu ký, vậy tại sao người được cho là đang sở hữu tài sản lại không phê duyệt việc chuyển động cuối cùng?
Tôi phải lần ngược lại hai lần vì ban đầu tôi nghĩ việc chuộc lại chắc chắn phải có một chữ ký ẩn nào đó. Không phải vậy. Câu trả lời nằm ở giai đoạn tạo vault. Trước khi vault được kích hoạt, người dùng đồng ký một kịch bản Taproot (Taproot script) chứa mọi đường đi chi tiêu có thể: hoàn trả, thanh lý, hoàn tiền. Tất cả đều đã được ký trước bởi mọi người tham gia. Sau khi kích hoạt, không thể đưa thêm đường đi mới. Vì thế, việc chuộc lại không phải xin phép vì quyền đã được cấp từ trước. Có thể là từ vài tuần trước.
Điều đó làm thay đổi thời điểm kiểm soát thực sự xảy ra. Nó không được thực thi ngay tại khoảnh khắc chuyển động. Nó được nhúng trong kiến trúc của vault trước khi bất cứ thứ gì được di chuyển. Người dùng vẫn quyết định mọi thứ. Nhưng là quyết định trước, không phải để phản ứng lại các sự kiện.
Tất nhiên, điều đó cũng có nghĩa là cơ chế dự phòng tự yêu cầu (self-claim fallback) trở thành một thứ khác cần phải đúng. Nếu Nhà cung cấp Vault biến mất, người dùng vẫn có thể tự mình thu hồi BTC. Nhưng chỉ khi họ đã lưu các tư liệu (claimer artifacts) từ lúc tạo vault. Mất chúng thì lối đi này sẽ đóng lại. Tôi vẫn chưa chắc liệu vấn đề khó hơn là thiết kế các kịch bản đã được ký trước, hay là thuyết phục người dùng giữ an toàn một tệp tin mà họ có thể không cần trong nhiều tháng. Đây chỉ là quan điểm của riêng tôi, không phải lời khuyên đầu tư.
#baby $BABY @BabylonLabs_io
Điểm thú vị không hẳn nằm ở việc tạo vault. Nhiều giao thức cho phép bạn khóa Bitcoin. Điều khiến tôi bất ngờ là luồng chuộc lại (redemption). Bên vay sẽ hoàn trả khoản vay. Sau đó thì… không có gì nữa. Nhà cung cấp Vault gửi một bằng chứng (proof), một thời gian thách thức (challenge window) mở ra. Khóa riêng của người dùng nằm yên. Không cần chữ ký. Nếu đây vẫn là tự lưu ký, vậy tại sao người được cho là đang sở hữu tài sản lại không phê duyệt việc chuyển động cuối cùng?
Tôi phải lần ngược lại hai lần vì ban đầu tôi nghĩ việc chuộc lại chắc chắn phải có một chữ ký ẩn nào đó. Không phải vậy. Câu trả lời nằm ở giai đoạn tạo vault. Trước khi vault được kích hoạt, người dùng đồng ký một kịch bản Taproot (Taproot script) chứa mọi đường đi chi tiêu có thể: hoàn trả, thanh lý, hoàn tiền. Tất cả đều đã được ký trước bởi mọi người tham gia. Sau khi kích hoạt, không thể đưa thêm đường đi mới. Vì thế, việc chuộc lại không phải xin phép vì quyền đã được cấp từ trước. Có thể là từ vài tuần trước.
Điều đó làm thay đổi thời điểm kiểm soát thực sự xảy ra. Nó không được thực thi ngay tại khoảnh khắc chuyển động. Nó được nhúng trong kiến trúc của vault trước khi bất cứ thứ gì được di chuyển. Người dùng vẫn quyết định mọi thứ. Nhưng là quyết định trước, không phải để phản ứng lại các sự kiện.
Tất nhiên, điều đó cũng có nghĩa là cơ chế dự phòng tự yêu cầu (self-claim fallback) trở thành một thứ khác cần phải đúng. Nếu Nhà cung cấp Vault biến mất, người dùng vẫn có thể tự mình thu hồi BTC. Nhưng chỉ khi họ đã lưu các tư liệu (claimer artifacts) từ lúc tạo vault. Mất chúng thì lối đi này sẽ đóng lại. Tôi vẫn chưa chắc liệu vấn đề khó hơn là thiết kế các kịch bản đã được ký trước, hay là thuyết phục người dùng giữ an toàn một tệp tin mà họ có thể không cần trong nhiều tháng. Đây chỉ là quan điểm của riêng tôi, không phải lời khuyên đầu tư.
#baby $BABY @BabylonLabs_io
