Merkle Tree (Cây Merkle) là gì?

Merkle Tree (Cây Merkle) là gì?

Blockchain là một sổ cái phân tán, liên tục lưu trữ dữ liệu bằng cách kết nối từng block với nhau thành một chuỗi. Ngoài ra, mỗi block lưu trữ rất nhiều dữ liệu giao dịch. Trong chuỗi khối, phần lớn dữ liệu giao dịch được tóm tắt và ghi vào tiêu đề khối bằng công nghệ gọi là “Merkle Tree” (Cây Merkle). Hãy cùng BlockchainWork khám phá Merkle Tree là gì, ứng dụng của nó với Bitcoin như thế nào trong bài viết sau đây.

Cây Merkle (Merkle Tree) là gì? 

Cây Merkle được phát minh vào năm 1979 bởi Ralph Merkle, một trong những nhà phát triển mật mã khóa công khai. Cây Merkle, còn được gọi là cây băm nhị phân, là một loại cấu trúc dữ liệu phổ biến trong khoa học máy tính. Trong bitcoin và các loại tiền điện tử khác, chúng được sử dụng để mã hóa dữ liệu chuỗi khối hiệu quả và an toàn hơn. Cây Merkle là một cấu trúc dữ liệu toán học được tạo thành từ các giá trị băm của nhiều khối dữ liệu khác nhau tóm tắt tất cả các giao dịch trong một khối. Nó cũng cho phép xác minh nội dung nhanh chóng và an toàn trên các bộ dữ liệu lớn, đồng thời xác minh tính nhất quán và nội dung của dữ liệu.

Gốc Merkle (Merkle Root) là gì?

Gốc Merkle là một phương pháp toán học đơn giản để xác nhận các sự kiện trên cây Merkle. Chúng được sử dụng trong tiền điện tử để đảm bảo rằng các khối dữ liệu được gửi qua mạng ngang hàng là nguyên vẹn, không bị hư hại và không bị thay đổi. Gốc Merkle đóng một vai trò rất quan trọng trong quá trình tính toán cần thiết để duy trì hoạt động của các loại tiền điện tử như bitcoin và ether.

Anh-minh-hoa-Merkle-Root-

Ảnh minh hoạ Merkle Root

Cây Merkle hoạt động như thế nào?

Cây Merkle tóm tắt tất cả các giao dịch trong một khối và tạo ra dấu vân tay kỹ thuật số
(giá trị băm) của toàn bộ các giao dịch đó, từ đó người dùng có thể xác minh xem giao dịch có tồn tại trong khối hay không. 

Cây Merkle được tạo bằng cách băm các cặp nút liên tục cho đến khi chỉ còn lại một hàm băm; hàm băm này được gọi là Merkle Root hoặc Root Hash. Các giá trị băm được tạo ra từ dưới lên, bắt đầu từ các giá trị riêng lẻ được gọi là các ID giao dịch,

Mỗi nút không phải nút lá là một hàm băm của hàm băm trước đó của nó và mỗi nút lá là một hàm băm của dữ liệu giao dịch.

So-do-hoat-dong-cua-cay-Merkle

Sơ đồ hoạt động của cây Merkle

Bây giờ, hãy xem một ví dụ nhỏ về Merkle Tree trong Blockchain để giúp bạn hiểu khái niệm này. Hãy xem xét ví dụ sau: A, B, C và D là bốn giao dịch, tất cả được thực hiện trên cùng một khối. Mỗi giao dịch sau đó được băm, để lại cho bạn: 

  • Giá trị băm A
  • Giá trị băm B
  • Giá trị băm C
  • Giá trị băm D

Các giá trị băm được ghép nối với nhau, dẫn đến:

  • Giá trị băm AB và giá trị băm CD

Và do đó, Merkle Root của bạn được hình thành bằng cách kết hợp hai hàm băm này: Giá trị băm ABCD như hình minh hoạ sau.

so-do-vi-du-Merkle-Tree

Sơ đồ ví dụ 

Trên thực tế, Merkle Tree phức tạp hơn nhiều (đặc biệt khi mỗi ID giao dịch dài 64 ký tự). Tuy nhiên, ví dụ này giúp bạn có cái nhìn tổng quan về cách thức hoạt động của các thuật toán và lý do tại sao chúng lại hiệu quả đến vậy.

Ứng dụng Merkle Tree vào Bitcoin 

Công nghệ Merkle Tree này đóng một vai trò quan trọng trong chuỗi khối Bitcoin. Chuỗi khối có một phần được gọi là tiêu đề khối là nơi ghi thông tin khối. 

Tiêu đề khối chứa những thông tin như:

  • PrevHash (giá trị băm khối trước)
  • Giá trị Nonce
  • Merkle root (đại diện cho toàn bộ bản ghi giao dịch trong khối hiện tại)

Dữ liệu giao dịch được đưa vào khối hiện tại được kết hợp thành một giá trị băm bằng cách sử dụng cây Merkle từ các giá trị băm của mỗi giao dịch. Bằng cách thêm và băm các cặp giá trị băm của hai dữ liệu giao dịch và tiếp tục lặp lại quy trình này, cuối cùng bạn có thể nhận được một giá trị băm (gốc Merkle). 

Bằng cách lưu trữ gốc Merkle này trong tiêu đề khối nên bạn mới có thể kiểm tra xem các giá trị của tất cả các giao dịch có trong khối đã được ghi lại hay chưa. 

Anh-suu-tam-tu-Bitcoin-paper

Ảnh sưu tầm từ Bitcoin paper

SPV và cây Merkle 

SPV (Simple Payment Verification) là một phương pháp xác thực thanh toán trong blockchain mà không cần phải tải toàn bộ lịch sử giao dịch của blockchain về máy tính. Điều này cho phép người dùng sử dụng các thiết bị với dung lượng bộ nhớ và tài nguyên hạn chế để xác thực giao dịch và kiểm tra sự tồn tại của tiền.

Các ứng dụng khách nhẹ như ví thường sử dụng ứng dụng khách SPV. Ngược lại, một nút chứa tất cả dữ liệu giao dịch được gọi là nút đầy đủ. Một nút đầy đủ phải tìm nạp tất cả dữ liệu từ khối đầu tiên đến khối hiện tại để bắt đầu, trong khi  SPV, người dùng chỉ cần tải về các block header của blockchain và sử dụng chúng để xác thực rằng một giao dịch đã được thêm vào blockchain. Điều này được thực hiện bằng cách sử dụng Merkle root của block để kiểm tra rằng giao dịch cụ thể nằm trong block đó. Như đã đề cập trước đó, Merkle Root là một giá trị băm kết hợp tất cả dữ liệu giao dịch. Hơn nữa, bất kể lượng dữ liệu giao dịch là bao nhiêu, độ dài dữ liệu dưới dạng giá trị băm không thay đổi. 

Trong trường hợp các nút đầy đủ xác minh tất cả các giao dịch gian lận thì SPV có thể xác nhận các giao dịch bằng cách xác minh gốc Merkle. Người ta nói rằng lượng dữ liệu được yêu cầu bởi một ứng dụng nhẹ như SPV là khoảng 1/1000 so với một nút đầy đủ lưu trữ toàn bộ chuỗi khối. 

Kết luận

Chúng ta có thể thấy rằng cây Merkle là một trong những nền tảng của công nghệ blockchain, giúp blockchain đảm bảo tính bất biến và trọn vẹn của giao dịch. Nắm được các khái niệm, vai trò ứng dụng của nó sẽ giúp các bạn hiểu hơn về tiền điện tử và blockchain. Hy vọng bài viết trên hữu ích với các bạn và hẹn gặp lại các bạn ở những bài viết thú vị sau. 

BlockchainWork biên dịch

Nguồn: Gaiax Blockchain, Simplilearn

>> Có thể bạn quan tâm: 

 

 

SUI là gì? Tìm hiểu chi tiết về dự án SUI

Vương Thảo 19/03/2024

Sự bùng nổ của các blockchain layer 1 vừa qua đang tạo ra một cuộc cách mạng trong lĩnh vực công nghệ và tài chính. Các nền tảng blockchain layer 1 như SUI, Bitcoin, Ethereum, Solana đều đang thu hút…

Tags: sui

Việc làm blockchain - web3

(HCM) Trợ Lý Tổng Giám Đốc (Tiếng Trung)

Hạn ứng tuyển 29/11/2024
Mức lương: 15 - 25 triệu đồng

[HCM - Fulltime] BUSINESS DEVELOPMENT

Hạn ứng tuyển 29/11/2024
Mức lương: 400 - 1000 USD

(HCM - Full Time) Bridge System Engineer - All Level

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

(Hà Nội) CTV Media (OTA Network)

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

(HCM) Sales Executive

Hạn ứng tuyển 29/11/2024
Mức lương: 15 - 30 triệu đồng

(Hà Nội) Video Editor (Junior)

Hạn ứng tuyển 29/11/2024
Mức lương: 10 - 20 triệu đồng

3D Artist (Junior)

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 15 triệu đồng

(Hà Nội) 2D Artist

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 17 triệu đồng

(REMOTE/Hà Nội) Game Designer (Game Casual)

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

Chuyên Viên Media

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

Digital Marketing Executive (Adsota)

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

Senior PHP Developer (AppotaPay)

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

Middle Business Analyst

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

Junior Mobile Developer (từ 1 Năm Kinh Nghiệm)

Hạn ứng tuyển 29/11/2024
Mức lương: 750 - 1000 USD

(Hà Nội) Backend PHP Laravel (từ 2 Năm Kinh Nghiệm)

Hạn ứng tuyển 29/12/2024
Mức lương: 15 - 25 triệu đồng

(Hà Nội) Marketing Manager _upto $1500

Hạn ứng tuyển 29/11/2024
Mức lương: 1200 - 1800 USD

(Hà Nội) UA Marketing (Internship)

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 4 triệu đồng

Nhân Viên Tester (AppotaPay)

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

CTV Chăm Sóc Khách Hàng VIP

Hạn ứng tuyển 29/11/2024
Mức lương: Thỏa thuận

(Hà Nội) Tester_Upto $1500

Hạn ứng tuyển 29/11/2024
Mức lương: 800 - 1500 USD