Hash là gì? Tầm quan trọng của hàm băm trong Blockchain

Trong khoa học máy tính, hash (hash function) có nghĩa là hàm băm. Đây là thuật ngữ mô tả các thuật toán chuyển đổi giá trị đầu vào có độ dài và nội dung bất kỳ thành đầu ra được mã hóa có độ dài cố định. Vậy cụ thể hash là gì? Hash trong Blockchian có ý nghĩa như thế nào? Mời bạn cùng Coin568 tìm hiểu chi tiết trong bài viết dưới đây!

Hash là gì ?

Hash (hay hash function, hashing) nghĩa là hàm băm, đây là thuật ngữ mô tả các thuật toán băm có khả năng chuyển đổi giá trị đầu vào (input), ví dụ như chữ cái, số hay ký tự có độ dài và nội dung bất kỳ, thành giá trị đầu ra (output) được mã hóa là một xâu ký tự có độ dài cố định.

Đoạn mật mã output từ quy trình hash function cũng được gọi là Hash. Ngoài ra, nó cũng được gọi bằng những tên khác như giá trị băm ( hash value ), mã băm ( hash code ), tóm tắt thông điệp ( message digest ) hoặc chữ ký số ( digital fingerprint ) .
hash la gi

Giá trị băm có kích thước cố định. Tuy nhiên, chiều dài của mỗi giá trị băm sẽ phụ thuộc vào thuật toán băm sử dụng. Ví dụ: thuật toán băm SHA-1 chỉ tạo ra output 160 bit còn SHA 256 có thể tạo ra các output 256 bit.

Giả sử, khi chạy những từ “ Coin568 ” và “ coin568 ” qua thuật toán băm SHA-1, tất cả chúng ta thu được hiệu quả như sau :

Input

Output (160 bits)

Coin568 7 f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1
coin568 e58605c14a76ff98679322cca0eae7b3c4e08936

Còn khi chạy những từ trên qua thuật toán băm SHA-256 ( thuật toán băm của Bitcoin ), tất cả chúng ta thu được hiệu quả như sau :

Input

Output (256 bits)

Coin568 f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191
coin568 59 bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2

Như vậy hoàn toàn có thể thấy được mỗi hàm băm khác nhau sẽ tạo ra giá trị băm khác nhau, tuy nhiên, chiều dài cố định và thắt chặt của giá trị băm luôn không đổi. Ngoài ra, chỉ cần một chút ít đổi khác nhỏ ( dù chỉ là sự độc lạ về cách viết hoa vần âm tiên phong ) ở giá trị nguồn vào cũng dẫn đến một giá trị băm trọn vẹn khác .

Tính chất của hàm băm

Một hàm băm đạt được độ bảo mật thông tin cao cần có vừa đủ 6 đặc thù như sau :

  • Chấp nhận rất nhiều dữ liệu truyền vào: Chúng ta hoàn toàn có thể hash gần như mọi nội dung kỹ thuật số như chữ số, ký tự, văn bản tài liệu, hình ảnh, bài hát hoặc bất kể thứ gì .

  • Tính tất định (Deterministic): Một input chỉ ra một output duy nhất và không được trùng lặp với bất kể output nào đã sống sót trước đó. Với một input, dù triển khai bao nhiêu lần cũng chỉ thu về một tác dụng output giống nhau .

  • Tính toán nhanh (Quick Computation): Hash có năng lực đo lường và thống kê nhanh gọn giá trị băm của bất kể thông điệp nào .

  • Không thể đảo ngược (Pre-image Resistance): Hash là hàm một chiều ,

    không hề Phục hồi được 100 % nội dung thông điệp bắt đầu. Do đó, bạn không hề đoán được giá trị nguồn vào của nó là gì. Giống như việc bạn có một miếng thịt, sau khi bạn băm nhuyễn miếng thịt đó ra thì từ hỗn hợp thịt băm, bạn không hề Phục hồi lại miếng thịt bắt đầu. Nhờ vào đặc thù này mà hash được ứng dụng can đảm và mạnh mẽ trong việc xác nhận tài liệu .

  • Hiệu ứng lở tuyết (Avalanche effect): Thuật toán băm bảo vệ nếu có bất kể biến hóa ( dù là nhỏ nhất ) trên tài liệu input đều sẽ gây ra sự đổi khác lớn trên giá trị băm output. Giá trị băm mới này trọn vẹn độc lạ với giá trị băm cũ .

  • Ít xảy ra xung đột (Collision Resistant):Tức là năng lực để những giá trị input khác nhau cho ra cùng một giá trị băm là rất thấp .

tinh chat ham bam

Nếu một hash function không hội tụ đầy đủ các tính chất trên sẽ không an toàn và dễ bị hacker tấn công. Mặt khác, các hash hội tụ đầy đủ 6 tính chất trên được gọi hàm băm mật mã (cryptographic hash function).

Các dạng Hash phổ cập

Một số hàm hash phổ cập lúc bấy giờ phải kể đến như MD5, SHA, CRC232, RIPEMD, Whirlpool … Hàm SHA ( viết tắt của Secure Hash Function ) là hash được công bố bởi NIST ( National Institute of Standards and Technology ), gồm có 4 thuật toán hash khác nhau là SHA-0, SHA-1, SHA-2 và SHA3 .

  • SHA-0là hash function 160 – bit được công bố vào năm 1993 .

  • SHA-1là hash function 160 – bit sinh ra vào năm 1995, nhằm mục đích khắc phục những điểm yếu kém của SHA-0 .

  • SHA-2được công bố vào năm 2001, gồm có 1 số ít biến thể là SHA-224, SHA-256, SHA-384, SHA-512 / 224 và SHA-512 / 256 .

  • SHA-3sinh ra năm 2012, sử dụng thuật toán Keccak có hiệu năng và năng lực chống “ xung đột ” rất tốt .

Năm 2004, những nhà nghiên cứu đã tìm ra điểm yếu của một loạt hàm băm SHA-0, MD5 và RIPEMD-160. Đến năm 2005, những nhà nghiên cứu đã ghi nhận những cuộc tiến công so với SHA-1 .
Dưới đây là một số ít thuật toán băm thông dụng lúc bấy giờ. Các thuật toán xảy ra thực trạng xung đột ( Collision ) không còn được khuyến khích sử dụng so với những mạng lưới hệ thống hoặc tính năng nhu yếu tính bảo mật thông tin cao .

Kích thước đầu ra ( output size ) Kích thước trạng thái trong ( Internal state size ) Kích thước khối ( Block size ) Độ dài ( Length size ) Kích thước word ( Word size ) Xung đột ( Collision )
HAVAL 256 / 224 / 192 / 160 / 128 256 1024 64 32
MD2 128 384 128 Không 8 năng lực lớn
MD4 128 128 512 64 32
MD5 128 144 122 88 88
PANAMA 256 8736 256 No 32 Có lỗi
RIPEMD 128 128 512 64 32
RIPEMD-128 / 256 128 / 256 128 / 256 512 64 32 Không

RIPEMD-160/320

160 / 320 160 / 320 512 64 32 Không
SHA-0 160 160 512 64 32 Không
SHA-1 160 160 512 64 32 Có lỗi
SHA-256 / 224 256 / 224 256 512 64 32 Không
SHA-512 / 384 512 / 384 512 1024 128 64 Không
Tiger ( 2 ) – 192 / 160 / 128 192 / 160 / 128 192 512 64 64 Không
VEST-4 / 8 ( hash mode ) 160 / 256 256 / 384 8 80/128 1 Không
VEST-16 / 32 ( hash mode ) 320 / 512 512 / 768 8 160 / 256 1 Không
WHIRLPOOL 512 512 512 256 8 Không

Ứng dụng của Hash

Một hàm băm thường thì được ứng dụng trong nhiều nghành như :

  • Là công cụ đắc lực trong việc giải quyết và xử lý thông tin có dung tích lớn. Bất kể tài liệu khởi đầu có dung tích lớn bao nhiêu thì sau khi trải qua quy trình băm thì tài liệu đầu ra đều có size cố định và thắt chặt nhỏ gọn .
  • Định danh tệp hoặc tài liệu ( ví dụ như Git, Mercurial … ) một cách an toàn và đáng tin cậy .
  • Hash giúp tất cả chúng ta bảo vệ tính toàn vẹn của tài liệu, thông điệp. Hay nói cách khác là bảo vệ cho tài liệu không bị đổi khác trong quy trình truyền hay gửi .
  • Sử dụng cho việc tra cứu cơ sở tài liệu, nghiên cứu và phân tích tài liệu và quản trị tệp lớn .
  • Tạo và xác nhận chữ ký .
  • Xác minh mật khẩu .

ung dung hash la giCác hàm băm mật mã ( cryptographic hash function ) sẽ có tính ứng dụng cao trong bảo mật thông tin thông tin ví dụ điển hình như :

  • Xác thực tin nhắn .
  • Lấy dấu vân tay kỹ thuật số .
  • Trong blockchain, hash function là một phần thiết yếu của quy trình đào coin ( mining ). Ngoài ra, hashing còn được sử dụng để định danh những khối và tạo nên tính liên tục trước sau giữa những khối .

Tầm quan trọng của hàm băm trong Blockchain

Hàm băm mật mã chính là cốt lõi của công nghệ tiên tiến Cryptocurrency. Nhờ hàm băm mật mã mà blockchain hoàn toàn có thể đạt được tính toàn vẹn và bảo mật thông tin tài liệu ở mức độ cao. Bên cạnh đó hash function được cho phép giải quyết và xử lý tài liệu nguồn vào blockchain nhanh gọn và bảo đảm an toàn .

  • Hàm băm cho phép xử lý dữ liệu an toàn, nhanh chóng

Trong blockchain, hàm băm được sử dụng để tăng cường giải quyết và xử lý thanh toán giao dịch. Tất cả những tài liệu thanh toán giao dịch đầu vào dù có size lớn hay nhỏ đều được quy đổi thành một giá trị cố định và thắt chặt trải qua thuật toán băm. Giá trị băm sau đó sẽ được tàng trữ thuận tiện trên blockchain và được cho phép trích xuất nhanh gọn những thông tin tương quan đến thanh toán giao dịch bất kể khi nào .
Ví dụ, toàn bộ những thanh toán giao dịch Bitcoin được giải quyết và xử lý trải qua thuật toán SHA-256, rút ngắn độ dài băm xuống 256 bit. Bất kể quy mô của thanh toán giao dịch là bao nhiêu, size thanh toán giao dịch của nó sẽ luôn có độ dài được thiết lập là 256 bit .
Quả thật, nếu không có những hàm băm thì việc tàng trữ những thanh toán giao dịch có tài liệu lớn trên blockchain sẽ khó hoàn toàn có thể triển khai được .

  • Hàm băm là xương sống duy trì an ninh mạng

ham hash trong blockchainCác blockchain Proof of Work duy trì bảo mật an ninh mạng và tạo đồng coin mới trải qua chính sách đào ( mining ). Cụ thể mạng lưới hệ thống sẽ sử dụng hash function để tạo ra những bài toán khó. Để giải được bài toán này, bắt buộc thợ đào phải tìm ra được đoạn mã đầu ra ( output ) .
Nhờ đặc thù của hàm băm là một người không hề đoán được tác dụng đầu ra. Họ chỉ hoàn toàn có thể tìm được hiệu quả bằng cách thử hàng loạt những tác dụng nguồn vào ( input ) qua thuật toán hàm băm nhất định rồi so sánh lại với đề bài .
Khi mạng lưới hệ thống Open thanh toán giao dịch, những thợ đào muốn nhận phần thưởng khối phải sử dụng máy đào chuyên sử dụng để cạnh tranh đối đầu nhau giải bài toán. Người tiên phong tìm ra đáp án sẽ có nghĩa vụ và trách nhiệm xác định thanh toán giao dịch, thêm khối mới vào blockchain và nhận phần thưởng .
Việc tạo ra những bài toán với hash function sẽ giúp ngăn ngừa những cuộc tiến công của hacker và bảo vệ thợ đào không hề in được đồng coin mới ra môi trường tự nhiên bên ngoài nếu không chứng tỏ việc làm họ đã triển khai .

Kết luận

Nhìn chung hash là một trong những phương pháp mã hóa thông tin có độ bảo mật cao có tính ứng dụng cao trong thực tiễn và đặc biệt là trong công nghệ blockchain. Hy vọng thông qua bài viết bạn đã nắm được khái niệm hash là gì, thấy được tầm quan trọng của hàm băm trong blockchain, từ đó có thêm niềm tin vào lĩnh vực đầu tư tiền mã hóa.

dinh van dam

Đinh Văn Đàm tốt nghiệp chuyên ngành công nghệ thông tin trường Đại học Aptech. Hiện tại, Đinh Văn Đàm đang là chuyên gia cố vấn, phụ trách chuyên mục “Thuật Ngữ” tại Coin568. Với 5 năm kinh nghiệm trong lĩnh vực Blockchain cùng sự am hiểu sâu sắc về thị trường tiền điện tử, tôi sẽ đồng hành và chia sẻ với bạn đọc các thuật ngữ crypto từ cơ bản đến nâng cao.