2020/01/22
Blockchain

Cây Merkle (Merkle tree) là gì? Giải thích tường tận về một trong những công nghệ nền tảng của Blockchain còn được gọi là cây Hash (Hash tree)!

“Tôi chẳng biết gì về cây Merkle cả…”

Đối với những người đã bắt đầu nghiên cứu về Blockchain thì chúng tôi nghĩ rằng cây Merkle là một trong những kỹ thuật mà nhiều người chỉ hiểu khá mơ hồ về nó.

Nguyên nhân của việc đó có lẽ là do tính trừu tượng của cây Merkle.

Vì vậy, trong bài viết này chúng tôi sẽ giải thích về cây Merkle bằng cách đưa ra những ví dụ liên quan. Chúng tôi sẽ chỉ ra cụ thể cho các bạn biết cây Merkle là gì, có thể sử dụng làm gì, nó có ích như thế nào, và cũng sẽ giải thích về việc cây Merkle được áp dụng như thế nào vào Blockchain, Bitcoin trong thực tế.

Bạn hãy đọc bài viết này để hiểu kỹ hơn về nhiều kiến thức nữa của Blockchain nhé!


Cây Merkle là gì?

Tổng quan và ví dụ về cây Merkle

​Cây Merkle nếu nói một cách rõ ràng thì là một công nghệ dùng để tóm tắt và xác minh dữ liệu (Data).

Tuy nhiên, hẳn có nhiều người còn chưa lý giải được do nó là khái niệm khá mơ hồ. Vì vậy, chúng tôi sẽ giải thích thông qua ví dụ về dữ liệu với những quả bóng màu.

Hiện tại, rất nhiều quả bóng màu đang chuyển động trước mắt của mọi người. Những màu sắc đó là đỏ, xanh dương, xanh lá cây, vàng, và nhiều màu khác, mỗi một màu sắc được gắn với một số thứ tự ①、②、③,…Và tại đây chúng tôi sẽ đặt ra một câu hỏi nhé. Giả sử bạn phải kiểm tra rằng liệu tất cả các quả bóng màu có còn nguyên vẹn như trạng thái ban đầu, nghĩa là chúng không bị vỡ và vẫn giữ nguyên màu sắc hay không. Vậy thì bạn sẽ kiểm tra chúng như thế nào?

Câu trả lời rất đơn giản. Ban đầu, bạn chụp lại màu sắc và kích thước của quả bóng số ① rồi lưu giữ lại. Bạn chụp lại ảnh của toàn bộ số bóng và so sánh những quả bóng thực tế với những bức ảnh đó. Nếu bạn kiểm tra được tất cả các trái bóng trong ảnh đều khớp với thực tại thì coi như đã giải quyết được vấn đề rồi.

Tuy nhiên, phương pháp này có một nhược điểm. Khi số bóng nhiều lên thì bạn sẽ tốn rất nhiều thời gian và công sức để kiểm tra. Nếu chỉ có khoảng 10 quả bóng thì bạn có thể thực hiện phương pháp này mà hoàn toàn không có vấn đề gì. Thậm chí là 100 quả bóng thì có lẽ với sự kiên trì bạn cũng sẽ nỗ lực cố gắng và thực hiện nó. Tuy nhiên, nếu có 100 triệu quả bóng màu thì chỉ cần thao tác kiểm tra thì khéo mất cả đời mất.

Vì vậy, một người thông minh nào đó đã phát minh ra một loại máy. Tên của máy này là máy X. Bạn có thể bỏ bao nhiêu quả bóng màu vào trong máy này cũng được, và sau khi bạn cho những quả bóng màu đó vào máy thì sẽ có một quả bóng màu khác bay ra. Các quả bóng màu không xuất hiện một cách ngẫu nhiên mà nó sẽ đáp ứng theo những quy tắc nhất định.

  1. Nếu bạn cho vào máy những quả bóng có màu giống nhau thì sẽ luôn xuất hiện những quả bóng khác có màu giống nhau.

    2. Bạn không thể dự đoán được màu của những quả bóng đã cho vào máy lúc đầu nếu chỉ dựa trên màu của quả bóng xuất hiện sau đó.

    3. Nếu một trong những quả bóng màu đã cho vào máy có khiếm khuyết hay có màu sắc khác thì từ máy sẽ xuất hiện một quả bóng có màu khác hoàn toàn.

Giả sử cho 3 quả bóng màu đỏ, xanh dương và xanh lá cây vào máy đó thì kết quả sẽ xuất hiện quả bóng màu đen. Điều được nói trong quy tắc 1 đó là trong mọi tình huống nếu bạn cho vào máy quả bóng màu đỏ với xanh dương và xanh lá cây thì chắc chắn quả bóng màu đen sẽ xuất hiện.

Chỉ có mình bạn biết rằng khi cho 3 bóng màu{Đỏ, xanh dương, xanh lá cây}→ sẽ xuất hiện bóng màu{Đen}. Những người khác sẽ không thể dự đoán được số lượng bóng màu cũng như màu bóng ban đầu đã cho vào máy bởi vì kết quả chỉ xuất hiện một quả bóng màu đen. Đây là điều được nói đến trong quy tắc 2.

Nếu bạn thay đổi quả bóng màu xanh lá cây thành màu trắng. Khi đó màu sắc của quả bóng xuất hiện có thể là màu chàm hoặc màu xám. Điều được nói trong quy tắc 3, đó là ít nhất sẽ không có chuyện màu của quả bóng xuất hiện sau đó là màu đen,

Sâu đây chúng ta sẽ cùng nghĩ thử phương án giải quyết câu hỏi trên bằng cách sử dụng máy X nếu ta có 100 triệu quả bóng màu trước mặt.

Đầu tiên, ta nhóm 100 triệu quả bóng thành 50 triệu cặp bóng với mỗi một cặp là 2 quả bóng. Sau đó đặt những cặp bóng này vào trong máy X và ta sẽ tạo ra 50 triệu quả bóng màu mới. Tiếp theo, ta nhóm các quả bòng này thành 25 triệu cặp bóng rồi sử dụng máy X tạo ra 25 triệu quả bóng mới. Tiếp tục thao tác này cho đến khi số lượng bóng màu chỉ còn lại 1 quả bóng. (nếu tổng số bóng là số lẻ thì quả bóng ghép đôi với quả bóng dư còn lại sẽ được sao chép và ghép với chính nó).

Bạn hãy gọi quả bóng cuối cùng là R. Ta sẽ lưu giữ quả bóng R này bằng hình ảnh. Sau đó, khi bạn xác minh thì thực hiện thao tác tương tự đối với 100 triệu quả bóng (nhóm thành cặp, cho vào máy X) rồi so sánh bức ảnh này với quả bóng xuất hiện cuối cùng.

Phương pháp này ít tốn công sức hơn rất nhiều so với phương pháp nguyên thủy đã đề cập ban đầu. Bởi vì bạn chỉ cần kiểm tra một quả bóng cuối cùng là đủ rồi.

​Tại sao bạn chỉ cần kiểm tra quả bóng cuối cùng là được rồi? Theo như 3 thuộc tính của máy X thì nếu một quả bóng trong số 100 triệu quả bóng bị thiếu hoặc có màu sắc khác thì quả bóng xuất hiện cuối cùng sẽ khác với R. Do đó, nếu quả bóng cuối cùng khớp với hình ảnh bạn đã lưu giữ, thì có thể kết luận rằng tất cả các quả bóng đều giữ nguyên ở trạng thái ban đầu không thay đổi gì cả.

Cuối cùng, nếu bạn tóm tắt thao tác này dưới dạng sơ đồ thì có thể thấy rằng nó có cấu trúc giống như một cái cây.

Do đó, một cấu trúc được tạo bằng phương pháp như vậy được gọi là cây Merkle (Merkle tree) (Merkle bắt nguồn từ Ralph Markle người phát minh ra kỹ thuật này).

Chúng tôi đã giải thích về cây Merkle bằng cách ra những ví dụ ở trên. Bây giờ thì thay vì quả bóng màu chúng ta liên tưởng đến dữ liệu (data) nhé.

Bằng cách sử dụng cây Merkle thì rất nhiều dữ liệu có thể được tổng hợp thành một dữ liệu duy nhất. Nếu bạn có thể kiểm tra tính toàn vẹn của dữ liệu cuối cùng đó, thì đồng nghĩa với việc bạn có thể kiểm tra tính toàn vẹn của tất cả những dữ liệu cấu tạo nên cây Merkle đó.

Điều quan trọng là, những thao tác dưới đây được thực hiện trong cây Merkle – quá trình tóm tắt dữ liệu.

  1.  Kết nối các đoạn dữ liệu thành cặp (nếu tổng số các đoạn là số lẻ thì đoạn ghép đôi với đoạn cuối cùng là bản sao chép của chính nó)

    2. Kết nối các cặp dữ liệu đó thông qua một hàm số là hàm băm (Hash function) và xuất ra một giá trị.

    3. Với các giá trị được xuất ra, ta tiếp tục lặp lại các thao tác tương tự là kết nối chúng thành cặp 

Tiếp tục các thao tác này cho đến khi tổng số các dữ liệu trở thành một dữ liệu. Dữ liệu còn lại cuối cùng được gọi là Merkle root (gốc của cây Merkle). Thông tin của tất cả các đoạn dữ liệu được tổng kết lại trong Merkle root này, và bằng cách kiểm tra Merkle root thì bạn có thể kiểm tra tính toàn vẹn của những dữ liệu tạo ra Merkle root đó.

Hash function

Đến đây ta sẽ xác nhận xem trong thực tế máy X làm được những gì nhé. Ở thao tác 2, ta thấy xuất hiện một thuật ngữ lạ là Hash function. Hash function này có chức năng tương đương với máy X. Sau đây chúng tôi sẽ giải thích thêm về Hash function.

Hash function (hàm băm) là một hàm số trả về một giá trị đại diện cho dữ liệu khi một dữ liệu nào đó được đưa ra, và còn được gọi là hàm tóm tắt. Ngoài ra, giá trị đã thu được thông qua Hash function thì gọi là Hash rate (tỷ lệ băm).

Ta tạo các cặp dữ liệu từ những tỷ lệ băm đã thu được, rồi thông qua hàm băm (hash function) để cuối cùng thu được Merkle root (hay nói cách khác hơi khó hiểu một chút là áp dụng hàm băm đệ quy).

Hàm băm được sử dụng trong cây Merkle thì được gọi đặc biệt là hàm băm mã hóa. Đây là hàm băm thông thường được thêm vào thuộc tính mật mã hóa. Dưới đây là những thuộc tính toán học và mật mã đó.

1. Không thể tạo ra các dữ liệu có cùng tỷ lệ băm

2. Không thể dự đoán các dữ liệu ban đầu từ tỷ lệ băm

3. Không thể tạo ra các cặp dữ liệu có cùng 1 tỷ lệ băm

Các thuộc tính phía trên khiến cho các hành vi sau đây không thể xảy ra được.

Ví dụ, giả sử anh/chị H cố gắng làm sai lệch dữ liệu. Anh/Chị H phải làm sai lệch để sao cho những người xung quanh không nhận ra được. Điều này có nghĩa là phải cố gắng thay đổi dữ liệu mà không thay đổi tỷ lệ băm. Tuy nhiên, theo như thuộc tính 1 thì hành động này không thể thực hiện được.

Tiếp theo, giả sử anh/chị H cố gắng khôi phục dữ liệu ban đầu từ Merkle root để xem nội dung của dữ liệu gốc. Tuy nhiên, theo như thuộc tính 2 thì hành động này không thể thực hiện được. Bởi vì việc dự đoán dữ liệu gốc từ tỷ lệ băm thực chất là không thể.

Như đã đề cập trước đó thì bạn có thể xác minh tính toàn vẹn của dữ liệu bằng cách xác minh Merkle root. Điều này là do hàm băm có các thuộc tính như trên.

Phía trên là phần giải thích đơn giản về hàm băm. Sau đây là những ví dụ cụ thể về hàm băm.

SHA(Secure Hash Algorithm)

SHA là một trong những hàm băm phổ biến nhất. Trong SHA có rất nhiều loại, chẳng hạn như SHA1, SHA2. SHA1 thì có vấn đề về mặt bảo mật nên hiện tại nó không được sử dụng. Vấn đề về mặt bảo mật đó có nghĩa là nó tiêu hao nhiều hơn một lượng năng lực tính toán nhất định và không đáp ứng được các thuộc tính toán học và mật mã đã đề cập trước đó.

Ví dụ, bạn có thể thu được tỷ lệ băm giống nhau từ những dữ liệu khác nhau và có thể suy đoán dữ liệu gốc từ tỷ lệ băm.

Hiện tại hàm số đang được sử dụng chủ yếu là hàm băm SHA2. Hàm băm được sử dụng khi phát hành địa chỉ của Bitcoin là SHA256.

Merkle root

Merkle root là một tỷ lệ băm duy nhất thu được bằng cách áp dụng hàm băm đệ quy. Bằng cách xác minh giá trị này thì bạn có thể kiểm tra tính toàn vẹn của dữ liệu. Trong ví dụ với những quả bóng màu, quả bóng R đã xuất hiện cuối cùng thì chính là Merkle root.

Trong Bitcoin, dữ liệu cơ bản chính là các giao dịch (transaction). Nếu thay đổi giao dịch gửi 1 BTC từ A cho B sang thành A cho C, thì việc này sẽ thay đổi Merkle root, và ngay lập tức bạn nhận biết được rằng đã một số sự thay đổi được thêm vào trong dữ liệu.

Vậy thì Merkle root rốt cuộc được lưu trữ ở đâu? Câu trả lời là nó được lưu trữ tại một nơi được gọi là tiêu đề khối (block header). Tỷ lệ băm của tiêu đề khối này được lưu vào khối tiếp theo dưới dạng thông số parameter. Nếu xét về tính không thể giả mạo của Blockchain thì đây là điều cực kỳ quan trọng.

Các ứng dụng của cây Merkle

Cây Merkle có 2 ứng dụng chính dưới đây. Đó là việc tóm tắt và xác minh dữ liệu.

Tóm tắt dữ liệu

Bằng cách sử dụng cây Merkle thì bạn có thể tóm tắt được rất nhiều dữ liệu thành một tỷ lệ băm (hash rate). Tóm tắt có nghĩa là bằng cách chỉ cần yêu cầu Merkle root , thì bạn không cần phải xử lý toàn bộ dữ liệu.

Hàm băm có một đặc trưng quan trọng là “cho dù dữ liệu thông qua hàm số có lớn đến thế nào đi nữa, thì những dữ liệu xuất hiện sau đó luôn luôn có chung 1 độ lớn nhất định”. Bằng cách áp dụng đặc trưng này, bạn có thể tổng hợp những dữ liệu khổng lồ thành chỉ một dữ liệu.

Xác minh dữ liệu

Xác minh dữ liệu là vai trò lớn nhất của cây Merkle. Bạn có thể phát hiện ngay lập tức là dữ liệu có bị thiếu hay dữ liệu có bị giả mạo hay không bằng cách nhìn vào tỷ lệ băm. Để biết được tất cả các dữ liệu còn nguyên vẹn hay không thì bạn chỉ cần nhìn vào tỷ lệ băm cuối cùng là được.

Trong ví dụ với những quả bóng màu, những người có trực quan tốt có lẽ sẽ nhận thấy điều đó. Nếu bạn chỉ muốn xác nhận các quả bóng màu vẫn còn nguyên vẹn thì tốt nhất là bạn nên đặt tất cả 100 triệu quả bóng vào máy X ngay từ đầu.

Đúng là như vậy đấy. Việc đặt tất cả bóng vào máy X như vậy sẽ yêu cầu ít sự xử lý hơn. Tuy nhiên, vấn đề là nếu quả bóng thu được cuối cùng khác với R thì bạn sẽ không biết được vấn đề nằm ở quả bóng nào. Để giải quyết vấn đề này thì hãy nhóm bóng thành từng cặp.

Vậy thì, khi dữ liệu thật sự bị phá hoại thì ta làm thế nào để tìm ra được rằng vấn đề xuất hiện ở trong dữ liệu nào?

Chúng tôi sẽ giải thích bằng cách sử dụng ví dụ với những quả bóng màu. Giả sử màu sắc của quả bóng được gắn số 1 (sau đây gọi là số ①) đã được thay đổi. Bạn cần phát hiện ra chỉ có số ① là có vấn đề trong số 100 triệu quả bóng.

Đầu tiên là kiểm tra Merkle root. Bởi vì số ① thay đổi nên đương nhiên là Merkle root cũng sẽ thay đổi.

Tiếp theo là kiểm tra nhánh ngay phía trước của Merkle root (2 quả bóng màu tạo ra Merkle root). Nếu là nhánh có chứa số ① đã bị đổi màu thì màu bóng của phía nhánh đó sẽ thay đổi, và màu bóng ở nhánh còn lại chắc chắn sẽ không thay đổi. Bằng thao tác này bạn đã có thể phân biệt được nhánh mà chứa quả bóng đã bị đổi màu.

Tiếp tục thao tác này cho tới khi bạn tìm ra được quả bóng số ①. Đây là phương pháp phát hiện quả bóng bị hư bằng cách sử dụng cây Merkle.

Vậy thì nếu sử dụng phương pháp này ta có thể rút gọn được bao nhiêu thao tác?

Trong trường hợp không sử dụng cây Merkle, thì bạn không có phương pháp nào khác ngoài việc kiểm tra từng quả bóng một. Ta tính thử xem cần bao nhiêu lần thử nghiệm để tìm ra được quả bóng số ① trong 100 triệu quả bóng. Giả sử bạn có thể kiểm tra 1 quả bóng trong 1 lần thử nghiệm.

Hãy tính thử nào, thì giá trị dự kiến (giá trị dự kiến số lần thử nghiệm cho đến khi rút ra được quả bóng số ①) sẽ là khoảng 50 triệu lần. Trung bình nếu bạn rút 50 triệu lần thì bạn có thể rút trúng được quả bóng số ①.

Nếu sử dụng cây Merkle thì như thế nào nhỉ? Chúng tôi sẽ đưa ra trước câu trả lời nhé.
Là log2(100000000)+1. Khoảng 27~28 lần.

Sự khác biệt này là rất rõ ràng đúng không. Cây Merkle là một phương pháp đem lại hiệu quả vô cùng lớn như vậy đó.

Phát minh về cây Merkle

Cây Merkle được phát minh bởi Ralph Markle năm 1979. Ông đã có ảnh hưởng lớn đến việc phát minh ra mật mã khóa công khai. Lý do ông phát minh ra cây Merkle là để xử lý hiệu quả số lượng lớn chữ ký Lamport. Trước khi cây Merkle được phát minh thì một khóa trong chữ ký Lamport chỉ có thể được ký cho một tin nhắn.

Tuy nhiên, bằng việc áp dụng cây Merkle thì một khóa có thể được ký cho rất nhiều tin nhắn.

Chắc hẳn bây giờ các bạn đã có thể hiểu được phần nào cơ chế hoạt động của cây Merkle rồi đúng không. Tiếp theo hãy cùng xem cây Merkle được sử dụng như thế nào trong công nghệ Blockchain nhé.

Hash chain

​Trong bất kỳ một giao dịch nào thì bối cảnh thời gian của giao dịch cũng đều rất quan trọng. Giao dịch được chấp nhận hay không được chấp nhận đều phụ thuộc vào việc giao dịch nào đã được thực hiện trước đó. Trên Internet, bạn có thể tham khảo thời gian giao dịch như thế nào?

Trường hợp của cấu trúc mang tính tập trung thì thời gian giao dịch sẽ được tiếp nhận từ máy chủ. Đây cũng được gọi là thời gian chuẩn UNIX, người ta tham khảo thời gian này và xác định bối cảnh của giao dịch.

Mặt khác, trường hợp của cấu trúc phi tập trung thì người ta tham khảo thời gian tại nơi mà mỗi cá nhân tự chọn. Dù là một người ở Việt Nam nhìn thấy 10 giờ trên máy chủ của Việt Nam thì một người ở Anh sẽ nói đó là 3 giờ khi nhìn trên máy chủ của nước Anh. Tóm lại, ta không thể xác định được 1 mốc thời gian tuyệt đối

Như vậy thì chúng chỉ có thể xác định thời gian tương đối mà thôi. Thời gian sẽ hoàn toàn không liên quan đến bối cảnh giao dịch nữa mà nó chỉ đơn giản là để xác định xem giao dịch nào tồn tại trước giao dịch nào.

Tại đây người ta sử dụng Hash function (hàm băm). Như đã giải thích trong “Hash function”, thì bạn không thể suy đoán giá trị đầu vào dựa trên giá trị đầu ra trong Hash function. Có nghĩa là, giá trị đầu vào tồn tại trước giá trị đầu ra.

Như bạn có thể thấy trong hình trên, Data0 tồn tại trước Data1 và Data1 thì tồn tại trước Data2. Tại đây thì bạn đã có thể xác định được bối cảnh của giao dịch.

Hash functionを用いてできる上図の構造は一般的にHash chainと呼ばれます。
Cấu trúc của hình trên sử dụng Hash function (hàm băm) thì thường được gọi là Hash chain (chuỗi hàm băm).

Từ Hash chain đến Blockchain

Bây giờ bạn đã có thể xác định thời gian tương đối rồi. Tuy nhiên, vẫn có một vấn đề nữa. Đó chính là liệu tất cả mọi người tham gia vào mạng lưới (Network) này thì có thể nhìn thấy dữ liệu mới nhất hay không.

Nếu ở trạng thái của Hash chain (chuỗi hàm băm), thì một số người có thể xem được dữ liệu mới nhất nhờ vào năng lực xử lý của máy tính, nhưng cũng có một số người thì không thể theo kịp dữ liệu đó.

Giải pháp cho vấn đề này là cây Merkle. Nhờ vào cây Merkle mà dữ liệu được tóm tắt và số lượng dữ liệu mà mỗi người phải xem sẽ giảm đi rất nhiều. Tất cả dữ liệu trong một cây Merkle được coi như là xử lý trong cùng một thời điểm. Hơn nữa bằng cách sử dụng cây Merkle thì bạn cũng có thể phát hiện ra dữ liệu bị sai hỏng.

Có thể coi cấu trúc được thêm cây Merkle vào trong chuỗi hàm băm (hash chain) như vậy là nguyên mẫu của Blockchain.

Cây Merkle và Bitcoin

Bây giờ chúng ta sẽ xem xét đến Bitcoin. Trong Bitcoin thì cây Merkle được áp dụng như thế nào nhỉ.

Cây Merkle và SPV

Các yếu tố cấu tạo nên mạng lười (Network) gọi là các nút (node). Có một vài loại nút khác nhau. Phụ thuộc vào cách phân chia mà các dạng nút sẽ thay đổi, nhưng trong bài viết này, ta phân loại nút dựa theo số lượng dữ liệu có thể được tham khảo.

Đầu tiên là Full node (nút đầy đủ). Full node có thể xác minh và lưu giữ tất cả các thông tin giao dịch từ trước cho đến nay. Để trở thành Full node thì cần một lượng lớn dung lượng dữ liệu, vì vậy việc trở thành Full node không hề dễ dàng.

Các nút để xác minh giao dịch sẽ ít dần đi. Do đó đã xuất hiện một nút với khối lượng nhẹ là node SPV. Các nút SPV chỉ có thể tham khảo thông tin của tiêu đề khối (block header). Như đã giải thích trong “Merkle root” thì trong tiêu đề khối có chứa Merkle root.

Nút SPV thực hiện xác minh dữ liệu bằng cách chỉ tham khảo Merkle root. Tuy nhiên, nó không thể xác định được vấn đề nằm ở trong dữ liệu nào.

Thông tin của phần dữ liệu có vấn đề đó thì sẽ phải yêu cầu từ Full node. Nói cách khác, chức năng xác minh của nút SPV vẫn tồn tại phụ thuộc vào chức năng xác minh của Full node.

Tuy nhiên, SPVnode có thể dễ dàng hình thành hơn, nên nút xác minh cũng tăng thêm nhiều hơn. Điều này tương đương với độ tin cậy của mạng sẽ tăng lên. Tất cả là nhờ vào kỹ thuật tóm tắt cây Merkle.

 


Tổng kết

Trên đây là những giải thích về cây Merkle. Chúng tôi nghĩ rằng đây là một kỹ thuật rất thú vị để giúp tóm tắt và xác minh dữ liệu.

Trong giao dịch thì người ta thường hay nói rằng “Blockchain thật là tuyệt vời!”, nhưng thực tế Blockchain thì không được cấu tạo bởi chỉ 1 mình nó. Nó được tạo nên từ sự kết hợp của toàn bộ các công nghệ như công nghệ Internet, hệ thống phân tán tự trị, công nghệ mã hóa.

Cây Merkle chỉ là một trong những công nghệ nền tảng, nếu bạn muốn nghiên cứu một cách nghiêm túc về Blockchain thì vẫn còn rất nhiều kiến thức khác nữa cần khai phá.

         Tổng kết về cây Merkle

  • Cây Merkle là một kỹ thuật dùng để tóm tắt và xác minh dữ liệu
  • Trong cây Merkle sử dụng một hàm số gọi là Hash Function (hàm băm)
  • Cây Merkle được áp dụng vào việc xác minh bởi nút SPV node