Tác giả gốc: Carl Hua, Đối tác và CTO của Shima Capital
Sau lần khai thác lỗ hổng Curve reentrancy gần đây, tôi đã xem lại trải nghiệm công việc của mình tại JPL NASA, nơi Tôi đã học được các nguyên tắc chính để phát triển phần mềm đáng tin cậy và linh hoạt. Đối với ngành công nghiệp tiền điện tử, những hiểu biết sâu sắc này quan trọng hơn bao giờ hết và đây là lý do:
Cuối cùng, mọi người chỉ thực sự quan tâm đến hai loại phần mềm: Phần mềm có thể giết chết phần mềm của bạn và phần mềm có thể khiến bạn mất tiền.
Đối với phần mềm quan trọng trong bất kỳ cỗ máy vũ trụ nào, phần lớn ngân sách (hơn 80%) được phân bổ không phải cho việc phát triển mà cho việc tích hợp và thử nghiệm. Nếu phần mềm bị lỗi, máy bay sẽ rơi từ trên trời xuống—máy bay chiến đấu, máy bay không người lái, tàu vũ trụ, v.v.
Hầu hết mã trong phần mềm hàng không vũ trụ (nếu được phân loại là mô-đun quan trọng) đều tuân thủ các tiêu chuẩn phát triển/thử nghiệm cực kỳ nghiêm ngặt, chẳng hạn như DO-178B Cấp A. Không chỉ mỗi dòng mã cần được kiểm tra mà nếu có logic lồng nhau thì từng điều kiện logic cũng được kiểm tra cụ thể.
Tại JPL NASA, ý tưởng viết phần mềm hàng không vũ trụ tiên tiến không phải là viết mã đẹp nhất, rõ ràng nhất mà là viết mã dễ dàng kiểm tra đơn vị . Tại sao? Rất đơn giản: khi bạn đưa tàu vũ trụ vào vũ trụ, bạn chỉ có một cơ hội và không ai muốn mạo hiểm với khả năng thất bại cao hơn. Đây là logic tương tự như blockchain, vì mã bất biến là một tính năng quan trọng của chúng và chúng ta chỉ có một cơ hội sử dụng tiền của mình một cách chính xác cho mỗi giao dịch, vậy tại sao chúng ta không thực hiện quá trình phát triển dApps một cách nghiêm túc hơn?
Mặc dù có các quy trình phát triển, thử nghiệm và kiểm tra mã nghiêm ngặt, những điều này rõ ràng là không đủ để giảm thiểu tất cả các lỗi và các cuộc tấn công vì chúng hầu như bị loại bỏ thông qua thử nghiệm và kiểm toán. lỗi thời gian chạy hầu như không thể xảy ra. Vậy làm thế nào để chúng ta bảo vệ phần mềm của mình khỏi bị lỗi?
Bảo vệ thời gian chạy là một công nghệ bảo mật. Bảo vệ các ứng dụng phần mềm khỏi các cuộc tấn công độc hại trong khi họ đang chạy. Nó hoạt động bằng cách thực hiện phát hiện theo thời gian thực trong khi mã thực sự đang chạy, phân tích hành vi thực tế của chương trình để bảo vệ chương trình khỏi các cuộc tấn công và dữ liệu độc hại.
Các biện pháp bảo vệ thời gian chạy cho phần mềm có độ tin cậy cao đòi hỏi phải đầu tư và thiết kế đáng kể vì chúng là tuyến phòng thủ cuối cùng để đảm bảo rằng phần mềm không rơi vào trạng thái không xác định hoặc gặp trục trặc . Đây không chỉ là một cuộc tranh luận mà nó đã được chứng minh qua thực tế trong nhiều thập kỷ.
Ngày nay trong Web3, tôi tin rằng các ứng dụng DeFi yêu cầu độ tin cậy cao như nhau và nên xem xét cách tiếp cận tương tự. Tuy nhiên, do những hạn chế tiềm tàng của nó, EVM không được thiết kế để xử lý các tác vụ phức tạp như bảo vệ thời gian chạy. Vì vậy, làm cách nào để chúng tôi cung cấp tính năng bảo vệ thời gian chạy?
Một cách là thông qua lập trình Aspect. Các khía cạnh được thiết kế bởi mạng chuỗi khối Artela, có thể chuyển đổi bối cảnh thực thi trong vòng đời của bất kỳ giao dịch hợp đồng thông minh nào. kiểm tra trạng thái thời gian thực của chương trình của bạn. Artela được thiết kế độc đáo để cung cấp khả năng bảo vệ thời gian chạy thông qua khả năng tương thích Aspect và EVM, đồng thời nó có cơ hội trở thành nền tảng tương lai của bảo mật hợp đồng thông minh bằng mật mã.
Artela đã công bố cách sử dụng cụ thể của Aspect trong việc ngăn chặn các cuộc tấn công vào lại Curve trong bài viết sau. Chúng tôi hy vọng được giao tiếp cùng nhau!
Liên kết gốc
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia