Sức mạnh của Hàm băm trong thế giới của các đồng coin

Hàm băm là một quá trình cơ bản trong lĩnh vực tiền điện tử, biến đổi dữ liệu có kích thước bất kỳ thành kết quả có độ dài cố định. Quá trình này được thực hiện thông qua các công thức toán học được gọi là hàm băm, được triển khai dưới dạng các thuật toán.

Mặc dù không phải tất cả các hàm băm đều liên quan đến mật mã, nhưng các hàm băm được gọi là hàm băm mật mã là rất cần thiết trong hệ sinh thái của các đồng tiền điện tử. Nhờ có chúng, các blockchain và các hệ thống phi tập trung khác đạt được các mức độ đáng kể về tính toàn vẹn và bảo mật dữ liệu.

Các hàm băm, cả truyền thống và mật mã, đều là xác định. Điều này có nghĩa là, miễn là dữ liệu đầu vào không thay đổi, thuật toán băm sẽ luôn tạo ra cùng một kết quả, còn được gọi là digest hoặc hash.

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

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

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

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

SHA-256

Nhập

Salida (256 bits)

Cổng

7f98b5c76e1f90c0e51e5947eae545f3b6f4b4736c774c504d7e6741f5070861

Cổng

e77b9a9ae9e30b0dbdb6f510a264ef9de781501d7b6b92ae89eb059c5ab743a0

Lưu ý rằng một thay đổi nhỏ (chữ cái đầu tiên) đã dẫn đến một giá trị Hàm băm hoàn toàn khác. Tuy nhiên, vì chúng ta 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ự) bất kể kích thước của đầu vào. Hơn nữa, không quan trọng chúng ta chạy hai từ qua thuật toán bao nhiêu lần, hai đầu ra sẽ vẫn không thay đổi.

Nếu chúng ta đưa cùng một đầu vào qua thuật toán Hàm băm SHA-1, chúng ta nhận được các kết quả sau:

SHA-1

Nhập

Salida (160 bits)

Cổng

96a296d224f285c67bee93c30f8a309157f0daa7

Cổng

5f42c325eef7e85610308428b407748b77d8c98e

Thật thú vị khi lưu ý rằng SHA có nghĩa là Secure Hash Algorithms (Các Thuật Toán Hàm Băm Bảo Mật). Đây là 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 như 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.

Tầm quan trọng của công nghệ này

Các hàm băm thông thường có một loạt các ứng dụng, 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ý thông tin. Mặt khác, 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à tạo dấu vân tay. Trong bối cảnh Bitcoin, các hàm băm mật mã là một phần không thể thiếu trong quy 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.

Tiềm năng thực sự của Hàm băm được tiết lộ khi làm việc với khối lượng thông tin lớn. Ví dụ, có thể chạy một tệp lớn hoặc một tập dữ liệu thông qua một hàm băm và sau đó sử dụng kết quả 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 khả thi nhờ vào bản chất quyết định của các hàm băm: đầu vào luôn tạo ra một đầu ra nén và đơn giản hóa (el hash). Phương pháp này loại bỏ nhu cầu lưu trữ và "ghi 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. Chuỗi khối của Bitcoin liên quan đến nhiều hoạt động liên quan đến hàm băm, hầu hết trong số đó được thực hiện trong quá trình khai thác. Thực tế, gần như tất cả các giao thức tiền điện tử đều phụ thuộc vào hàm băm để liên kết và nhóm các giao dịch thành các khối và để tạo ra các liên kết mật mã giữa mỗi khối, từ đó hình thành một chuỗi khối.

Hàm băm tiền điện tử

Một hàm băm sử dụng các kỹ thuật mã hóa có thể được định nghĩa là một hàm băm mã hóa. Nói chung, để giải mã một hàm băm mã hóa cần phải thực hiện nhiều lần thử nghiệm bằng phương pháp brute force. Để "hoàn nguyên" một hàm băm mã hóa, cần phải chọn các đầu vào bằng cách thử và sai cho đến khi đạt được một đầu ra phù hợp. Tuy nhiên, cũng có khả năng rằng các đầu vào khác nhau có thể tạo ra cùng một kết quả, 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ã phải đáp ứng ba thuộc tính để được coi là an toàn. Chúng ta có thể mô tả chúng như sau: khả năng chống va chạm, khả năng chống hình ảnh trước và khả năng chống hình ảnh thứ hai.

Trước khi mô tả từng thuộc tính, hãy tóm tắt logic của nó trong ba câu ngắn gọn:

  • Kháng cự 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.

  • Kháng cự trước hình ả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 tiền hình thứ hai: không thể tìm ra một đầu vào thứ hai có cùng Hàm băm với đầu vào đầu tiên.

Kháng collision

Như đã đề cập trước đó, một va chạm xảy ra khi các đầu vào khác nhau tạo ra cùng một Hàm băm. Hàm băm sau đó được coi là kháng va chạm cho đến khi ai đó phát hiện ra va chạm đó. Điều quan trọng cần lưu ý là sẽ luôn tồn tại va chạm cho bất kỳ hàm băm nào do số lượng đầu vào vô hạn và số lượng đầu ra hữu hạn.

Do đó, một hàm băm được coi là chống va chạm khi xác suất phát hiện một va chạm thấp đến mức cần hàng triệu năm tính toán. Vì lý do này, 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 băm đủ mạnh để có thể coi là ổn định (ví dụ, SHA-256).

Trong số các thuật toán SHA khác nhau, các gia đình SHA-0 và SHA-1 không còn được coi là an toàn vì đã phát hiện ra các va chạm. Hiện tại, chỉ có các gia đình SHA-2 và SHA-3 được coi là chống lại va chạm.

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

Thuộc tính này có liên quan chặt chẽ đế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 với hình ảnh trước miễn là có xác suất rất thấp rằng ai đó có thể tìm thấy đầu vào bằng cách sử dụng đầu ra được tạo ra.

Lưu ý rằng thuộc tính này khác với thuộc tính trước đó vì kẻ tấn công cần phải đoán đầu vào dựa trên một đầu ra cụ thể. Ngược lại, va chạm xảy ra khi ai đó tìm ra hai đầu vào khác nhau tạo ra cùng một đầu ra, bất kể đầu vào cụ thể nào đã được sử dụng.

Thuộc tính kháng lại hình ảnh trước là rất quý giá cho sự an toàn của dữ liệu, vì một hàm băm đơn giản của một tin nhắn 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 bổ sung. 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ì sử dụng chúng ở định dạng văn bản thuần.

Kháng cự với hình ảnh trước thứ hai

Loại kháng cự này nằm giữa hai thuộc tính trước đó. Cuộc tấn công hình ảnh thứ hai liên quan đến việc tìm một đầu vào cụ thể mà từ đó có thể tạo ra một đầu ra đã được sản xuất bằng cách sử dụng một đầu vào khác đã biết trướ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 phát hiện va chạm, nhưng thay vì tìm hai đầu vào ngẫu nhiên tạo ra cùng một Hàm băm, cuộc tấn công nhằm mục đích tìm một đầu vào có thể tái tạo một Hàm băm đã được tạo ra bởi một đầu vào khác.

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

Khai thác

Có nhiều bước trong việc khai thác Bitcoin được thực hiện thông qua các hàm băm. Những bước này bao gồm việc xác minh số dư, liên kết các đầu vào và đầu ra của các giao dịch, và kết hợp tất cả các giao dịch thành 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à các thợ mỏ phải thực hiện càng nhiều phép toán hàm băm càng tốt để cuối cùng tìm ra giải pháp đúng cho khối tiếp theo.

Một thợ mỏ phải sử dụng nhiều đầu vào để tạo ra một Hàm băm cho khối ứng cử viên của mình. Khối chỉ có thể được xác minh nếu đầu ra được tạo ra đúng cách dưới dạng Hàm băm bắt đầu với một số lượng nhất định của các số không. Số lượng số không xác định độ khó của việc đào và thay đổi theo hashrate của mạng.

Trong bối cảnh này, hàm băm là một thước đo sức mạnh tính toán được đầu tư vào việc khai thác Bitcoin. Nếu hàm băm bắt đầu tăng lên, 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 là khoảng 10 phút. Nếu nhiều thợ mỏ quyết định ngừng khai thác, dẫn đến sự sụt giảm đáng kể của hàm băm, độ khó khai thác sẽ được điều chỉnh để tạm thời dễ dàng tính toán ( cho đến khi thời gian trung bình hình thành khối trở lại 10 phút ).

Điều quan trọng cần nhấn mạnh là các thợ mỏ không cần phải tìm kiếm 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ủa 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 một ngưỡng được xác định bởi độ khó của việc khai thác.

Vì việc khai thác Bitcoin là một nhiệm vụ tốn kém, các thợ mỏ không có động lực để 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ể. Do đó, càng nhiều thợ mỏ tham gia vào blockchain, nó sẽ càng lớn và mạnh mẽ.

Kết luận

Không thể phủ nhận rằng các hàm băm là một trong những công cụ cơ bản trong lĩnh vực máy tính, đặc biệt là khi làm việc với khối lượng dữ liệu lớn. Khi được kết hợp với mã hóa, các thuật toán hàm băm trở nên cực kỳ hữu ích, vì chúng cung cấp sự 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ã hóa là rất quan trọng cho hầu hết tất cả các mạng tiền điện tử, và việc hiểu các thuộc tính và cơ chế hoạt động của chúng chắc chắn là điều có giá trị đối với bất kỳ ai quan tâm đến công nghệ blockchain.

EL0.29%
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
  • Chia sẻ
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)