Hợp đồng thông minh là hợp đồng tự thực hiện trên blockchain. Chúng loại bỏ nhu cầu về những người trung gian như luật sư hoặc ngân hàng bằng cách tự động hóa quá trình thực hiện và duy trì các điều khoản của hợp đồng. Hợp đồng thông minh có thể chạy tự động mà không cần bất kỳ sự tham gia nào của con người, an toàn và không bị can thiệp. Chúng hấp dẫn những người, công ty và chính phủ muốn tự động hóa các thủ tục và cắt giảm chi phí giao dịch vì khả năng này.

Khả năng của hợp đồng thông minh trong việc loại bỏ nhu cầu về trung gian có thể làm giảm chi phí giao dịch, tăng tốc giao dịch và tăng tính minh bạch, đây là một trong những lợi thế chính của chúng. Vì dữ liệu được ghi lại trên một sổ cái phi tập trung, không thể xâm phạm, hợp đồng thông minh cũng có thể cung cấp tính bảo mật và quyền riêng tư cao hơn so với hợp đồng thông thường.

Bài viết này đi sâu hơn vào hợp đồng thông minh, giải thích thêm về cách chúng hoạt động và cách chúng có thể bị hack. Người đọc có thể mong đợi tìm hiểu những điều sau:

  • Hợp đồng thông minh hoạt động như thế nào

  • Hợp đồng thông minh có thể bị hack như thế nào

    • Tấn công tái nhập

    • Tràn/Thiếu

    • Sự phụ thuộc vào dấu thời gian

    • Đúc và đưa mã thông báo vào danh sách đen

    • Tính toán không chính xác

    • Thư viện và phụ thuộc độc hại

    • Chạy phía trước

  • Ví dụ về các thủ thuật thực tế

  • Chiến lược phòng ngừa và giảm thiểu

Chúng ta hãy cùng bắt đầu ngay nhé!

Hợp đồng thông minh hoạt động như thế nào

Hợp đồng thông minh hoạt động bằng cách sử dụng mã hóa để thực thi các điều khoản của thỏa thuận. Hợp đồng sẽ tự động chạy khi các tình huống được thiết lập trước được đáp ứng sau khi mã được đăng lên blockchain. Không thể thay đổi sau thời điểm đó.

Ví dụ, nếu hai bên đồng ý ký hợp đồng thông minh để bán nhà, sau khi thanh toán và blockchain xác minh, hợp đồng sẽ ngay lập tức chuyển quyền sở hữu ngôi nhà cho người mua.

Nhiều ngành công nghiệp, bao gồm tài chính, quản lý chuỗi cung ứng, bất động sản và các ngành khác, có thể sử dụng hợp đồng thông minh. Công nghệ có khả năng thay đổi cách chúng ta tiến hành kinh doanh và giao tiếp với nhau khi nó phát triển và được sử dụng phổ biến hơn.

Hợp đồng thông minh có thể bị hack như thế nào

Vì chúng có thể tự động hóa các thỏa thuận hợp đồng mà không cần sử dụng trung gian, hợp đồng thông minh đã được ca ngợi là công nghệ thay đổi mô hình. Giống như bất kỳ công nghệ nào, chúng không miễn nhiễm với các lỗi và tin tặc liên tục tìm kiếm các phương pháp mới để tận dụng chúng. Sau đây là một số vụ hack hợp đồng thông minh điển hình nhất:

1. Tấn công tái nhập

Tấn công reentrancy có thể khó phát hiện vì mã dường như đang hoạt động đúng, cho phép kẻ tấn công khai thác lỗ hổng nhiều lần cho đến khi thành công. Vụ vi phạm DAO, trong đó kẻ tấn công đã đánh cắp ether trị giá 50 triệu đô la bằng cách liên tục lấy tiền từ hợp đồng DAO, là một trường hợp tấn công reentrancy nổi tiếng.

Các nhà phát triển có thể sử dụng nhiều kỹ thuật khác nhau để giảm nguy cơ tấn công reentrancy. Ví dụ, họ có thể tạo khóa mutex để cấm thực hiện đồng thời cùng một hợp đồng hoặc đặt giới hạn tiêu thụ gas để dừng các hàm đệ quy dài.

2. Tràn/Tràn dưới

Khi kết quả của một phép toán vượt quá giới hạn của một kiểu dữ liệu, hiện tượng tràn số nguyên và tràn số nguyên dưới sẽ xảy ra.

Hậu quả của tràn số nguyên và tràn số nguyên có thể là thảm họa. Ví dụ, người dùng có thể rút tiền và kết thúc với số dư âm. Kẻ tấn công cũng có thể tạo ra một giá trị cực kỳ lớn để vượt qua hạn chế hoặc phát động một cuộc tấn công từ chối dịch vụ.

Các nhà phát triển có thể ngăn chặn tràn số nguyên và tràn số nguyên bằng cách sử dụng các kiểu dữ liệu như BigInt hoặc uint256 có thể xử lý các số nguyên lớn. Để đảm bảo rằng các giá trị đầu vào nằm trong phạm vi cho phép, họ có thể kết hợp thêm các kiểm tra cho các điều kiện biên.

3. Sự phụ thuộc vào tem thời gian

Sự phụ thuộc vào dấu thời gian là một vấn đề khác có thể dẫn đến hành vi không mong muốn. Hợp đồng thông minh có thể sử dụng dấu thời gian để xác thực các trường hợp nhạy cảm về thời gian, bao gồm cả việc người dùng có đủ điều kiện để được thanh toán hay không. Kẻ tấn công có thể lợi dụng điểm yếu này bằng cách thay đổi dấu thời gian hoặc bắt đầu giao dịch tại một thời điểm cụ thể để khiến một điều kiện xảy ra trước khi nó nên xảy ra.

Các nhà phát triển có thể xác nhận tính hợp lệ của các trường hợp cụ thể mà không cần dựa vào dấu thời gian bằng cách sử dụng số khối thay thế. Họ cũng có thể đặt ra các giới hạn thời gian để ngăn chặn việc thực hiện hợp đồng vượt quá một khoảng thời gian nhất định. Các nhà phát triển cũng có thể lấy dấu thời gian chính xác từ các nguồn thời gian bên ngoài đáng tin cậy.

4. Đúc và đưa mã thông báo vào danh sách đen

Tin tặc có thể sử dụng các chức năng đúc và danh sách đen trong hợp đồng thông minh để thêm, xóa hoặc hạn chế quyền truy cập của người dùng vào mã thông báo. Ví dụ, tin tặc có thể tạo ra vô số mã thông báo bằng cách sử dụng chức năng đúc, sau đó họ có thể bán để kiếm lời.

Ngoài ra, kẻ tấn công có thể sử dụng tính năng danh sách đen để từ chối quyền truy cập vào mã thông báo của người dùng cụ thể, điều này sẽ làm xói mòn lòng tin của người dùng. Để ngăn chặn những cuộc tấn công kiểu này, các nhà phát triển hợp đồng thông minh phải xây dựng đúng cơ chế đúc và danh sách đen và kiểm tra chúng một cách nghiêm ngặt.

5. Tính toán không chính xác

Để hoạt động bình thường, hợp đồng thông minh phụ thuộc vào các phép tính chính xác. Các ước tính không chính xác có thể dẫn đến kết quả không mong muốn. Ví dụ, chủ sở hữu hợp đồng có thể mất tiền nếu hợp đồng thông minh có lỗi tính toán cho phép kẻ tấn công vượt qua một số hạn chế nhất định hoặc truy cập vào số tiền mặt mà chúng không được phép. Hơn nữa, người tiêu dùng có thể trở nên bối rối và mất lòng tin vào hợp đồng thông minh nếu lỗi tính toán tạo ra số dư mã thông báo không chính xác.

6. Thư viện và phụ thuộc độc hại

Hợp đồng thông minh thường sử dụng các thư viện và phụ thuộc từ các nguồn khác. Các phụ thuộc hoặc thư viện này có thể cung cấp cho kẻ tấn công quyền truy cập vào hợp đồng hoặc tiền của hợp đồng nếu chúng có ác ý hoặc bị xâm phạm. Ví dụ, kẻ tấn công có thể lợi dụng việc hợp đồng thông minh sử dụng thư viện có cửa hậu để chiếm đoạt hợp đồng. Ngoài ra, nếu thư viện dễ bị tấn công, kẻ tấn công có thể tận dụng hợp đồng thông minh để có lợi cho mình.

7. Chạy phía trước

Hành động di chuyển trước trong hàng đợi thực hiện của một giao dịch để chuộc lại giao dịch đó trước khi một giao dịch tương lai đã biết diễn ra được gọi là chạy trước trong lĩnh vực blockchain và tiền điện tử. Để trích xuất các khoản lợi nhuận có thể có và cắt tiền mặt, điều này thường được thực hiện bằng cách kiểm tra các hướng dẫn và chức năng hợp đồng thông minh chưa từng được sử dụng trong hợp đồng thông minh trước đây.

Khi kẻ tấn công theo dõi một giao dịch hoán đổi sau khi nó được phát sóng nhưng trước khi nó hoàn tất, chúng đang thực hiện một cuộc tấn công chạy trước. Sau đó, chúng sắp xếp lại các giao dịch theo hướng có lợi cho chúng. Điều này thường đạt được bằng cách một thợ đào hoặc bot thêm giao dịch mới của chúng vào trước giao dịch hiện có ngay lập tức. Giao dịch độc hại được thực hiện trước khi giao dịch hiện có được hoàn tất.

Ví dụ về các vụ hack hợp đồng thông minh trong thế giới thực

Mặc dù hợp đồng thông minh được thiết kế để bảo mật, nhưng đôi khi chúng bị vi phạm hoặc sử dụng cho mục đích xấu. Sau đây là một số trường hợp hack hợp đồng thông minh thực tế:

  • KingDice Hack

Dựa trên blockchain Ethereum, KingDice là một mạng lưới cờ bạc phi tập trung. Vào tháng 8 năm 2017, một hacker đã lấy đi gần 300.000 đô la Ether bằng cách lợi dụng một lỗ hổng trong mã hợp đồng thông minh.

  • Khai thác Uniswap V2

Vào tháng 11 năm 2020, một hacker đã lợi dụng lỗ hổng trong hợp đồng thông minh Uniswap V2 để đánh cắp gần 300.000 đô la Bitcoin. Để thao túng giá của một token và tận dụng cơ hội chênh lệch giá, kẻ tấn công đã sử dụng một khoản vay flash.

  • Cuộc tấn công DAO

Được phát triển trên blockchain Ethereum, DAO (Tổ chức tự trị phi tập trung) là một quỹ đầu tư dựa trên hợp đồng thông minh. Vào tháng 6 năm 2016, một hacker đã đánh cắp gần 50 triệu đô la Ethereum từ DAO bằng cách lợi dụng một lỗ hổng trong lập trình. Vụ hack đã khiến blockchain Ethereum phải hard fork, tạo ra Ethereum Classic.

  • Ví Parity Hack

Vào tháng 7 năm 2017, một hacker đã lấy đi gần 30 triệu đô la Ethereum bằng cách lợi dụng một lỗ hổng trong ví đa chữ ký Parity. Do lỗi trong lập trình hợp đồng thông minh, hacker đã có thể kiểm soát ví và chuyển toàn bộ số tiền sang một tài khoản khác.

Chiến lược phòng ngừa và giảm thiểu

Các nhà phát triển có thể sử dụng các biện pháp được khuyến nghị sau đây để tạo ra các hợp đồng thông minh an toàn:

  1. Sử dụng các thư viện và phụ thuộc đã được thiết lập và kiểm tra kỹ lưỡng. Sử dụng các thư viện và phụ thuộc đã được thiết lập và kiểm tra kỹ lưỡng có thể giúp giảm nguy cơ đưa lỗ hổng vào hợp đồng thông minh. Nên tránh sử dụng mã chưa được kiểm tra hoặc không đáng tin cậy và các nhà phát triển nên kiểm tra cẩn thận tính bảo mật của bất kỳ mã của bên thứ ba nào mà họ sử dụng.

  2. Triển khai kiểm tra điều kiện biên. Hợp đồng thông minh nên triển khai kiểm tra điều kiện biên, bao gồm các giá trị tham số đầu vào tối đa và tối thiểu. Bằng cách này, các cuộc tấn công tràn số nguyên và tràn số nguyên có thể được giảm thiểu. Hiệu quả và việc sử dụng rộng rãi các công nghệ hợp đồng thông minh phụ thuộc vào việc ngăn ngừa và giảm thiểu các cuộc tấn công hợp đồng thông minh.

  3. Sử dụng các thư viện và phụ thuộc được thiết lập tốt và đã được kiểm tra có thể giúp giảm nguy cơ đưa lỗ hổng vào hợp đồng thông minh. Nên tránh sử dụng mã chưa được kiểm tra hoặc không đáng tin cậy và các nhà phát triển nên kiểm tra cẩn thận tính bảo mật của bất kỳ mã của bên thứ ba nào mà họ sử dụng.

  4. Tránh phụ thuộc vào dấu thời gian. Để giảm khả năng thao túng dấu thời gian, các nhà phát triển nên tránh sử dụng dấu thời gian làm nền tảng duy nhất để thực hiện logic hợp đồng thông minh. Khi đáp ứng các yêu cầu cụ thể, họ có thể sử dụng các kỹ thuật thay thế như số khối hoặc băm khối.

  5. Kiểm tra toàn diện. Việc tìm và sửa chữa các lỗ hổng hợp đồng thông minh phụ thuộc vào việc kiểm tra toàn diện. Các nhà phát triển nên chạy thử nghiệm đơn vị và tích hợp để xác nhận rằng hợp đồng hoạt động như mong đợi và xác định bất kỳ vấn đề tiềm ẩn nào ngay từ đầu.

  6. Triển khai đúng các chức năng đúc và lập danh sách đen. Các nhà phát triển nên cẩn thận khi triển khai các chức năng đúc và lập danh sách đen để ngăn chặn truy cập và thao túng không mong muốn.

  7. Đảm bảo tính toán chính xác. Hoạt động đúng đắn của hợp đồng thông minh phụ thuộc vào tính toán chính xác. Khi thực hiện các phép toán khó, các nhà phát triển nên sử dụng các thư viện đã được chứng minh và đảm bảo tính toán của họ là chính xác.

  8. Kiểm toán bảo mật. Kiểm toán bảo mật là một kỹ thuật hữu ích để xác định điểm yếu trong hợp đồng thông minh. Trước khi triển khai hợp đồng thông minh, các nhà phát triển có thể thuê các công ty kiểm toán hợp đồng thông minh để kiểm toán. Các cuộc kiểm toán như vậy có thể giúp các nhóm tìm và khắc phục mọi sự cố tiềm ẩn trước khi mã được đưa vào sản xuất.

  9. Xác minh chính thức. Đây là một kỹ thuật toán học để xác nhận tính chính xác của hợp đồng thông minh. Phương pháp này có thể hỗ trợ đảm bảo hợp đồng thông minh hoạt động theo đúng kế hoạch và an toàn.

  10. Tiền thưởng lỗi. Các nhà nghiên cứu bảo mật được khuyến khích phát hiện và báo cáo các lỗi hợp đồng thông minh bằng cách cung cấp tiền thưởng lỗi. Để tìm và khắc phục các vấn đề tiềm ẩn, các nhà phát triển có thể tiếp cận một nhóm lớn các chuyên gia bảo mật bằng cách trả tiền cho họ để tìm ra lỗ hổng.

Phần kết luận

Tóm lại, trong khi hợp đồng thông minh cung cấp một cách thức mang tính cách mạng để tự động hóa các giao dịch trên blockchain, chúng dễ bị hack và vi phạm bảo mật. Các nhà phát triển phải tuân thủ các biện pháp được khuyến nghị như kiểm toán hợp đồng thông minh và thử nghiệm bảo mật để ngăn chặn việc hack hợp đồng thông minh.

Các nhà phát triển có thể đảm bảo sức khỏe lâu dài của công nghệ blockchain và tạo ra một hệ sinh thái đáng tin cậy cho tất cả người dùng, không có nguy cơ bị hack hợp đồng thông minh. Họ có thể đạt được kết quả như vậy bằng cách đưa ra các thủ tục như tiền thưởng lỗi, xác minh chính thức và kiểm toán bảo mật. Cuối cùng, việc ưu tiên bảo mật là điều cần thiết cho sự phát triển của hợp đồng thông minh và lĩnh vực blockchain.

Bài đăng Hợp đồng thông minh có thể bị hack như thế nào? xuất hiện đầu tiên trên Coinfomania.