
Phản tư của CTO Shima Capital về Curve: Tại sao chúng ta cần Runtime Protection và Aspect?
Tuyển chọn TechFlowTuyển chọn TechFlow

Phản tư của CTO Shima Capital về Curve: Tại sao chúng ta cần Runtime Protection và Aspect?
Làm thế nào để cung cấp bảo vệ thời gian chạy?
Tác giả: Carl Hua, Đối tác & CTO của Shima Capital
Biên dịch: BlockBeats
Sau vụ khai thác lỗ hổng tái nhập (reentrancy) gần đây trên Curve, tôi đã nhìn lại kinh nghiệm làm việc tại JPL NASA, nơi tôi học được những nguyên tắc then chốt để phát triển phần mềm đáng tin cậy (reliable) và có độ bền cao (resilient). Những hiểu biết này càng trở nên quan trọng hơn bao giờ hết đối với ngành tiền mã hóa vì những lý do sau:
Tất cả phần mềm đều có thể được chia thành hai loại mà con người thực sự quan tâm: loại có thể giết bạn và loại khiến bạn mất tiền.
Đối với phần mềm then chốt trong các thiết bị hàng không vũ trụ, phần lớn ngân sách (trên 80%) không được dùng cho phát triển mà dành cho tích hợp và kiểm thử. Nếu phần mềm gặp lỗi, phương tiện sẽ rơi khỏi bầu trời — máy bay chiến đấu, drone, tàu vũ trụ, v.v.
Phần lớn mã nguồn trong các module phần mềm then chốt của ngành hàng không vũ trụ phải tuân thủ các tiêu chuẩn kiểm thử/phát triển cực kỳ nghiêm ngặt như DO-178B cấp A. Không chỉ từng dòng mã phải được kiểm thử, mà nếu có logic lồng ghép thì mỗi điều kiện logic cũng phải được kiểm tra riêng biệt.
Tại JPL NASA, triết lý viết phần mềm tiên tiến không phải là tạo ra mã đẹp và gọn gàng nhất, mà là viết mã dễ dàng thực hiện kiểm thử đơn vị (unit test). Vì sao? Rất đơn giản: khi phóng một tàu vũ trụ vào không gian, bạn chỉ có một cơ hội duy nhất, và chẳng ai muốn mạo hiểm khi xác suất thất bại cao. Điều này tương tự như trong blockchain, nơi mã bất biến là đặc tính quan trọng, chúng ta cũng chỉ có một cơ hội duy nhất để sử dụng đúng số tiền trong mỗi giao dịch. Vậy tại sao chúng ta không nghiêm túc hơn với quá trình phát triển dApp?
Dù có quy trình phát triển, kiểm thử và kiểm toán mã nghiêm ngặt, những biện pháp này rõ ràng vẫn chưa đủ để ngăn chặn mọi lỗi và cuộc tấn công, bởi thực tế gần như không thể loại bỏ hoàn toàn mọi lỗi thời gian chạy (runtime error) thông qua kiểm thử và kiểm toán. Vậy làm thế nào để bảo vệ phần mềm khỏi thất bại?
Bảo vệ thời gian chạy (Runtime Protection)
Bảo vệ thời gian chạy là một kỹ thuật an ninh nhằm bảo vệ ứng dụng phần mềm khỏi các cuộc tấn công độc hại trong lúc chương trình đang thực thi. Nguyên lý của nó là giám sát theo thời gian thực khi mã đang chạy, phân tích hành vi thực tế của chương trình để bảo vệ khỏi dữ liệu độc hại và các cuộc tấn công.
Việc xây dựng cơ chế bảo vệ thời gian chạy cho phần mềm độ tin cậy cao đòi hỏi đầu tư và thiết kế kỹ lưỡng, vì đây là hàng rào cuối cùng đảm bảo phần mềm không rơi vào trạng thái chưa xác định hoặc gặp lỗi. Đây không chỉ là lập luận lý thuyết mà là thực tiễn đã được kiểm chứng suốt nhiều thập kỷ.
Ngày nay trong Web3, tôi cho rằng các ứng dụng DeFi cần đạt được mức độ tin cậy cao tương tự và nên áp dụng các phương pháp tương tự. Tuy nhiên, do những giới hạn tiềm tàng, EVM không được thiết kế để xử lý các nhiệm vụ phức tạp như bảo vệ thời gian chạy. Vậy chúng ta có thể cung cấp lớp bảo vệ này như thế nào?
Một cách tiếp cận là thông qua lập trình Aspect — Aspects do mạng lưới blockchain Artela thiết kế, có khả năng chuyển đổi ngữ cảnh thực thi trong suốt vòng đời giao dịch của bất kỳ hợp đồng thông minh nào, nhằm thực hiện kiểm tra nâng cao trạng thái thời gian thực của chương trình. Artela cung cấp thiết kế độc đáo về bảo vệ thời gian chạy thông qua Aspects và tương thích với EVM, mở ra tiềm năng trở thành nền tảng an ninh tương lai cho hợp đồng thông minh mã hóa.
Artela đã công bố cách thức cụ thể Aspects ngăn chặn cuộc tấn công tái nhập trên Curve trong bài viết dưới đây, rất mong được trao đổi cùng cộng đồng!
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














