|
 Thuật ngữ VietnamBiz
Kiến thức Kinh tế

Hàm băm (Hash) trong công nghệ chuỗi khối là gì? Cách thức hoạt động của hàm băm

10:07 | 21/01/2020
Chia sẻ
Hàm băm (tiếng Anh: Hash) là một hàm chuyển đổi đầu vào của các chữ cái và số thành đầu ra được mã hóa có độ dài cố định. Hàm băm được tạo bằng thuật toán và rất cần thiết để quản lí chuỗi khối trong tiền mã hóa.
Hàm băm (Hash) trong công nghệ chuỗi khối là gì? Cách thức hoạt động của hàm băm - Ảnh 1.

Hình minh họa (Nguồn: miro.medium.com)

Hàm băm (Hash)

Khái niệm

Hàm băm trong tiếng Anh là Hash.

Hàm băm là một hàm chuyển đổi đầu vào của các chữ cái và số thành đầu ra được mã hóa có độ dài cố định. Hàm băm được tạo bằng thuật toán và rất cần thiết để quản lí chuỗi khối trong tiền mã hóa.

Cách thức hoạt động của hàm băm

Thứ cốt lõi của một loại tiền mã hóa đó chính là chuỗi khối của nó, là một sổ cái của thế giới được hình thành bằng cách liên kết các khối dữ liệu giao dịch riêng lẻ với nhau. Chuỗi khối chỉ chứa các giao dịch được xác thực, giúp ngăn chặn các giao dịch gian lận và chi tiêu hai lần của tiền tệ. Giá trị được mã hóa kết quả là một chuỗi các số và chữ cái không tương đồng với dữ liệu gốc và được gọi là hàm băm. Việc khai thác tiền mã hóa liên quan đến việc sử dụng hàm băm này.

Việc băm yêu cầu xử lí dữ liệu từ một khối thông qua hàm toán học, dẫn đến kết quả đầu ra có độ dài cố định. Việc sử dụng kết quả đầu ra có độ dài cố định sẽ làm tăng tính bảo mật vì bất kì ai đang cố gắng giải mã hàm băm không thể cho biết đầu vào dài hay ngắn chỉ bằng cách nhìn vào độ dài của đầu ra.

Việc giải quyết hàm băm về cơ bản là giải quyết một bài toán phức tạp và bắt đầu với dữ liệu có sẵn trong tiêu đề khối. Mỗi tiêu đề khối chứa một số phiên bản, dấu thời gian (timestamp), hàm băm được sử dụng trong khối trước đó, hàm băm của Merkle Root, số được sử dụng một lần và băm mục tiêu.

Thợ đào tập trung vào số được sử dụng một lần (là một chuỗi số). Số này được gắn vào nội dung được băm của khối trước đó, sau đó chính nó được băm. Nếu hàm băm mới này nhỏ hơn hoặc bằng hàm băm mục tiêu thì nó được chấp nhận làm giải pháp, người thợ đào được trao phần thưởng và khối được thêm vào chuỗi khối.

Việc giải hàm băm yêu cầu người khai thác xác định chuỗi nào sẽ sử dụng làm số được sử dụng một lần, nó đòi hỏi người thợ đào cần thử nghiệm và sai sót rất nhiều lần trước khi đưa ra được đáp án chính xác.

Đó là do số được sử dụng một lần là một chuỗi ngẫu nhiên. Rất khó để người thợ đào thành công ngay lần thử đầu tiên, có nghĩa là người thợ đào phải kiểm tra một số lượng lớn các lựa chọn số được sử dụng một lần trước khi thực hiện kết quả đúng. Độ khó càng lớn (thước đo mức độ khó là để tạo ra một hàm băm đáp ứng yêu cầu của băm mục tiêu) thì càng mất nhiều thời gian để tạo ra một giải pháp.

Ví dụ về hàm băm

Băm từ "hello" sẽ tạo ra một đầu ra có cùng độ dài với hàm băm là "I am going to the store". Hàm số được sử dụng để tạo ra hàm băm có tính xác định, nghĩa là nó sẽ tạo ra cùng một kết quả mỗi khi cùng một đầu vào được sử dụng.

Nó có thể tạo ra một đầu vào băm hiệu quả, đó là làm cho việc xác định đầu vào trở nên khó khăn (dẫn đến việc khai thác) và thực hiện các thay đổi nhỏ tới kết quả đầu vào trong một hàm băm không thể nhận diện, hoàn toàn khác biệt.

Việc xử lí các hàm băm cần thiết để mã hóa các khối mới đòi hỏi năng lượng xử lí đáng kể của máy tính, điều này có thể khá tốn kém. Để lôi kéo các cá nhân và công ty (được gọi là các thợ đào) đầu tư vào các công nghệ cần thiết, các mạng tiền mã hóa sẽ thưởng cho họ cả token tiền mã hóa mới và phí giao dịch. Các thợ đào chỉ được thưởng nếu họ là người đầu tiên tạo ra một hàm băm đáp ứng các yêu cầu được đặt ra trong băm mục tiêu.

(Tài liệu tham khảo: investopedia.com)

Tường Vy