Tech

Hash tiền điện tử là gì

Hash tiền điện tử là gì ?

Hash tiền điện tử là một hàm toán học chuyển đổi đầu vào có độ dài tùy ý thành đầu ra được mã hóa có độ dài cố định. Do đó, bất kể lượng dữ liệu ban đầu hoặc kích thước tệp có liên quan, hàm băm duy nhất của nó sẽ luôn có cùng kích thước. Hơn nữa, hàm băm không thể được sử dụng để “thiết kế ngược” đầu vào từ đầu ra đã băm, vì các hàm băm là “một chiều” (giống như máy xay thịt; bạn không thể đưa thịt bò xay trở lại thành miếng bít tết). Tuy nhiên, nếu bạn sử dụng một hàm như vậy trên cùng một dữ liệu, hàm băm của nó sẽ giống hệt nhau, vì vậy bạn có thể xác nhận rằng dữ liệu là giống nhau (tức là không thay đổi) nếu bạn đã biết hàm băm của nó.

Xem bài trước : Block Header là gì ?

Hashing cũng rất cần thiết để quản lý blockchain trong tiền điện tử.

Ý CHÍNH

  • Hàm băm là một hàm đáp ứng các nhu cầu được mã hóa cần thiết để giải quyết tính toán blockchain.
  • Hàm băm có độ dài cố định vì nó khiến bạn gần như không thể đoán được độ dài của hàm băm nếu ai đó đang cố gắng bẻ khóa blockchain.
  • Dữ liệu giống nhau sẽ luôn tạo ra cùng một giá trị băm.
  • Một băm, giống như một nonce hoặc một giải pháp, là xương sống của mạng blockchain.
  • Hàm băm được phát triển dựa trên thông tin có trong tiêu đề khối.

Hash tiền điện tử là gì

Cách Hash hoạt động

Các hàm băm điển hình nhận đầu vào có độ dài thay đổi để trả về đầu ra có độ dài cố định. Một hàm băm mật mã kết hợp khả năng truyền thông điệp của các hàm băm với các thuộc tính bảo mật.

Hàm băm là cấu trúc dữ liệu thường được sử dụng trong hệ thống máy tính cho các nhiệm vụ, chẳng hạn như kiểm tra tính toàn vẹn của thông điệp và xác thực thông tin. Mặc dù chúng được coi là “yếu” về mặt mật mã vì chúng có thể được giải trong thời gian đa thức, nhưng chúng không dễ dàng giải mã được.

Các hàm băm mật mã bổ sung các tính năng bảo mật cho các hàm băm điển hình, khiến việc phát hiện nội dung của một tin nhắn hoặc thông tin về người nhận và người gửi trở nên khó khăn hơn. 

Đặc biệt, các hàm băm mật mã thể hiện ba thuộc tính sau:

  • Chúng “không va chạm”. Điều này có nghĩa là không có hai hàm băm đầu vào nào nên ánh xạ tới cùng một hàm băm đầu ra. 
  • Chúng có thể được ẩn. Sẽ rất khó để đoán giá trị đầu vào cho một hàm băm từ đầu ra của nó. 
  • Chúng phải thân thiện với câu đố. Sẽ rất khó để chọn một đầu vào cung cấp một đầu ra được xác định trước. Do đó, đầu vào nên được chọn từ một bản phân phối càng rộng càng tốt. 

Do các tính năng của hàm băm, chúng được sử dụng rộng rãi trong bảo mật trực tuyến — từ bảo vệ mật khẩu đến phát hiện vi phạm dữ liệu đến kiểm tra tính toàn vẹn của tệp đã tải xuống.

Hash và tiền điện tử

Xương sống của cryptocurrency là blockchain, mà là một sổ kế toán toàn cầu được hình thành bằng cách liên kết khối với nhau riêng biệt của dữ liệu giao dịch. Blockchain chỉ chứa các giao dịch đã được xác thực, giúp ngăn chặn các giao dịch gian lận và chi tiêu gấp đôi tiền tệ. Giá trị được mã hóa kết quả là một chuỗi số và chữ cái không giống với dữ liệu gốc và được gọi là băm. Khai thác tiền điện tử liên quan đến việc làm việc với hàm băm này.

Việc băm yêu cầu xử lý dữ liệu từ một khối thông qua một hàm toán học, dẫn đến kết quả đầu ra có độ dài cố định. Sử dụng đầu ra có độ dài cố định sẽ tăng tính bảo mật vì bất kỳ ai cố gắng giải mã hàm băm sẽ không thể biết đầu vào dài hay ngắn chỉ đơn giản bằng cách nhìn vào độ dài của đầu ra.

Việc giải mã băm bắt đầu với dữ liệu có sẵn trong tiêu đề khối và về cơ bản là giải một bài toán phức tạp. Mỗi tiêu đề khối chứa số phiên bản, dấu thời gian, hàm băm được sử dụng trong khối trước đó, hàm băm của Merkle Root, mã số nonce và mã băm mục tiêu.

Người khai thác tập trung vào nonce, một chuỗi số. Số này được thêm vào nội dung được băm của khối trước đó, khối này sau đó sẽ được băm. Nếu hàm băm mới này nhỏ hơn hoặc bằng hàm băm mục tiêu , thì nó được chấp nhận là giải pháp, người khai thác được trao phần thưởng và khối được thêm vào blockchain.

Quá trình xác thực cho các giao dịch blockchain dựa trên dữ liệu được mã hóa bằng cách sử dụng băm thuật toán.

Việc giải mã băm yêu cầu người khai thác xác định chuỗi nào sẽ sử dụng làm nonce, bản thân chuỗi này đòi hỏi một lượng lớn thử nghiệm và sai sót. Điều này là do nonce là một chuỗi ngẫu nhiên. Rất ít khả năng một người khai thác sẽ đưa ra thành công nonce chính xác trong lần thử đầu tiên, có nghĩa là người khai thác có khả năng thử nghiệm một số lượng lớn các tùy chọn nonce trước khi làm đúng. Độ khó càng lớn — thước đo mức độ khó để tạo ra một hàm băm đáp ứng yêu cầu của hàm băm mục tiêu – thì càng có khả năng mất nhiều thời gian để tạo ra một giải pháp. 

Ví dụ về băm

Việc băm từ “xin chào” sẽ tạo ra kết quả có cùng độ dài với hàm băm cho “Tôi sắp đến cửa hàng”. Hàm được sử dụng để tạo băm là hàm xác định, có nghĩa là nó sẽ tạo ra cùng một kết quả mỗi khi cùng một đầu vào được sử dụng. Nó có thể tạo ra một đầu vào được băm một cách hiệu quả; nó cũng làm cho việc xác định đầu vào trở nên khó khăn (dẫn đến khai thác), cũng như thực hiện các thay đổi nhỏ đối với kết quả đầu vào trong một hàm băm hoàn toàn khác, không thể nhận ra.

Việc xử lý các hàm băm cần thiết để mã hóa các khối mới đòi hỏi sức mạnh xử lý máy tính đáng kể, điều này có thể tốn kém. Để lôi kéo các cá nhân và công ty, được gọi là thợ đào, đầu tư vào công nghệ cần thiết, các mạng lưới tiền điện tử thưởng cho họ cả mã thông báo tiền điện tử mới và một khoản phí giao dịch. Những người khai thác chỉ được bồi thường nếu họ là người đầu tiên tạo ra một hàm băm đáp ứng các yêu cầu được nêu trong hàm băm mục tiêu.

Các câu hỏi thường gặp

Hàm băm là gì?

Hàm băm là các hàm toán học biến đổi hoặc “ánh xạ” một tập dữ liệu nhất định thành một chuỗi bit có kích thước cố định, còn được gọi là “giá trị băm”.

Giá trị băm được tính như thế nào?

Một hàm băm sử dụng các thuật toán toán học phức tạp để chuyển đổi dữ liệu có độ dài tùy ý thành dữ liệu có độ dài cố định (ví dụ: 256 ký tự). Nếu bạn thay đổi một bit ở bất kỳ đâu trong dữ liệu gốc, thì toàn bộ giá trị băm sẽ thay đổi, điều này rất hữu ích cho việc xác minh tính trung thực của các tệp kỹ thuật số và dữ liệu khác.

Hàm băm được sử dụng để làm gì trong blockchain?

Hàm băm được sử dụng trong một số phần của hệ thống blockchain. Đầu tiên, mỗi khối chứa băm của tiêu đề khối của khối trước đó, đảm bảo rằng không có gì bị can thiệp khi các khối mới được thêm vào. Khai thác tiền điện tử sử dụng bằng chứng công việc (PoW), hơn nữa sử dụng băm các số được tạo ngẫu nhiên để đi đến một giá trị băm cụ thể có chứa một loạt các số 0 ở đầu. Chức năng tùy ý này tiêu tốn nhiều tài nguyên, khiến kẻ xấu khó vượt qua mạng lưới.

Blog Tiền Điện Tử

Blog tiền điện tử công thông tin tổng hợp uy tín nhất tất cả các mảng xã hội, giáo dục , công nghệ số. Với khả năng số hóa mạnh mẽ hy vọng sẽ mang lại cho quý bạn đọc những thông tin chính xác nhất 24/24
Back to top button