Kiểm toán hợp đồng thông minh là một đánh giá của các chuyên gia bảo mật blockchain để đảm bảo rằng người dùng sẽ không bị mất tiền do trục trặc hoặc lỗ hổng bảo mật. Hơn nữa, kiểm toán cố gắng dự đoán hành vi hợp đồng thông minh không mong muốn và không mong muốn trước khi hợp đồng được triển khai.
Điều hướng lĩnh vực này là khó khăn. Có hàng chục công ty kiểm toán và việc nhận báo giá từ một vài trong số họ cần có thời gian và thật khó để biết liệu bạn có nhận được mức giá hợp lý hay không.
Bài viết này sẽ giúp đóng vai trò là điểm khởi đầu để điều hướng nhiệm vụ kiểm tra hợp đồng thông minh.
Việc đề cập đến các công ty kiểm toán trong bài viết này không được hiểu là một sự xác nhận.
Thuật ngữ “kiểm toán hợp đồng thông minh” là một sự phát triển của biệt ngữ công nghiệp, nó không có định nghĩa chặt chẽ và nó có thể có ý nghĩa khác nhau đối với những người khác nhau. Đối với những người đến từ các ngành mà tiêu chuẩn ISO là tiêu chuẩn, việc kiểm tra hợp đồng thông minh sẽ giống như miền tây hoang dã (và thành thật mà nói, đó sẽ là một đánh giá chính xác).
Mặc dù một số lỗ hổng hợp đồng thông minh đã được biết đến, nhưng những lỗ hổng khác là thuộc tính mới nổi của các hệ thống phức tạp và khó phát hiện một cách có hệ thống.
Các tiêu chuẩn là đặc trưng của thị trường trưởng thành và toàn bộ web3 không phải là thị trường trưởng thành.
Có một chút nhầm lẫn giữa các thuật ngữ để gọi kiểm toán hợp đồng thông minh là “kiểm toán”. Trong lĩnh vực kế toán, “kiểm toán” có một định nghĩa rất chặt chẽ; đây không phải là trường hợp trong kỹ thuật chuỗi khối. Cái được gọi là “kiểm toán” trong chuỗi khối là đánh giá bảo mật của một nhóm chuyên gia.
Điều khiến điều này trở nên khó hiểu hơn là không có định nghĩa hoặc chứng nhận chính thức nào về những gì khiến ai đó trở thành kiểm toán viên hoặc chuyên gia bảo mật trong hợp đồng thông minh. Vâng, có những công ty bán chứng chỉ, nhưng những chứng chỉ này không có trọng lượng trong ngành.
Như bạn có thể đoán trước, có một số cá nhân dám nghĩ dám làm tận dụng sự nhầm lẫn để bán kiến thức chuyên môn mà họ không có — vì không có cách nào được thiết lập để đo lường kiến thức chuyên môn.
Emptor caveat.
Tất cả những gì đã nói, trong ngành đều đồng ý rộng rãi rằng “hợp đồng thông minh này đã được kiểm toán” có nghĩa là “một nhóm chuyên gia bảo mật đã được trả tiền để xem xét cơ sở mã này và tìm ra các vấn đề”. Vì không có định nghĩa chính thức về chuyên môn, nên danh tiếng trong ngành thường được sử dụng làm đại diện.
Đây là những công ty chuyên nghiên cứu về bảo mật. Một số chỉ kiểm tra hợp đồng thông minh, trong khi những người khác kiểm tra hợp đồng thông minh và các ứng dụng máy tính truyền thống. Bạn có thể coi đây là một cơ quan bao gồm các nhà nghiên cứu bảo mật. Cho đến gần đây, đây là cách tiêu chuẩn để kiểm toán hợp đồng thông minh. Nếu bạn tìm kiếm các công ty kiểm toán hợp đồng thông minh trên Google, thì đây là loại kết quả mà bạn thường nhận được.
Thay vì gia nhập một công ty, một số nhà nghiên cứu bảo mật làm việc cho chính họ. Họ khó tìm hơn một chút vì họ có ngân sách tiếp thị nhỏ hơn nhiều so với các đại lý, nhưng vì họ có ít chi phí hơn nên họ thường có thể cung cấp giá tốt hơn.
Một nhược điểm là một công ty có thể có nhiều kiểm toán viên xem xét mã của bạn, trong khi kiểm toán viên độc lập sẽ chỉ có một người đánh giá. Nhưng đối với các cơ sở mã nhỏ hơn hoặc ít phức tạp hơn, điều này có thể tiết kiệm chi phí hơn.
Gần đây, một vài nền tảng ( Sherlock DeFi , Code4rena ) đã xuất hiện trong đó các công ty yêu cầu kiểm tra xuất bản mã nguồn của họ trên nền tảng cùng với giải thưởng tiền tệ, sau đó các thí sinh độc lập cố gắng tìm lỗi và lỗ hổng bảo mật.
Một thí sinh tìm thấy càng nhiều lỗi, họ càng kiếm được nhiều tiền, nhưng nếu một thí sinh khác tìm thấy cùng một lỗi, thì khoản thanh toán sẽ bị chia cắt giữa hai bên. Đối với các lỗi được hiểu rõ, khoản thanh toán có thể bị giảm đi đáng kể.
Thu nhập cho kiểm toán viên ở định dạng này khá thấp. Những người dự thi hiếm khi có thể kiếm được nhiều hơn 1.000 đô la cho mỗi cuộc thi mặc dù đã nỗ lực đáng kể. Động lực chính cho những người tham gia là chứng minh khả năng của họ để họ có thể kiếm được việc làm tại một công ty kiểm toán truyền thống hoặc thu hút doanh nghiệp với tư cách là kiểm toán viên độc lập (nhà nghiên cứu độc lập). Cũng không có gì đảm bảo về chất lượng của những người tham gia cuộc thi, vì bất kỳ ai cũng có thể tham gia.
Tuy nhiên, những nền tảng này có thể mang tính giáo dục rất cao đối với các kiểm toán viên mới. Vì định dạng này khuyến khích sự tập trung cao độ vào việc tìm lỗi, sau đó đưa ra phản hồi về những lỗi nào đã bị bỏ sót, nên chúng có thể cung cấp một vòng phản hồi tương đối chặt chẽ giúp tăng tốc độ học tập. Trên thực tế, chúng tôi hướng dẫn một số đào tạo vững chắc của chúng tôi tham gia các cuộc thi này vì mục đích giáo dục.
Các kiểm toán viên giỏi nhất không dành nhiều thời gian cho các cuộc thi vì họ kiếm được nhiều tiền hơn khi làm việc cho chính họ hoặc cho một công ty. Vì vậy, hãy nhớ rằng ai đó đạt thành tích tốt trong một cuộc thi kiểm toán có thể chỉ đơn giản có nghĩa là họ không phải đối mặt với sự cạnh tranh đáng kể cho các cuộc thi mà họ tham gia. Cũng có một yếu tố may mắn khi một cuộc thi đơn lẻ chiếm một phần đáng kể trong thu nhập công khai của kiểm toán viên .
Tuy nhiên, định dạng này thu hút nhiều sự chú ý hơn đến mã so với các định dạng kiểm toán khác và các cuộc thi kiểm toán đã phát hiện ra các lỗi mà các kiểm toán viên khác bỏ sót. Chúng cũng đóng vai trò là kênh để các công ty tiếp thị một cách tinh tế các giao thức của họ tới cộng đồng nhà phát triển và kiểm toán viên, vì vậy chúng là một đóng góp có giá trị cho hệ sinh thái.
Một số nhóm bất hòa dành cho nhà phát triển sẽ xem xét mã của bạn miễn phí (vì mong muốn giúp ích, vì vậy vui lòng không lạm dụng lòng hảo tâm của người khác). Nếu bạn có một cơ sở mã nhỏ và đơn giản, đôi khi nhờ một vài chuyên gia đóng góp thời gian của họ có thể là cách tiết kiệm chi phí nhất cho bạn. Sẽ cực kỳ khiếm nhã nếu gọi một đánh giá như vậy là “đánh giá”, nhưng nếu đó là lựa chọn duy nhất có sẵn, thì chắc chắn tốt hơn là không có đánh giá nào cả.
Một số kiểm toán viên sử dụng danh sách kiểm tra cứng nhắc cho danh sách các lỗ hổng hợp đồng thông minh và kiểm tra xem vấn đề có tồn tại hay không. Điều này tốt khi vượt qua lần đầu tiên, nhưng nhiều lỗi dành riêng cho ứng dụng (như chúng tôi lưu ý trong bài viết đó). Bạn muốn chắc chắn rằng kiểm toán viên sẽ xem xét các sắc thái và yêu cầu kinh doanh của ứng dụng của bạn. Bằng cách xem xét các cuộc kiểm toán trước đây của họ, bạn có thể biết liệu họ có đi ngược lại danh sách một cách máy móc hay đi sâu vào các chi tiết cụ thể của ứng dụng của bạn hay không. Một kiểm toán viên không cung cấp các cuộc kiểm toán trước đây thường là một lá cờ đỏ.
Nếu dự án của bạn sử dụng token DeFi kỳ lạ hoặc Zero Knowledge Proofs thì bạn sẽ muốn đảm bảo rằng kiểm toán viên được chọn của bạn có kinh nghiệm về điều đó. Tương tự, nếu bạn đang xây dựng một dapp trên một chuỗi không tương thích với evm như Solana , thì bạn sẽ cần một kiểm toán viên có kinh nghiệm với chuỗi khối đó.
Một số công ty kiểm toán sẽ không bận tâm đến các cơ sở mã nhỏ như mã thông báo ERC20 hoặc NFT cơ bản vì họ sẽ không kiếm đủ tiền để trả cho cuộc gọi bán hàng và quản lý tài khoản.
Bởi vì không có định nghĩa chính thức hoặc được chấp nhận cho một cuộc kiểm toán, một số công ty đã xuất hiện để tạo ra thứ được gọi một cách chế nhạo là “kiểm toán con dấu cao su”. Các công ty này cung cấp báo cáo kiểm toán đơn giản chỉ vì người mua muốn kiểm toán để họ có thể nói với khách hàng của mình, “hãy nhìn xem, chúng tôi đã được kiểm toán!”
Không phải mọi giao thức đều cố ý được kiểm tra con dấu cao su; họ có thể chỉ đơn giản là đã chọn kiểm toán viên mà không biết rằng họ là kiểm toán viên đóng dấu cao su.
Ngay cả khi một hợp đồng thông minh đã được kiểm toán, nó vẫn có thể bị hack sau đó; đây không phải là trường hợp hiếm gặp.
Rekt.news có bảng xếp hạng theo dõi các vụ hack hợp đồng thông minh theo số tiền bị mất. Dễ dàng nhận thấy hầu hết các giao thức bị tấn công đều không được kiểm tra.
Tuy nhiên, một số giao thức đã có kiểm toán, một số có nhiều hơn một, mà kiểm toán viên vẫn bỏ sót. Trong một số trường hợp, điều này có thể là do kiểm toán viên không đủ năng lực hoặc không đủ cố gắng, nhưng nói chung, không thể đảm bảo một cơ sở mã không có lỗi.
Tin tốt là một số lỗ hổng không chỉ bị kiểm toán viên bỏ qua; họ cũng bị tin tặc bỏ qua. Một số hợp đồng thông minh đã tồn tại trong nhiều tháng với lỗ hổng trực tiếp trước khi chúng được vá. Một cuộc kiểm toán tốt sẽ đảm bảo loại bỏ “trái ngọt” cho tin tặc.
Đây là thông lệ tiêu chuẩn với các giao thức DeFi được tài trợ tốt nhằm mục đích nắm giữ nhiều tiền; có ba hoặc nhiều công ty kiểm toán xem xét mã là khá bình thường.
Những gì một kiểm toán viên bỏ sót, một kiểm toán viên khác có thể nắm bắt được và ngược lại. Tương tự như vậy, một kiểm toán viên có thể nhận thấy một lỗ hổng và các nhà phát triển có thể vá lỗ hổng đó trong khi giới thiệu một lỗ hổng khác.
1. Nhận báo giá Bạn sẽ liên hệ với nhiều công ty khác nhau để yêu cầu báo giá và bạn sẽ điều phối dựa trên tình trạng sẵn có của họ và ngày ra mắt của bạn.
2. Bắt đầu kiểm tra Bạn sẽ ở trạng thái đóng băng mã khi bạn đi kiểm tra. Nếu các kiểm toán viên đang xem xét một cơ sở mã khác với cơ sở mã mà bạn sẽ khởi chạy để sản xuất, thì có lẽ bạn đang lãng phí tiền bạc!
3. Báo cáo kiểm tra Hầu hết các báo cáo kiểm tra (không tuân theo danh sách kiểm tra cố định) sẽ trả về một danh sách các phát hiện được phân loại là Quan trọng, Cao, Trung bình, Thấp, Thông tin và Tối ưu hóa Khí. Những điều này được giải thích trong phần sau. Một cuộc kiểm toán có thể ngắn từ vài ngày đến vài tháng, tùy thuộc vào phạm vi của dự án.
4. Xem xét các bản sửa lỗi Tùy thuộc vào thỏa thuận, kiểm toán viên sẽ xem xét các thay đổi do nhà phát triển thực hiện và đảm bảo bản sửa lỗi thực sự giải quyết được lỗi. Số lần xem xét sửa đổi được coi là chấp nhận được tùy thuộc vào kiểm toán viên.
5. Công bố báo cáo Các chuyên gia đánh giá thường công bố báo cáo của họ nếu khách hàng cho phép (và khách hàng thường muốn cuộc đánh giá được công khai để chứng tỏ rằng họ đã được đánh giá).
Hầu hết các báo cáo kiểm toán nhóm các phát hiện bảo mật thành mức độ nghiêm trọng:
Phê bình
Cao
Trung bình
Thấp
thông tin
Tối ưu hóa khí
Không phải tất cả các công ty đều sử dụng nhãn giống nhau. Như chúng tôi đã lưu ý, do thiếu các tiêu chuẩn chung nên không có định nghĩa thống nhất cho những gì được coi là lỗ hổng “cao” hoặc “trung bình”. Một số kiểm toán viên không đồng ý về xếp hạng phù hợp để chỉ định cùng một lỗi, nhưng đây là một số yếu tố mà kiểm toán viên sử dụng để chỉ định mức độ nghiêm trọng:
Kết quả trường hợp xấu nhất. Tất cả các khoản tiền bị đánh cắp là thảm khốc. Các lỗi mà tin tặc không thể đánh cắp tiền nhưng người dùng không được bảo vệ đầy đủ khỏi việc tự bắn vào chân mình sẽ được gắn nhãn có mức độ nghiêm trọng thấp.
Số người dùng bị ảnh hưởng. Toàn bộ giao thức bị mất tiền còn nghiêm trọng hơn việc một người dùng cá nhân bị mất tiền.
Khuyến khích tiến hành cuộc tấn công. Nếu kẻ tấn công cần chi nhiều vốn hơn để thực hiện một cuộc tấn công so với số tiền họ có thể thu được khi thực hiện nó, thì mức độ nghiêm trọng sẽ giảm đi. Đây vẫn là một lỗ hổng vì kẻ tấn công có thể có động cơ phi kinh tế để thực hiện một cuộc tấn công (khoe mẽ, tư thù cá nhân, v.v.).
Sự che khuất của cuộc tấn công. Nếu lỗ hổng bảo mật giống như thiếu kiểm soát truy cập, thì kẻ tấn công đơn giản có thể thực hiện cuộc tấn công. Nếu điểm yếu phụ thuộc vào sự hiểu biết sâu sắc về cơ chế mã thông báo phức tạp sử dụng toán học nâng cao, thì ít có khả năng kẻ tấn công sẽ tìm ra vấn đề.
Một số kiểm toán viên kết hợp hai yếu tố cuối cùng thành một: khả năng bị tấn công. Theo mô hình này, họ sử dụng bảng sau để chỉ định mức độ nghiêm trọng:
Một số kiểm toán viên phân biệt giữa các lỗ hổng nghiêm trọng và lỗ hổng cao, trong khi các kiểm toán viên khác nhóm các lỗ hổng nghiêm trọng với lỗ hổng cao. Trong cả hai trường hợp, đây được coi là những lỗi cực kỳ nghiêm trọng! Đối với những người tạo ra sự khác biệt, Nghiêm trọng có thể có nghĩa là toàn bộ giao thức bị ảnh hưởng nghiêm trọng, trong khi Cao có nghĩa là người dùng cá nhân có thể bị ảnh hưởng nghiêm trọng.
Các sự cố có mức độ nghiêm trọng trung bình thường có nghĩa là các sự cố có thể gây hại nhưng ít có khả năng xảy ra.
Một số kiểm toán viên sẽ chỉ ra các vấn đề, chẳng hạn như không tuân thủ hướng dẫn về phong cách của Solidity hoặc tên biến và hàm bị viết sai chính tả hoặc gây hiểu lầm. Đây không phải là lỗ hổng bảo mật nhưng có thể gây nhầm lẫn trong quá trình sử dụng. Không phải tất cả các kiểm toán viên đều chỉ ra các vấn đề về thông tin.
Một số kiểm toán viên sẽ đề xuất các cách để cải thiện hiệu quả sử dụng gas của một số mã nhất định. Những điều này không liên quan đến bảo mật, nhưng chắc chắn chúng sẽ cải thiện trải nghiệm người dùng.
Ước tính dựa trên thông tin công khai
Nếu tìm trên Fiverr, bạn sẽ tìm thấy một số dịch vụ kiểm tra hợp đồng thông minh với giá thấp, nhưng bạn có thực sự muốn phụ thuộc vào loại dịch vụ đó cho một việc quan trọng như thế này không? Bởi vì các hợp đồng thường có các thỏa thuận không tiết lộ, tỷ lệ có thể khó xác định, nhưng đây là một số thông tin công khai.
1. Nhóm phần thưởng cho kiểm toán cạnh tranh Các nền tảng kiểm toán cạnh tranh quảng cáo nhóm phần thưởng và tất nhiên, số tiền này đến từ việc khách hàng trả tiền cho cuộc kiểm toán. Tại đây, bạn có thể thấy các giải thưởng thấp tới 5 nghìn đô la và đôi khi lên tới hàng trăm nghìn đô la cho các dự án rất lớn. Tất nhiên, những người điều hành cuộc thi mong đợi một khoản phí để chạy nền tảng, vì vậy chi phí thực tế sẽ cao hơn.
2. Lương của nhà thầu Công ty kiểm toán Spearbit đã công bố mức lương mà họ trả cho kiểm toán viên của họ (là nhà thầu, không phải nhân viên), vì vậy người ta có thể suy ra chi phí kiểm toán là bao nhiêu (không bao gồm các hoạt động và tỷ suất lợi nhuận) dựa trên điều này. Mức lương cho mỗi kiểm toán viên là 3k-20k mỗi tuần tùy thuộc vào thâm niên. Hãy nhớ rằng đây không phải là công việc toàn thời gian mà là công việc theo mức độ tương tác.
3. Kiểm toán viên độc lập Một điểm dữ liệu khác mà chúng tôi có là các kiểm toán viên độc lập đã công khai thu nhập. Một người tuyên bố kiếm được 40.000 đô la mỗi tháng vào những tháng thuận lợi, thực hiện khoảng bốn lần kiểm tra mỗi tháng, một người khác tuyên bố kiếm được 50.000 đô la trong một tháng với năm lần kiểm tra. Đây là mức cao nhất mà một kiểm toán viên độc lập có thể mong đợi thực hiện, nhưng nó không nằm ngoài khả năng; nhân viên kỹ sư tại các công ty hàng đầu ở Thung lũng Silicon kiếm được nhiều hơn thế .
Không có mô hình định giá tiêu chuẩn, nhưng đây là một số phương pháp mà kiểm toán viên sử dụng để xác định mức giá mà họ đưa ra.
Một mô hình định giá phổ biến là $ / dòng mã. Điều này có thể có giá từ vài đô la đến hàng chục đô la cho mỗi dòng.
Các kiểm toán viên khác sử dụng kết hợp quy mô và độ phức tạp. NFT 1.000 dòng đơn giản hơn đáng kể so với thư viện toán học 1.000 dòng. Công ty kiểm toán sẽ đưa ra xét đoán chủ quan dựa trên sự kết hợp của các yếu tố này.
Một số kiểm toán viên sẽ giảm giá nếu dự án được kiểm toán là rẽ nhánh, hoặc rất giống với một dự án đã được thiết lập vì họ có thể tận dụng các cuộc kiểm toán trước đây để xác định xem dự án của bạn có học được từ những sai lầm trong quá khứ hay không. Ngoài ra, tổng số dòng chưa được xem xét là một tỷ lệ nhỏ của dự án. Các kiểm toán viên khác nhau sẽ có một ngưỡng khác nhau đối với những gì cấu thành "tương tự" đối với các dự án đã thành lập.
Mô hình này là phổ biến giữa các kiểm toán viên độc lập. Nhà nghiên cứu bảo mật được trả một khoản tiền đặt cọc nhỏ và nhận được khoản thanh toán cho mỗi lỗi được tìm thấy với mức giá cao hơn cho các sự cố nghiêm trọng hơn. Điều này có lợi thế là khuyến khích kiểm toán viên tìm kiếm nhiều hơn, nhưng nó cũng có thể khuyến khích phóng đại mức độ nghiêm trọng của lỗi.
So với những người lao động tri thức chuyên môn cao khác, chẳng hạn như luật sư (những người giỏi nhất trong số họ có thể kiếm được hơn một triệu đô la mỗi tháng ), kiểm toán hợp đồng thông minh không quá đắt, nhưng chúng có thể là gánh nặng đáng kể đối với các công ty nhỏ.
Trở thành một kiểm toán viên hợp đồng thông minh không phải là dễ dàng. Nói chung, trình độ kỹ năng cần thiết có thể so sánh với việc cố gắng kiếm một công việc có tính cạnh tranh cao ở Thung lũng Silicon, điều đó có nghĩa là mức lương khởi điểm sẽ dễ dàng ở mức sáu con số. Một công ty kiểm toán cần tính một khoản lãi đáng kể trên số tiền lương đó để duy trì lợi nhuận, vì vậy không có gì ngạc nhiên khi các cuộc kiểm toán tiêu tốn hàng chục nghìn đô la, nếu không muốn nói là hàng trăm nghìn đô la.
RareSkills không phải là một công ty kiểm toán, nhưng nhiều người hướng dẫn của chúng tôi là kiểm toán viên chuyên nghiệp và chúng tôi tham gia vào nghiên cứu bảo mật. Chúng tôi có cái nhìn nội bộ về công ty nào có uy tín và công ty nào không. Vui lòng liên hệ với chúng tôi và cho chúng tôi biết về nhu cầu của bạn và chúng tôi sẽ giới thiệu cho bạn nguồn tài nguyên phù hợp dựa trên tình huống của bạn.
Nếu bạn đang tìm cách đào tạo các kỹ sư của mình về cách phát triển các hợp đồng thông minh an toàn, thì chương trình đào tạo hợp đồng thông minh hàng đầu trong ngành của chúng tôi dành cho các kỹ sư chuyên nghiệp có thể khiến bạn quan tâm.
Cũng được xuất bản ở đây .