Hash là gì? Nguyên tắc, Mật mã và Ứng dụng trong Blockchain

Hàm băm được hiểu là quá trình tạo ra một đầu ra có kích thước cố định từ một đầu vào có kích thước biến đổi. Quá trình này được thực hiện thông qua các công thức toán học được biết đến với tên gọi là hàm băm ( được triển khai dưới dạng các thuật toán hàm băm).

Mặc dù không phải tất cả các hàm băm đều liên quan đến việc sử dụng mật mã, nhưng các hàm băm được gọi là hàm băm mật mã là cốt lõi của tiền điện tử. Nhờ vào chúng, các blockchain và các hệ thống phân tán khác có thể đạt được mức độ toàn vẹn và an ninh dữ liệu đáng kể.

Các nguyên tắc của hàm băm

Các hàm băm thông thường và băm mật mã là xác định. Xác định có nghĩa là, miễn là đầu vào không thay đổi, thuật toán băm sẽ luôn tạo ra cùng một đầu ra ( cũng được gọi là giá trị băm hoặc hàm băm ).

Thông thường, các thuật toán Hàm băm được sử dụng trong tiền điện tử được thiết kế như các hàm một chiều, có nghĩa là chúng không thể dễ dàng đảo ngược mà không cần một lượng lớn thời gian và tài nguyên tính toán. Nói cách khác, việc tạo ra đầu ra từ đầu vào là khá đơn giản, nhưng tương đối khó khăn để đi theo hướng ngược lại ( tạo ra đầu vào chỉ với đầu ra ). Nói chung, càng khó tìm đầu vào gốc, thuật toán Hàm băm sẽ càng được coi là an toàn.

Hàm băm hoạt động như thế nào?

Các hàm băm khác nhau tạo ra các đầu ra có kích thước khác nhau, nhưng kích thước đầu ra có thể cho mỗi thuật toán băm luôn là hằng số. Ví dụ, thuật toán SHA-256 chỉ có thể tạo ra đầu ra 256 bit, trong khi SHA-1 luôn tạo ra một giá trị băm 160 bit.

Để minh họa điều này, hãy chạy các từ "Trading" và "trading" qua thuật toán Hàm băm SHA-256 ( được sử dụng trong Bitcoin ):

SHA-256

Entrada: Giao dịch Salida (256 bits): 95d1a7ca65e8e7a866be323693fd2c22e07d8f198695481f1660e12142cdbecc

Nhập: giao dịch Salida (256 bits): 2180de693ed2598851b751454f78332a363a0ddb0376db0e4fc9eedb25cde194

Lưu ý rằng một thay đổi nhỏ (chữ hoa của chữ cái đầu tiên) đã dẫn đến một giá trị Hàm băm hoàn toàn khác. Nhưng vì chúng ta đang sử dụng SHA-256, các đầu ra sẽ luôn có kích thước cố định là 256 bit (hoặc 64 ký tự thập lục phân), bất kể kích thước của đầu vào. Hơn nữa, không quan trọng bao nhiêu lần chúng ta xử lý hai từ với thuật toán, các đầu ra sẽ vẫn không thay đổi.

Mặt khác, nếu chúng ta thực hiện các đầu vào giống nhau thông qua thuật toán Hàm băm SHA-1, chúng ta sẽ nhận được các kết quả sau:

SHA-1

Nhập: Giao dịch
Salida (160 bits): 37736e173a824ff9cecc9b5de47f5bda155b7f51

Nhập: giao dịch Salida (160 bits): 7da19b30a5c5c198709373e8eb7d5c33a3f48241

Điều quan trọng cần lưu ý là SHA có nghĩa là Thuật toán Hàm băm Bảo mật. Nó đề cập đến một tập hợp các hàm băm mật mã bao gồm các thuật toán SHA-0 và SHA-1 cùng với các họ SHA-2 và SHA-3. SHA-256 là một phần của họ SHA-2, cùng với SHA-512 và các biến thể khác. Hiện tại, chỉ có các họ SHA-2 và SHA-3 được coi là an toàn cho các ứng dụng mật mã.

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

Các hàm băm thông thường có nhiều trường hợp sử dụng khác nhau, bao gồm tìm kiếm trong cơ sở dữ liệu, phân tích tệp lớn và quản lý dữ liệu. Ngược lại, các hàm băm mật mã được sử dụng rộng rãi trong các ứng dụng bảo mật thông tin, như xác thực tin nhắn và fingerprinting kỹ thuật số. Trong bối cảnh Bitcoin, các hàm băm mật mã là phần thiết yếu của quá trình khai thác và cũng đóng vai trò quan trọng trong việc tạo ra các địa chỉ và khóa mới.

Sức mạnh thực sự của Hàm băm xuất hiện khi xử lý một khối lượng lớn thông tin. Ví dụ, có thể xử lý một tệp lớn hoặc tập dữ liệu thông qua một hàm băm và sau đó sử dụng đầu ra của nó để nhanh chóng xác minh độ chính xác và tính toàn vẹn của dữ liệu. Điều này có thể xảy ra nhờ vào bản chất xác định của các hàm băm: đầu vào luôn dẫn đến một đầu ra đơn giản hóa và cô đọng (hash). Kỹ thuật này loại bỏ nhu cầu lưu trữ và "nhớ" một khối lượng lớn dữ liệu.

Hàm băm đặc biệt hữu ích trong bối cảnh công nghệ blockchain. Blockchain của Bitcoin có nhiều hoạt động liên quan đến hàm băm, phần lớn nằm trong quy trình khai thác. Thực tế, hầu hết các giao thức tiền điện tử phụ thuộc vào hàm băm để liên kết và cô đặc các nhóm giao dịch thành các khối, và cũng để tạo ra các liên kết mật mã giữa mỗi khối, tạo thành một chuỗi khối.

Hàm băm tiền điện tử và các thuộc tính của chúng

Một hàm băm thực hiện các kỹ thuật mật mã có thể được định nghĩa là một hàm băm mật mã. Nói chung, việc phá vỡ một hàm băm mật mã đòi hỏi vô số nỗ lực bằng phương pháp thử sức. Để "đảo ngược" một hàm băm mật mã, một người sẽ cần phải đoán xem đầu vào là gì qua cách thử và sai cho đến khi tạo ra đầu ra tương ứng. Tuy nhiên, cũng có khả năng là các đầu vào khác nhau tạo ra chính xác cùng một đầu ra, trong trường hợp đó xảy ra một "va chạm".

Về mặt kỹ thuật, một hàm băm mật mã cần phải đáp ứng ba tính chất để được coi là an toàn hiệu quả:

  • Khả năng chống va chạm: không thể tìm thấy hai đầu vào khác nhau tạo ra cùng một Hàm băm như đầu ra
  • Khả năng chống lại tiền hình: không thể "đảo ngược" hàm băm ( tìm đầu vào từ một đầu ra đã cho )
  • Kháng cự với hình ảnh thứ hai: không thể tìm thấy bất kỳ đầu vào thứ hai nào va chạm với một đầu vào cụ thể.

Kháng cự va chạm

Như đã đề cập, một va chạm xảy ra khi các đầu vào khác nhau tạo ra chính xác cùng một Hàm băm. Do đó, một hàm băm được coi là chống lại va chạm cho đến khi ai đó tìm thấy một va chạm. Lưu ý rằng sẽ luôn tồn tại các va chạm cho bất kỳ hàm băm nào vì các đầu vào có thể là vô hạn, trong khi các đầu ra có thể là hữu hạn.

Nói cách khác, một hàm băm là chống va chạm khi khả năng tìm thấy một va chạm thấp đến mức nó sẽ cần hàng triệu năm tính toán. Do đó, mặc dù không có hàm băm nào hoàn toàn không có va chạm, một số hàm đủ mạnh để được coi là chống lại (ví dụ, SHA-256).

Giữa các thuật toán SHA khác nhau, các họ SHA-0 và SHA-1 không còn an toàn vì đã phát hiện ra các va chạm. Hiện tại, các họ SHA-2 và SHA-3 được coi là kháng va chạm.

Kháng cự trước hình ảnh

Thuộc tính kháng tiền tố liên quan đến khái niệm về các hàm một chiều. Một hàm băm được coi là kháng tiền tố khi có xác suất rất thấp để ai đó tìm ra đầu vào đã tạo ra một đầu ra cụ thể.

Thuộc tính này khác với thuộc tính trước đó vì một kẻ tấn công sẽ cố gắng đoán xem đầu vào nào đã được sử dụng bằng cách quan sát một đầu ra nhất định. Một va chạm, mặt khác, xảy ra khi ai đó tìm thấy hai đầu vào khác nhau tạo ra cùng một đầu ra, bất kể các đầu vào đã được sử dụng là gì.

Thuộc tính kháng preimage là rất quý giá cho việc bảo vệ dữ liệu vì một hàm băm đơn giản của một thông điệp có thể chứng minh tính xác thực của nó mà không cần tiết lộ thông tin. Trong thực tế, nhiều nhà cung cấp dịch vụ và ứng dụng web lưu trữ và sử dụng các hàm băm được tạo ra từ mật khẩu thay vì mật khẩu ở dạng văn bản thuần. Ngay cả trên các nền tảng giao dịch, kỹ thuật này là rất quan trọng để bảo vệ thông tin đăng nhập của người dùng.

Kháng cự trước ảnh thứ hai

Để đơn giản, chúng ta có thể nói rằng độ chống lại của hình ảnh thứ hai nằm ở một điểm nào đó giữa hai thuộc tính còn lại. Một cuộc tấn công hình ảnh thứ hai xảy ra khi ai đó thành công trong việc tìm ra một đầu vào cụ thể tạo ra cùng một đầu ra với một đầu vào đã biết khác.

Nói cách khác, một cuộc tấn công tiền hình thứ hai liên quan đến việc tìm kiếm một sự va chạm, nhưng thay vì tìm kiếm hai đầu vào ngẫu nhiên tạo ra cùng một Hàm băm, kẻ tấn công tìm kiếm một đầu vào tạo ra cùng một Hàm băm được sản xuất bởi một đầu vào cụ thể khác.

Do đó, bất kỳ hàm băm nào kháng cự với va chạm cũng sẽ kháng cự với các cuộc tấn công hình ảnh trước thứ hai, vì những cuộc tấn công này luôn liên quan đến một va chạm. Tuy nhiên, vẫn có thể thực hiện cuộc tấn công hình ảnh trước trên một hàm kháng cự với va chạm, vì điều này liên quan đến việc tìm một đầu vào duy nhất từ một đầu ra duy nhất.

Khai thác và Hàm băm trong tiền điện tử

Có nhiều bước trong việc khai thác Bitcoin liên quan đến các hàm băm, như xác minh số dư, liên kết các đầu vào và đầu ra của giao dịch, và hàm băm của các giao dịch trong một khối để tạo thành một cây Merkle. Nhưng một trong những lý do chính khiến blockchain của Bitcoin an toàn là thực tế rằng các thợ mỏ cần thực hiện vô số phép toán hàm băm để cuối cùng tìm ra giải pháp hợp lệ cho khối tiếp theo.

Cụ thể, một thợ mỏ phải thử nhiều đầu vào khác nhau khi tạo ra một giá trị Hàm băm cho khối ứng cử của mình. Về bản chất, họ chỉ có thể xác thực khối của mình nếu tạo ra một Hàm băm đầu ra bắt đầu bằng một số lượng nhất định các số không. Số lượng số không xác định độ khó trong việc khai thác và thay đổi theo tỷ lệ Hàm băm dành cho mạng.

Trong trường hợp này, Hàm băm đại diện cho bao nhiêu sức mạnh tính toán đang được đầu tư vào việc khai thác Bitcoin. Nếu Hàm băm của mạng tăng, giao thức Bitcoin sẽ tự động điều chỉnh độ khó khai thác để thời gian trung bình cần thiết để khai thác một khối vẫn gần 10 phút. Ngược lại, nếu nhiều thợ đào quyết định ngừng khai thác, khiến Hàm băm giảm đáng kể, độ khó khai thác sẽ được điều chỉnh, tạo điều kiện cho việc khai thác (cho đến khi thời gian trung bình của khối trở lại 10 phút).

Các thợ mỏ không cần phải tìm các va chạm vì có nhiều Hàm băm mà họ có thể tạo ra như một đầu ra hợp lệ ( bắt đầu với một số lượng nhất định các số không ). Do đó, có nhiều giải pháp khả thi cho một khối nhất định, và các thợ mỏ chỉ cần tìm một trong số đó, theo giới hạn được xác định bởi độ khó khai thác.

Vì việc khai thác Bitcoin là một công việc tốn kém về mặt năng lượng và thiết bị, các thợ mỏ không có lý do gì để lừa dối hệ thống, vì điều này sẽ dẫn đến những tổn thất tài chính đáng kể. Càng nhiều thợ mỏ tham gia vào một blockchain, nó càng lớn và mạnh.

Ứng dụng thực tiễn của Hàm băm trong thế giới tiền điện tử

Hàm băm có nhiều ứng dụng thực tiễn trong hệ sinh thái tiền điện tử và các nền tảng giao dịch:

  • Xác minh giao dịch: Mỗi giao dịch trên một blockchain nhận được một Hàm băm duy nhất phục vụ như một định danh và cho phép xác minh rằng giao dịch không bị thay đổi.

  • Tạo địa chỉ: Các địa chỉ tiền điện tử được tạo ra bằng cách áp dụng các hàm băm lên các khóa công khai, tăng cường bảo mật và giảm kích thước của các địa chỉ.

  • Lưu trữ mật khẩu an toàn: Các nền tảng giao dịch sử dụng các chức năng hàm băm để lưu trữ mật khẩu của người dùng một cách an toàn, chỉ lưu giữ các hàm băm thay vì mật khẩu gốc.

  • Proof of Work: Cơ chế đồng thuận này, được sử dụng bởi Bitcoin và các loại tiền điện tử khác, chủ yếu dựa vào tính chất một chiều của các hàm băm.

  • Tính toàn vẹn dữ liệu: Các nền tảng sử dụng hàm băm để xác minh rằng các tệp hoặc dữ liệu được chuyển giao không bị thay đổi trong quá trình truyền tải.

Kết luận

Hàm băm là công cụ thiết yếu trong khoa học máy tính, đặc biệt khi liên quan đến lượng lớn dữ liệu. Khi được kết hợp với mật mã, các thuật toán hàm băm có thể rất linh hoạt, cung cấp bảo mật và xác thực theo nhiều cách khác nhau. Do đó, các hàm băm mật mã là rất quan trọng cho hầu hết mọi mạng lưới tiền điện tử và nền tảng giao dịch, vì vậy việc hiểu các thuộc tính và cơ chế hoạt động của chúng chắc chắn hữu ích cho bất kỳ ai quan tâm đến công nghệ blockchain hoặc giao dịch tài sản kỹ thuật số.

Trong một thế giới ngày càng số hóa, nơi mà sự an toàn của dữ liệu và các giao dịch là điều tối quan trọng, các Hàm băm tiếp tục là một trong những trụ cột cơ bản hỗ trợ niềm tin vào các hệ thống mã hóa hiện đại.

ES-3.55%
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
0/400
Không có bình luận
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)