Băm mục tiêu trong công nghệ chuỗi khối là gì? Nội dung về Băm mục tiêu?
Đối với tiền điện tử, có nhiều hình thức khai thác khác nhau. Để có bằng chứng về hệ thống làm việc, các thợ đào đều đang cố gắng tìm ra hàm băm mục tiêu cho mỗi khối. Đây là một giá trị số mà tiêu đề khối hiện tại cần phải nhỏ hơn hoặc bằng. Khi một người khai thác tìm thấy một hàm băm mục tiêu, người khai thác thành công sẽ được thưởng bằng mã thông báo – đối với bitcoin, những mã thông báo này là bitcoin và cũng thường được gọi là phần thưởng khối. Cũng cần lưu ý rằng mặc dù hàm băm mục tiêu trông giống như một chuỗi chữ và số nhưng nó thực sự là một số ở dạng thập lục phân.
1. Băm mục tiêu trong công nghệ chuỗi khối là gì?
Trong khai thác tiền điện tử, băm mục tiêu là một giá trị số mà tiêu đề khối băm phải nhỏ hơn hoặc bằng để khối mới được trao cho người khai thác. Tiêu đề khối xác định các khối riêng lẻ trong một chuỗi khối. Khai thác tiền điện tử đề cập đến quá trình thu thập tiền điện tử như một phần thưởng cho công việc mà bạn hoàn thành. Bản chất của công việc này là xác minh tính hợp pháp của các giao dịch của một loại tiền điện tử nhất định. Theo cách này, những người khai thác tiền điện tử về cơ bản là những người kiểm toán. Khi bạn khai thác, bạn có thể kiếm được tiền điện tử mà không cần phải bỏ tiền cho nó.
Băm mục tiêu là một số phải lớn hơn hoặc bằng tiêu đề khối đã băm để khối mới được trao. Hàm băm mục tiêu được sử dụng để xác định độ khó của đầu vào và có thể được điều chỉnh để đảm bảo quá trình xử lý khối hiệu quả. Hàm băm mục tiêu được sử dụng để xác định độ khó của đầu vào và có thể được điều chỉnh để đảm bảo rằng các khối được xử lý hiệu quả. Ví dụ: băm mục tiêu được sử dụng trong tiền điện tử sử dụng hệ thống bằng chứng công việc (PoW) để đặt độ khó khai thác hiện tại (bao gồm cả Bitcoin). Nếu tiền điện tử sử dụng một hệ thống khác để khai thác, nó có thể không yêu cầu hàm băm mục tiêu.
Trong khai thác tiền điện tử, băm mục tiêu là một giá trị số mà tiêu đề khối băm (được sử dụng để xác định các khối riêng lẻ trong chuỗi khối) phải nhỏ hơn hoặc bằng để một khối mới được trao cho người khai thác. Băm mục tiêu được sử dụng trong tiền điện tử sử dụng hệ thống bằng chứng công việc (PoW) để đặt độ khó khai thác hiện tại (bao gồm cả Bitcoin); nếu tiền điện tử sử dụng một hệ thống khác để khai thác, nó có thể không yêu cầu hàm băm mục tiêu. Mạng Bitcoin điều chỉnh độ khó khai thác bằng cách tăng hoặc giảm hàm băm mục tiêu để duy trì khoảng thời gian trung bình 10 phút giữa các khối mới.
Hàm băm mục tiêu là kết quả của hàm băm của tiêu đề khối hiện tại. Tiêu đề khối thường bao gồm các thuộc tính sau:
– Băm khối trước đó – Đây là hàm băm kết quả từ khối được khai thác trước đó và do đó là một liên kết từ khối hiện tại đến khối cha của nó.
– Số phiên bản chặn – Số phiên bản thường được sử dụng để nâng cấp mạng softfork.
– Merkle Root hash – Hàm băm của tất cả các hàm băm giao dịch là một phần của khối.
– Nonce – Một số tùy ý khi được băm cùng với phần còn lại của nội dung trong tiêu đề khối sẽ tạo ra một hàm băm đáp ứng các yêu cầu cho hàm băm mục tiêu.
– Dấu thời gian – Một dấu thời gian unix. Được chấp nhận là hợp lệ nếu nó lớn hơn dấu thời gian trung bình của 11 khối trước đó và nhỏ hơn thời gian do mạng điều chỉnh + 2 giờ.
– NBits mục tiêu – Thuộc tính này là phiên bản được mã hóa của hàm băm mục tiêu mà hàm băm khối hiện tại cần nhỏ hơn hoặc bằng.
Bitcoin sử dụng số 256 bit cho hàm băm mục tiêu của nó. Để tìm ra các công cụ khai thác băm mục tiêu trên khắp thế giới sẽ cạnh tranh với nhau trong một cuộc đua để tìm ra một mã chính xác, do đó cùng với phần còn lại của tiêu đề khối sẽ tạo ra một hàm băm đáp ứng các yêu cầu băm mục tiêu. Khi nhiều thợ đào trong mạng cạnh tranh, sức mạnh khai thác (đoán) tập thể sẽ tăng lên. Để đảm bảo rằng thời gian khối được giữ ở một khoảng thời gian định trước, hàm băm mục tiêu sẽ được điều chỉnh định kỳ dựa trên sức mạnh khai thác chung.
2. Nội dung về Băm mục tiêu:
Tiền điện tử dựa vào việc sử dụng các chuỗi khối có chứa lịch sử của tất cả các giao dịch của tiền điện tử đó. Các giao dịch này được băm hoặc được mã hóa bằng mật mã thành một chuỗi các ký tự chữ và số. Băm liên quan đến việc lấy một chuỗi dữ liệu có độ dài bất kỳ và chạy nó thông qua một thuật toán để tạo ra kết quả có độ dài cố định. Đầu ra sẽ luôn có cùng độ dài, bất kể đầu vào lớn hay nhỏ (mặc dù số lượng hoán vị của một hàm băm là rất lớn). Mỗi khối sẽ chứa băm của tiêu đề khối trước đó.
Chuỗi khối được giải mã và lưu trữ dưới dạng khai thác. Khai thác bao gồm việc sử dụng máy tính chạy các thuật toán băm để xử lý khối mới nhất, với các chi tiết cần thiết có trong tiêu đề khối trong khai thác. Đối với hàm băm này, mạng tiền điện tử đặt giá trị tối thiểu, giá trị băm tối thiểu và các thợ đào tìm cách quyết định giá trị này bằng cách kiểm tra tất cả các giá trị có thể có. Tiêu đề khối chứa số phiên bản khối, dấu thời gian, hàm băm được sử dụng trong khối trước đó, hàm băm Merkle Root, mã số nonce và mã băm mục tiêu. Khối được tạo bằng cách lấy hàm băm nội dung khối, thêm một chuỗi số ngẫu nhiên (số nonce) và băm khối một lần nữa. Nếu băm đáp ứng yêu cầu của mục tiêu, thì hãy thêm khối vào chuỗi khối. Đi xe đạp thông qua các giải pháp để đoán nonce được gọi là bằng chứng công việc và người khai thác tìm thấy giá trị sẽ được trao khối và thanh toán bằng tiền điện tử
Xác thực và mã hóa chuỗi khối được gọi là khai thác. Khai thác liên quan đến việc sử dụng máy tính để chạy các thuật toán băm để xử lý khối gần đây nhất; thông tin mà người dùng cần khai thác được tìm thấy trong tiêu đề của khối. Mạng tiền điện tử đặt giá trị mục tiêu cho hàm băm này – được gọi là hàm băm mục tiêu – và các thợ đào cố gắng xác định giá trị này bằng cách thử nghiệm tất cả các giá trị có thể có.
Tiêu đề khối chứa số phiên bản khối, dấu thời gian, hàm băm được sử dụng trong khối trước đó, mã băm của Gốc Merkle, mã số nonce và mã băm mục tiêu. Khối được tạo ra bằng cách lấy hàm băm của nội dung khối, thêm một chuỗi số ngẫu nhiên (số nonce) và băm lại khối. Nếu băm đáp ứng yêu cầu của mục tiêu, thì khối sẽ được thêm vào chuỗi khối. Đạp xe qua các giải pháp để đoán nonce được gọi là bằng chứng công việc (PoW) và người khai thác có thể tìm thấy giá trị sẽ được trao khối và thanh toán bằng tiền điện tử.
Băm mục tiêu cho Bitcoin
Bitcoin sử dụng thuật toán băm SHA-256. Thuật toán này tạo ra các số ngẫu nhiên có thể xác minh được theo cách yêu cầu lượng công suất xử lý của máy tính có thể dự đoán được. Việc khai thác một khối yêu cầu người khai thác phải tạo ra một giá trị (số không) mà sau khi được băm (được mã hóa bằng mật mã), nhỏ hơn hoặc bằng giá trị được sử dụng trong khối gần đây nhất được mạng bitcoin chấp nhận.
Con số này nằm trong khoảng từ 0- (tùy chọn nhỏ nhất) đến 256-bit (tùy chọn lớn nhất) nhưng không bao giờ là số tối đa. Bởi vì băm mục tiêu có thể là một con số khổng lồ, người khai thác có thể phải kiểm tra một số lượng lớn giá trị trước khi thành công. Một người khai thác không thành công phải đợi khối tiếp theo (đó là lý do tại sao những người khai thác tìm ra giải pháp băm được ví như người chiến thắng trong một cuộc đua hoặc xổ số). Băm mục tiêu được điều chỉnh định kỳ.
Các hàm băm được sử dụng để tạo mục tiêu mới có các thuộc tính cụ thể được thiết kế để đảm bảo an toàn cho chuỗi khối (và tiền điện tử của nó). Quá trình này là 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ó đủ nhanh để không mất quá nhiều thời gian để trả về một hàm băm cho đầu vào. Nó cũng làm cho việc xác định đầu vào rất khó khăn, đặc biệt là đối với số lượng lớn và thực hiện các thay đổi nhỏ đối với đầu vào dẫn đến kết quả đầu ra băm rất khác.