Hash hay hàm băm là yếu tố quan trọng trong cách vận hành của Blockchain, đây là công nghệ giúp đảm bảo an toàn cho mạng lưới tránh khỏi các cuộc tấn công từ bên ngoài. Vậy Hash trong Blockchain là gì? Cách thức hoạt động như thế nào? Cùng tìm hiểu nhé!
Tham khảo: Blockchain là gì?

Hash trong blockchain là gì?
Hash trong blockchain là gì? Hash hay hashing là quá trình biến dữ liệu đầu vào có độ dài tùy ý thành dữ liệu đầu ra có độ dài ổn định. Hashing được thực hiện thông qua các hàm băm (hash function). Kết quả nhận về của hàm băm gọi là giá trị băm, mã băm hoặc gọi đơn giản là “hash”.
Ví dụ, nếu bạn thực hiện hashing một dữ liệu đầu vào có dung lượng lên đến 100 MB bằng thuật toán băm SHA – 256 thì đầu ra bạn sẽ thu về mã băm có 256 bit dữ liệu. Tương tự, nếu bạn hashing một đoạn văn bản có dung lượng 10 KB bằng hàm băm SHA – 256, kết quả giá trị băm nhận về vẫn là dữ liệu có 256 bit.
Ứng dụng của Hash trong blockchain là gì? Đối với blockchain, giao dịch dù phức tạp hay đơn giản, giao dịch có dữ liệu lớn hay ít dữ liệu khi trải qua hashing đều cho ra mã băm với độ dài cố định.
Ngoài ra, hashing thường được ứng dụng vào việc bảo mật hệ thống blockchain, giúp thông tin giao dịch trên mạng lưới trở nên khó truy xuất trong khi vẫn đảm bảo toàn vẹn dữ liệu trong blockchain. Trong đó, đóng vai trò bảo mật cốt lõi trong Cryptocurrency và được sử dụng phổ biến nhất phải nhắc đến hàm băm mật mã hóa (Cryptographic Hash Function).

Hàm băm mật mã
Hash trong blockchain là gì? Hàm băm mật mã là thuật toán ánh xạ dữ liệu, có tính ứng dụng cao. Hàm băm mật mã thường dùng để tạo ra chữ ký số, mã xác thực thông điệp. Vai trò thường thấy của loại hàm băm này là bảo mật hệ thống blockchain. Dưới đây là một số tính chất của loại hàm băm mật mã:
Tính tất định
Hàm băm mật mã mang tính tất định, cho dù đầu vào có kích thước dữ liệu bao nhiêu thì thuật toán của Hashing chỉ cho ra một đầu ra có kích thước cố định.
Là hàm một chiều
Để tạo ra độ bảo mật cao cho blockchain, hàm băm phải mang tính chất của hàm một chiều. Cụ thể, rất khó để sử dụng kết quả đầu ra của hàm băm để truy xuất trở lại giá trị đầu vào. Về lý thuyết, việc truy ngược dữ liệu đầu vào thông quả kết quả hàm băm là có thể thực hiện. Nhưng cần tiêu tốn rất nhiều thời gian và tài nguyên tính toán của máy tính. Nhờ vào đặc điểm này mà hàm băm mật mã được đánh giá là công cụ giúp bảo mật blockchain tối ưu nhất.
Tính nhạy cảm
Một đặc điểm nữa của loại hàm này chính là tính nhạy cảm. Nói một cách cụ thể, khi dữ liệu có một chút thay đổi thì giá trị băm sẽ có thay đổi lớn, giá trị hàm băm gần như sẽ thay đổi hoàn toàn và không có bất kỳ liên hệ gì đối với giá trị băm cũ trước đó. Với bất kỳ thay đổi nào trên dữ liệu đầu vào đều sẽ tạo ra một giá trị băm hoàn toàn mới trên đầu ra.
Mức độ bảo mật của hàm băm mật mã
Để đảm bảo an toàn cho dữ liệu tối đa cho blockchain, cơ chế hoạt động của hàm băm phải có khả năng chịu được mọi loại tấn công từ bên ngoài. Trong lý thuyết mật mã, hàm băm phải sở hữu được các thuộc tính sau đây thì được xem là có khả năng bảo mật tốt:
- Khả năng kháng tiền ảnh thứ nhất: với mỗi giá trị băm a, sẽ khó tìm thấy thông điệp B nào sao cho a = hash (B). Khái niệm này liên quan tương đối rõ ràng với tính chất một chiều của hàm băm.
- Khả năng kháng tiền ảnh thứ hai: với dữ liệu đầu nào k1, rất khó để tìm được dữ liệu đầu vào k2 sao cho hash (k1) = hash (k2)
- Khả năng kháng va chạm: rất khó để tìm được 2 dữ liệu khác nhau a, b sao cho Hash (a) = Hash (b).
Những thuộc tính kể trên đảm bảo kẻ xấu không thể thay đổi dữ liệu mà không tạo ra sự thay đổi lớn ở kết quả đầu ra. Ở tính kháng tiền ảnh thứ hai, ngăn kẻ xấu tạo ra một dữ liệu khác nhưng lại có cùng giá trị như dữ liệu gốc đầu vào. Trong khi tính kháng va chạm ngăn cản kẻ tấn công tạo ra hai tài liệu khác nhau nhưng có chung giá trị băm.
Ứng dụng của Hash trong blockchain
Ứng dụng của hash trong blockchain là gì? Cả hash hay hàm băm mật mã đều có nhiều ứng dụng trong blockchain, có thể kể đến như:
- Hashing trong định danh tệp hoặc dữ liệu: hash dùng để xác định các file chia sẻ ngang hàng, từ đó cung cấp đầy đủ thông tin về file như nguồn gốc , xác minh nội dung file tải xuống.
- Hashing trong xác minh tính toàn vẹn của dữ liệu: ví dụ đơn giản khi ta tải tệp tin từ Internet về, kèm theo nội dung tải là các mã băm MD5 hay SHA1. Sau khi hoàn tất tải, so sánh giá trị băm của tệp vừa tải với gía trị băm mà web cung cấp, nếu có khác biệt tức là tệp vừa tải đã bị can thiệp sửa đổi.
- Hashing trong tạo và xác nhận chữ ký: hầu hết mọi chữ ký số hiện nay đều dùng đến các hàm băm để tạo chữ ký.
- Hashing trong xác nhận mật khẩu: hashing thường được dùng để tạo ra mật khẩu. Mật khẩu mới được đảm bảo không được tính toán lại từ giá trị băm trước đó.
Bằng chứng công việc (Proof of Work): ứng dụng quan trọng nhất trong blockchain nói chung và Bitcoin nói riêng. Trong đó, thợ đào sử dụng sức mạnh tính toán để tính các giá trị băm, mở block mới để lưu trữ giao dịch trên mạng lưới và nhận về phần thưởng khối.



Lời kết
Đến đây, có lẽ bạn đọc đã hiểu một cách sơ lược Hash trong blockchain là gì? Bản chất và ứng dụng của hàm băm trong blockchain. Hy vọng muacoin.co đã mang đến được nhiều thông tin bổ ích cho bạn đọc. Nếu thấy bài viết thú vị đừng quên follow muacoin.co để đón đọc những bài viết mới nhất về thế giới Crypto nhé.