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: 

 

 

Nhân vật Adam Back – CEO của Blockstream

Vương Thảo 17/04/2024

Adam Back là một nhà khoa học máy tính và chuyên gia về mật mã số học người Anh. Ông nổi tiếng với những đóng góp quan trọng trong lĩnh vực mật mã và công nghệ blockchain. Ông…

Nhân vật Roger Ver – Nhà sáng lập Bitcoin.com

Vương Thảo 17/04/2024

Roger Ver, thường được biết đến với biệt danh “Bitcoin Jesus”, là một trong những nhà đầu tư ban đầu vào Bitcoin và các doanh nghiệp liên quan đến Bitcoin. Ông đã từng quảng bá mạnh mẽ cho…

Cách tăng năng suất và hiệu quả cho kỹ sư blockchain

Vương Thảo 17/04/2024

Blockchain là một công nghệ mới mẻ và đầy tiềm năng, nhưng cũng đầy thách thức. Việc làm việc trong lĩnh vực này đòi hỏi sự chính xác, kiên nhẫn và sự chuyên nghiệp cao. Vậy làm thế…

Việc làm blockchain - web3

[Hà Nội - Fulltime] IOS Developer (Junior/Middle/Senior)

Hạn ứng tuyển 29/04/2024
Mức lương: 14 - 40 triệu đồng

[HCM - Fulltime] Project Engineer

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

[HCM - Fulltime] Senior Fullstack Developer

Hạn ứng tuyển 30/05/2024
Mức lương: 10 - 40 triệu đồng

[Hà Nội - Fulltime] Frontend Lead

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

[Hà Nội - Fulltime] Nhân Viên Business Development

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

[Hà Nội - Fulltime] Blockchain Developer (Middle - Senior)

Hạn ứng tuyển 30/05/2024
Mức lương: 18 - 35 triệu đồng

[Hà Nội - Fulltime] Artist 2D Game (Junior/Middle/Senior)

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

[Hà Nội - Fulltime] Video Game Editor (Junior) Tại WingsMob Studio

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

[HCM - Fulltime] Umbala Labs_Tech Talent Acquisition Specialist

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

[Hà Nội - Fulltime] Graphic Design

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

[HCM - Fulltime] Account Manager

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

[Hà Nội - Fulltime] Animation 3D (Mảng Hoạt Hình)

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

[Hà Nội - Fulltime] Content Lead

Hạn ứng tuyển 29/04/2024
Mức lương: Lên đến 1000 USD

[HCM - Fulltime] Trưởng Phòng Tài Chính

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

[HCM- Fulltime] Smart Contract (Senior)

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

[HN - Fulltime] Business Development Blockchain

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

[HCM - Parttime] Seeding/Shilling

Hạn ứng tuyển 29/04/2024
Mức lương: Từ 4 triệu đồng

[Hà Nội - Fulltime] Host Tik Tok

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

[Hà Nội - Fulltime] Blockchain Marketing Executive

Hạn ứng tuyển 30/05/2024
Mức lương: 13 - 17 triệu đồng

[HN - Fulltime] Social Growth Specialist

Hạn ứng tuyển 30/05/2024
Mức lương: 600 - 700 USD