Băm trong Blockchain là gì? Những điều cơ bản được đề cập

Người mới bắt đầu11/23/2023, 3:43:52 AM
Bài viết này khám phá vai trò cơ bản của hàm băm trong công nghệ chuỗi khối, một trung tâm đổi mới quan trọng để duy trì tính bảo mật và độ tin cậy của tiền điện tử. Người đọc sẽ hiểu rõ hơn về thế giới băm dễ tiếp cận nhưng sâu sắc, một công cụ mã hóa thiết yếu giúp củng cố các chuỗi khối, biến chúng thành nền tảng an toàn cho các giao dịch tài chính.

Có nhiều cải tiến khác nhau góp phần tạo nên công nghệ blockchain, một trong những cải tiến quan trọng nhất là băm. Nhưng băm trong blockchain là gì? Nếu không có nó, blockchain sẽ không an toàn và hoàn toàn không thể sử dụng được. Với nó, họ làm cho tiền điện tử trở nên an toàn và đáng tin cậy.

Nếu bạn không muốn lấy bằng khoa học máy tính và muốn biết chi tiết về loại mật mã nguyên thủy này, thì hãy tiếp tục. Bạn sẽ thấy rằng việc hiểu băm không quá khó.

Mật mã là gì?

Từ mật mã xuất phát từ tiếng Hy Lạp kryptos, có nghĩa là ẩn. Đó là nghiên cứu và áp dụng các phương pháp liên lạc an toàn khi đối mặt với hoạt động thù địch. Về bản chất, đó là hành động mã hóa tin nhắn. Mật mã hiện đại lấy máy tính làm trung tâm nhưng đã có từ thời cổ đại.

Chữ tượng hình Ai Cập là một ví dụ tuyệt vời về mật mã. Ai Cập cổ đại đã phát triển những thông điệp được mã hóa đầu tiên dưới dạng một chuỗi chữ tượng hình lộn xộn, nhằm ngăn chặn những người chưa quen biết tìm hiểu bí mật của nhiều trường phái bí ẩn khác nhau. Phương pháp mã hóa này rất đơn giản, dựa trên một kỹ thuật được gọi là thay thế đơn giản.

Nghi ngờ sứ giả của mình, Hoàng đế La Mã Julius Caesar đã gửi tin nhắn được mã hóa cho các tướng lĩnh của mình. Được đặt tên sau khi mất, Julius Caesar đã phổ biến Mật mã Caesar. Mật mã Caesar cũng là một kỹ thuật thay thế đơn giản.

Băm là gì?

Băm là một dạng mật mã. Hàm băm là bất kỳ hàm nào có thể ánh xạ dữ liệu có kích thước tùy ý thành các giá trị có kích thước cố định. Các giá trị được hàm băm trả về được gọi là giá trị băm, mã băm, bản tóm tắt hoặc đơn giản là giá trị băm.

Ví dụ: lấy văn bản gốc “Xin chào thế giới”. Sử dụng hàm băm của Ethereum, hàm băm Keccak-256, chúng ta sẽ chuyển đổi văn bản gốc thành hàm băm “592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba.” Tương ứng, đầu ra giống với một địa chỉ Ethereum.

Mọi người vô tình gặp phải băm trong cuộc sống hàng ngày của họ. Bạn có thể gặp phải các hàm băm hàng ngày khi sử dụng mật khẩu. Khi bạn tạo tài khoản trên một ứng dụng, rất có thể nhà cung cấp sẽ không lưu mật khẩu của bạn; họ lưu một hàm băm mật khẩu của bạn. Khi bạn đăng nhập vào tài khoản của mình, ứng dụng sẽ băm mật khẩu bạn nhập và so sánh hàm băm này với hàm băm mà nó đã lưu trong hồ sơ.

Thuộc tính hàm băm mật mã

Nói một cách đơn giản, không phải tất cả các chức năng đều được tạo ra như nhau. Hàm băm phải đáp ứng các yêu cầu cụ thể để hoạt động bình thường. Chúng phải có những đặc tính sau:

Tính toán hiệu quả

Máy tính phải có khả năng trả về hàm băm một cách nhanh chóng; hầu hết có thể xử lý hàm băm trong một phần giây.

xác định

Ví dụ: bằng cách sử dụng hàm băm Keccak-256, chúng tôi sẽ thay đổi thông báo “Xin chào thế giới” thành “xin chào thế giới”. Điều này trả về giá trị “079813c47d3d4ab9abf0c0747f5b5cdf90e0e264ae09ea44fb2509c559b72ac1.” Như bạn có thể thấy, hàm băm của chúng tôi phân biệt chữ hoa chữ thường và làm thay đổi đáng kể kết quả của hàm băm trả về.

Giá trị băm chính xác phải được tạo ra mỗi lần cho một giá trị đầu vào nhất định. Bạn phải nhớ rằng băm là một cách để gửi tin nhắn một cách an toàn. Nếu không đúng như vậy thì bạn có thể thay đổi đầu vào thành hàm băm mà người nhận không biết.

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

Một cuộc tấn công tiền hình ảnh xảy ra khi biết đầu ra của hàm băm và nhiệm vụ là tìm một số đầu vào. Một cuộc tấn công tiền ảnh vào hàm băm mật mã sẽ tìm kiếm một thông điệp có giá trị băm cụ thể. Hàm băm mật mã phải có khả năng chống lại các cuộc tấn công tiền ảnh (tập hợp các đầu vào có thể có).

Bạn sẽ không muốn sử dụng hình ảnh trước (tức là plaintext) làm mật khẩu trong ví dụ của chúng tôi “Xin chào thế giới”. Vì bản rõ “Hello World” cực kỳ đơn giản và dễ xác định. Có những cơ sở dữ liệu lưu giữ hồ sơ về các đầu vào đã biết để bảo mật các hàm băm, như SHA-256.

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

Thuộc tính dự kiến của hàm băm mật mã trong đó việc tìm kiếm tiền ảnh thứ hai của bản tóm tắt thông điệp đã biết là không thể về mặt tính toán.

Chống va chạm

Phải cực kỳ khó khăn hoặc không thể tìm được hai đầu vào tạo ra cùng một đầu ra. Vì giá trị đầu vào có thể có độ dài bất kỳ và bất kỳ ký tự nào nên khả năng cho giá trị này là vô hạn. Đầu ra có độ dài cố định và —vì lý do đó— một số khả năng cố định.

Do đó, có thể có nhiều giá trị đầu vào tạo ra cùng một đầu ra. Nếu khả năng chống va chạm không đủ mạnh, va chạm có thể được phát hiện thông qua “cuộc tấn công sinh nhật”. Bạn có thể nhận thấy rằng lực cản tiền ảnh thứ hai và lực cản va chạm rất giống nhau. Hãy yên tâm rằng chúng riêng biệt và khá đơn giản.

Với khả năng chống tiền hình ảnh thứ hai, đầu vào đã được biết và kẻ tấn công có thể tìm thấy đầu vào thứ hai băm thành cùng một giá trị. Với khả năng chống va chạm, cả hai đầu vào đều không xác định và kẻ tấn công có thể tìm thấy cả hai đầu vào băm thành cùng một giá trị. Khả năng chống va chạm ngụ ý khả năng chống lại hình ảnh trước.

Tấn công sinh nhật

Đây là một cuộc tấn công khai thác tính toán học đằng sau lý thuyết xác suất. Có thể bạn đã từng nghe về ví dụ về ngày sinh nhật; Nếu bạn có một phòng có 27 người, mặc dù điều này có vẻ khó xảy ra nhưng thực tế có 50% khả năng hai người có cùng ngày sinh.

Tại sao lại thế này? Một người có xác suất 1/365 có ngày sinh 'đúng'. Xác suất để người thứ hai có cùng ngày sinh cũng là 1/365. Để tìm xác suất cả hai có cùng ngày sinh, chúng ta phải nhân xác suất của chúng. Vì vậy, hãy mở rộng quy mô, nếu bạn có 365 ngày sinh nhật khác nhau và do đó có 365 khả năng, bạn cần căn bậc hai của 365 là 23 người được chọn ngẫu nhiên để có 50% cơ hội gặp những người trùng khớp.

Áp dụng lý thuyết này vào việc băm, chúng tôi nhận ra điều đó về mặt kỹ thuật; không có hàm băm nào là không có xung đột, nhưng với nó sẽ mất nhiều thời gian để điều này xảy ra!

Hashing được sử dụng như thế nào trong Blockchain?

Tổng tỷ lệ băm bitcoin: Blockchain.com

Bitcoin hoạt động trên blockchain và sử dụng thuật toán băm 'SHA-256' (Thuật toán băm an toàn 256). Đối với bitcoin, hàm băm được sử dụng cho ba hàm chính:

Khai thác

Thợ mỏ đua nhau giải câu đố; mỗi người khai thác lấy thông tin từ các khối mà họ đã biết, băm chúng và xây dựng một khối từ chúng. Nếu đầu ra từ thuật toán nhỏ hơn số mục tiêu thì nó sẽ được coi là hợp lệ và có thể được phần còn lại của mạng chấp nhận. Sau đó, họ có quyền tạo khối tiếp theo.

Khối liên kết

Để tăng cường bảo mật; mỗi khối trên blockchain được liên kết với khối trước đó. Điều này đạt được bằng một con trỏ băm (các biến lưu trữ địa chỉ của một biến khác). Về cơ bản, mỗi khối chứa kết quả băm từ khối trước đó trên blockchain. Điều này đảm bảo rằng lịch sử của blockchain có thể được theo dõi dễ dàng và loại bỏ khả năng một khối độc hại được thêm vào.

Tạo khóa

Để gửi hoặc nhận tiền điện tử, bạn cần có khóa riêng và khóa chung. Hai khóa này được kết nối với nhau thông qua hàm băm. Đây là thành phần thiết yếu để đảm bảo rằng không ai có thể tìm ra khóa riêng của bạn dựa trên khóa chung của bạn.

Tầm quan trọng của việc băm

Hàm băm mang lại cho tiền điện tử mức độ bảo mật cao. Mặc dù, về mặt lý thuyết, không có gì trực tuyến miễn nhiễm với hack; hàm băm cung cấp mức độ khó tối đa hiện có.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được sao chép từ [Beincrypto] và bản quyền thuộc về tác giả gốc [Jessica Lloyd]. Nếu có phản đối về việc sao chép, vui lòng liên hệ với nhóm Gate Learn và nhóm sẽ xử lý kịp thời theo các thủ tục liên quan.
  2. Tuyên bố từ chối trách nhiệm: Các quan điểm và ý kiến trình bày trong bài viết này chỉ thể hiện quan điểm cá nhân của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Các phiên bản ngôn ngữ khác của bài viết được nhóm Gate Learn dịch. Không đề cập đến Gate.io thì không được phép sao chép, phổ biến, đạo văn các bài viết đã dịch.

Băm trong Blockchain là gì? Những điều cơ bản được đề cập

Người mới bắt đầu11/23/2023, 3:43:52 AM
Bài viết này khám phá vai trò cơ bản của hàm băm trong công nghệ chuỗi khối, một trung tâm đổi mới quan trọng để duy trì tính bảo mật và độ tin cậy của tiền điện tử. Người đọc sẽ hiểu rõ hơn về thế giới băm dễ tiếp cận nhưng sâu sắc, một công cụ mã hóa thiết yếu giúp củng cố các chuỗi khối, biến chúng thành nền tảng an toàn cho các giao dịch tài chính.

Có nhiều cải tiến khác nhau góp phần tạo nên công nghệ blockchain, một trong những cải tiến quan trọng nhất là băm. Nhưng băm trong blockchain là gì? Nếu không có nó, blockchain sẽ không an toàn và hoàn toàn không thể sử dụng được. Với nó, họ làm cho tiền điện tử trở nên an toàn và đáng tin cậy.

Nếu bạn không muốn lấy bằng khoa học máy tính và muốn biết chi tiết về loại mật mã nguyên thủy này, thì hãy tiếp tục. Bạn sẽ thấy rằng việc hiểu băm không quá khó.

Mật mã là gì?

Từ mật mã xuất phát từ tiếng Hy Lạp kryptos, có nghĩa là ẩn. Đó là nghiên cứu và áp dụng các phương pháp liên lạc an toàn khi đối mặt với hoạt động thù địch. Về bản chất, đó là hành động mã hóa tin nhắn. Mật mã hiện đại lấy máy tính làm trung tâm nhưng đã có từ thời cổ đại.

Chữ tượng hình Ai Cập là một ví dụ tuyệt vời về mật mã. Ai Cập cổ đại đã phát triển những thông điệp được mã hóa đầu tiên dưới dạng một chuỗi chữ tượng hình lộn xộn, nhằm ngăn chặn những người chưa quen biết tìm hiểu bí mật của nhiều trường phái bí ẩn khác nhau. Phương pháp mã hóa này rất đơn giản, dựa trên một kỹ thuật được gọi là thay thế đơn giản.

Nghi ngờ sứ giả của mình, Hoàng đế La Mã Julius Caesar đã gửi tin nhắn được mã hóa cho các tướng lĩnh của mình. Được đặt tên sau khi mất, Julius Caesar đã phổ biến Mật mã Caesar. Mật mã Caesar cũng là một kỹ thuật thay thế đơn giản.

Băm là gì?

Băm là một dạng mật mã. Hàm băm là bất kỳ hàm nào có thể ánh xạ dữ liệu có kích thước tùy ý thành các giá trị có kích thước cố định. Các giá trị được hàm băm trả về được gọi là giá trị băm, mã băm, bản tóm tắt hoặc đơn giản là giá trị băm.

Ví dụ: lấy văn bản gốc “Xin chào thế giới”. Sử dụng hàm băm của Ethereum, hàm băm Keccak-256, chúng ta sẽ chuyển đổi văn bản gốc thành hàm băm “592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba.” Tương ứng, đầu ra giống với một địa chỉ Ethereum.

Mọi người vô tình gặp phải băm trong cuộc sống hàng ngày của họ. Bạn có thể gặp phải các hàm băm hàng ngày khi sử dụng mật khẩu. Khi bạn tạo tài khoản trên một ứng dụng, rất có thể nhà cung cấp sẽ không lưu mật khẩu của bạn; họ lưu một hàm băm mật khẩu của bạn. Khi bạn đăng nhập vào tài khoản của mình, ứng dụng sẽ băm mật khẩu bạn nhập và so sánh hàm băm này với hàm băm mà nó đã lưu trong hồ sơ.

Thuộc tính hàm băm mật mã

Nói một cách đơn giản, không phải tất cả các chức năng đều được tạo ra như nhau. Hàm băm phải đáp ứng các yêu cầu cụ thể để hoạt động bình thường. Chúng phải có những đặc tính sau:

Tính toán hiệu quả

Máy tính phải có khả năng trả về hàm băm một cách nhanh chóng; hầu hết có thể xử lý hàm băm trong một phần giây.

xác định

Ví dụ: bằng cách sử dụng hàm băm Keccak-256, chúng tôi sẽ thay đổi thông báo “Xin chào thế giới” thành “xin chào thế giới”. Điều này trả về giá trị “079813c47d3d4ab9abf0c0747f5b5cdf90e0e264ae09ea44fb2509c559b72ac1.” Như bạn có thể thấy, hàm băm của chúng tôi phân biệt chữ hoa chữ thường và làm thay đổi đáng kể kết quả của hàm băm trả về.

Giá trị băm chính xác phải được tạo ra mỗi lần cho một giá trị đầu vào nhất định. Bạn phải nhớ rằng băm là một cách để gửi tin nhắn một cách an toàn. Nếu không đúng như vậy thì bạn có thể thay đổi đầu vào thành hàm băm mà người nhận không biết.

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

Một cuộc tấn công tiền hình ảnh xảy ra khi biết đầu ra của hàm băm và nhiệm vụ là tìm một số đầu vào. Một cuộc tấn công tiền ảnh vào hàm băm mật mã sẽ tìm kiếm một thông điệp có giá trị băm cụ thể. Hàm băm mật mã phải có khả năng chống lại các cuộc tấn công tiền ảnh (tập hợp các đầu vào có thể có).

Bạn sẽ không muốn sử dụng hình ảnh trước (tức là plaintext) làm mật khẩu trong ví dụ của chúng tôi “Xin chào thế giới”. Vì bản rõ “Hello World” cực kỳ đơn giản và dễ xác định. Có những cơ sở dữ liệu lưu giữ hồ sơ về các đầu vào đã biết để bảo mật các hàm băm, như SHA-256.

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

Thuộc tính dự kiến của hàm băm mật mã trong đó việc tìm kiếm tiền ảnh thứ hai của bản tóm tắt thông điệp đã biết là không thể về mặt tính toán.

Chống va chạm

Phải cực kỳ khó khăn hoặc không thể tìm được hai đầu vào tạo ra cùng một đầu ra. Vì giá trị đầu vào có thể có độ dài bất kỳ và bất kỳ ký tự nào nên khả năng cho giá trị này là vô hạn. Đầu ra có độ dài cố định và —vì lý do đó— một số khả năng cố định.

Do đó, có thể có nhiều giá trị đầu vào tạo ra cùng một đầu ra. Nếu khả năng chống va chạm không đủ mạnh, va chạm có thể được phát hiện thông qua “cuộc tấn công sinh nhật”. Bạn có thể nhận thấy rằng lực cản tiền ảnh thứ hai và lực cản va chạm rất giống nhau. Hãy yên tâm rằng chúng riêng biệt và khá đơn giản.

Với khả năng chống tiền hình ảnh thứ hai, đầu vào đã được biết và kẻ tấn công có thể tìm thấy đầu vào thứ hai băm thành cùng một giá trị. Với khả năng chống va chạm, cả hai đầu vào đều không xác định và kẻ tấn công có thể tìm thấy cả hai đầu vào băm thành cùng một giá trị. Khả năng chống va chạm ngụ ý khả năng chống lại hình ảnh trước.

Tấn công sinh nhật

Đây là một cuộc tấn công khai thác tính toán học đằng sau lý thuyết xác suất. Có thể bạn đã từng nghe về ví dụ về ngày sinh nhật; Nếu bạn có một phòng có 27 người, mặc dù điều này có vẻ khó xảy ra nhưng thực tế có 50% khả năng hai người có cùng ngày sinh.

Tại sao lại thế này? Một người có xác suất 1/365 có ngày sinh 'đúng'. Xác suất để người thứ hai có cùng ngày sinh cũng là 1/365. Để tìm xác suất cả hai có cùng ngày sinh, chúng ta phải nhân xác suất của chúng. Vì vậy, hãy mở rộng quy mô, nếu bạn có 365 ngày sinh nhật khác nhau và do đó có 365 khả năng, bạn cần căn bậc hai của 365 là 23 người được chọn ngẫu nhiên để có 50% cơ hội gặp những người trùng khớp.

Áp dụng lý thuyết này vào việc băm, chúng tôi nhận ra điều đó về mặt kỹ thuật; không có hàm băm nào là không có xung đột, nhưng với nó sẽ mất nhiều thời gian để điều này xảy ra!

Hashing được sử dụng như thế nào trong Blockchain?

Tổng tỷ lệ băm bitcoin: Blockchain.com

Bitcoin hoạt động trên blockchain và sử dụng thuật toán băm 'SHA-256' (Thuật toán băm an toàn 256). Đối với bitcoin, hàm băm được sử dụng cho ba hàm chính:

Khai thác

Thợ mỏ đua nhau giải câu đố; mỗi người khai thác lấy thông tin từ các khối mà họ đã biết, băm chúng và xây dựng một khối từ chúng. Nếu đầu ra từ thuật toán nhỏ hơn số mục tiêu thì nó sẽ được coi là hợp lệ và có thể được phần còn lại của mạng chấp nhận. Sau đó, họ có quyền tạo khối tiếp theo.

Khối liên kết

Để tăng cường bảo mật; mỗi khối trên blockchain được liên kết với khối trước đó. Điều này đạt được bằng một con trỏ băm (các biến lưu trữ địa chỉ của một biến khác). Về cơ bản, mỗi khối chứa kết quả băm từ khối trước đó trên blockchain. Điều này đảm bảo rằng lịch sử của blockchain có thể được theo dõi dễ dàng và loại bỏ khả năng một khối độc hại được thêm vào.

Tạo khóa

Để gửi hoặc nhận tiền điện tử, bạn cần có khóa riêng và khóa chung. Hai khóa này được kết nối với nhau thông qua hàm băm. Đây là thành phần thiết yếu để đảm bảo rằng không ai có thể tìm ra khóa riêng của bạn dựa trên khóa chung của bạn.

Tầm quan trọng của việc băm

Hàm băm mang lại cho tiền điện tử mức độ bảo mật cao. Mặc dù, về mặt lý thuyết, không có gì trực tuyến miễn nhiễm với hack; hàm băm cung cấp mức độ khó tối đa hiện có.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được sao chép từ [Beincrypto] và bản quyền thuộc về tác giả gốc [Jessica Lloyd]. Nếu có phản đối về việc sao chép, vui lòng liên hệ với nhóm Gate Learn và nhóm sẽ xử lý kịp thời theo các thủ tục liên quan.
  2. Tuyên bố từ chối trách nhiệm: Các quan điểm và ý kiến trình bày trong bài viết này chỉ thể hiện quan điểm cá nhân của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Các phiên bản ngôn ngữ khác của bài viết được nhóm Gate Learn dịch. Không đề cập đến Gate.io thì không được phép sao chép, phổ biến, đạo văn các bài viết đã dịch.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500