Hôm nay, chú tôi hỏi tôi một điều nghe có vẻ đơn giản: “Nếu một hệ thống tài chính nói rằng một giao dịch đã thành công, thì tại sao ai đó lại nghi ngờ điều đó?”

Thật lòng mà nói, câu hỏi ấy đã bám theo tôi khi tôi tìm hiểu cách Dusk xử lý giao dịch.

Trước đây, tôi cứ nghĩ thành công thì chính là thành công. Nhưng Dusk tách quy trình thành nhiều giai đoạn khác nhau. Một giao dịch có thể được chấp nhận để định tuyến, đi vào mempool cục bộ, được thực thi trong một khối, và chỉ sau đó mới đạt đến tính cuối cùng (finality).

Điều đó khiến tôi phải dừng lại một chút.
Vấn đề thực sự không phải là hệ thống có nhiều trạng thái. Mà là khi một ứng dụng coi các trạng thái đó như thể chúng đều có nghĩa như nhau.

Tôi bất ngờ vì rủi ro này lại thực tế đến vậy. Nếu một ứng dụng thấy “thành công” và ngay lập tức giải phóng một tài sản, cập nhật tài sản thế chấp (collateral) hoặc đóng một nghĩa vụ, thì ứng dụng đó có thể đang hành động trước khi giao thức thực sự đạt được trạng thái cần thiết cho hành động ấy.

Hướng dẫn về sàn giao dịch của Dusk cũng phân biệt điều này rất rõ ràng. Một giao dịch được chấp nhận để định tuyến không có nghĩa là lệnh rút tiền đã hoàn tất. Việc thực thi và tính cuối cùng vẫn còn quan trọng.
Mối lo của tôi không phải là độ phức tạp. Hệ thống tài chính vốn đã phức tạp.

Thứ đánh đổi thực sự là giữa việc làm cho API dễ dùng và việc cung cấp cho nhà phát triển đủ thông tin để đưa ra quyết định kinh tế đúng đắn.

Ước muốn của tôi rất đơn giản. Một API nên cho
tiến phát triển biết không chỉ chuyện gì đã xảy ra, mà còn
những gì họ thực sự an toàn để làm tiếp theo.

Tôi đang nói thật. Tôi thà thấy vài trạng thái rõ ràng còn hơn một thông báo thành công đơn giản mà có thể mang ý nghĩa khác nhau ở những thời điểm khác nhau.

Vậy các API tài chính nên tiếp tục ẩn sự phức tạp của giao thức, hay nên hiển thị cho nhà phát triển trạng thái mà họ thật sự cần trước khi thực hiện hành động tài chính tiếp theo? 🤔

#dusk $DUSK $BTC $ETH @Dusk
#Blockchain #DeFi #Web3