Hôm nay tôi đang dọn dẹp một chiếc ví cũ, thu hồi hàng loạt quyền phê duyệt token mà tôi thậm chí còn quên là mình từng có. Một trong số đó là cho một DEX mà tôi chỉ dùng đúng một lần, hơn một năm trước, cho một lần swap duy nhất. Vậy mà vẫn còn quyền phê duyệt chi tiêu không giới hạn nằm đó suốt thời gian này. Đây không phải là chuyện hiếm—ví của ai cũng thường có ba hoặc bốn “bóng ma” kiểu như vậy.
Vậy nên trong lúc tôi bấm bừa qua revoke.cash vì một chút nghi ngờ thái quá, tôi lại nghĩ về việc quyền trong hầu hết DeFi vẫn “nhị phân” kỳ lạ thế nào. Hoặc bạn phê duyệt một hợp đồng, hoặc bạn không. Một khi bạn đã phê duyệt, thì nó không phải là “được chấp thuận cho đúng hành động này”, mà thường là được chấp thuận cho hầu như bất kỳ việc gì, mãi mãi, cho đến khi bạn nhớ đi thu hồi. Mà đa số mọi người thì không làm vậy.
Và chính lúc đó mình mới hiểu ra — những tổn thất làm người ta tan nát gần như không bao giờ đến từ một kiểu khai thác “thiên tài”. Chúng đến từ một quyền bị cấp quá rộng, nằm đó lặng lẽ nhiều tháng sau khi ai cũng đã quên việc đã cấp nó. Sai lầm không hề kịch tính. Nó nhỏ. Chỉ là… bị bỏ ngỏ.

Tò mò nên mình quay lại xem Newton Protocol đã và đang xây dựng gì, vì mình có thấy $NEWT được nhắc tới trong một thread về đúng vấn đề này. Khác biệt không phải ở chỗ Newton thêm nhiều “màn diễn an ninh” hơn, mà là vì quyền không phải là một công tắc bật/tắt “có/không” một lần. Mọi giao dịch đều được kiểm tra theo một chính sách tại thời điểm nó diễn ra — hạn chi tiêu, người nhận đã được phê duyệt, giới hạn theo lệnh — thay vì dựa vào một phê duyệt chung chung mà bạn đã cấp từ sáu tháng trước và rồi quên mất.
Những gì mọi người cho rằng: khi bạn tin một hợp đồng, thì sự tin đó sẽ cứ thế… tồn tại, và việc thu hồi là trách nhiệm của bạn nhớ ra. Nhưng thực tế với một thiết lập kiểu này lại như sau: “sự tin” không nằm đó như một phê duyệt sẵn sàng để bị lạm dụng, mà được đánh giá lại theo từng giao dịch. Vì vậy, ngay cả khi có chuyện gì đó xảy ra từ phía bên trên, thì cũng không có một cánh cửa khổng lồ bị mở ra mãi mãi; thay vào đó là một “mốc kiểm tra” mỗi lần, lần nào cũng có.
Nhưng đây là phần khiến mình hơi băn khoăn. Thứ này thực sự chỉ bảo vệ bạn nếu mọi giao dịch liên quan đều được chuyển qua bước kiểm tra chính sách đó. Ngay khi bạn tương tác với thứ gì đó nằm ngoài phạm vi đó — một hợp đồng ngẫu nhiên, một phê duyệt cũ mà bạn đã cấp trước khi từng chạm vào Newton, một dApp hoàn toàn không liên quan — thì bạn lại quay về mô hình cấp phép nhị phân cũ. Nó không tự động sửa lại sự “lộn xộn” hiện tại của bạn. Thật lòng mình suýt nữa lại quên mất điểm này, vì mình muốn nó giống một bản vá toàn diện, nhưng không phải vậy.
Lúc đầu mình nghĩ đây chủ yếu là câu chuyện về trải nghiệm người dùng tốt hơn cho các tổ chức, những người quản lý vault, đại loại vậy. Nhưng thực ra càng nghĩ mình càng thấy nó đúng là chuyện về quy mô vùng ảnh hưởng khi sự cố xảy ra. Một sai lầm nhỏ — một phê duyệt bất cẩn, một quyền quá rộng — trước đây có thể âm thầm nằm đó, và cuối cùng khiến bạn mất trắng trong chính chiếc ví đó. Thu nhỏ phạm vi mà bất kỳ một quyền đơn lẻ nào thực sự có thể gây ra — đó gần như là toàn bộ “trò chơi” ở đây, hơn cả bất kỳ tính năng an ninh nào giật tít.
Điều quan trọng nhất là đối với những tài khoản mà người ta không thường xuyên kiểm tra. Ví kho bạc, các vault chạy tự động, bất cứ thứ gì có gắn agent hoặc bot và đưa ra quyết định mà không có ai nhìn chằm chằm từng ngày. Những thứ nằm im lặng trong vài tháng chính là đúng những thứ sẽ bị mổ xẻ khi rốt cuộc có chuyện xảy ra.
Dù sao thì mình vẫn đang xem lại các phê duyệt cũ của mình, và tình cờ phát hiện thêm hai cái mà thậm chí mình cũng không nhớ đã từng cấp. Thật hơi đáng sợ vì điều này lại bình thường đến vậy. Có lẽ mình sẽ tiếp tục theo dõi xem mô hình chính sách của Newton hoạt động ra sao, khi nhiều ví cũ hơn, lộn xộn hơn bắt đầu chạy qua nó thay vì chỉ những ví mới.
@NewtonProtocol #Newt