Transaction trong Bitcoin – phần 1

3 min read

Nếu nói về hệ thống ngân hàng hiện tại, thì một giao dịch trong nội bộ ngân hàng (ví dụ như trong VietComBank) thực chất chỉ là việc chỉnh sửa bảng số dư, nơi số tiền của một người bị giảm và số tiền của người khác được tăng. Trong trường hợp chuyển tiền giữa các ngân hàng, sẽ có sự tham gia của các tổ chức trung gian như SWIFT, nhưng về bản chất, mọi thứ cũng vẫn chỉ là chỉnh sửa cơ sở dữ liệu.

Khi chúng ta nói đến hệ thống tài chính dựa trên blockchain, thì quy trình chuyển tiền diễn ra hoàn toàn khác. Trong Bitcoin, không hề tồn tại bảng <địa chỉ, số dư> nào, và cũng không có một tổ chức trung tâm nào chịu trách nhiệm cập nhật bảng đó.

Như tôi đã nói trước đó, trong Bitcoin không tồn tại một cấu trúc chung, trong đó mỗi địa chỉ sẽ có số dư hiện tại của nó. Thay vào đó, Bitcoin sử dụng blockchain — tức là tất cả các giao dịch đều được lưu trữ. Để đơn giản hóa, bạn có thể coi đó là các thông điệp dạng:

<địa chỉ 1> đã gửi <số lượng> BTC cho <địa chỉ 2>

Vì vậy, nếu bạn duyệt qua toàn bộ blockchain, bạn có thể tính được bao nhiêu đồng Bitcoin “thuộc về” một địa chỉ cụ thể.

Inputs & Outputs

Giao dịch thực tế trong mạng Bitcoin thực tế phức tạp hơn nhiều so với ví dụ trên. Cấu trúc thực tế của một giao dịch là một cấu trúc khá phức tạp, với các thành phần chính là inputs (đầu vào)outputs (đầu ra).

  • Inputs là các giao dịch mà bạn tham chiếu đến. Giả sử, một thời gian trước, một số giao dịch đã gửi tiền đến địa chỉ của bạn X, cụ thể là:
    • TXN_ID = 123456, VALUE = 40 BTC
    • TXN_ID = 6453795, VALUE = 10 BTC
    • TXN_ID = 888888, VALUE = 100 BTC

Nếu bạn cần chi tiêu, ví dụ 45 BTC, bạn có thể tham chiếu đến giao dịch 888888, hoặc có thể tham chiếu đến hai giao dịch: 123456 và 6453795. Nếu muốn, bạn có thể tham chiếu đến tất cả ba giao dịch, mặc dù điều này có thể không cần thiết.

  • Outputs (đầu ra) — là các “địa chỉ” (mặc dù không hoàn toàn đúng, đây chỉ là cách mô tả đơn giản) mà bạn sẽ gửi tiền tới sau khi giao dịch được thực hiện. Cũng có thể có nhiều đầu ra, và mỗi đầu ra này sẽ có một số lượng BTC nhất định.

Trong hình dưới đây, một giao dịch mới C được tạo ra, tham chiếu đến hai đầu ra — A và B. Kết quả là, tổng cộng có 0.008 BTC từ các đầu vào, sau đó được phân chia thành hai đầu ra:

  • 0.003 BTC được gửi đến địa chỉ đầu tiên.
  • 0.004 BTC được gửi đến địa chỉ thứ hai.

💡 Giải thích thêm:

Inputs (Đầu vào):

  • Input — là các giao dịch mà bạn tham chiếu đến khi muốn chi tiêu số BTC đã nhận trước đó.
  • Ví dụ, nếu bạn muốn chi tiêu 45 BTC, bạn có thể tham chiếu đến các giao dịch đã nhận trước đó, có thể là một hoặc nhiều giao dịch.

Outputs (Đầu ra):

  • Output — là địa chỉ mà bạn sẽ gửi BTC tới khi thực hiện giao dịch.
  • Mỗi output có một số BTC cụ thể và địa chỉ nhận tiền.

Tóm lại:

  • Bitcoin không lưu bảng số dư cho mỗi địa chỉ. Mọi thứ đều dựa trên lịch sử giao dịch, mà mỗi giao dịch lại tham chiếu đến inputs và tạo ra outputs mới.
  • Inputsoutputs của giao dịch là những phần quan trọng trong cơ chế xác nhận quyền sử dụng Bitcoin của bạn và cách bạn có thể chi tiêu chúng.
  • Khi bạn tạo giao dịch mới, bạn tham chiếu đến các inputs từ giao dịch cũ và tạo ra outputs gửi BTC đến địa chỉ mới.

Khả năng chỉ định nhiều đầu ra (outputs) trong một giao dịch là một tính năng rất quan trọng, bởi vì một giao dịch (chính xác hơn là một đầu ra của nó) chỉ có thể được sử dụng làm đầu vào (input) một lần duy nhất và phải sử dụng toàn bộ giá trị.

Tức là, nếu bạn có một giao dịch nhận vào 10 BTC, và bạn chỉ muốn chi tiêu 8 BTC ở một quán Starbucks nào đó, bạn sẽ tạo một giao dịch mới với một đầu vào và hai đầu ra:

  • 8 BTC gửi đến cửa hàng,
  • và 2 BTC trả lại về địa chỉ của bạn.
Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *