Chuyển tới nội dung chính

Hàm băm, khóa mật mã và đào tiền mã hóa

Vai trò của mật mã học trong blockchain​

Mật mã học là nền tảng bảo mật của blockchain. Công nghệ này được sử dụng để bảo vệ dữ liệu, xác minh tính xác thực của giao dịch và bảo đảm tính bất biến của sổ cái phân tán.

Các công cụ mật mã chủ chốt trong blockchain là hàm băm và mật mã bất đối xứng, dựa trên việc sử dụng khóa công khai và khóa riêng tư.


Hàm băm và các đặc tính​

Hàm băm là một thuật toán toán học chuyển đổi dữ liệu đầu vào có kích thước bất kỳ thành một chuỗi có độ dài cố định, gọi là giá trị băm. Với các hàm băm mật mã an toàn, việc khôi phục dữ liệu gốc từ giá trị băm gần như không khả thi về mặt tính toán.

Để sử dụng trong blockchain, hàm băm cần có những đặc tính sau:

  • Tính xác định — cùng một dữ liệu đầu vào luôn cho cùng một kết quả.
  • Khả năng chống va chạm — gần như không khả thi về mặt tính toán để tìm hai tập dữ liệu khác nhau có cùng giá trị băm.
  • Tính một chiều — việc khôi phục dữ liệu gốc từ giá trị băm đòi hỏi chi phí tính toán không thực tế.
  • Độ nhạy với thay đổi — chỉ một thay đổi rất nhỏ ở đầu vào cũng làm kết quả thay đổi hoàn toàn.

Những đặc tính này khiến việc băm trở thành công cụ hiệu quả để bảo vệ tính toàn vẹn của dữ liệu. Blockchain Bitcoin sử dụng hàm băm mật mã SHA-256 hai lần liên tiếp (SHA-256d).

Một thay đổi rất nhỏ trong dữ liệu cũng làm giá trị băm cuối cùng thay đổi hoàn toàn.
Ví dụ, khi dùng SHA-256 một lần với dữ liệu UTF-8, không thêm ký tự xuống dòng, chuỗi giao-trinh có giá trị băm:
ebc9e03dbe88adce3467e106d30312739208937334a51096a80a546143dd578a.
Nếu thay dấu gạch nối bằng dấu cách, thành giao trinh, giá trị băm sẽ khác:
8f4166edce3f0995b30310a67314db850630b71481e0b49b0997b826c651407f.


Khóa công khai và khóa riêng tư​

Blockchain sử dụng mật mã bất đối xứng dựa trên một cặp khóa:

  • Khóa riêng tư — một giá trị mật mã bí mật mà chỉ chủ sở hữu biết.
  • Khóa công khai — một giá trị có quan hệ toán học với khóa riêng tư và được dùng để công bố rộng rãi.

Khóa riêng tư được dùng để tạo chữ ký số, còn khóa công khai được dùng để kiểm tra chữ ký đó. Nhờ vậy, bất kỳ bên tham gia mạng nào cũng có thể xác minh rằng giao dịch do người nắm giữ khóa riêng tư tương ứng khởi tạo.

Có thể tính khóa công khai từ khóa riêng tư, nhưng không thể tính ngược lại.


Chữ ký số và xác minh giao dịch​

Khi tạo giao dịch, người gửi ký dữ liệu giao dịch bằng khóa riêng tư của mình. Chữ ký số được đính kèm vào giao dịch rồi truyền lên mạng.

Các nút mạng kiểm tra tính hợp lệ của chữ ký bằng khóa công khai của người gửi. Nếu chữ ký hợp lệ, giao dịch được coi là xác thực và có thể được đưa vào một khối.


Quá trình đào tiền mã hóa​

Đào tiền mã hóa là quá trình tìm lời giải mật mã để thêm khối mới vào các blockchain sử dụng cơ chế đồng thuận bằng chứng công việc (Proof-of-Work).

Có nhiều cơ chế đồng thuận khác nhau — tức những quy tắc giúp các bên tham gia mạng thống nhất về thứ tự thêm khối mới. Người tham gia quá trình đào được gọi là thợ đào. Động lực của họ là nhận phần thưởng khi tìm được khối hợp lệ.

Thợ đào tập hợp các giao dịch chưa được xác nhận vào một khối, sau đó thực hiện tính toán để tìm giá trị băm của khối đáp ứng điều kiện độ khó đã đặt ra. Cấu trúc khối được trình bày chi tiết hơn ở mục 1.2.

Có thể đào độc lập, nhưng xác suất tìm được khối trong trường hợp này cực kỳ thấp. Vì vậy, thợ đào thường tham gia các nhóm đào để tìm được khối thường xuyên hơn và giảm biến động thu nhập.


Bằng chứng công việc và bằng chứng cổ phần​

Cơ chế đồng thuận là tập hợp các quy tắc giúp các bên tham gia mạng thống nhất về trạng thái blockchain và việc thêm khối mới.

Một trong những cơ chế đồng thuận phổ biến nhất là bằng chứng công việc (Proof-of-Work, PoW). Trong cơ chế này, quyền thêm khối được xác định thông qua việc giải một bài toán đòi hỏi nhiều tài nguyên tính toán. Những nhược điểm chính của PoW là chi phí thiết bị cao và mức tiêu thụ năng lượng lớn.

Một số blockchain sử dụng bằng chứng cổ phần (Proof-of-Stake, PoS) thay cho bằng chứng công việc. Trong PoS, quyền tạo và xác nhận khối được trao cho những người tham gia mạng, gọi là người xác thực, đã khóa một lượng tài sản mã hóa nhất định theo quy tắc của giao thức. Xác suất được chọn phụ thuộc vào lượng tài sản đặt cọc và các tham số của từng cách triển khai.

So với bằng chứng công việc, bằng chứng cổ phần tiêu thụ ít năng lượng hơn đáng kể vì không đòi hỏi những phép tính tốn nhiều tài nguyên. Đây là lý do Ethereum chuyển từ PoW sang PoS vào năm 2022.

Ngoài ra còn có các cơ chế đồng thuận khác, thường là biến thể hoặc phiên bản chuyên dụng của PoW và PoS, chẳng hạn bằng chứng cổ phần được ủy quyền. Một số cơ chế như bằng chứng dung lượng (Proof-of-Capacity) được sử dụng trong các blockchain chuyên biệt và chưa được áp dụng rộng rãi.

Độ khó của việc thêm khối được điều chỉnh tự động nhằm duy trì khoảng thời gian tạo khối đã định, bất kể tổng tài nguyên của mạng thay đổi ra sao.


Phần thưởng khi thêm khối​

Khi thêm thành công một khối mới, người tham gia mạng nhận được phần thưởng, có thể bao gồm:

  • các đơn vị tài sản mã hóa mới được phát hành,
  • phí của những giao dịch được đưa vào khối.

Trong blockchain Bitcoin, tổng số coin bị giới hạn ở mức 21 triệu. Khi đạt giới hạn này, phần thưởng thêm khối sẽ chỉ còn đến từ phí giao dịch. Cơ chế này khuyến khích các bên tham gia duy trì bảo mật của mạng; tuy nhiên, tính bền vững dài hạn còn phụ thuộc vào giá trị kinh tế của tài sản mã hóa và mức độ hoạt động giao dịch.


Tổng kết​

Việc băm, khóa mật mã và các cơ chế đồng thuận giúp:

  • bảo vệ dữ liệu và giao dịch,
  • xác minh tính xác thực của giao dịch,
  • tăng khả năng chống tấn công của blockchain.

Hiểu các cơ chế này là điều cần thiết để phân tích mức độ bảo mật của blockchain cũng như đánh giá những đặc điểm kinh tế và kỹ thuật của nó.