Bởi: Johan
Nền
TON (Mạng mở) là một nền tảng blockchain phi tập trung được thiết kế và phát triển ban đầu bởi nhóm Telegram. Mục tiêu của TON là cung cấp nền tảng blockchain hiệu suất cao và có thể mở rộng để hỗ trợ các ứng dụng phi tập trung (DApps) và hợp đồng thông minh quy mô lớn.
TON rất đặc biệt, dễ sử dụng và được tích hợp sâu với Telegram, khiến người bình thường dễ dàng sử dụng token, nó cũng phức tạp; , Nó có kiến trúc hoàn toàn khác với các blockchain khác và sử dụng ngôn ngữ hợp đồng thông minh FunC không chính thống. Hôm nay chúng ta sẽ thảo luận về các đặc điểm của TON và các vấn đề bảo mật tài sản người dùng từ góc độ tài khoản, mã thông báo và giao dịch.
Tính năng của TON
Tạo tài khoản< /strong>
Địa chỉ tài khoản TON được tạo khác với hầu hết các blockchain. Đó là địa chỉ hợp đồng thông minh. Đầu tiên, tạo khóa riêng tư TON chủ yếu sử dụng thuật toán Ed25519 để tạo khóa chung như sau:
Có hai dạng khóa chung, một là khóa chung ban đầu được tính từ khóa riêng, trong dạng: p>
E39ECDA0A7B0C60A7107EC43967829DBE8BC356A49B9DFC6186B3EAC74B5477D
Cái còn lại là khóa chung "được làm đẹp", mang theo khóa chung Một số thông tin và chữ số kiểm tra, dưới dạng: Pubjns2gp7DGCnEH7EOWeCnb6Lw1akm538YYaz6sdLVHfRB2
Sẽ quá ngây thơ khi nghĩ rằng bạn có thể lấy được địa chỉ tài khoản như Ethereum bằng cách lấy khóa chung của người dùng không đủ để tính địa chỉ tài khoản của người dùng. Chúng tôi vừa nói rằng địa chỉ tài khoản của người dùng là địa chỉ hợp đồng thông minh, nhưng chúng tôi thậm chí không có tài khoản. Làm cách nào để triển khai hợp đồng thông minh? Trình tự đúng là trước tiên phải tính địa chỉ, nhận số lượng token ban đầu và sau đó bạn có thể triển khai hợp đồng. Quá trình tính toán địa chỉ tài khoản được thể hiện trong hình bên dưới:
Địa chỉ của người dùng cũng có nhiều dạng, đầu tiên là dạng gốc, chẳng hạn như:
0:b4c1b2ede12aa76f4a44353944258bcc8f99e9c7c474711a152c78b43218e296< /p>
Và biểu mẫu thân thiện với người dùng, như:
Nếu bạn quan sát cẩn thận Những địa chỉ này, bạn có thể thấy rằng, Chúng chỉ khác nhau ở một vài ký tự ở đầu và cuối. `account_id` ở giữa giống nhau, nhưng chúng ta vẫn không thể thấy mối quan hệ giữa khóa chung và địa chỉ tài khoản. Trên thực tế, bí ẩn được ẩn giấu trong `dữ liệu ban đầu` lúc đầu, chứa khóa chung của Người dùng, thông qua đó người dùng kiểm soát quyền sở hữu hợp đồng ví. `workchainId` rất dễ hiểu. TON không chỉ là một chuỗi duy nhất. Nó bao gồm nhiều phân đoạn. Mỗi phân đoạn là một phần của toàn bộ mạng và xử lý một nhóm tài khoản và giao dịch cụ thể. Để định vị và quản lý các hợp đồng thông minh, cần phải chỉ rõ chúng nằm ở phân đoạn nào. Sự khác biệt giữa ``Bounceable` và `Non-bounceable` là gì? Điều này liên quan đến cơ chế hoạt động của hợp đồng thông minh, chúng ta cùng xem tiếp bên dưới nhé.
Hợp đồng ví
Sau đây là hợp đồng ví người dùng Một đoạn mã nguồn, bạn có thể thấy nó đọc 4 tham số khi nhận được tin nhắn của người dùng.
Có, khi triển khai hợp đồng ví của người dùng này, bạn cần chuyển vào một số tham số ban đầu, bao gồm thông tin public_key 256-bit, do đó đảm bảo rằng mỗi người dùng có một địa chỉ hợp đồng độc lập khi sử dụng cùng một mã hợp đồng. Tất cả các giao dịch do người dùng thực hiện cần phải ký `in_msg`, sau đó xác minh chữ ký (check_signature) thông qua hợp đồng ví của chính họ và sau đó hợp đồng sẽ gọi tất cả các hoạt động trên chuỗi. Từ đây, chúng tôi cũng có thể suy ra rằng khóa chung của người dùng thực sự có thể tương ứng với vô số địa chỉ ví. Bạn chỉ cần triển khai các ví có mã nguồn khác nhau hoặc dữ liệu khởi tạo khác nhau để có được các địa chỉ hợp đồng hoàn toàn khác nhau.
Mã thông báo Jetton
Mã thông báo là một tài sản trên chuỗi Biểu hiện nên nó là yếu tố cơ bản mà chúng ta cần phải hiểu. Jetton là dạng tiêu chuẩn của mã thông báo TON Jetton bao gồm hai phần của hợp đồng, Jetton-minter và Jetton-wallet:
Khi mã thông báo được phát hành, hợp đồng Jetton-minter sẽ được tạo và quá trình khởi tạo hợp đồng sẽ ghi lại tổng số lượng token, Quản trị viên, mã ví và các thông tin khác.
Khi token được phân phối cho người dùng, hợp đồng Minter sẽ triển khai hợp đồng ví cho người dùng và ghi lại số dư, quyền sở hữu và token Minter của người dùng khi hợp đồng được khởi tạo. Đối với các thông tin như địa chỉ hợp đồng, mã ví người dùng, v.v., mỗi người dùng sẽ triển khai một hợp đồng một cách độc lập. Lưu ý rằng hợp đồng được tạo ở đây là hợp đồng ví được sử dụng để quản lý mã thông báo Jetton cụ thể, khác với hợp đồng ví tài khoản của người dùng ở đây ghi lại địa chỉ ví tài khoản của người dùng.
Khi người dùng Alice chuyển tiền cho người dùng Bob, mối quan hệ gọi điện như sau:
< img src= "https://img.jinse.cn/7277374_image3.png">
Alice ký vào ứng dụng off-chain và thực hiện các hoạt động bằng cách gọi đến ví của mình hướng dẫn hợp đồng. Những hướng dẫn này còn gọi đến ví token của cô ấy để thực hiện chuyển khoản. Khi ví token của Bob nhận được token, nó sẽ thông báo hợp đồng ví của Bob (tức là địa chỉ Chủ sở hữu của ví Bob Jetton). Nếu còn Gas trong quá trình giao dịch, nó sẽ được trả về địa chỉ phản hồi, thường là hợp đồng tài khoản của Alice.
Đây là quá trình chuyển mã thông báo Jetton được phân tích cú pháp bởi trình duyệt Tonviewer:
Việc chuyển khoản ERC20 yêu cầu ít nhất một cuộc gọi hợp đồng và Chuyển khoản mã thông báo Jetton phải gọi tại ít nhất bốn hợp đồng Điều này được thực hiện để cho phép việc chuyển tiền được thực hiện đồng thời trên chuỗi và nâng cao hiệu quả giao dịch.
Giao dịch
Khi xảy ra tài khoản bằng TON Khi nhất định sự kiện xảy ra, nó sẽ kích hoạt một giao dịch. Sự kiện phổ biến nhất là "nhận được tin nhắn". Giao dịch bao gồm:
Tin nhắn đến ban đầu kích hoạt hợp đồng (có một phương thức kích hoạt đặc biệt)
Các hành động hợp đồng do tin nhắn đến gây ra, chẳng hạn như cập nhật bộ nhớ của hợp đồng (tùy chọn)
Tin nhắn gửi đi tới những người tham gia khác (tùy chọn)
< img src="https:// img.jinse.cn/7277376_image3.png">
Có một số đặc điểm cần lưu ý trong giao dịch:
1. Không đồng bộ: Giao dịch TON không được hoàn thành trong một cuộc gọi. Nó có thể cần chuyển tin nhắn đến nhiều hợp đồng thông minh khác nhau để thực hiện một loạt cuộc gọi. Do định tuyến khác nhau trong chuỗi phân đoạn, TON không thể đảm bảo thứ tự gửi tin nhắn giữa nhiều hợp đồng thông minh.
2. Phí xử lý: Tính năng không đồng bộ cũng gây ra một vấn đề, đó là khó ước tính phí xử lý đã tiêu thụ. Do đó, khi bắt đầu giao dịch, ví thường gửi thêm một số token dưới dạng phí xử lý. Nếu hợp đồng được gọi có cơ chế phí xử lý tốt thì phí xử lý còn lại cuối cùng sẽ được trả lại vào ví của người dùng. Người dùng có thể nhận thấy số token trong ví đột nhiên trở nên ít hơn và sau đó lại nhiều hơn sau vài phút. Đây là lý do.
3. Thoát: Thoát là một cơ chế xử lý lỗi của hợp đồng Khi hợp đồng được gọi không tồn tại hoặc có lỗi xảy ra, nếu giao dịch được đặt thành. rebound , khi đó một tin nhắn bị trả lại sẽ bị trả lại cho hợp đồng gọi điện. Ví dụ: nếu người dùng bắt đầu chuyển khoản và xảy ra lỗi trong quá trình gọi thì cần có thông báo trả lại để hợp đồng ví của người dùng có thể khôi phục số dư. Hầu hết tất cả các tin nhắn nội bộ được gửi giữa các hợp đồng thông minh đều phải có khả năng trả lại được, tức là bit "trả lại" của chúng phải được đặt.
Bảo mật tài sản
TON có nhiều tính năng sẽ mang lại Vấn đề bảo mật nên người dùng cũng cần lưu ý một số cạm bẫy thường gặp.
Tấn công chặn phí
Như đã đề cập ở trên, ví thường Một khoản phí bổ sung cần phải được gửi để ngăn chặn việc thực hiện giao dịch không thành công, điều này tạo cơ hội cho kẻ tấn công làm điều ác. Nếu bạn là người dùng ví TON, bạn có thể đã gặp phải tình huống này. Bạn luôn nhận được nhiều NFT hoặc mã thông báo khác nhau trong ví của mình. Bạn nghĩ rằng đó chỉ là một số airdrop mã thông báo rác, nhưng khi kiểm tra thông tin giao dịch, bạn thấy rằng không thể. bán chúng ít tiền hơn? Tuy nhiên, khi bắt đầu giao dịch, bạn nhận thấy phí xử lý được yêu cầu là cực kỳ cao (1 TẤN). Lúc này, bạn cần chú ý. Đây có thể là hành vi gian lận phí xử lý.
Kẻ tấn công đã sử dụng hợp đồng mã thông báo được xây dựng cẩn thận để khiến phí chuyển khoản ước tính của ví trở nên cực kỳ cao, nhưng trong quá trình thực hiện thực tế, nó chỉ giữ lại phí và không gửi tin nhắn chuyển tiền.
Câu cá số đầu tiên và cuối cùng
Số đầu tiên và số cuối cùng câu cá không có trên TON Có, kiểu tấn công lừa đảo này tồn tại trên tất cả các chuỗi công khai lớn. Kẻ tấn công sẽ tạo một tài khoản có độ mô phỏng cao có cùng số đầu và số cuối cho mọi địa chỉ người dùng trong toàn bộ mạng. Khi người dùng gửi chuyển khoản, kẻ tấn công cũng sẽ sử dụng tài khoản có độ mô phỏng cao để gửi một khoản chuyển khoản nhỏ trong tài khoản của người dùng. để lại một bản ghi trong hồ sơ thanh toán. Khi người dùng nhận muốn chuyển mã thông báo trở lại, anh ta có thể sao chép địa chỉ từ bản ghi lịch sử. Tại thời điểm này, nó có khả năng được sao chép vào địa chỉ của kẻ tấn công, khiến kẻ tấn công có thể dự đoán chính xác địa chỉ. hành vi của người dùng.
comment Fishing
Có thể thêm TON khi chuyển tiền bình luận được sử dụng để nhận xét thông tin giao dịch. Chức năng này thường được sử dụng khi nạp tiền trên các sàn giao dịch thường yêu cầu người dùng nhận xét ID người dùng của họ khi nạp tiền. Tuy nhiên, chức năng này thường bị khai thác một cách ác ý, với những kẻ tấn công lừa đảo tài sản của người dùng bằng cách viết thông tin gian lận vào ghi chú. Như trong hình:
Người dùng cần đặc biệt chú ý đến Số Telegram ẩn danh NFT Nếu người dùng sử dụng Số Telegram ẩn danh để mở tài khoản TG nhưng không mở Xác minh hai bước, một khi NFT bị lừa đảo, tin tặc sẽ tấn công. có thể đăng nhập trực tiếp vào số TG của mục tiêu để thực hiện hành vi trộm cắp và lừa đảo tài sản tiếp theo.
Lỗ hổng hợp đồng thông minh
Lỗ hổng bảo mật hợp đồng thông minh sẽ Như kết quả là số tiền mà người dùng đặt vào hợp đồng thông minh bị hư hỏng và người dùng cần phải chọn các dự án được kiểm toán tốt khi chọn dự án. Hợp đồng thông minh của TON chủ yếu được lập trình bằng ngôn ngữ FunC, nhưng cũng sử dụng Tact nâng cao hơn hoặc Fift cấp thấp hơn, tất cả đều là những ngôn ngữ có tính nguyên bản cao. Các ngôn ngữ lập trình mới sẽ mang đến những rủi ro bảo mật mới. Đặc biệt đối với các nhà phát triển, họ phải có thói quen tốt về lập trình an toàn, nắm vững các phương pháp bảo mật tốt nhất và trải qua quá trình kiểm tra bảo mật nghiêm ngặt trước khi triển khai vào môi trường sản xuất. không thảo luận về bảo mật hợp đồng bây giờ. Nhóm bảo mật SlowMist đã ra mắt dịch vụ kiểm tra bảo mật hợp đồng thông minh TON và bạn bè có nhu cầu kiểm tra đều có thể thảo luận về dịch vụ này.
Tấn công gửi tiền giả
Người dùng ví hoặc sàn giao dịch cần thanh toán chú ý đến các cuộc tấn công nạp tiền giả mạo Thường có hai loại tấn công nạp tiền giả:
Tiền tệ giả. , tấn công Nếu người dùng phát hành mã thông báo có cùng siêu dữ liệu với mã thông báo mục tiêu, nếu chương trình nhập tự động không kiểm tra xem đây có phải là hợp đồng đào chính xác hay không thì điều đó sẽ dẫn đến mục nhập không chính xác.
Bounce, quá trình chuyển TON cần phải được thực hiện hoàn thành trong hai Có mối quan hệ gọi điện giữa các hợp đồng ví của người dùng. Nếu hợp đồng ví của người nhận không tồn tại và giao dịch được đặt thành Có thể trả lại, tin nhắn sẽ bị trả lại và số tiền ban đầu sẽ được trả lại cho người gửi sau khi trừ phí xử lý. . Bạn bè quan tâm đến thông tin chi tiết có thể xem bài viết nạp tiền giả mà chúng tôi đã tiết lộ trước đây.
Tóm tắt
Bài viết này giới thiệu một số nguyên tắc kỹ thuật cơ bản của TON từ góc độ tạo khóa công khai và riêng tư của TON, hợp đồng ví, hình thức Token, đặc điểm giao dịch, v.v., đồng thời thảo luận về các vấn đề bảo mật có thể xảy ra trong quá trình sử dụng TON. mọi người hãy học hỏi.