

Lưu ý của biên tập viên: Bài viết này là của Alpha Commune (ID: alphastartups), tác giả: Alpha Commune, được xuất bản với sự cho phép.
1. Giới thiệu
Vào ngày 6 tháng 8 năm 2018, Tencent Security đã phát hành "Báo cáo bảo mật chuỗi khối cho nửa đầu năm 2018". Báo cáo cho thấy hiện có hơn 1.600 loại tiền kỹ thuật số được mã hóa trên thế giới. Các vấn đề bảo mật đã tiêu tốn hơn 2,7 tỷ USD và số tiền bị mất do sự cố bảo mật blockchain vẫn đang tăng lên. Từ "sự cố cửa email" của IOTA, "lỗ hổng nạp tiền sai" của USDT, "cuộc tấn công cầu vồng" của EOS, đến "lỗ hổng tấn công tràn số nguyên" của BEC và SMT, "cuộc tấn công 51% sức mạnh tính toán" của BTG, v.v., chuỗi sự kiện này đã gây ra Mọi người chú ý và suy nghĩ nhé.
Các mối đe dọa chính đối với bảo mật blockchain là gì? Tại sao vấn đề bảo mật của hợp đồng thông minh lại quan trọng và thu hút sự quan tâm của nhiều người đến vậy? Có bao nhiêu loại bảo mật cho hợp đồng thông minh? Các phương pháp giám sát an ninh chủ đạo hiện nay là gì? Cách hiệu quả nhất là gì? Làm cách nào để mọi người có thể nhận được mã hợp đồng thông minh an toàn và không có lỗi?
Để giải đáp loạt vấn đề này, Alpha Commune đã phỏng vấn Guo Yu, người sáng lập SECBIT, để giới thiệu một cách có hệ thống các vấn đề bảo mật và giải pháp chủ đạo của ngành công nghiệp blockchain.
2. Sáu loại bảo mật chuỗi khối
Mô tả hình ảnh

Kiến trúc kỹ thuật phiên bản Blockchain 2.0
Lớp đầu tiên, mật mã.Mật mã là công nghệ hỗ trợ cơ bản của chuỗi khối, bao gồm thuật toán băm, chữ ký số, số ngẫu nhiên, v.v. Nếu có vấn đề hoặc sơ hở trong các kỹ thuật mã hóa này, niềm tin được xây dựng trên toàn bộ chuỗi khối dựa trên điều này sẽ sụp đổ.
Mặc dù công nghệ mật mã hiện tại đã khá trưởng thành, khả năng có những sơ hở lớn là tương đối nhỏ, nhưng vẫn không loại trừ việc một số dự án có vấn đề. Vào ngày 15 tháng 7 năm 2017, IOTA, được gọi là "đồng tiền đầu tiên trên thế giới của Internet vạn vật", đã nhận được email từ DCI, một nhóm nghiên cứu học thuật trực thuộc Viện Công nghệ Massachusetts, nhắc nhở nhóm IOTA rằng có một điểm yếu trong Thuật toán băm của IOTA Curl-P và DCI Có thể thực hiện một cuộc tấn công thành công vào hệ thống để đánh cắp tiền của người dùng. Mặc dù IOTA sau đó đã đặt câu hỏi và bác bỏ email của DCI, cho đến nay, không có người dùng nào bị đánh cắp tiền vì lỗ hổng này, nhưng sự cố này đã làm dấy lên mối lo ngại của mọi người về tính bảo mật của IOTA và các dự án khác về công nghệ mật mã.
Lớp thứ hai là tạo, sử dụng và bảo vệ khóa riêng của người dùng.Chứng chỉ để người dùng tham gia chuỗi khối là một cặp khóa công khai và khóa riêng, tiền đề để mỗi người tương tác thông qua chuỗi khối là anh ta có một khóa riêng an toàn và có thể giữ khóa riêng của mình. và bảo vệ khóa riêng Các câu hỏi rất quan trọng.
Vào tháng 7 năm nay, do rủi ro bảo mật trong công cụ tạo khóa riêng của EOS, tin tặc đã tìm thấy sơ hở trong khóa riêng được tạo và thực hiện cuộc tấn công "cầu vồng", dẫn đến đánh cắp tài sản kỹ thuật số tài khoản và mất hàng chục triệu đô la. Tài sản kỹ thuật số.
Lớp thứ ba, lỗ hổng bảo mật hệ thống nút.Vấn đề này thuộc loại bảo mật truyền thống, ví dụ: các nút chuỗi khối không thể có các lỗ hổng bảo mật truyền thống như lỗi tràn bộ đệm. Ngoài ra, việc triển khai các nút chuỗi khối phải có khả năng thực hiện trung thực và chính xác giao thức đồng thuận của chuỗi khối; các nút không thể để lộ các giao diện API không nên để lộ, để tin tặc có thể lấy được một số thông tin nút chính mà không gặp trở ngại. Cả Ethereum và EOS đều đã bị lộ các lỗ hổng bảo mật nghiêm trọng. Phần bảo mật này cũng rất quan trọng.
Lớp thứ tư là giao thức đồng thuận cơ bản.Hiện tại, các giao thức đồng thuận chuỗi khối chính thống trên thị trường bao gồm: POW, POS, DPOS và PBFT. Giao thức đồng thuận cơ bản xác định xem toàn bộ cấu trúc của chuỗi khối có đáng tin cậy hay không và liệu nó có thực sự tạo thành một chuỗi khối với sự đồng thuận hay không. Không có nhiều giao thức đồng thuận thực sự được chứng minh là an toàn, bởi vì bản thân giao thức đồng thuận không đơn giản về mặt lý thuyết hoặc triển khai kỹ thuật. Các giao thức đồng thuận đã được xác minh trong một thời gian dài là tương đối an toàn, chẳng hạn như POW của Bitcoin. Các giao thức đồng thuận có một tam giác bất khả thi: bảo mật, phân cấp và hiệu quả, và ba điều này chỉ có thể đạt được cả hai cùng một lúc. Nếu bạn theo đuổi hiệu quả, bạn phải hy sinh tính phi tập trung hoặc hy sinh tính bảo mật.
Câu hỏi liệu giao thức đồng thuận của hệ thống chuỗi khối có an toàn hay không là rất quan trọng.
Mô tả hình ảnh
"Cuộc tấn công sức mạnh tính toán 51%" trong bộ phim truyền hình Mỹ "Thung lũng Silicon"
Lớp thứ năm, hợp đồng thông minh.Hợp đồng thông minh là một tập hợp các lời hứa được xác định ở dạng kỹ thuật số, bao gồm thỏa thuận về việc những người tham gia hợp đồng có thể thực hiện những lời hứa này. Bất kỳ người tham gia nào cũng có thể tạo hợp đồng ở lớp ứng dụng, được gọi là DAPP (Ứng dụng phi tập trung). Đây cũng là nơi phát sinh nhiều vấn đề bảo mật nhất.
Rủi ro bảo mật hợp đồng thông minh bao gồm ba khía cạnh:Đầu tiên, không có kẽ hở.Có lỗ hổng bảo mật phổ biến nào trong mã hợp đồng không.Thứ hai, nó có đáng tin cậy không.Một hợp đồng thông minh không có sơ hở có thể không an toàn và hợp đồng phải công bằng và đáng tin cậy.Thứ ba, tuân thủ các quy tắc và thủ tục nhất định.Vì việc tạo hợp đồng đòi hỏi phải xác định các cam kết ở dạng kỹ thuật số, nếu quy trình tạo hợp đồng không đủ tiêu chuẩn hóa, rất dễ để lại những mối nguy hiểm tiềm ẩn rất lớn.
Hiện tại, nhiều hợp đồng thông minh trên thị trường có lỗ hổng bảo mật, ví dụ như vào ngày 3 tháng 6, SECBIT đã tìm thấy 81 hợp đồng có lỗi tương tự trên Ethereum. một vấn đề sau đó, nó sẽ gây ra những tổn thất không thể khắc phục được, vào ngày 6 tháng 6, SECBIT đã phát hiện ra rằng hợp đồng mã thông báo ERC20 FXE có sơ hở trong việc triển khai logic kinh doanh. Rủi ro hoàn toàn bằng không.
Là một học viên trong ngành công nghiệp chuỗi khối, người dùng hợp đồng thông minh hoặc chủ sở hữu tiền điện tử, bạn nên tìm hiểu kiến thức lập trình hợp đồng thông minh và mã hóa tương ứng, đồng thời bạn không được sao chép và sử dụng mã liên quan đến hợp đồng bảo mật tài chính cũng như khóa công khai và khóa riêng. Nếu những kẻ tấn công ác ý công khai phát tán các mã có lỗ hổng nghiêm trọng trên Internet và khiến các tổ chức không đủ khả năng phát triển kỹ thuật sử dụng chúng, thì điều đó sẽ gây ra những đòn tàn phá và tổn thất không thể khắc phục cho người dùng.
Lớp thứ sáu là thiết kế cơ chế khuyến khích.Để hoàn thành sự hợp tác trong các hợp đồng thông minh, thông thường cần phải thiết kế các cơ chế khuyến khích kinh tế tương ứng. Khuyến khích kinh tế là một khái niệm rất đột phá trong công nghệ chuỗi khối. Một hệ sinh thái blockchain thực sự lành mạnh và sôi động đòi hỏi một cơ chế khuyến khích tốt. Tuy nhiên, thiết kế của các khuyến khích kinh tế không đủ an toàn và hệ sinh thái có thể không được xây dựng, chẳng hạn như các trò chơi kiểu Ponzi điển hình.Mọi người nên cảnh giác về điều này.
3. Ba vấn đề chính của hợp đồng thông minh
Các vấn đề bảo mật chuỗi khối sáu lớp được giới thiệu ở trên đều được phân chia dựa trên các cấp độ kỹ thuật tương ứng, công nghệ càng thấp thì càng ổn định, ví dụ như mật mã sau khi được chọn từ đầu sẽ không dễ dàng thay đổi.
Vì các hợp đồng thông minh tương đối linh hoạt và có thể được tạo bởi bất kỳ ai, nên chúng tương đối dễ gặp phải các vấn đề về bảo mật.
Bất kỳ người dùng nào cũng có thể tạo hợp đồng dựa trên sự đồng thuận, giống như mọi người bình thường có thể viết hợp đồng dựa trên một luật nhất định. Luật này là cơ chế đồng thuận (nền tảng) và hợp đồng này cũng có ràng buộc nội bộ. Sử dụng DAPP giống như ký kết hợp đồng , và tất cả các hành động phải được thực hiện theo các điều khoản của hợp đồng. Do đó, rủi ro bảo mật của hợp đồng thông minh liên quan trực tiếp đến việc mất tài sản của người dùng.
Cho đến nay, SECBIT đã phát hiện ra ba vấn đề lớn với hợp đồng thông minh trên thị trường:
Đầu tiên, các lỗ hổng bảo mật được biểu thị bằng tràn số nguyên.Các lỗ hổng bảo mật thường do người viết mã vô tình đưa vào. Nó có thể khiến một số bộ phận chức năng của hợp đồng bị lỗi. Trong trường hợp xấu nhất, nó có thể dẫn đến các cuộc tấn công của hacker, người dùng bị mất tiền và thậm chí có tin tặc tạo ra rất nhiều tiền ra khỏi không khí mỏng. Ví dụ: BEC, SMT và EDU đã bị tin tặc tấn công do lỗ hổng bảo mật tràn số nguyên, dẫn đến giá trị tiền tệ bằng không.
Thứ hai, kiểm soát cơ quan hợp đồng thông minh.Nói chung, quản trị viên sẽ được thiết lập trong hợp đồng thông minh và quản trị viên thường có siêu quyền hạn, loại hợp đồng này có rủi ro bảo mật tương đối lớn, bởi vì một khi khóa riêng của quản trị viên bị đánh cắp, rất dễ gây ra tổn thất lớn . Theo thống kê chưa đầy đủ từ SECBIT, trong số 570 hợp đồng Token hàng đầu, 342 hợp đồng có các chức năng mà chỉ quản trị viên mới có thể gọi (Only Owner) và nhiều hợp đồng thậm chí còn có các chức năng như đúc tiền, đốt tiền, đóng băng tài khoản, tắt chuyển khoản, v.v. quá nhiều quyền.
Vào ngày 10 tháng 7 năm nay, nền tảng giao dịch tiền điện tử Bancor tuyên bố đã bị tấn công và mất Ethereum trị giá 12,5 triệu đô la Mỹ, mã thông báo Bancor trị giá 10 triệu đô la Mỹ và mã thông báo Pundix trị giá 1 triệu đô la Mỹ. Sau khi phân tích, chúng tôi thấy rằng vụ đánh cắp nền tảng Bancor có liên quan đến hợp đồng BancorConverter. Kẻ tấn công (hacker/nội gián) đã lấy được khóa riêng của tài khoản quản trị viên và sử dụng danh tính của quản trị viên để đánh cắp Mã thông báo của người dùng, gây thiệt hại lớn cho người dùng.mất mát.
Thứ ba, vấn đề quy phạm.Hiện tại, không có thông số kỹ thuật thống nhất cho việc thực hiện nhiều hợp đồng thông minh. Hợp đồng thông minh là sự hợp tác giữa nhiều người theo cách tương tác, nếu hợp đồng không được tiêu chuẩn hóa, rất dễ khiến những người khác nhau hiểu sai hành vi của hợp đồng, dẫn đến nhiều vấn đề về bảo mật.
Ví dụ: sự cố "nạp tiền sai" lần lượt bùng phát trong năm nay, bao gồm mã thông báo Ethereum, USDT, v.v., theo thống kê chưa đầy đủ do một tổ chức thực hiện, cho thấy 3.619 hợp đồng mã thông báo đơn lẻ trên thị trường có nguy cơ lỗ hổng "nạp tiền giả" Có rất nhiều mã thông báo nổi tiếng trong số đó.
Trong trường hợp bình thường, nếu chuyển khoản không thành công trong quá trình nạp tiền, tài khoản sẽ không được nạp tiền và số dư tài khoản sẽ vẫn là 0. Tuy nhiên, nếu có lỗ hổng "nạp tiền sai" trong hợp đồng, khi chuyển khoản không thành công, hệ thống sẽ không hiển thị lỗi nạp tiền (giá trị) và sàn giao dịch sẽ đánh giá sai kết quả là nạp tiền thành công. Nếu một hacker phát hiện ra lỗ hổng này, anh ta sẽ tiếp tục thực hiện các lần nạp tiền "sai", sau đó rút tiền, gây thiệt hại trực tiếp cho sàn giao dịch.
4. Tầm quan trọng của Xác minh Chính thức
Hiện tại, có ba phương pháp kiểm tra chính đối với các vấn đề bảo mật hợp đồng thông minh trên thị trường.Đầu tiên là thử nghiệm, thứ hai là kiểm toán và thứ ba là xác minh chính thức.Thử nghiệm yêu cầu chương trình chạy tự động, thông qua nhiều đầu vào có thể khác nhau, để phát hiện xem có lỗ hổng tràn số nguyên và các vấn đề khác hay không. Tuy nhiên, bài kiểm tra này thường không thể bao phủ 100% và phải có những thiếu sót. Kiểm toán là dựa vào kiến thức chuyên môn của chuyên gia để kiểm toán, nhưng chuyên gia dù chuyên nghiệp đến đâu cũng có thể có sơ sót.Hai phương pháp truyền thống đầu tiên không thể đảm bảo rằng không có sơ hở nào trong hợp đồng, nhưng việc xác minh chính thức có thể làm được điều này.
Xác minh chính thức có thể giải quyết ba loại vấn đề,Loại đầu tiên là an toàn và hoàn hảo:Thông qua phương pháp suy luận toán học, nắm bắt và bao quát mọi hành vi của hợp đồng, bao quát mọi khả năng, để đảm bảo rằng hợp đồng không có kẽ hở.Loại thứ hai là đáng tin cậy: cởi mở và minh bạch.Người tạo hợp đồng không chỉ cần giải thích những gì anh ta đã làm mà còn chứng minh cho mọi người thấy rằng mã đó làm được. Điều này hiện chỉ có thể thực hiện được với xác minh chính thức.Loại thứ ba là các vấn đề quy phạm.Lỗ hổng nạp tiền sai được đề cập ở trên là do đặc điểm kỹ thuật ERC20 của Ethereum rất mơ hồ và không đầy đủ. Làm thế nào tôi có thể viết nó hoàn chỉnh? Điều này yêu cầu đặc điểm kỹ thuật của hợp đồng không thể được mô tả bằng ngôn ngữ tự nhiên hoặc văn bản, mà phải được chính thức hóa và xác định chặt chẽ bằng ngôn ngữ logic toán học.
Xác minh chính thức đã có một số lượng lớn các trường hợp ứng dụng trong ngành, đặc biệt là trong các lĩnh vực liên quan đến hệ thống an toàn.Ví dụ: hàng không vũ trụ, đường sắt cao tốc, năng lượng hạt nhân và các ngành khác có các nhóm chuyên trách cung cấp dịch vụ xác minh chính thức, và chức năng và tác dụng đã có từ lâu.Được chứng thực bởi các chuyên gia trong ngành bảo mật.
Hiện tại, xác minh chính thức bao gồm kiểm tra mô hình và lập luận suy diễn. SECBIT đã tích lũy hơn mười năm kết quả nghiên cứu khoa học và kinh nghiệm kỹ thuật trong lý luận suy diễn, và công nghệ của nó tương đối hàng đầu trên thế giới.
Các công ty tương đối có thẩm quyền và an toàn, chẳng hạn như Zeppelin và trang web chính thức của Ethereum, đã công bố các mã hợp đồng thông minh có vấn đề. Nếu có một cơ sở mã hợp đồng thông minh đáng tin cậy hơn, không phụ thuộc vào cơ quan có thẩm quyền và mở cửa cho tất cả mọi người, thì đó sẽ là một giải pháp tốt cho vấn đề này. Về vấn đề này, SECBIT đã làm được rất nhiều việc và hiện đang thiết lập thư viện mã hợp đồng thông minh mã nguồn mở đáng tin cậy đầu tiên trên thế giới, thuận tiện cho mọi người sử dụng miễn phí.
