#dusk $DUSK @Dusk Giao dịch hiển thị “thành công”, vậy thật sự đã xong chưa?
Đêm qua khi lật tài liệu phát triển của Dusk, tôi phát hiện ra một chi tiết trước đây mình ít để ý.
Sau khi một giao dịch được gửi đi, nút trả về 202 Accepted — nghĩa là chỉ rằng yêu cầu đã được nhận, đang được xử lý, chứ không có nghĩa giao dịch đã hoàn tất.
Đọc tiếp mới thấy còn phải trải qua admission, mempool, chọn và thực thi khối.
Ngay cả khi đã được thực thi, vẫn chưa phải là kết thúc.
Vì một khối đã được chấp nhận vẫn có thể bị quay lại (rollback).
Chỉ khi khối chuyển sang trạng thái finalized (đã được xác lập) thì giao dịch này mới thực sự có tính cuối cùng.
Tôi thấy chi tiết này khá thú vị.
Chúng ta thường nói “giao dịch thành công”, nhưng thực ra đã trộn lẫn nhiều trạng thái hoàn toàn khác nhau:
Nút đã nhận được, và mạng đã chấp nhận, không phải là một chuyện;
Vào trong khối, và thực thi thành công, cũng không phải là một chuyện;
Thực thi thành công, lại càng không đồng nghĩa với quyết toán cuối cùng.
Với chuyển khoản thông thường, sự khác biệt này có thể chỉ là vài trạng thái.
Nhưng nếu trong tương lai trên chuỗi chạy các nghiệp vụ như chứng khoán, thanh toán hay các tài sản tài chính khác thì sao?
Lúc đó, “gần như thành công” hiển nhiên là chưa đủ.
Thứ thực sự cần trả lời ngược lại là:
Tại trạng thái nào, quyền và nghĩa vụ của tài sản mới thực sự thay đổi?
Đây cũng là một góc nhìn mà gần đây tôi đã hiểu lại Dusk “deterministic settlement” (quyết toán tất định).
Thứ nó thực sự cần giải quyết có thể không chỉ là làm cho giao dịch nhanh hơn, mà là để những người tham gia hiểu rõ:
Khi nào có thể không cần chờ nữa, và khi nào có thể coi giao dịch này như đã hoàn tất.
Có lẽ đó mới là ý nghĩa thực sự của bốn chữ “giao dịch hoàn tất” trong hạ tầng tài chính.
@Dusk $DUSK #DUSK
Đêm qua khi lật tài liệu phát triển của Dusk, tôi phát hiện ra một chi tiết trước đây mình ít để ý.
Sau khi một giao dịch được gửi đi, nút trả về 202 Accepted — nghĩa là chỉ rằng yêu cầu đã được nhận, đang được xử lý, chứ không có nghĩa giao dịch đã hoàn tất.
Đọc tiếp mới thấy còn phải trải qua admission, mempool, chọn và thực thi khối.
Ngay cả khi đã được thực thi, vẫn chưa phải là kết thúc.
Vì một khối đã được chấp nhận vẫn có thể bị quay lại (rollback).
Chỉ khi khối chuyển sang trạng thái finalized (đã được xác lập) thì giao dịch này mới thực sự có tính cuối cùng.
Tôi thấy chi tiết này khá thú vị.
Chúng ta thường nói “giao dịch thành công”, nhưng thực ra đã trộn lẫn nhiều trạng thái hoàn toàn khác nhau:
Nút đã nhận được, và mạng đã chấp nhận, không phải là một chuyện;
Vào trong khối, và thực thi thành công, cũng không phải là một chuyện;
Thực thi thành công, lại càng không đồng nghĩa với quyết toán cuối cùng.
Với chuyển khoản thông thường, sự khác biệt này có thể chỉ là vài trạng thái.
Nhưng nếu trong tương lai trên chuỗi chạy các nghiệp vụ như chứng khoán, thanh toán hay các tài sản tài chính khác thì sao?
Lúc đó, “gần như thành công” hiển nhiên là chưa đủ.
Thứ thực sự cần trả lời ngược lại là:
Tại trạng thái nào, quyền và nghĩa vụ của tài sản mới thực sự thay đổi?
Đây cũng là một góc nhìn mà gần đây tôi đã hiểu lại Dusk “deterministic settlement” (quyết toán tất định).
Thứ nó thực sự cần giải quyết có thể không chỉ là làm cho giao dịch nhanh hơn, mà là để những người tham gia hiểu rõ:
Khi nào có thể không cần chờ nữa, và khi nào có thể coi giao dịch này như đã hoàn tất.
Có lẽ đó mới là ý nghĩa thực sự của bốn chữ “giao dịch hoàn tất” trong hạ tầng tài chính.
@Dusk $DUSK #DUSK

