Hàm băm trong công nghệ chuỗi khối là gì? Trong tiếng Anh hàm băm được biết đến với tên gọi đó chính là Hash. Cách thức hoạt động của hàm băm?
Dể có thể quản lý chuỗi khối trong tiền mã hóa thì các nhà nghiên cứu đã sử dụng một hàm để dung chuyển đổi các loại chữ và số thành một hàm có độ dài nhất định để thuận tiện cho việc quản ý. Bởi vì đây lf một thuật ngữ trong toán học cho nên việc tiếp cận với thuật ngữ này cũng không đucợ phổ biến cho nên việc ít người biết đến thuật ngữ này cũng là điều dễ hiểu.
Mục lục bài viết
1. Hàm băm trong công nghệ chuỗi khối là gì?
Trong tiếng Anh hàm băm được biết đến với tên gọi đó chính là Hash.
Hàm băm trong công nghệ chuỗi khối 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 trong công nghệ chuỗi khối duy nhất của nó sẽ luôn có cùng kích thước. Hơn nữa, hàm băm trong công nghệ chuỗi khối 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 trong công nghệ chuỗi khối là “một chiều” (giống như máy xay thịt; bạn không thể đặt 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ó.
Hàm băm trong công nghệ chuỗi khối cũng rất cần thiết để quản lý chuỗi khối trong tiền điện tử.
Hàm băm trong công nghệ chuỗi khối 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 chuỗi khối. Hàm băm trong công nghệ chuỗi khối 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 chuỗi khối. 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 trong công nghệ chuỗi khối được phát triển dựa trên thông tin có trong tiêu đề khối.
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 yêu cầu 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 đúng nonce chính xác trong lần thử đầu tiên, có nghĩa là người khai thác có thể 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 hơn để 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 trong công nghệ chuỗi khốicho “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 trong công nghệ chuỗi khối 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. Người khai thác chỉ được bồi thường nếu họ là người đầu tiên tạo hàm băm đáp ứng các yêu cầu được nêu trong hàm băm mục tiêu.
Hàm băm trong công nghệ chuỗi khối 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”.
Hàm băm là một hàm chuyển đổi giá trị này sang giá trị khác. Băm dữ liệu là một thực tế phổ biến trong khoa học máy tính và được sử dụng cho một số mục đích khác nhau. Ví dụ bao gồm mật mã, nén, tạo tổng kiểm tra và lập chỉ mục dữ liệu. Băm là một sự phù hợp tự nhiên đối với mật mã vì nó che giấu dữ liệu gốc bằng một giá trị khác. Một hàm băm có thể được sử dụng để tạo ra một giá trị mà chỉ có thể được giải mã bằng cách tra cứu giá trị từ bảng băm. Bảng có thể là một mảng, cơ sở dữ liệu hoặc cấu trúc dữ liệu khác. Một hàm băm mật mã tốt là không thể đảo ngược, có nghĩa là nó không thể được thiết kế ngược.
2. Cách thức hoạt động của hàm băm:
Các hàm băm trong công nghệ chuỗi khối đ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 trong công nghệ chuỗi khối 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 báo 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, chúng không dễ giải mã.
Các hàm băm trong công nghệ chuỗi khối 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.
Hàm băm trong công nghệ chuỗi khối 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 trong công nghệ chuỗi khối đượ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. Ngoài ra, khai thác tiền điện tử sử dụng bằng chứng công việc (PoW) 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.
Đặc biệt, các hàm băm trong công nghệ chuỗi khối 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 trong công nghệ chuỗi khối đầu vào nào nên ánh xạ đến 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 trong công nghệ chuỗi khối 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 trong công nghệ chuỗi khối, 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.
Xương sống của tiền điện tử là blockchain, là một sổ cái toàn cầu được hình thành bằng cách liên kết các khối dữ liệu giao dịch riêng lẻ với nhau. 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 trong công nghệ chuỗi khối 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. Việc 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 trong công nghệ chuỗi khối sẽ không thể biết đầu vào dài hay ngắn chỉ đơn giản bằng cách xem độ 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 trong công nghệ chuỗi khối được sử dụng trong khối trước đó, hàm băm của gốc Merkle, 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 trong công nghệ chuỗi khối 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.