Mytour / Zoe Hansen
Hash là gì?
Một hàm băm là một hàm toán học chuyển đổi đầu vào có độ dài tùy ý thành đầu ra đã mã hóa với độ dài cố định. Do đó, bất kể lượng dữ liệu hoặc kích thước tập tin ban đầu là bao nhiêu, hash duy nhất của nó luôn có kích thước giống nhau. Hơn nữa, các hàm băm an toàn không thể 'đảo ngược' để lấy được đầu vào từ đầu ra đã băm, ít nhất là với công nghệ hiện tại.
Nếu bạn sử dụng một chức năng cụ thể trên cùng dữ liệu, giá trị băm của nó sẽ giống nhau, vì vậy bạn có thể xác nhận rằng dữ liệu là giống nhau (tức là không thay đổi) nếu bạn đã biết giá trị băm của nó. Một chức năng khác sẽ cho ra một giá trị băm khác nhau.
Việc băm là rất quan trọng đối với bảo mật tiền điện tử và blockchain.
Những điểm chính
- Một giá trị băm là một hàm thỏa mãn các yêu cầu về mã hóa cần thiết để bảo vệ thông tin.
- Các giá trị băm là một trong những trụ cột của mạng lưới blockchain.
- Một giá trị băm được tạo ra dựa trên thông tin được gửi qua hàm.
- Trong blockchain của tiền điện tử, các giá trị băm là các số thập lục phân xác định.
Cách Thức Hoạt Động Của Giá Trị Băm
Các hàm băm điển hình nhận đầu vào là độ dài biến đổi để trả về đầu ra cố định. Một hàm băm mật mã kết hợp khả năng truyền thông tin của các hàm băm với các thuộc tính bảo mật. Các hàm băm là các thuật toán xác định cách thông tin được mã hóa.
Ví dụ, Thuật toán Băm An Toàn 256 (SHA-256) trải qua quá trình mã hóa đầu vào nhận được bằng:
- Chuyển đổi thành hệ nhị phân
- Tạo giá trị băm
- Khởi tạo hằng số
- Chia dữ liệu thành từng bit
- Tạo lịch trình tin nhắn
- Chạy vòng nén
- Thay đổi các giá trị cuối cùng
Sử dụng SHA-256, từ 'Xin chào' sẽ tạo ra một đầu ra có cùng số ký tự (64) như 'Xin chào thế giới' và 'Xin chào John.' Tuy nhiên, giá trị băm sẽ khác nhau đáng kể cho ba trường hợp này—lưu ý rằng chữ hoa cũng thay đổi giá trị băm:
- Xin chào: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
- Xin chào thế giới: 64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c
- Xin chào John: a8119595d77342cc73c93697a7f70920d3f4ded5d458e31907607e997ff76868
Hàm được sử dụng để tạo ra giá trị băm là xác định, có nghĩa là nó sẽ tạo ra kết quả giống nhau mỗi khi sử dụng cùng đầu vào. Mặc dù SHA 256 có thể tạo ra đầu ra băm trong vài mili giây với ít sức mạnh tính toán, nhưng làm cho việc xác định đầu vào trở nên khó khăn.
Không phải tất cả các loại tiền điện tử đều sử dụng SHA 256. Keccak256, Equihash, Scrypt, Ethash và Blake3 cũng là ví dụ về các hàm băm được sử dụng.
Điều này làm cho việc băm trở thành lựa chọn lý tưởng để bảo vệ tiền điện tử vì nó sẽ mất hàng ngàn năm để giải mã ngược lại và xác định đầu vào ban đầu với công nghệ hiện đại.
Các hàm băm là các cấu trúc dữ liệu phổ biến trong các hệ thống máy tính để thực hiện các nhiệm vụ như kiểm tra tính toàn vẹn của các thông điệp và xác thực thông tin. Các hàm băm mật mã cung cấp các tính năng bảo mật, làm cho việc phát hiện nội dung của một thông điệp hoặc thông tin trở nên khó khăn hơn.
Đặc biệt, các hàm băm mật mã thể hiện ba tính chất sau:
- Chúng là không va chạm: Điều này có nghĩa là không có hai băm khác nhau nào ánh xạ đến cùng một băm đầu ra.
- Chúng có thể được ẩn: Việc đoán giá trị đầu vào cho hàm băm từ đầu ra của nó là khó khăn.
- Chúng nên thân thiện với câu đố: Nó nên khó để chọn một đầu vào cung cấp một đầu ra được xác định trước. Do đó, đầu vào nên được lựa chọn từ một phân phối rộng nhất có thể.
Bởi vì các đặc điểm của một hàm băm, chúng được sử dụng rộng rãi trong bảo mật trực tuyến—từ bảo vệ mật khẩu đến phát hiện vi phạm dữ liệu và kiểm tra tính toàn vẹn của tệp đã tải xuống.
Băm và Blockchain
Cột sống của một loại tiền điện tử là blockchain, là một sổ cái phân tán toàn cầu được hình thành bằng cách liên kết các khối (tệp) dữ liệu giao dịch và thông tin cá nhân với nhau qua việc băm.
Blockchain chỉ chứa các giao dịch đã được xác thực. Việc xác thực được hoàn thành bằng cách so sánh các băm, ngăn ngừa giao dịch gian lận và chi tiêu kép.
Mã hóa Bitcoin
Tiền điện tử sử dụng các hàm băm theo nhiều cách khác nhau. Ví dụ, các thợ đào giải quyết vấn đề băm của Bitcoin bằng cách sử dụng dữ liệu trong một khối làm đầu vào và tạo ra một giá trị băm.
Mục tiêu là tạo ra một giá trị băm bằng hoặc nhỏ hơn giá trị băm mục tiêu của mạng. Chương trình khai thác điều chỉnh các số biến đổi cho đến khi nó tạo ra một giá trị băm nhỏ hơn hoặc bằng giá trị băm mục tiêu.
Sau khi vấn đề được giải quyết, mỗi nút so sánh tiêu đề khối bằng cách băm nó hai lần và so sánh kết quả với giá trị băm của khối mới.
Mục Đích Chính Của Hàm Băm Là Gì?
Hàm băm đơn giản nhất là gì?
Hash trong mật mã học là gì?
Tóm lại
Trong blockchain của tiền điện tử, hash là một số thập lục phân xác định. Điều này có nghĩa là bất kể đầu vào có bao nhiêu ký tự, hash luôn có cùng số lượng ký tự. Ví dụ, hash của Bitcoin luôn luôn là 64 chữ số.
Hash được sử dụng để bảo vệ thông tin—trong trường hợp của tiền điện tử, chúng được sử dụng để đảm bảo dữ liệu trong các khối trên blockchain không bị thay đổi. Thông tin được mã hóa bởi hàm băm được xác thực bởi các thành viên mạng khi họ cố gắng tạo ra một hash nhỏ hơn mục tiêu mạng. Sau khi hash mục tiêu được đạt được, mạng đóng khối—sự thống nhất được đạt sau khi khối đóng cửa vì mạng tiếp tục xác thực giao dịch và thông tin khối sau khi giải pháp hash được tìm thấy.
Các ý kiến phản hồi, quan điểm và phân tích được thể hiện trên Mytour dành cho mục đích thông tin trực tuyến. Đọc thông báo từ chối trách nhiệm và trách nhiệm của chúng tôi để biết thêm thông tin.