Blockchain là sổ cái công khai của các giao dịch chứa tất cả thông tin về tiền điện tử kể từ khi ra mắt. Để tìm và xem các phần quan tâm trong cơ sở dữ liệu khổng lồ này, các mã mật mã đặc biệt được sử dụng, bao gồm cả mã nhận dạng giao dịch. 

ID giao dịch: nó là gì?

ID giao dịch (TxID) là một mã duy nhất bao gồm một chuỗi các chữ cái và số cụ thể. Nó được gán cho mỗi giao dịch trên blockchain và là giá trị băm của nó - một giá trị duy nhất được tạo bằng thuật toán mã hóa dựa trên thông tin có trong giao dịch. Hàm băm kết quả được sử dụng để xác định và đảm bảo tính bảo mật của thanh toán trên blockchain. 

Tại sao cần có TxID?

Sử dụng TxID, mỗi giao dịch mới sẽ được liên kết với giao dịch trước đó. Điều này giúp đảm bảo rằng các giao dịch diễn ra theo đúng thứ tự và chúng không bị thay đổi hoặc giả mạo. 

Giá trị băm cũng cho phép bạn bảo mật ví và các hệ thống khác bằng thông tin bí mật. Ngoài ra, chúng còn giúp bảo vệ dữ liệu người dùng khỏi bị truy cập trái phép.

Điều kiện tạo TxID

Mỗi ví tiền điện tử có một bộ chức năng nhất định, bao gồm khả năng tự động tạo TxID. Khi người dùng thực hiện chuyển tiền điện tử, họ ký tên bằng khóa riêng và mã định danh duy nhất được gán cho giao dịch. TxID này có thể được theo dõi trên blockchain ngay sau khi chuyển khoản được gửi từ ví. 

Tiếp theo, giao dịch phải vượt qua quá trình xác minh và nhận được xác nhận từ các nút mạng (thợ đào). Kết quả là TxID của cô ấy được thêm vào khối và được lưu trữ trong sổ đăng ký công khai. Sau này, dữ liệu không thể thay đổi. 

Do đó, ID giao dịch được tạo vào thời điểm người dùng gửi nó và thậm chí trước khi nhận được xác nhận trên blockchain. 

Đôi khi các nút mạng có thể từ chối chuyển khoản vì nhiều lý do - do phí thấp, số dư ở người gửi không đủ, tắc nghẽn mạng, v.v. Trong những trường hợp này, TxID được tạo trong ví sẽ không được sử dụng và sẽ không được liên kết với bất kỳ giao dịch nào trong blockchain . Sau đó nó sẽ trở nên không hợp lệ và biến mất khỏi sổ đăng ký công cộng. 

Người dùng có thể tạo lại bản dịch với dữ liệu đã sửa, sau đó anh ta sẽ nhận được một mã định danh duy nhất mới. Giao dịch này sẽ được gửi đến mạng để xác minh theo cách tương tự và có thể được theo dõi bằng TxID mới.

Quá trình tạo TxID 

Giá trị băm (hoặc hàm băm) được tính bằng hàm băm. Đó là một thuật toán toán học biến đổi văn bản đầu vào tùy ý (chẳng hạn như dữ liệu giao dịch) thành đầu ra mã băm có độ dài cố định duy nhất. Hàm băm thường là một chiều, nghĩa là mã băm không thể được sử dụng để xây dựng lại dữ liệu gốc. 

Mỗi mạng tiền điện tử có phương pháp băm riêng. Ví dụ: Bitcoin sử dụng thuật toán SHA-256 (Thuật toán băm an toàn 256-bit). Nó lấy dữ liệu cần băm làm đầu vào và trả về giá trị băm 256 bit gồm 64 ký tự, gần đúng định dạng sau:

0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098

Quá trình này có thể được biểu diễn theo các bước sau:

  1. Hàm băm nhận dữ liệu đầu vào - thông tin giao dịch.

  2. Từ dữ liệu này, hàm băm tạo ra một mã băm duy nhất - một tập hợp các ký tự có độ dài cố định (256 bit trong Bitcoin).

  3. Mã băm kết quả được lưu trữ trong blockchain, nơi nó trở thành một phần của chuỗi khối duy nhất.

  4. Trong lần chuyển tiếp theo, giá trị băm của giao dịch trước đó được sử dụng để tạo một hàm băm mới sẽ trở thành một phần của khối mới trong chuỗi.

Do đó, giá trị băm đóng vai trò quan trọng trong việc đảm bảo tính bảo mật của mạng tiền điện tử, bởi vì bất kỳ thay đổi nào trong dữ liệu giao dịch đều yêu cầu thay đổi giá trị băm tương ứng và điều này sẽ ngay lập tức dẫn đến việc giao dịch bị từ chối. 

Cách tạo giao dịch

Giao dịch tiền điện tử là quá trình chuyển tiền từ tài khoản này sang tài khoản khác. Nó chứa thông tin về số tiền thanh toán, địa chỉ người gửi và người nhận, cũng như các dữ liệu khác có thể thay đổi tùy thuộc vào blockchain. 

Ví dụ: mạng Bitcoin sử dụng ba loại dữ liệu để tạo giá trị băm: 

  • đầu vào giao dịch;

  • đầu ra giao dịch;

  • chữ ký. 

Toàn bộ blockchain là sự kết hợp tuần tự của thông tin này. Không có chúng, không thể gửi tiền điện tử. 

Đầu vào giao dịch

Đầu vào là những đồng tiền nhận được từ các giao dịch đến và chưa được sử dụng trong các giao dịch gửi đi, tức là chúng có trong tài khoản. 

Khi tạo khoản thanh toán mới, người gửi chọn mục nhập ví mà mình muốn sử dụng cho giao dịch hiện tại. Do đó, đầu vào là một liên kết đến giao dịch trước đó mà từ đó tiền điện tử sẽ được chuyển lại. 

Liên kết này chứa các thông tin sau:

  • ID đầu ra, hiện được sử dụng làm đầu vào;

  • địa chỉ của người gửi;

  • địa chỉ của người nhận;

  • Tổng. 

Khi tạo khoản thanh toán mới, người gửi có thể chỉ định một hoặc nhiều đầu vào. Ví dụ: nếu ví của bạn có hai đầu vào - 3 và 4 BTC, bạn có thể sử dụng cả hai để chuyển 7 BTC đến địa chỉ mới.  

Đầu ra giao dịch

Kết quả đầu ra hiển thị thông tin về các đồng tiền đã được sử dụng để chuyển khoản ra bên ngoài. Mỗi đầu ra chứa các thông tin sau:

  • một liên kết đến mục mà nó được tạo ra;

  • về địa chỉ mà tiền điện tử sẽ được gửi đến;

  • về số tiền chuyển.

Trong trường hợp này, người gửi có thể chia đầu vào thành nhiều phần. Ví dụ: từ đầu vào 10 BTC, bạn có thể tạo đầu ra 3 BTC. Số tiền 7 BTC còn lại là đầu ra giao dịch chưa được chi tiêu (UTXO). Người gửi cũng có thể chuyển tiền điện tử đến nhiều địa chỉ cùng một lúc.

Chữ ký

Khi người dùng gửi giao dịch, họ sử dụng khóa riêng của mình để tạo chữ ký điện tử, sau đó chữ ký này sẽ được xác minh dựa trên khóa chung của họ. Nếu chữ ký khớp với khóa, giao dịch sẽ được xác nhận và gửi tới blockchain. Điều này đảm bảo an ninh và bảo vệ chống gian lận vì chỉ chủ sở hữu khóa riêng mới có thể tạo chữ ký chính xác 

Vì vậy, thông tin giao dịch là cốt lõi của bảo mật blockchain. 

Nguyên tắc xây dựng chuỗi đầu vào và đầu ra

Ví dụ: chúng ta có thể xem xét quá trình tương tác giữa ba tài khoản A, B và C, chúng chuyển đồng xu X cho nhau.

Nếu chủ tài khoản A muốn tạo giao dịch (T1) thì phải ghi rõ: 

  • người nhận (ví dụ tài khoản B);

  • số lượng xu (ví dụ: 1X).

Thông tin này được mã hóa và lưu trữ trong ID giao dịch T1. 

Tại thời điểm gửi, bản dịch như vậy nhận được các thuộc tính sau:

  • trở thành một lối thoát khỏi tài khoản A - sự tiếp nối của các khoản thu trước đó;

  • trở thành một mục nhập vào tài khoản của B. 

Miễn là đồng xu 1X vẫn còn trong tài khoản B, giao dịch T1 được coi là một mục nhập. 

Tương tự, chủ tài khoản B muốn chuyển 1X sang tài khoản C thì phải ghi rõ (T2):

  • người nhận - tài khoản C;

  • số lượng xu - 1X.

Tại thời điểm gửi, quá trình chuyển T2 nhận được các thuộc tính sau:

  • trở thành một lối thoát khỏi tài khoản B - sự tiếp nối của giao dịch T1; 

  • trở thành đầu vào của tài khoản C. 

Miễn là đồng xu 1X vẫn còn trong tài khoản C, giao dịch T2 được coi là một mục nhập. 

Làm cách nào bạn có thể sử dụng ID giao dịch?

Người dùng có thể áp dụng ID theo cách thủ công cho các mục đích khác. Ví dụ: bằng cách sử dụng TxID, các đối tác có thể kiểm soát việc chuyển tiền: 

  • người gửi có thể xác minh rằng khoản thanh toán của mình đã được nhập thành công vào chuỗi khối;

  • người nhận có thể xác minh rằng chuyển khoản đã được gửi đến tài khoản của mình.

Ngoài ra, TxID cho phép bạn xem thêm thông tin:

  • số lượng;

  • tiền tệ (đồng xu hoặc mã thông báo);

  • trạng thái: đã hoàn thành, chưa hoàn thành, đang chờ xử lý, đang tiến hành, v.v.;

  • số khối nơi giao dịch được lưu; 

  • thời điểm chuyển giao; 

  • hoa hồng, v.v.

Tính đầy đủ và định dạng của thông tin này phụ thuộc vào blockchain và dịch vụ được sử dụng để xác minh. 

Có các trình duyệt khác nhau cho các blockchain khác nhau: 

  • Bitcoin — blockchain.info;

  • Ethereum — etherscan.io;

  • BNB — bscscan.com;

  • TRON – tronscan.org;

  • Polkadot — explorer.polkascan.io. 

Sổ đăng ký công khai có sẵn cho mọi người xem, nhưng khối lượng của nó rất lớn. Ví dụ: chuỗi khối BNB xử lý hơn 5 triệu giao dịch mỗi ngày. Để tìm đoạn cần thiết trong mảng dữ liệu này, bạn cần có mã mật mã thích hợp. Bạn có thể tìm kiếm thông tin không chỉ theo số nhận dạng mà còn theo địa chỉ, khối, mã thông báo, v.v. 

Chỉ có thể xem thông tin mật mã. Không ai biết ai đã gửi khoản thanh toán cho ai và tại sao - điều này đồng thời đảm bảo tính công khai của mạng và tính ẩn danh của người dùng.