Khi tôi lật tài liệu về Babylon để xác nhận ranh giới quyền hạn của bên thanh toán (liquidator), tôi vốn chỉ định đọc cho rõ. Ai ngờ càng lật càng buồn ngủ, nhưng rồi lại tỉnh ra vì một chuyện—gửi tiền và rút tiền, cũng như logic “niềm tin” hoàn toàn không phải một
Ban đầu tôi cứ nghĩ toàn bộ mô hình niềm tin của hệ thống kho (vault) là thống nhất. Xem đến phần sau mới nhận ra: ở khâu gửi tiền thì cần hàng loạt người gật đầu, còn logic niềm tin cho rút tiền và thanh toán thì hoàn toàn khác
Bên gửi tiền, bạn phải “nhờ người”. Khi tạo kho, bạn phải gửi yêu cầu Peg-In lên Ethereum kèm theo một bí mật khóa băm (hash lock) mà chỉ bạn mới biết. Sau đó, bạn phát quảng bá giao dịch Pre-PegIn trên mạng Bitcoin, khóa BTC vào một địa chỉ Taproot được liên kết với khóa băm. Rắc rối thật sự bắt đầu từ đây—bạn cần Vault Provider và AVK ở ngoài chuỗi (off-chain) cùng bạn xây dựng sơ đồ giao dịch đã được tiền ký (pre-signed transaction) trước, và mỗi người tham gia đều phải ký. Chỉ khi người gửi tiết lộ bí mật khóa băm thì kho mới được kích hoạt chính thức
Việc rút tiền và thanh toán lại có logic hoàn toàn khác. Rút tiền đi theo đường “tiền ký”—khi tạo kho, mọi đường chi tiêu hợp lệ đã được tiền ký sẵn đầy đủ. Kho vừa được tạo ra thì không ai có thể giả mạo thêm đường chi tiêu mới. Khi rút tiền, người gửi dùng trực tiếp khóa đã được tạo sẵn để tự phát giao dịch, không cần bất kỳ ai khác phối hợp
Còn bên thanh toán, điều kiện kích hoạt là chỉ số sức khỏe của bên vay giảm xuống dưới 1.0. Nó có hai nhánh: có cấp phép và không cấp phép, nhưng dù đi theo nhánh nào thì quy tắc cũng đã được “đóng cứng” ngay từ lúc tạo kho, không cần bên thanh toán đi xin ai phê chuẩn
Một câu trong tài liệu khiến tôi dừng lại: “Trust is optional and removable”. Việc gửi tiền cần nhiều bên tham gia là vì kho chưa được thiết lập—mối quan hệ niềm tin còn đang được xây dựng: cần Vault Provider điều phối thiết lập, AVK cùng ký, và Universal Challengers chứng kiến. Nhưng khi kho đã được tạo, sau khi sơ đồ giao dịch tiền ký bị “đóng băng”, bạn không cần dựa vào bất kỳ bên thứ ba nào nữa
Tôi lục cả một đêm, vẫn chưa xem hết quyền hạn của bên thanh toán, ngược lại bị “độ tương phản” về niềm tin trong gửi và rút tiền cuốn vào. Nhưng nghĩ thông rồi lại thấy hợp lý—gửi tiền cần nhờ người vì niềm tin vẫn chưa được xây dựng; rút tiền/thanh toán không cần nhờ người vì niềm tin đã được khóa vào trong code. Theo bạn, thiết kế kiểu “thời kỳ xây dựng thì phụ thuộc con người, khi trưởng thành thì chỉ phụ thuộc vào code” này là tinh tế hay dư thừa? Vào bình luận trò chuyện nhé.
#BABY $BABY @BabylonLabs_io
Ban đầu tôi cứ nghĩ toàn bộ mô hình niềm tin của hệ thống kho (vault) là thống nhất. Xem đến phần sau mới nhận ra: ở khâu gửi tiền thì cần hàng loạt người gật đầu, còn logic niềm tin cho rút tiền và thanh toán thì hoàn toàn khác
Bên gửi tiền, bạn phải “nhờ người”. Khi tạo kho, bạn phải gửi yêu cầu Peg-In lên Ethereum kèm theo một bí mật khóa băm (hash lock) mà chỉ bạn mới biết. Sau đó, bạn phát quảng bá giao dịch Pre-PegIn trên mạng Bitcoin, khóa BTC vào một địa chỉ Taproot được liên kết với khóa băm. Rắc rối thật sự bắt đầu từ đây—bạn cần Vault Provider và AVK ở ngoài chuỗi (off-chain) cùng bạn xây dựng sơ đồ giao dịch đã được tiền ký (pre-signed transaction) trước, và mỗi người tham gia đều phải ký. Chỉ khi người gửi tiết lộ bí mật khóa băm thì kho mới được kích hoạt chính thức
Việc rút tiền và thanh toán lại có logic hoàn toàn khác. Rút tiền đi theo đường “tiền ký”—khi tạo kho, mọi đường chi tiêu hợp lệ đã được tiền ký sẵn đầy đủ. Kho vừa được tạo ra thì không ai có thể giả mạo thêm đường chi tiêu mới. Khi rút tiền, người gửi dùng trực tiếp khóa đã được tạo sẵn để tự phát giao dịch, không cần bất kỳ ai khác phối hợp
Còn bên thanh toán, điều kiện kích hoạt là chỉ số sức khỏe của bên vay giảm xuống dưới 1.0. Nó có hai nhánh: có cấp phép và không cấp phép, nhưng dù đi theo nhánh nào thì quy tắc cũng đã được “đóng cứng” ngay từ lúc tạo kho, không cần bên thanh toán đi xin ai phê chuẩn
Một câu trong tài liệu khiến tôi dừng lại: “Trust is optional and removable”. Việc gửi tiền cần nhiều bên tham gia là vì kho chưa được thiết lập—mối quan hệ niềm tin còn đang được xây dựng: cần Vault Provider điều phối thiết lập, AVK cùng ký, và Universal Challengers chứng kiến. Nhưng khi kho đã được tạo, sau khi sơ đồ giao dịch tiền ký bị “đóng băng”, bạn không cần dựa vào bất kỳ bên thứ ba nào nữa
Tôi lục cả một đêm, vẫn chưa xem hết quyền hạn của bên thanh toán, ngược lại bị “độ tương phản” về niềm tin trong gửi và rút tiền cuốn vào. Nhưng nghĩ thông rồi lại thấy hợp lý—gửi tiền cần nhờ người vì niềm tin vẫn chưa được xây dựng; rút tiền/thanh toán không cần nhờ người vì niềm tin đã được khóa vào trong code. Theo bạn, thiết kế kiểu “thời kỳ xây dựng thì phụ thuộc con người, khi trưởng thành thì chỉ phụ thuộc vào code” này là tinh tế hay dư thừa? Vào bình luận trò chuyện nhé.
#BABY $BABY @BabylonLabs_io