Các bạn crypto-enthusiasts thân mến! Tôi đã quyết định chia sẻ kinh nghiệm của mình về việc tạo ra các hợp đồng thông minh. Nói thật, khi tôi mới bắt đầu, tôi gần như đã phải giật tóc mình vì tất cả những thuật ngữ và quy trình này. Nhưng Cố lên theo thứ tự.
Lựa chọn blockchain - bước đầu tiên và quan trọng nhất
Trước tiên, cần xác định với blockchain. Tôi đã chọn Ethereum, mặc dù thật lòng mà nói, phí giao dịch ở đó làm tôi thật sự phát điên! Cũng có những lựa chọn khác - như BNB Chain hoặc Solana. Mỗi loại đều có những ưu và nhược điểm riêng.
Sự khác biệt là gì khi viết mã, bạn sẽ nói? Rất lớn! Một số blockchain nhanh hơn và rẻ hơn, nhưng ít bảo mật hơn. Những blockchain khác thì ngược lại. Ngoài ra, sự lựa chọn blockchain còn ảnh hưởng đến đối tượng sẽ sử dụng hợp đồng của bạn.
Ngôn ngữ lập trình - Solidity điều hành
Hầu hết mọi người đều viết bằng Solidity. Vâng, bạn có thể sử dụng các ngôn ngữ khác, nhưng tại sao phải làm phức tạp? Solidity được thiết kế đặc biệt cho các hợp đồng thông minh và có cú pháp rõ ràng.
solidity
pragma solidity ^0.8.0;
hợp đồng MoyPervyyKontrakt {
string public privet = "Xin chào, blockchain!";
}
Đây là một thứ đơn giản như vậy đã có thể được coi là một hợp đồng. Nhưng các dự án thực tế, tất nhiên, phức tạp hơn nhiều.
Môi trường phát triển - không có công cụ thì không đi đâu cả
Tôi bắt đầu với Remix IDE - đây là một môi trường trình duyệt, nơi bạn có thể viết, biên dịch và kiểm tra các hợp đồng ngay trên internet. Thật tiện lợi cho người mới bắt đầu! Sau đó, tôi chuyển sang các công cụ tiên tiến hơn như Hardhat hoặc Truffle.
Kiểm tra - giai đoạn căng thẳng nhất
Đây là nơi bắt đầu "vui vẻ" nhất! Khi bạn viết hợp đồng, bạn cần phải kiểm tra nó. Và ở đây tôi đã dẫm phải mọi cạm bẫy có thể.
Một lần, tôi đã tạo hợp đồng cho một trò chơi mini với các đồng tiền, nhưng quên thêm kiểm tra để không rút tiền nhiều lần. Kết quả? Một kẻ thông minh trong nhóm thử nghiệm suýt khiến dự án phá sản khi rút tiền theo vòng. May mắn thay, đó chỉ là testnet!
Triển khai - điểm không thể quay lại
Sau tất cả các bài kiểm tra, hợp đồng cần được triển khai ( vào blockchain. Và ở đây điều quan trọng là phải hiểu - đây là một quá trình không thể đảo ngược! Mã đã vào blockchain không thể thay đổi. Chỉ có thể triển khai phiên bản mới.
Một lần tôi quên xóa dòng mã thử nghiệm. Tôi phải làm hợp đồng mới và giải thích cho người dùng tại sao hợp đồng cũ không còn hoạt động. Xấu hổ cho tôi!
Lỗ hổng - cơn ác mộng của bất kỳ nhà phát triển nào
An toàn trong hợp đồng thông minh là một con bò thiêng. Chỉ cần một sai sót nhỏ có thể tốn hàng triệu. Bạn còn nhớ câu chuyện về The DAO chứ? Ở đó, một hacker đã đánh cắp ) triệu do lỗ hổng trong mã.
Tôi nhất định kiểm tra các hợp đồng của mình tại:
tràn
tấn công đăng nhập lại
lỗ hổng quản lý truy cập
và còn rất nhiều thứ khác
Lời khuyên của tôi cho người mới bắt đầu
Đừng phát minh lại chiếc xe đạp! Hãy sử dụng các thư viện có sẵn như OpenZeppelin. Chúng đã được kiểm chứng theo thời gian và bởi cộng đồng.
Và vâng, đừng vội vã viết những hợp đồng phức tạp cho các sàn giao dịch hoặc các giao thức DeFi. Hãy bắt đầu từ những điều đơn giản - token, bỏ phiếu, trò chơi đơn giản.
Và nữa - luôn suy nghĩ về những gì có thể đi sai. Trong thế giới của hợp đồng thông minh, không có quyền sai lầm. Hãy kiểm tra từng chức năng không phải là nó nên hoạt động như thế nào, mà là nó có thể bị kẻ xấu phá hủy như thế nào.
Chúc bạn may mắn trong thế giới blockchain! Còn tôi đi viết một hợp đồng mới, mà tôi hy vọng sẽ không bị hack sau một giờ khởi chạy.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Cách viết hợp đồng thông minh - kinh nghiệm cá nhân của tôi
Các bạn crypto-enthusiasts thân mến! Tôi đã quyết định chia sẻ kinh nghiệm của mình về việc tạo ra các hợp đồng thông minh. Nói thật, khi tôi mới bắt đầu, tôi gần như đã phải giật tóc mình vì tất cả những thuật ngữ và quy trình này. Nhưng Cố lên theo thứ tự.
Lựa chọn blockchain - bước đầu tiên và quan trọng nhất
Trước tiên, cần xác định với blockchain. Tôi đã chọn Ethereum, mặc dù thật lòng mà nói, phí giao dịch ở đó làm tôi thật sự phát điên! Cũng có những lựa chọn khác - như BNB Chain hoặc Solana. Mỗi loại đều có những ưu và nhược điểm riêng.
Sự khác biệt là gì khi viết mã, bạn sẽ nói? Rất lớn! Một số blockchain nhanh hơn và rẻ hơn, nhưng ít bảo mật hơn. Những blockchain khác thì ngược lại. Ngoài ra, sự lựa chọn blockchain còn ảnh hưởng đến đối tượng sẽ sử dụng hợp đồng của bạn.
Ngôn ngữ lập trình - Solidity điều hành
Hầu hết mọi người đều viết bằng Solidity. Vâng, bạn có thể sử dụng các ngôn ngữ khác, nhưng tại sao phải làm phức tạp? Solidity được thiết kế đặc biệt cho các hợp đồng thông minh và có cú pháp rõ ràng.
solidity pragma solidity ^0.8.0;
hợp đồng MoyPervyyKontrakt { string public privet = "Xin chào, blockchain!"; }
Đây là một thứ đơn giản như vậy đã có thể được coi là một hợp đồng. Nhưng các dự án thực tế, tất nhiên, phức tạp hơn nhiều.
Môi trường phát triển - không có công cụ thì không đi đâu cả
Tôi bắt đầu với Remix IDE - đây là một môi trường trình duyệt, nơi bạn có thể viết, biên dịch và kiểm tra các hợp đồng ngay trên internet. Thật tiện lợi cho người mới bắt đầu! Sau đó, tôi chuyển sang các công cụ tiên tiến hơn như Hardhat hoặc Truffle.
Kiểm tra - giai đoạn căng thẳng nhất
Đây là nơi bắt đầu "vui vẻ" nhất! Khi bạn viết hợp đồng, bạn cần phải kiểm tra nó. Và ở đây tôi đã dẫm phải mọi cạm bẫy có thể.
Một lần, tôi đã tạo hợp đồng cho một trò chơi mini với các đồng tiền, nhưng quên thêm kiểm tra để không rút tiền nhiều lần. Kết quả? Một kẻ thông minh trong nhóm thử nghiệm suýt khiến dự án phá sản khi rút tiền theo vòng. May mắn thay, đó chỉ là testnet!
Triển khai - điểm không thể quay lại
Sau tất cả các bài kiểm tra, hợp đồng cần được triển khai ( vào blockchain. Và ở đây điều quan trọng là phải hiểu - đây là một quá trình không thể đảo ngược! Mã đã vào blockchain không thể thay đổi. Chỉ có thể triển khai phiên bản mới.
Một lần tôi quên xóa dòng mã thử nghiệm. Tôi phải làm hợp đồng mới và giải thích cho người dùng tại sao hợp đồng cũ không còn hoạt động. Xấu hổ cho tôi!
Lỗ hổng - cơn ác mộng của bất kỳ nhà phát triển nào
An toàn trong hợp đồng thông minh là một con bò thiêng. Chỉ cần một sai sót nhỏ có thể tốn hàng triệu. Bạn còn nhớ câu chuyện về The DAO chứ? Ở đó, một hacker đã đánh cắp ) triệu do lỗ hổng trong mã.
Tôi nhất định kiểm tra các hợp đồng của mình tại:
Lời khuyên của tôi cho người mới bắt đầu
Đừng phát minh lại chiếc xe đạp! Hãy sử dụng các thư viện có sẵn như OpenZeppelin. Chúng đã được kiểm chứng theo thời gian và bởi cộng đồng.
Và vâng, đừng vội vã viết những hợp đồng phức tạp cho các sàn giao dịch hoặc các giao thức DeFi. Hãy bắt đầu từ những điều đơn giản - token, bỏ phiếu, trò chơi đơn giản.
Và nữa - luôn suy nghĩ về những gì có thể đi sai. Trong thế giới của hợp đồng thông minh, không có quyền sai lầm. Hãy kiểm tra từng chức năng không phải là nó nên hoạt động như thế nào, mà là nó có thể bị kẻ xấu phá hủy như thế nào.
Chúc bạn may mắn trong thế giới blockchain! Còn tôi đi viết một hợp đồng mới, mà tôi hy vọng sẽ không bị hack sau một giờ khởi chạy.