Cây Merkle là một cấu trúc dữ liệu được dùng trong khoa học máy tính và mật mã học. Trong thị trường tiền mã hóa, cây Merkle là cấu trúc dữ liệu chứa bản tóm lược của các giao dịch trên blockchain dưới dạng hàm hash. Cây Merkle giúp việc xác minh các khối giao dịch trên blockchain trở nên dễ dàng và hiệu quả. Bài viết này sẽ trả lời câu hỏi cây Merkle là gì.
Cây Merkle do Ralph Merkle tìm ra. Ông đăng ký bằng sáng chế cho khái niệm này vào năm 1979 và nhắc tới nó trong bài viết "Digital Signature Based on Traditional Encryption Function" công bố năm 1987. Cây Merkle là một cấu trúc dữ liệu hình sơ đồ chứa các mã hash. Mã hash của dữ liệu trong cây Merkle được xếp thành sơ đồ từ dưới lên trên. Trong cây Merkle, việc cộng gộp các hash ở tầng dưới sẽ quyết định giá trị của các hash ở tầng trên.
Tính toàn vẹn của dữ liệu trong hệ thống được đảm bảo nhờ cây Merkle, nhờ việc sắp dữ liệu hash thành sơ đồ và cộng gộp lần lượt các giá trị hash từ dưới lên. Nó được dùng trong việc chuyển dữ liệu giữa người với người, giữa các nút ngang hàng, và trong việc xác minh dữ liệu đã chuyển. Với cây Merkle, ta có thể biết được các khối dữ liệu chuyển đi có bị hỏng hay bị làm giả hay không. Độ chính xác của những khối này hoàn toàn kiểm chứng được bằng cây Merkle.
Cây Merkle hoạt động thế nào?
Cây Merkle được tạo nên từ các mã hash trong khối. Ở tầng dưới cùng của cây là dữ liệu giao dịch. Giá trị hash (mã hash) của dữ liệu này có được bằng cách chạy hàm hash. Sau đó, các giá trị ở tầng dưới của sơ đồ được cộng vào nhau và kết quả được đưa lên tầng phía trên. Cứ thế, cây Merkle được dựng lên. Cuối quá trình, giá trị hash ở đỉnh sơ đồ được gọi là root hash hay merkle root. Giá trị root hash tính được sẽ phản ánh việc các khối có lỗi hay không. Nếu có sự không khớp trong những giá trị cấu thành root hash, thuật toán trong hệ thống sẽ tiếp tục chạy hàm hash cho tới khi tạo ra được một merkle root không lỗi.
Vì sao Bitcoin dùng cây Merkle?
Nó giúp công việc của các thợ đào muốn xác minh khối trên blockchain Bitcoin trở nên dễ dàng. Thợ đào trên blockchain Bitcoin xác minh khối bằng cách chạy hàm hash. Trên blockchain Bitcoin, dữ liệu được sắp xếp và đặt vào cây Merkle. Sau đó, root hash được tạo ra thông qua các hàm hash của thuật toán. Root hash thu được cũng có thể dùng tiếp cho những thao tác đào sau đó. Nhờ vậy, thợ đào có thể tiếp tục công việc bằng cách chỉ hash mỗi root hash thay vì hash toàn bộ khối. Cây Merkle cũng mang lại giải pháp tương tự trên blockchain của nhiều đồng tiền mã hóa khác ngoài Bitcoin.
