The Ethereum ecosystem continues to witness a flurry of activity that has individuals and organizations deploying token contracts, adding liquidity to pools and deploying smart contracts to support a wide range of business models. While notable, this growth has also been riddled with security exploits, leaving decentralized finance (DeFi) protocols vulnerable to hacks and scams.
Ví dụ, những phát hiện gần đây từ công ty thông minh crypto Chainalysis cho thấy rằng các hack liên quan đến mật mã đã tăng 58,3% từ đầu năm đến tháng 7 năm 2022. Báo cáo này ghi nhận thêm rằng 1,9 tỷ USD đã bị mất vì hack trong khung thời gian này – một con số không bao gồm vụ hack cầu Nomad 190 triệu đô la xảy ra vào ngày 1 tháng 8 năm 2022.
Mặc dù mã nguồn mở có thể mang lại lợi ích cho ngành công nghiệp blockchain, nhưng không may nó có thể dễ dàng được nghiên cứu bởi bọn tội phạm mạng tìm kiếm khai thác. Kiểm toán an ninh cho các hợp đồng thông minh nhằm giải quyết những thách thức này, tuy nhiên quy trình này thiếu các tiêu chuẩn ngành, do đó tạo ra sự phức tạp.
Một tiêu chuẩn ngành để đảm bảo an ninh hợp đồng thông minh
Chris Cordi, chủ tịch Nhóm làm việc Cấp độ bảo mật EthTrust tại Enterprise Ethereum Alliance (EEA), nói với Cointelegraph rằng khi ngành công nghiệp blockchain Ethereum phát triển, cũng vậy sự cần thiết cho một khuôn khổ trưởng thành để đánh giá sự an toàn của hợp đồng thông minh.
Để giải quyết vấn đề này, Cordi, cùng với một số đại diện thành viên EEA với chuyên môn kiểm toán và bảo mật, đã giúp thành lập Nhóm Công tác Cấp độ An ninh EthTrust vào tháng 11 năm 2020. Tổ chức này kể từ đó đã làm việc trên một tài liệu dự thảo của một đặc điểm kỹ thuật hợp đồng thông minh, hoặc tiêu chuẩn ngành, nhằm cải thiện bảo mật đằng sau các địa chỉ liên lạc thông minh.
Gần đây nhất, nhóm làm việc đã công bố công bố EthTrust Security Levels Specification v1. Chaals Nevile, giám đốc chương trình kỹ thuật của EEA, nói với Cointelegraph rằng đặc điểm kỹ thuật này mô tả các lỗ hổng hợp đồng thông minh mà một kiểm toán an ninh thích hợp yêu cầu như một biện pháp tối thiểu về chất lượng:
“ Nó có liên quan đến tất cả các nền tảng hợp đồng thông minh dựa trên EVM mà các nhà phát triển sử dụng Solidity như một ngôn ngữ mã hóa. Trong một phân tích gần đây của Splunk, đây là hơn 3/4 hợp đồng mainnet. Tuy nhiên, cũng có các mạng riêng và dự án dựa trên ngăn xếp công nghệ Ethereum nhưng chạy một chuỗi riêng của họ. Đặc điểm kỹ thuật này cũng hữu ích đối với họ cũng như cho người dùng mainnet trong việc giúp bảo mật công việc của họ.”
Từ góc độ kỹ thuật, Nevile giải thích rằng đặc điểm kỹ thuật mới vạch ra ba cấp độ kiểm tra mà các tổ chức nên cân nhắc khi tiến hành kiểm toán an ninh hợp đồng thông minh.
“ Level [S] được thiết kế sao cho hầu hết các trường hợp, khi các tính năng chung của Solidity được sử dụng theo các mẫu nổi tiếng, mã thử nghiệm có thể được chứng nhận bởi một công cụ ‘phân tích tĩnh ‘tự động,” ông nói.
Ông nói thêm rằng kiểm tra Level [M] bắt buộc một phân tích tĩnh chặt chẽ hơn, lưu ý rằng điều này bao gồm các yêu cầu mà một kiểm toán viên của con người được mong đợi để xác định xem việc sử dụng một tính năng là cần thiết hay liệu một tuyên bố về các thuộc tính bảo mật của mã là hợp lý.
Nevile giải thích thêm rằng bài kiểm tra Level [Q] cung cấp một phân tích logic kinh doanh mà mã thử nghiệm thực hiện. “Điều này là để đảm bảo rằng mã không thể hiện các lỗ hổng bảo mật đã biết, trong khi cũng đảm bảo rằng nó thực hiện đúng những gì nó tuyên bố,” ông nói. Ngoài ra còn có một bài kiểm tra “thực hành tốt được đề xuất” tùy chọn có thể giúp tăng cường bảo mật đằng sau các hợp đồng thông minh. Nevile nói:
“ Sử dụng trình biên dịch mới nhất là một trong những ‘thực hành tốt được đề xuất. ‘ Đó là một trong những khá đơn giản trong hầu hết các trường hợp, nhưng có rất nhiều lý do tại sao một hợp đồng có thể đã không được triển khai với phiên bản mới nhất. Các phương pháp tốt khác bao gồm báo cáo các lỗ hổng mới để chúng có thể được giải quyết trong bản cập nhật cho thông số kỹ thuật và viết mã dễ đọc sạch.”
Overall, there are 107 requirements within the entire specification. According to Nevile, about 50 of these are Level [S] requirements that arise from bugs in solidity compilers.
Một tiêu chuẩn ngành có giúp các tổ chức và nhà phát triển không?
Nevile chỉ ra rằng Đặc điểm kỹ thuật EthTrust Security Levels cuối cùng nhằm giúp kiểm toán viên chứng minh cho khách hàng rằng họ đang hoạt động ở mức độ phù hợp với ngành công nghiệp. “Các kiểm toán viên có thể chỉ ra tiêu chuẩn ngành này để thiết lập uy tín cơ bản,” ông nói.
Gầnđây: Trò chơi Web3 kết hợp các tính năng để thúc đẩy sự tham gia của nữ
Shedding light on this, Ronghui Gu, CEO and co-founder of blockchain security firm CertiK, told Cointelegraph that having standards like these help ensure expected processes and guidelines. However, he noted that such standards are not by any means a “rubber stamp” to indicate that a smart contract is entirely secure:
“ Điều quan trọng là phải hiểu rằng không phải tất cả các kiểm toán viên hợp đồng thông minh đều bình đẳng. Kiểm toán hợp đồng thông minh bắt đầu với sự hiểu biết và kinh nghiệm về hệ sinh thái cụ thể mà một hợp đồng thông minh đang được kiểm toán, và ngăn xếp công nghệ và ngôn ngữ mã đang được sử dụng. Không phải tất cả mã hoặc chuỗi đều bằng nhau. Kinh nghiệm rất quan trọng ở đây để bảo hiểm và phát hiện.”
Given this, Gu believes that companies wanting to have their smart contracts audited should look beyond the certification an auditor claims to have and take into account the quality, scale and reputation of the auditor. Because these standards are guidelines, Gu remarked that he thinks this specification is a good starting point.
From a developer’s perspective, these specifications may prove to be extremely beneficial. Mark Beylin, co-founder of Myco — an emerging blockchain-based social network — told Cointelegraph that these standards will be incredibly valuable to help smart contract developers better understand what to expect from a security audit. He said:
“Currently, there are many scattered resources for smart contract security, but there isn’t a specific rulebook that auditors will follow when assessing a project’s security. Using this specification, both security auditors and their clients can be on the same page for what kind of security requirements will be checked.”
Michael Lewellen, a developer and contributor to the specification, further told Cointelegraph that these specifications help by providing a checklist of known security issues to check against. “Many Solidity developers have not received recent formal education or training in the security aspects of Solidity development, but security is still expected. Having specs like this makes it easier to figure out how to write code more securely,” he said.
Recent: Ethereum Merge prompts miners and mining pools to make a choice
Lewellen also noted that most of the specification requirements are written in a straightforward manner, making it easy for developers to understand. However, he commented that it’s not always clear why a requirement is included. “Some have links to external documentation of a vulnerability, but some do not. It would be easier for developers to understand if they had clearer examples of what compliant and noncompliant code might look like.”
The evolution of smart contract security standards
All things considered, the security level’s specification is helping to advance the Ethereum ecosystem by establishing guidelines for smart contract audits. Yet, Nevile noted that the most challenging aspect moving forward is anticipating how an exploit could occur. He said:
“This specification doesn’t solve those challenges completely. What the spec does do, though, is identify certain steps, like documenting the architecture and the business logic behind contracts, that are important to enabling a thorough security audit.”
Gu also thinks that different chains will start to develop similar standards as Web3 advances. For instance, some developers within the Ethereum industry are coming up with their own smart contract requirements to help others. For example, Samuel Cardillo, chief technology officer at RTFKT, recently tweeted that he has created a system for developers to publicly rate smart contracts based on good and bad elements in terms of development:
Few days ago I started a little Google Sheet to rate publicly smart contracts in order to raise awareness and help both collectors and developers – it wil also contain do and don’t for when developing a contract.
https://t.co/2ixBpkNeoc— SamuelCardillo.eth – RTFKT (@CardilloSamuel) August 15, 2021
Although all of this is a step in the right direction, Gu pointed out that standards take time to be widely adopted. Moreover, Nevile explained that security is never static. As such, he explained that it’s possible for individuals to send questions to the working group who wrote the specification. “We will take that feedback, as well as look at what the discussions are in the broader public space because we expect to update the specification,” Nevile said. He added that a new version of the specification will be produced within six to eighteen months.