AI Agent, CFAA và Lỗ Hổng Ủy Quyền Mà Blockchain Có Thể – Nhưng Chưa Chắc Đã – Giải Quyết
Lý Vĩnh
Có bao giờ bạn tự hỏi: vì sao một người dùng bình thường duyệt web hàng ngày, thêm hàng vào giỏ, so sánh giá – không bị coi là tấn công, nhưng một AI agent làm cùng việc đó với tốc độ nhanh hơn vài trăm lần lại có thể bị kéo vào vòng lao lý? Vụ việc Perplexity – Amazon vừa qua đã đưa câu hỏi đó lên một tầng cao mới. Và nếu bạn đã từng dành một phần tư đời mình để audit hợp đồng thông minh, bạn sẽ thấy vụ này có vẻ quen thuộc một cách kỳ lạ. Nó giống hệt một giao dịch bị revert vì allowance không đủ – nhưng ở quy mô của toàn bộ nền kinh tế internet.
Tôi sẽ không giả vờ rằng mình biết chính xác phán quyết của tòa án. Bài phân tích mà tôi đọc được trên một diễn đàn blockchain có đoạn kể về việc Amazon kiện Perplexity theo Đạo luật Gian lận và Lạm dụng Máy tính – CFAA – nhưng lại thiếu vắng những chi tiết quan trọng như số vụ án, tòa án tiến hành xét xử, hay thậm chí là thời điểm xảy ra sự việc. Điều đó, tự nó, đã là một dấu hiệu đáng ngại: chúng ta đang bàn về tương lai của AI agent trên nền tảng của những lời đồn đoán mơ hồ, trong khi các tòa án Mỹ vẫn đang loay hoay định nghĩa thế nào là “truy cập trái phép” trong một thế giới mà phần mềm có thể hành động thay con người.
Nhưng ngay cả khi không có bản án chính thức, những gì được hé lộ trong lập trường của tòa phúc thẩm đã đủ để tạo ra một địa chấn nhỏ. Lập trường đó là: nếu một AI agent hoạt động trong phạm vi ủy quyền của người dùng – tức là nó dùng chính phiên đăng nhập, chính cookie, chính quyền truy cập mà người dùng đã cấp cho nó – thì cuộc chơi giữa các nền tảng công nghệ và các công ty AI sẽ không còn xoay quanh câu hỏi “hợp pháp hay bất hợp pháp” nữa, mà sẽ chuyển sang một mặt trận hoàn toàn khác: “kẻ xâm nhập sẽ bị phát hiện và bị chặn như thế nào.” Nghe có vẻ đơn giản, nhưng để hiểu được vì sao điều này lại chạm vào gốc rễ của ngành blockchain, chúng ta cần phải đào xuống cái lớp bùn mà ít người muốn nhìn vào: lớp biểu diễn quyền hạn.
Đạo luật CFAA, được ban hành từ năm 1984 với mục đích trừng trị tin tặc tấn công vào các hệ thống quân sự và ngân hàng, quy định rằng bất kỳ ai “cố ý truy cập một máy tính mà không được phép, hoặc vượt quá quyền truy cập được phép” để thu thập thông tin đều phạm pháp. Cụm từ “vượt quá quyền truy cập được phép” – trong tiếng Anh là “exceeds authorized access” – chính là tảng đá mà hàng loạt vụ kiện công nghệ đã dựa vào để dọa nạt các công ty khởi nghiệp. Nhưng vào năm 2021, trong vụ Van Buren chống lại Chính phủ Hoa Kỳ, Tối cao Pháp viện đã thu hẹp phạm vi của cụm từ này một cách đáng kể. Phán quyết Van Buren nói rằng: một người chỉ “vượt quá quyền truy cập” khi anh ta truy cập vào các khu vực dữ liệu mà bản thân không được phép truy cập – chứ không phải là khi anh ta sử dụng dữ liệu đã được phép truy cập cho một mục đích sai trái. Đây là một tin tuyệt vời cho các công ty AI scraping dữ liệu. Nhưng nó cũng vô tình tạo ra một khoảng trống pháp lý khổng lồ cho thế hệ tiếp theo: các tác tử tự động.
Bởi vì, nếu bạn đọc kỹ phán quyết Van Buren, bạn sẽ nhận ra rằng toàn bộ khung phân tích của nó được xây dựng cho một thực thể duy nhất: con người. Một con người có một ý định, một sự nhận thức về hành vi của mình. Nhưng một AI agent không hề có sự nhận thức đó. Nó chỉ có một mục tiêu được lập trình hoặc được suy ra từ một prompt, và một tập hợp các hành vi phương tiện để đạt được mục tiêu. Khi tôi yêu cầu một agent “tìm giúp tôi một món đồ chơi dưới 20 đô la trên Amazon”, tôi không hề ủy quyền cho nó đọc toàn bộ API sản phẩm, thử từng biến thể URL, hay vượt qua Captcha để tránh bị chặn. Nhưng về mặt kỹ thuật, để hoàn thành nhiệm vụ, agent có thể cần làm tất cả những điều đó. Nó không có cách nào để tách bạch giữa “hành vi chính đáng phục vụ người dùng” và “hành vi vượt quá phạm vi ủy quyền”. Sự mơ hồ này nằm ngay trong lõi kiến trúc web hiện tại.
Khi một AI agent của Perplexity thực hiện một yêu cầu HTTP đến Amazon, máy chủ của Amazon nhìn thấy một phiên đăng nhập hợp lệ, một cookie hợp lệ, một chuỗi user-agent có thể trông giống Chrome hoàn toàn bình thường. Không có một trường dữ liệu nào trong giao thức HTTP cho phép agent khai báo: “Tôi là một tác tử tự động, tôi được người dùng ủy quyền để làm những việc sau: X, Y, Z.” Giao thức HTTP không có khái niệm scope. OAuth có scope, nhưng scope của OAuth quá thô – nó chỉ có thể nói “đọc profile” hay “ghi bài viết”, chứ không thể nói “đọc các trang sản phẩm, nhưng không đọc các trang đánh giá, không thêm vào giỏ hàng, và tối đa 100 yêu cầu mỗi phút”. Nền tảng web vận hành dựa trên một chế độ tín nhiệm mù quáng: nếu bạn có cookie của một người dùng, bạn được coi là người dùng đó. Không có cách nào để phân biệt một người dùng đang nhấp chuột chậm rãi với một con bot đang phun ra hàng nghìn yêu cầu mỗi giây, ngoài việc phân tích thống kê hành vi – một trò chơi mèo vờn chuột không bao giờ có hồi kết.
Chính tại điểm mù này, cộng đồng blockchain có xu hướng nhảy vào và tự vỗ ngực. “Chúng tôi có thể giải quyết vấn đề này,” họ nói. “Chúng tôi có smart contract, có capability-based security, có chữ ký số, có zk-proof.” Và về lý thuyết, họ đúng. Trên một blockchain, mọi sự ủy quyền đều phải được thể hiện một cách tường minh. Nếu bạn muốn một contract khác kéo token của bạn, bạn phải phê duyệt một số lượng token cụ thể thông qua hàm approve. Nếu bạn muốn một địa chỉ khác thao tác NFT của bạn, bạn phải gửi một giao dịch setApprovalForAll và bạn sẽ thấy một cảnh báo đỏ rực. Các chuẩn mới hơn như ERC-7710 đang cố gắng mở rộng khái niệm này sang cây phân quyền với nhiều điều kiện: thời gian hết hạn, giới hạn số lần gọi, danh sách các phương thức được phép. Trên blockchain, không có cái gọi là “một sự cho phép mơ hồ”. Người dùng phải biết chính xác họ đang ký cái gì.
Nhưng đây mới là phần mà tôi muốn bạn dừng lại và suy nghĩ. Kinh nghiệm của tôi từ năm 2017, khi tôi dành ba tháng trời để đọc mã nguồn của một dự án ICO mang tên TokenHub, đã dạy cho tôi một bài học không bao giờ cũ. TokenHub là một hợp đồng ERC-20 điển hình với hàm transferFrom để cho phép người dùng ủy quyền cho người khác rút token. Nhưng tôi phát hiện ra rằng trong một luồng thực thi cụ thể, hợp đồng đã không kiểm tra allowance một cách chính xác. Kẻ tấn công có thể rút token trước khi người dùng kịp phê duyệt – chỉ vì nhà phát triển cho rằng thứ tự gọi hàm là hiển nhiên. Tôi đã báo cáo lỗi này trên GitHub, và đội ngũ dự án đã xác nhận. Họ nói: “Không ai có thể ngờ rằng hàm này lại có thể bị gọi trước hàm kia.” Câu trả lời đó nghe có vẻ hợp lý, nhưng nó bộc lộ một sự thật phũ phàng: bảo mật không bao giờ nằm ở ý định, mà nằm ở sự tường minh. Một hợp đồng thông minh không bao giờ được phép đoán ý định của người dùng. Nó chỉ thực thi những gì được mã hóa. Và đó cũng chính là lý do vì sao tôi không tin rằng blockchain sẽ tự động cứu được AI agent khỏi cơn ác mộng CFAA.
Vấn đề không nằm ở khả năng kỹ thuật. Vấn đề nằm ở việc các nhà thiết kế blockchain sẽ tạo ra một lớp ủy quyền trông có vẻ minh bạch nhưng thực chất lại mơ hồ theo một cách mới. Hãy tưởng tượng một tương lai nơi mọi AI agent phải đăng ký một “capability token” trên một blockchain L2 nào đó. Token này mô tả phạm vi hành động: “Agent A được phép truy cập Amazon.com, đọc các trang sản phẩm, với tần suất tối đa 100 lần mỗi phút, trong thời hạn 24 giờ.” Website có thể xác minh token này, kiểm tra chữ ký, kiểm tra thời hạn, và quyết định cho phép hay từ chối. Nghe có vẻ hoàn hảo. Nhưng nó phá sản ngay tại thời điểm người dùng phải ký một thông điệp để khởi tạo token đó. Người dùng sẽ nhìn thấy gì? Một pop-up trên ví của họ ghi: “Cho phép Agent A thực hiện các hành động trong phạm vi được liệt kê?” Không ai đọc được danh sách đó. Người dùng sẽ cuộn xuống và nhấn “Xác nhận” – chính xác như họ vẫn đang làm với các giao dịch phê duyệt không giới hạn trong các ứng dụng DeFi. Và do đó, chúng ta sẽ tái lập lại thảm họa của những allowance không giới hạn – nhưng lần này, đối tượng bị tấn công không phải là một ví token, mà là toàn bộ sự hiện diện số của người dùng trên internet.
Điểm mù nằm ở chỗ: chữ ký số có thể chứng minh rằng một người dùng đã đồng ý vào một thời điểm nhất định, nhưng nó không thể chứng minh rằng người dùng hiểu phạm vi của sự đồng ý đó. Khi một agent yêu cầu bạn ký một thông điệp “cho phép truy cập Amazon.com”, bạn có thể tưởng rằng mình đang cho phép nó xem một trang duy nhất. Nhưng nếu thông điệp thực chất chứa một cây quyền hạn phức tạp với hàng nghìn điều kiện, và bạn chỉ ký vì chiếc điện thoại hiển thị một dòng chữ nhỏ xíu, thì về mặt pháp lý, bạn vẫn bị ràng buộc. Kẻ tấn công có thể kiếm được một “chữ ký hợp lệ” để hợp pháp hóa hành vi xâm nhập của chúng. Nó tệ hơn cả phishing truyền thống, vì phishing đòi hỏi nạn nhân phải giao mật khẩu; còn ở đây, nạn nhân tự tay ký vào vũ khí giết mình mà không hề hay biết. Đây là kịch bản “phishing by signature”, và nó là hệ quả trực tiếp của việc chạy đua đưa mọi thứ lên on-chain mà không thiết kế một mô hình nhận thức cho con người.
Điều phản trực giác mà tôi muốn nói với các bạn là: blockchain có thể giải quyết bài toán CFAA – nhưng chỉ khi nó thất bại trong việc trở thành một lớp lưu trữ dữ liệu khổng lồ. Nếu chúng ta cố gắng đưa toàn bộ hành vi của AI agent lên on-chain, chúng ta sẽ tạo ra một mớ hỗn độn chi phí, độ trễ, và rò rỉ quyền riêng tư. 99% tương tác của một agent trên web không cần đến một lớp Data Availability chuyên dụng. Nó chỉ cần một bằng chứng mỏng có thể xác minh được rằng: tại thời điểm này, với chủ thể này, một hành động cụ thể nằm trong phạm vi ủy quyền. Bằng chứng đó có thể là một chữ ký số đơn giản, hoặc một zk-proof ngắn gọn được kiểm tra trong vòng vài trăm mili giây. Nó không cần lưu trữ toàn bộ nội dung mà agent đã đọc, cũng không cần ghi lại từng dòng log. Nó giống như một chiếc chìa khóa thông minh: chiếc chìa khóa đó chỉ có giá trị khi nó được dùng để mở một cánh cửa cụ thể.
Nếu có một bài học mà tôi rút ra được từ hai thập kỷ quan sát ngành công nghệ, thì đó là: mọi hệ thống bảo mật thất bại không phải vì thiếu mật mã, mà vì thiếu một lớp biểu diễn rõ ràng về quyền hạn. Vụ Perplexity – Amazon, hay bất kỳ vụ kiện nào tương tự sẽ xuất hiện trong những năm tới, đều có nguồn gốc từ cùng một căn bệnh: thế giới web2 không có một chuẩn mực để nói rằng “tác tử tự động này được phép làm gì” một cách chính xác, có thể kiểm chứng và có thể thu hồi. Blockchain có khả năng tạo ra chuẩn mực đó. Nhưng nó chỉ thực sự làm được điều đó khi những người thiết kế giao thức chấp nhận một sự thật khiêm tốn: người dùng của họ là con người, không phải máy móc. Họ cần được bảo vệ khỏi sự mơ hồ, không chỉ bằng những dòng chữ cảnh báo nhấp nháy, mà bằng một ngôn ngữ đơn giản hóa đến mức không thể hiểu sai.
Trong vòng ba đến năm năm tới, tôi dự đoán sẽ xuất hiện một tầng giao thức mang tên “Agent Authorization Layer”. Nó sẽ không phải là một blockchain riêng, cũng không phải một sidechain hay một giải pháp rollup hoành tráng. Nó sẽ là một lớp mỏng được xây dựng trên các L2 hiện có, tận dụng khả năng xác minh của chữ ký và chi phí giao dịch thấp. Tầng này sẽ lưu trữ bốn loại dữ liệu cơ bản: định danh của agent, cam kết về các hành động được phép, thời hạn hiệu lực, và trạng thái thu hồi. Không hơn, không kém. Nó sẽ không thay thế các điều khoản dịch vụ của Amazon, không thay thế robots.txt, cũng không thay thế CFAA. Nó sẽ cung cấp một lớp bằng chứng kỹ thuật để các tòa án, các nền tảng và người dùng có thể nhìn vào và nói: “Đây chính xác là những gì tác tử này được phép làm.”
Nhưng liệu điều đó có đủ để giải quyết cơn đau đầu của Perplexity? Không hoàn toàn. Bởi vì Amazon không chỉ đang bảo vệ dữ liệu của mình – nó đang bảo vệ một mô hình kinh doanh dựa trên sự kiểm soát trải nghiệm người dùng. Ngay cả khi Perplexity có thể chứng minh mọi yêu cầu đều nằm trong phạm vi ủy quyền của người dùng, Amazon vẫn có thể chặn nó bằng các biện pháp phát hiện bot, bằng hệ thống rate-limiting, bằng cách thay đổi cấu trúc trang web để làm chậm quá trình thu thập dữ liệu. Cuộc chiến sẽ chuyển từ phòng xử án sang đường đua công nghệ. Những ai làm trong lĩnh vực Layer2 đều đã quen với cuộc chiến này: không có một lớp phân quyền nào thay thế được nhu cầu tối ưu hóa hiệu suất, và không có một bằng chứng mật mã nào ngăn được một đối thủ có động cơ tài chính mạnh mẽ.
Câu hỏi cuối cùng mà tôi muốn đặt ra cho bạn, và cũng là câu hỏi mà tôi chưa tìm được lời giải hoàn hảo: Nếu một AI agent không thể chứng minh được phạm vi hành động của nó trên một sổ cái công khai, liệu bạn có giao cho nó quản lý tài sản số của mình? Nếu câu trả lời của bạn là “không” – thì tại sao bạn vẫn sẵn sàng để nó tự do duyệt web với chính token truy cập của bạn mà không hề có một ranh giới rõ ràng? Chúng ta đang chạy đua để xây dựng những cỗ máy hoàn hảo trên một nền móng đầy vết nứt. Và cho đến khi chúng ta giải quyết được vết nứt mang tên “sự mơ hồ về quyền hạn”, mọi công nghệ mà chúng ta viết ra, dù tinh vi đến đâu, cũng chỉ là những tòa lâu đài trên cát.