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.
Mục lục bài viết
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.
Ả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.
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.
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.
Ả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
- Tìm hiểu thêm về BlockchainWork tại website: https://blockchainwork.net/
- Ứng viên nắm bắt cơ hội việc làm tại đây: https://blockchainwork.net/candidate-signup
- Nhà tuyển dụng kết nối các tài năng trẻ tại đây: https://blockchainwork.net/employer-signup
>> Có thể bạn quan tâm:
- Blockchain platform là gì? Những thông tin cơ bản mà bạn không nên bỏ lỡ
- Blockchain Guide – Tất tần tật về blockchain cho người mới bắt đầu
- Double Spending là gì? 2 cách để ngăn chặn Double Spending
Các phương pháp tăng cường bảo mật các dự án Web3
Công nghệ Web3 đang trở thành một xu hướng quan trọng trong ngành công nghiệp công nghệ thông tin và truyền thông. Các dự án Web3 không chỉ mang lại những cơ hội mới mẻ mà còn tạo…
Tổng hợp khóa học, tài liệu Web3 miễn phí theo lộ trình cụ thể
Để bắt đầu học về blockchain, việc tìm nguồn tài liệu cũng như khóa học uy tín và miễn phí là rất quan trọng. Blockchain là một công nghệ mới mẻ và phức tạp, nó đòi hỏi người…
Kiểm toán Blockchain (Blockchain audit): Tầm quan trọng và các phương pháp hay nhất
Nền tảng blockchain đã và đang trở thành tâm điểm trong thế giới công nghệ. Blockchain đã gia nhập vào hầu hết mọi lĩnh vực, bao gồm quản lý chuỗi cung ứng, game, chăm sóc sức khỏe và quan trọng…
Các ứng dụng blockchain thực tế tại Việt Nam
Blockchain đã trở thành một công nghệ nổi bật trong nhiều lĩnh vực tại Việt Nam, đặc biệt là trong giáo dục, sức khỏe, giải trí, sản xuất, quản lý nhà nước và ngân hàng. Đặc biệt, blockchain…
SUI là gì? Tìm hiểu chi tiết về dự án SUI
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…