Bộ tư duy bảo mật hợp đồng thông minh

blog 1Tin tứcDevelopersEnterpriseBlockchain ExplainedEvents and ConferencePressBản tin

Theo dõi bản tin của chúng tôi.

Địa chỉ email

Chúng tôi tôn trọng quyền riêng tư của bạn

Trang chủBlogBlockchain phát triển

Bộ tư duy bảo mật hợp đồng thông minh

5 nguyên tắc bảo mật mà mọi nhà phát triển Ethereum cần biết, cộng với những đánh đổi cơ bản. bởi ConsenSysJune 17, 2020Đăng vào ngày 17 tháng 6 năm 2020

Bảo mật chuỗi khối

Bởi ConsenSys Diligence, nhóm chuyên gia bảo mật blockchain của chúng tôi.

Mặc dù ngành công nghiệp này đang trưởng thành, nhưng phát triển hợp đồng thông minh vẫn là một lĩnh vực tương đối mới và đang phát triển. Do đó, bạn nên mong đợi những thay đổi liên tục trong bối cảnh bảo mật, khi các lỗi và rủi ro bảo mật mới được phát hiện cũng như các phương pháp hay nhất mới được phát triển. Học hỏi và làm theo thực hành tốt nhất chỉ là bước khởi đầu của công việc bảo mật mà bạn sẽ cần làm với tư cách là nhà phát triển hợp đồng thông minh.

Lập trình hợp đồng thông minh đòi hỏi một tư duy kỹ thuật khác với những gì bạn có thể quen làm. Chi phí thất bại có thể cao và việc thay đổi có thể khó khăn, làm cho nó theo một số cách giống với lập trình phần cứng hoặc lập trình dịch vụ tài chính hơn là phát triển web hoặc di động. Do đó, nó không đủ để bảo vệ khỏi các lỗ hổng đã biết. Thay vào đó, bạn sẽ cần học một triết lý phát triển mới.

Chuẩn bị cho Thất bại

Bất kỳ hợp đồng không tầm thường nào cũng sẽ có sai sót trong đó. Do đó, mã của bạn phải có khả năng phản hồi các lỗi và lỗ hổng bảo mật một cách duyên dáng.

  • Tạm dừng hợp đồng khi mọi thứ diễn ra không như ý muốn (“bộ ngắt mạch”).
  • Quản lý số tiền có rủi ro (giới hạn tỷ lệ, mức sử dụng tối đa).
  • Có một đường dẫn nâng cấp hiệu quả để sửa lỗi và cải tiến.

Triển khai cẩn thận

Tốt hơn hết là bạn nên bắt lỗi trước khi phát hành bản chính thức đầy đủ.

  • Kiểm tra các hợp đồng một cách kỹ lưỡng và thêm các bài kiểm tra bất cứ khi nào các vectơ tấn công mới được phát hiện.
  • Cung cấp tiền thưởng lỗi bắt đầu từ bản phát hành alpha testnet.
  • Triển khai theo từng giai đoạn, với mức độ sử dụng và thử nghiệm ngày càng tăng trong từng giai đoạn.

Giữ hợp đồng đơn giản

Sự phức tạp làm tăng khả năng xảy ra lỗi.


  • Đảm bảo logic hợp đồng đơn giản.
  • Mô-đun hóa mã để giữ các hợp đồng và chức năng nhỏ.
  • Sử dụng các công cụ hoặc mã đã được viết sẵn nếu có thể (ví dụ: không cuộn trình tạo số ngẫu nhiên của riêng bạn).
  • Thích sự rõ ràng cho hiệu suất bất cứ khi nào có thể.
  • Chỉ sử dụng blockchain cho các phần trong hệ thống của bạn yêu cầu phân quyền.

Ở lại đến ngày

Theo dõi các phát triển bảo mật mới.

  • Kiểm tra các hợp đồng của bạn xem có bất kỳ lỗi mới nào ngay khi nó được phát hiện không.
  • Nâng cấp lên phiên bản mới nhất của bất kỳ công cụ hoặc thư viện nào càng sớm càng tốt.
  • Áp dụng các kỹ thuật bảo mật mới có vẻ hữu ích.

Hãy nhận biết về sự bất đồng của EVM

Mặc dù phần lớn kinh nghiệm lập trình của bạn sẽ liên quan đến lập trình Ethereum, nhưng có một số cạm bẫy cần lưu ý.

  • Hãy cực kỳ cẩn thận với các cuộc gọi hợp đồng bên ngoài, có thể thực thi mã độc hại và thay đổi quy trình kiểm soát.
  • Hiểu rằng các chức năng công khai của bạn là công khai và có thể được gọi là ác ý và theo bất kỳ thứ tự nào. Dữ liệu cá nhân trong hợp đồng thông minh cũng có thể xem được bởi bất kỳ ai.
  • Lưu ý chi phí khí đốt và giới hạn khí khối.
  • Lưu ý rằng dấu thời gian không chính xác trên blockchain: các thợ đào có thể ảnh hưởng đến thời gian thực hiện một giao dịch trong khoảng thời gian vài giây.
  • Tính ngẫu nhiên là không tầm thường trên blockchain, hầu hết các cách tiếp cận để tạo số ngẫu nhiên đều có thể chơi được trên blockchain.

Sự cân bằng cơ bản

Có nhiều sự cân bằng cơ bản cần xem xét khi đánh giá cấu trúc và tính bảo mật của hệ thống hợp đồng thông minh. Khuyến nghị chung cho bất kỳ hệ thống hợp đồng thông minh nào là xác định sự cân bằng thích hợp cho những đánh đổi cơ bản này.

Một hệ thống hợp đồng thông minh lý tưởng từ xu hướng kỹ thuật phần mềm là mô-đun, sử dụng lại mã thay vì sao chép nó và hỗ trợ các thành phần có thể nâng cấp. Một hệ thống hợp đồng thông minh lý tưởng từ xu hướng kiến ​​trúc an toàn có thể chia sẻ suy nghĩ này, đặc biệt là trong trường hợp các hệ thống hợp đồng thông minh phức tạp hơn.

Tuy nhiên, có những ngoại lệ quan trọng trong đó các phương pháp hay nhất về bảo mật và kỹ thuật phần mềm có thể không phù hợp với nhau. Trong mỗi trường hợp, sự cân bằng thích hợp có được bằng cách xác định sự kết hợp tối ưu của các thuộc tính dọc theo các kích thước của hệ thống hợp đồng như:

  • Cứng nhắc so với có thể nâng cấp
  • Nguyên khối so với Mô-đun
  • Sao chép so với Tái sử dụng
Cứng nhắc so với có thể nâng cấp

Mặc dù nhiều tài nguyên, bao gồm cả tài nguyên này, nhấn mạnh các đặc điểm dễ uốn như các mẫu Có thể giết, Có thể nâng cấp hoặc Có thể sửa đổi, nhưng có một sự cân bằng cơ bản giữa tính dễ uốn và bảo mật.

Các mẫu dễ uốn theo định nghĩa làm tăng thêm độ phức tạp và các bề mặt tấn công tiềm ẩn. Tính đơn giản đặc biệt hiệu quả so với sự phức tạp trong trường hợp hệ thống hợp đồng thông minh thực hiện một bộ chức năng rất hạn chế trong một khoảng thời gian giới hạn được xác định trước, ví dụ: hệ thống hợp đồng bán mã thông báo khung thời gian hữu hạn không quản lý.

Nguyên khối so với Mô-đun

Một hợp đồng độc lập giữ cho tất cả kiến ​​thức có thể nhận dạng cục bộ và có thể đọc được. Mặc dù có rất ít hệ thống hợp đồng thông minh được coi trọng tồn tại dưới dạng nguyên khối, nhưng có một lập luận được đưa ra để xác định vị trí cực đoan của dữ liệu và luồng — ví dụ: trong trường hợp tối ưu hóa hiệu quả xem xét mã.

Cũng như các phương pháp đánh đổi khác được đề cập ở đây, các phương pháp hay nhất về bảo mật có xu hướng rời xa các phương pháp hay nhất về kỹ thuật phần mềm trong các hợp đồng ngắn hạn đơn giản và xu hướng hướng tới các phương pháp hay nhất về kỹ thuật phần mềm trong trường hợp các hệ thống hợp đồng vĩnh viễn phức tạp hơn.

Sao chép so với Tái sử dụng

Một hệ thống hợp đồng thông minh từ góc độ kỹ thuật phần mềm mong muốn tối đa hóa việc tái sử dụng khi hợp lý. Có nhiều cách để sử dụng lại mã hợp đồng trong Solidity. Sử dụng các hợp đồng đã được triển khai trước đó đã được chứng minh mà bạn sở hữu thường là cách an toàn nhất để sử dụng lại mã.

Việc sao chép thường được dựa vào trong các trường hợp không có sẵn các hợp đồng tự triển khai trước đó. Những nỗ lực chẳng hạn như Thư viện Solidity của OpenZeppelin tìm cách cung cấp các mẫu sao cho mã an toàn có thể được sử dụng lại mà không bị trùng lặp. Mọi phân tích bảo mật hợp đồng phải bao gồm bất kỳ mã nào được sử dụng lại mà trước đó chưa thiết lập mức độ tin cậy tương xứng với số tiền có rủi ro trong hệ thống hợp đồng thông minh mục tiêu.

Việc xây dựng và khởi chạy các ứng dụng trên Ethereum được cho là biên giới thú vị nhất đối với các kỹ sư phần mềm ngày nay, nhưng nó đòi hỏi mô hình mối đe dọa liên tục, kiểm tra bảo mật và lập kế hoạch ứng phó sự cố.

Nhóm Siêng năng ở đây để giúp bạn cảnh giác và xây dựng sự tự tin trong việc triển khai của mình.

Đặt kiểm tra điểm bảo mật Blockchain

Các bài đánh giá trong 1 ngày của chúng tôi giúp bạn xây dựng bảo mật cho mã blockchain của mình ngay từ đầu để bạn có thể tiết kiệm thời gian và tiền bạc về lâu dài. Đặt trước cho bạn ngay hôm nay Bảo mật Hợp đồng thông minh Bản tin Đăng ký nhận bản tin của chúng tôi để biết tin tức mới nhất về Ethereum, giải pháp doanh nghiệp, tài nguyên dành cho nhà phát triển và hơn thế nữa.Cách xây dựng một sản phẩm chuỗi khối thành côngHội thảo trên web

Cách xây dựng một sản phẩm chuỗi khối thành công

Cách thiết lập và chạy Ethereum NodeHội thảo trên web

Cách thiết lập và chạy Ethereum Node

Cách xây dựng API Ethereum của riêng bạnHội thảo trên web

Cách xây dựng API Ethereum của riêng bạn

Cách tạo mã thông báo xã hộiHội thảo trên web

Cách tạo mã thông báo xã hội

Sử dụng các công cụ bảo mật trong phát triển hợp đồng thông minhHội thảo trên web

Sử dụng các công cụ bảo mật trong phát triển hợp đồng thông minh

Tương lai của tài sản kỹ thuật số tài chính và DeFiHội thảo trên web

Tương lai của tài chính: Tài sản kỹ thuật số và DeFi

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map