Gần đây tôi đang nghiên cứu sâu về công nghệ blockchain, phát hiện nhiều người thực ra không hiểu rõ hash là gì, nhưng nó lại là nền tảng của toàn bộ thế giới mã hóa. Nói đơn giản, hash chính là chuyển đổi bất kỳ dữ liệu nào thành một chuỗi ký tự độc đáo, có độ dài cố định, giống như dấu vân tay của dữ liệu.



Hash được tạo ra như thế nào? Thật ra rất thú vị. Bạn đưa dữ liệu vào một công cụ toán học gọi là hàm băm, nó sẽ sinh ra một giá trị hash. Điều quan trọng nhất là, cùng một đầu vào luôn luôn tạo ra cùng một đầu ra, gọi là tính xác định. Nhưng ngược lại thì không thể, từ hash gần như không thể suy ra dữ liệu gốc, đó chính là tính an toàn của nó.

Tính chất này có ba ưu điểm cốt lõi. Thứ nhất là chống va chạm, rất khó tìm ra hai đầu vào khác nhau tạo ra cùng một hash. Thứ hai là chống giả mạo, biết hash cũng không thể tìm ra đầu vào tạo ra nó. Cuối cùng là chống giả mạo thứ hai, cho một đầu vào, gần như không thể tìm ra đầu vào khác tạo ra cùng một hash. Chính nhờ những đặc tính này, hash trong lĩnh vực mã hóa mới quan trọng đến vậy.

Trên blockchain, ứng dụng của hash rất nhiều. Chứng minh công việc của Bitcoin chính là dựa vào hash, thợ mỏ phải tìm một số ngẫu nhiên, kết hợp dữ liệu khối, thực hiện tính toán hash cho đến khi ra một hash bắt đầu bằng một số lượng số 0 nhất định. Quá trình này đảm bảo khối được thêm vào một cách ổn định, phi tập trung, đồng thời bảo vệ mạng khỏi các cuộc tấn công.

Chữ ký số cũng không thể thiếu hash. Quá trình ký là dùng khóa riêng để mã hóa hash của dữ liệu, sau đó dùng khóa công khai để xác minh. Như vậy chỉ có chủ sở hữu khóa riêng mới có thể ký, còn mọi người đều có thể xác thực tính chính xác của chữ ký. Còn có Merkle Tree, nó dùng cách phân tầng để lưu trữ hash của dữ liệu, giúp xác minh lượng lớn dữ liệu hiệu quả hơn nhiều, giảm đáng kể lượng dữ liệu cần truyền tải trên mạng.

Hiện nay trên thị trường có khá nhiều thuật toán hash. SHA-256 là phổ biến nhất, Bitcoin dùng nó, có thể tạo ra hash 256 bit. RIPEMD-160 cũng rất phổ biến, thường kết hợp với SHA-256 để tạo địa chỉ, tạo ra hash ngắn hơn. Ethereum dùng Keccak-256, cũng tạo ra hash 256 bit. Còn có Blake2b, được dùng nhiều trong Zcash, tốc độ nhanh, độ an toàn tốt, hỗ trợ hash có độ dài biến đổi, tối đa tới 512 bit.

Nói tóm lại, hiểu rõ hash là gì cực kỳ quan trọng để hiểu về blockchain. Nó giúp dữ liệu vừa có thể được xác thực vừa được bảo vệ, là nền tảng niềm tin của toàn bộ hệ sinh thái mã hóa. Dù là chứng minh công việc, chữ ký số hay xác minh dữ liệu, đều không thể thiếu sự hỗ trợ của hash. Nếu bạn muốn thực sự hiểu cách hoạt động của tiền mã hóa, nắm vững phần hash này chính là một nửa thành công.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
Thêm một bình luận
Thêm một bình luận
Không có bình luận
  • Ghim