Hàm băm: yếu tố then chốt trong coin

Quá trình Hàm băm bao gồm việc tạo ra một đầu ra có kích thước cố định từ một đầu vào biến đổi. Điều 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.

Trong lĩnh vực tiền điện tử, các hàm băm mật mã là rất quan trọng. Nhờ có chúng, các blockchain và các hệ thống phi tập trung khác đạt được mức độ toàn vẹn và an ninh dữ liệu cao.

Cả chức năng hàm băm thông thường và hàm băm mật mã đều là xác định. Điều này có nghĩa là, nếu đầu vào không thay đổi, thuật toán sẽ luôn sản xuất cùng một đầu ra ( cũng được gọi là digest hoặc Hàm băm ).

Thông thường, các thuật toán Hàm băm trong tiền điện tử đượ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 dễ dàng 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 lấy đầu ra từ đầu vào là đơn giản, nhưng việc làm ngược lại thì rất phức tạp. Càng khó khăn để tìm ra đầu vào, thuật toán càng được coi là an toàn.

Hoạt động của một hàm băm

Mỗi hàm băm tạo ra kết quả có kích thước cụ thể, là hằng số cho mỗi thuật toán. Ví dụ, SHA-256 luôn tạo ra đầu ra 256 bit, trong khi SHA-1 tạo ra các bản tóm tắt 160 bit.

Để minh họa, hãy áp dụng thuật toán SHA-256 ( được sử dụng trong Bitcoin) cho các từ "Gate" và "Gate":

SHA-256

Nhập

Salida (256 bits)

Cổng

8a83f205f3c314f629e3a0128f5f404cfd44b9a95da6d9f1a7b9f50d1f1b3b34

Cổng

7f7e4cf2eb50a0ea9d71edc37d6a1e74cf5e9348f7f9a0321b95e0a8e4097b3e

Hãy quan sát rằng một thay đổi tối thiểu (chữ cái đầu tiên) dẫn đến một Hàm băm hoàn toàn khác. Tuy nhiên, khi sử dụng SHA-256, các đầu ra sẽ luôn có 256 bit (64 ký tự), bất kể kích thước đầu vào. Hơn nữa, không quan trọng chúng ta xử lý những từ này bao nhiêu lần, các kết quả sẽ vẫn không thay đổi.

Ngược lại, nếu chúng ta áp dụng thuật toán SHA-1 cho cùng một đầu vào, chúng ta sẽ nhận được:

SHA-1

Nhập

Salida (160 bits)

Cổng

3e2a7fe40ac63dbe0a46a6931c74c1d4e6b7447d

Cổng

c1b7368da4b8ef83dbf7ca3d3c3d17e65d799708

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

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

Các hàm băm thông thường có nhiều ứng dụng, như 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. Ngược lại, các hàm băm mật mã được sử dụng rộng rãi trong bảo mật máy tính, xác thực tin nhắn và tạo dấu vân tay. Trong Bitcoin, chúng rất quan trọng cho quá trình khai thác và 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 thể hiện khi xử lý khối lượng lớn dữ liệu. Ví dụ, có thể xử lý một tệp hoặc tập dữ liệu lớn thông qua một hàm băm và 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 thông tin. Điều này khả thi nhờ vào bản chất xác định của các hàm băm: cùng một đầu vào sẽ luôn tạo ra một đầu ra nén giống hệt nhau. Kỹ thuật này loại bỏ nhu cầu lưu trữ và "nhớ" một lượng lớn thông tin.

Hàm băm đặc biệt hữu ích trong công nghệ blockchain. Chuỗi khối của Bitcoin liên quan đến nhiều hoạt động hàm băm, chủ yếu trong quy trình khai thác. Thực tế, hầu hết các giao thức tiền điện tử đều dựa 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, cũng như để tạo ra các liên kết mật mã giữa các khối, hình thành hiệu quả một chuỗi.

Hàm băm mật mã

Một hàm băm áp dụng các kỹ thuật mật mã được gọi là hàm băm mật mã. Nói chung, việc xâm phạm một trong những hàm này yêu cầu vô số nỗ lực brute force. Để "đảo ngược" một hàm băm mật mã, cần phải đoán vào thông qua thử và sai cho đến khi có được đầu ra tương ứng. Tuy nhiên, có khả năng các đầu vào khác nhau tạo ra chính xác cùng một kết quả, điều này được gọi là "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 một cách hiệu quả: 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.

Tóm tắt những đặc điểm này trong ba câu ngắn gọn:

  • Khả năng chống va chạm: không khả thi để tìm hai đầu vào khác nhau tạo ra cùng một Hàm băm làm đầu ra.

  • Kháng cự trước hình ảnh: không thể "đảo ngược" hàm băm ( để tìm đầu vào của một đầu ra xác định ).

  • Khả năng kháng trước hình ảnh thứ hai: không thể tìm thấy một đầu vào thứ hai nào va chạm với một đầu vào cụ thể.

Khả năng chống va chạm

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. Một hàm băm được coi là chống va chạm cho đến khi ai đó tìm thấy một. Điều quan trọng cần lưu ý là sẽ luôn 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 là hữu hạn.

Trong thực tế, một hàm băm được coi là chống va chạm khi xác suất tìm thấy một va chạm thấp đến mức 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 (, chẳng hạn như SHA-256).

Giữa các thuật toán SHA, các nhóm 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, các nhóm SHA-2 và SHA-3 được coi là chống va chạm.

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

Thuộc tính kháng tiền ảnh 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 ảnh khi có xác suất rất thấp rằng ai đó tìm thấy đầ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ì ở đây một kẻ tấn công sẽ cố gắng đoán đầu vào bằng cách quan sát một đầu ra cụ thể. Ngược lại, một va chạm xảy ra khi tìm thấy hai đầu vào khác nhau tạo ra cùng một đầu ra, bất kể đầu vào nào được sử dụng.

Kháng cự trước hình ảnh là rất quan trọng để 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 tiết lộ thông tin gốc. 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ưới dạng văn bản thuần.

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

Nói một cách đơn giản, chúng ta có thể nói rằng độ chống lại hình ảnh thứ hai nằm ở một điểm trung gian 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 như một đầu vào đã biết khác.

Nói cách khác, một cuộc tấn công hình ảnh trước thứ hai liên quan đến việc tìm một 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, người ta tìm một đầu vào tạo ra cùng một Hàm băm được tạo ra bởi một đầu vào cụ thể khác.

Do đó, bất kỳ hàm băm nào chống lại va chạm cũng sẽ chống lại các cuộc tấn công hình ảnh trước thứ hai, vì các cuộc tấn công này luôn liên quan đến một va chạm. Tuy nhiên, một cuộc tấn công hình ảnh trước vẫn có thể được thực hiện đối với một hàm chống lại va chạm, vì nó 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

Quá trình khai thác Bitcoin liên quan đến nhiều bước sử dụng các hàm băm, chẳng hạn như xác minh số dư, liên kết các đầu vào và đầu ra của giao dịch, và cô đặc các giao dịch thành một khối để tạo thành một cây Merkle. Tuy nhiên, 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 một lượng lớn các phép toán hàm băm để tìm ra một giải pháp hợp lệ cho khối tiếp theo.

Cụ thể, một thợ mỏ phải thử nghiệm các đầu vào khác nhau khi tạo ra một giá trị Hàm băm cho khối ứng cử viên của mình. Họ chỉ có thể xác nhận khối của mình nếu họ 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 các số không xác định độ khó của việc khai thác và thay đổi tùy theo hash rate được dành cho mạng.

Trong bối cảnh này, Hàm băm đại diện cho bao nhiêu 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 của mạng tăng, giao thức Bitcoin sẽ tự động điều chỉnh độ khó khai thác để giữ thời gian trung bình cần thiết để khai thác một khối gần 10 phút. Ngược lại, nếu nhiều thợ mỏ ngừng khai thác, gây ra sự sụt giảm đáng kể trong Hàm băm, độ khó khai thác sẽ được điều chỉnh, tạo điều kiện thuận lợi 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).

Điều quan trọng cần nhấn mạnh là các thợ mỏ không cần phải tìm ra các va chạm, vì có nhiều Hàm băm có thể tạo ra đầ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 ngưỡng được thiết lập bởi độ khó 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 đảo hệ thống, vì điều này sẽ gây ra 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 trở nên lớn hơn và mạnh mẽ hơn.

Những suy nghĩ cuối cùng

Không còn nghi ngờ gì nữa, các hàm băm là công cụ cơ bản trong tin học, đặc biệt là khi nói đến khối lượng lớn dữ liệu. Khi kết hợp với mật mã, các thuật toán hàm băm trở nên linh hoạt và 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ật mã là rất quan trọng đối với hầu hết các mạng tiền điện tử, và hiểu rõ 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.

EL-1.77%
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)