Tôi bị chế giễu vì nói với mọi người rằng việc sử dụng khóa riêng dạng văn bản thuần là không tốt. Nhưng đây là năm 2026, và tôi vẫn đang phải chiến đấu với những người nói rằng điều đó là ổn, trong khi các vụ rò rỉ khóa là nguồn gốc số 1 của các vụ hack năm ngoái. Hãy để tôi giải thích những phản biện phổ biến mà tôi nhận được và tại sao chúng sai. 👇
1. "Chỉ là khóa triển khai của tôi, không phải khóa quản trị của tôi" Một thực tiễn tốt nhất cho việc phát triển hợp đồng thông minh là chuyển quyền sở hữu của hợp đồng thông minh sang một ví khác với ví mà bạn đã triển khai. Chúng tôi khuyên bạn nên đưa các kịch bản triển khai vào phạm vi kiểm toán để kiểm tra điều này.
Việc có một ví tạm thời như thế này là điều tốt, nhưng nó vẫn để bạn mở: - địa chỉ triển khai thường được gán nhãn trên các trình khám phá để tạo độ tin cậy - bạn vẫn có tiền trong đó có thể bị đánh cắp - chúng ta đã thấy NHIỀU cuộc tấn công mà ai đó quên chuyển quyền sở hữu
Tôi đã tham gia các cuộc gọi warroom mà câu trả lời là "khóa triển khai là quản trị viên, và nó đã bị rò rỉ". Hầu hết các dự án không kiểm tra mã triển khai của họ. Vì vậy, khi bạn nói "chỉ là khóa triển khai của tôi", tôi nói "bạn đã không kiểm tra triển khai của mình, bạn sẽ làm hỏng nó"
Và cuối cùng, nếu bạn đang sử dụng khóa triển khai trong một tệp .env, bạn đang hình thành thói quen chấp nhận các khóa dạng văn bản thuần. Hãy nhớ điều này: "Những gì bạn thực hành trong môi trường phát triển, bạn sẽ làm trong môi trường sản xuất" Và nếu bạn có các khóa riêng tư dạng văn bản thuần, tôi cá là bạn cũng không cẩn thận đâu.
2. “Tôi sử dụng .gitignore, tôi sẽ không đẩy nó lên nguồn” Phản biện thật tệ. React, solana/web3js và npm đều đã bị hack vào năm ngoái, và một số vụ hack đã tìm kiếm thông tin nhạy cảm trong các tệp .env của bạn. Nếu bạn đã chạy “npm install” - bạn có thể đã gặp rắc rối.
Không cần phải nói đến các tiện ích mở rộng IDE độc hại và các phần mềm độc hại khác mà bạn có thể cài đặt, cũng như có thể truy cập vào các tệp của bạn. Những người có phản biện này cũng thường nói "Tôi không phải là người mới, tôi sẽ cẩn thận" nhưng rõ ràng họ không hiểu cách mà chuỗi cung ứng phần mềm hoạt động.
3. "Thật là phiền phức quá, chỉ đơn giản hơn khi sử dụng khóa văn bản" Chà, cuộc sống sẽ dễ dàng hơn khi bạn có $0, bạn không phải lo lắng về việc giữ tiền của mình an toàn khi bạn không có tiền. Vậy nên tôi nghĩ đây là một điểm hợp lý.
Nhưng nghiêm túc mà nói, có những điều bạn có thể làm. Hầu hết các framework phát triển hợp đồng thông minh đều có công cụ mã hóa, như foundry, moccasin và hardhat. Tất cả chúng đều cho phép bạn mã hóa khóa của mình chỉ với một lệnh, và giải mã bằng mật khẩu khi chạy script. Điều này rất tiện lợi.
Tất cả những gì tôi yêu cầu là chúng ta không bình thường hóa việc sử dụng khóa riêng dạng văn bản thuần túy. Bạn không nhận được những tin nhắn trực tiếp mà tôi và SEAL nhận được từ những người đã mất tất cả. Nỗi đau là có thật, đừng bình thường hóa nó. Các mô hình ngôn ngữ lớn (LLMs) được đào tạo trên thực hành xấu này và vẫn khuyến nghị nó, chúng ta phải dừng lại để các LLM dừng lại.
467