Merkle Trees và Merkle Roots trong Blockchain

Merkle Trees và Merkle Roots trong Blockchain là một phần quan trọng của mật mã blockchain làm nền tảng cho Bitcoin và các mạng blockchain khác.

Cây băm, còn được gọi là cây Merkle, là một cây trong đó mỗi nút lá được gắn nhãn băm mật mã của khối dữ liệu và mỗi nút không lá được gắn nhãn băm mật mã của nhãn các nút con của nó. Phần lớn các triển khai cây băm là nhị phân (mỗi nút có hai nút con), nhưng chúng cũng có thể có nhiều nút con hơn.

Nhưng cây Merkle trong Blockchain thực sự là gì và nó được sử dụng như thế nào trong Blockchain? Vì vậy, nếu bạn muốn biết câu trả lời cho tất cả những câu hỏi này, thì bạn đã đến đúng nơi.

Merkle Trees là gì?

  • Merkle Trees, 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 blockchain một cách hiệu quả và an toàn hơn.
  • Đó là một cấu trúc dữ liệu toán học được tạo thành từ các hàm 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 và xác minh tính nhất quán và nội dung của dữ liệu.

Merkle Root là gì?

  • Merkle Root là một phương pháp toán học đơn giản để xác nhận các dữ kiện trên Merkle Trees.
  • 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à toàn bộ, không bị hư hại và không bị thay đổi.
  • Chúng đóng một vai trò rất quan trọng trong việc tính toán cần thiết để giữ cho các loại tiền điện tử như bitcoin và ether hoạt động.

Hàm băm

  • Một hàm băm ánh xạ bất kỳ loại dữ liệu tùy ý có độ dài bất kỳ tới đầu ra có kích thước cố định. Nó thường được sử dụng trong mật mã vì nó là một hàm mật mã.
  • Chúng hiệu quả và nổi tiếng với một đặc tính: chúng không thể thay đổi được. Đó là một chức năng một chiều chỉ hoạt động theo một hướng.
  • Một số họ băm sẵn có là Message Direct (MD), Secure Hash Function (SHF) và RIPE Message Direct (RIPEMD).

Bây giờ, hãy lấy một ví dụ, nếu bạn sử dụng thuật toán băm SHA256 và chuyển 101Blockchains làm đầu vào, bạn sẽ nhận được đầu ra sau

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Tóm lại, đây là những thuộc tính chính sau đây của hàm băm:

  • Xác định
  • Chống ảnh trước
  • Tính toán hiệu quả
  • Không thể được thiết kế đảo ngược
  • Chống va chạm

Merkle Trees hoạt động như thế nào?

Cây Merkle tổng hợp tất cả các giao dịch trong một khối và tạo ra một dấu vân tay kỹ thuật số của toàn bộ tập hợp các hoạt động, cho phép người dùng xác minh xem nó có bao gồm một giao dịch trong khối hay không.

  • Cây Merkle được tạo ra bằng cách băm các cặp nút lặp đi lặp lại cho đến khi chỉ còn lại một hàm băm; băm này được gọi là Merkle Root hoặc Root Hash.
  • Chúng được xây dựng từ phía dưới, sử dụng ID giao dịch, là mã băm của các giao dịch riêng lẻ.
  • Mỗi nút không phải 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 dữ liệu giao dịch.

Bây giờ, hãy xem một ví dụ nhỏ về Cây Merkle trong Blockchain để giúp bạn hiểu khái niệm. 

Hãy xem xét tình huống sau: A, B, C và D là bốn giao dịch, tất cả đều đượ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: 

  • Băm A
  • Băm B
  • Băm C
  • Băm D

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

  • Băm AB

  • Hash CD

Và do đó, Gốc Merkle của bạn được hình thành bằng cách kết hợp hai hàm băm này: Băm ABCD.

Trong thực tế, Merkle Tree phức tạp hơn nhiều (đặc biệt là 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 hoạt động của các thuật toán và tại sao chúng lại hiệu quả như vậy.

Lợi ích của Merkle Tree trong Blockchain

Cây Merkle cung cấp bốn lợi thế đáng kể: 

  • Xác thực tính toàn vẹn của dữ liệu: Nó có thể được sử dụng để xác thực tính toàn vẹn của dữ liệu một cách hiệu quả.
  • Tốn ít dung lượng đĩa: So với các cấu trúc dữ liệu khác, cây Merkle chiếm rất ít dung lượng đĩa.
  • Thông tin nhỏ trên các mạng: Cây Merkle có thể được chia thành các phần dữ liệu nhỏ để xác minh.
  • Xác minh hiệu quả: Định dạng dữ liệu hiệu quả và việc xác minh tính toàn vẹn của dữ liệu chỉ mất vài phút.

Tại sao nó lại cần thiết cho Blockchain?

Hãy nghĩ về một blockchain không có Merkle Trees để hiểu được tầm quan trọng của chúng đối với công nghệ blockchain. Hãy có một Bitcoin vì việc sử dụng Merkle Trees của nó là điều cần thiết cho tiền điện tử và dễ nắm bắt hơn.

  • Nếu Bitcoin không bao gồm Merkle Trees, thì mọi nút trên mạng sẽ phải giữ lại một bản sao hoàn chỉnh của mọi giao dịch Bitcoin từng được thực hiện. Người ta có thể tưởng tượng lượng thông tin đó sẽ là bao nhiêu.
  • Bất kỳ yêu cầu xác thực nào trên Bitcoin sẽ yêu cầu một lượng lớn dữ liệu được chuyển qua mạng: do đó, bạn sẽ cần phải tự mình xác thực dữ liệu.
  • Để xác nhận rằng không có sửa đổi nào, một máy tính được sử dụng để xác nhận sẽ cần rất nhiều sức mạnh tính toán để so sánh các sổ cái.

Merkle Trees là một giải pháp cho vấn đề này. Họ băm các bản ghi trong kế toán, do đó tách dữ liệu bằng chứng khỏi chính dữ liệu. 

  • Chứng minh rằng việc cung cấp một lượng nhỏ thông tin trên toàn mạng là tất cả những gì cần thiết để một giao dịch hợp lệ.
  • Hơn nữa, nó cho phép bạn chứng minh rằng cả hai biến thể sổ cái đều giống nhau về sức mạnh máy tính danh nghĩa và băng thông mạng.

Ví dụ về cây Bitcoin Merkle

Trong khi một khối có thể chứa hàng trăm hoặc hàng nghìn giao dịch tiền điện tử, hãy xem một ví dụ với tám giao dịch:

Tám băm giao dịch - thường được gọi là ID giao dịch - tạo thành cấp nút lá ở dưới cùng của cây. Các giao dịch này được băm cùng nhau theo từng cặp.

Các băm được ghép nối tạo ra bốn nút không phải là lá, không chứa các băm giao dịch. Các nút không phải là lá này sau đó được băm với nhau theo từng cặp.

Điều này tạo ra hai nút không phải lá khác trong cây Merkle. Sau đó, chúng được băm lại với nhau trong một cặp cuối cùng.

Điều này tạo ra gốc Merkle số ít ở trên cùng của cây Merkle. Gốc Merkle chứa một hàm băm duy nhất có thể xác thực mọi hàm băm giao dịch đơn lẻ trong khối. Do đó, một gốc Merkle được bao gồm trong tiêu đề khối của mọi khối trên blockchain.

Merkle tree là một cấu trúc dữ liệu nhị phân yêu cầu số lượng chẵn các nút lá hoặc số băm giao dịch. Nếu một khối có số lượng băm giao dịch không đồng đều, thì băm giao dịch cuối cùng sẽ được nhân đôi và băm với chính nó. Ví dụ: nếu ví dụ trên có bảy giao dịch, giao dịch thứ bảy sẽ được sao chép và băm với bản sao của nó. Phần còn lại của cây sau đó sẽ tiến hành theo cách tương tự như ví dụ tám giao dịch ở trên.

Các trường hợp sử dụng của Merkle Tree trong Blockchain

Có nhiều triển khai cây Merkle hơn ở đó. 

  • Git, một hệ thống kiểm soát phiên bản phân tán, là một trong những hệ thống được sử dụng rộng rãi nhất. Nó được sử dụng để xử lý các dự án của các lập trình viên từ khắp nơi trên thế giới.
  • Hệ thống tệp liên hành tinh, một giao thức phân tán ngang hàng, là một cách triển khai phù hợp khác. Nó cũng là mã nguồn mở, cho phép các máy tính tham gia và sử dụng hệ thống tệp tập trung.
  • Đó là một phần của kỹ thuật tạo nhật ký tính minh bạch của chứng chỉ có thể xác minh được.
  • Amazon DynamoDB và Apache Cassandra sử dụng nó trong quá trình sao chép dữ liệu. Các cơ sở dữ liệu phân tán No-SQL này sử dụng cây Merkle để kiểm soát sự khác biệt.

Hiệu quả trong việc lưu trữ, truyền và xác minh dữ liệu thu được từ cây Merkle là một thành phần kỹ thuật quan trọng của Bitcoin giúp tạo ra những đột phá về mật mã của nó. Cấu trúc lưu trữ dữ liệu cây Merkle được sử dụng trên Bitcoin cũng được sử dụng bởi Ethereum, các nhánh của Bitcoin (BCH chẳng hạn) và nhiều mạng blockchain công cộng khác. Bằng cách làm cho SPV trở nên khả thi, các gốc Merkle có nguồn gốc từ cây Merkle cho phép mọi người trên khắp thế giới gửi, nhận và xác minh các giao dịch bằng ví tiền điện tử có thể chạy dễ dàng và đơn giản trên máy tính cá nhân hoặc điện thoại thông minh. Cây Merkle giúp các mạng blockchain xác minh cấu trúc dữ liệu lớn một cách hiệu quả và an toàn bằng cách đi sâu vào gốc rễ của vấn đề Merkle.

Hy vọng bạn thích hướng dẫn về Merkle Tree và Merkle Roots trong Blockchain, trong trường hợp có bất kỳ nghi ngờ nào, vui lòng đặt câu hỏi của bạn trong phần bình luận bên dưới.

Cảm ơn bạn!

Đăng nhận xét

Tin liên quan