Tech Guides
Merkle Trees là gì?
#
Marketing
6 phút đọc
30/11/2022
1
0
0

Merkle Trees cho phép các blockchain hoạt động hiệu quả và đáng tin cậy hơn. Merkle Trees có thể giúp tiết kiệm bộ nhớ và sức mạnh xử lý mà vẫn duy trì được tính bảo mật.

Để hiểu sâu hơn về cách hoạt động của blockchain, bạn cần hiểu về một số cơ sở hạ tầng nền tảng của nó và sự thật là nó không đơn giản hơn Merkle Trees là mấy. Trong bài viết này, chúng ta sẽ cùng tìm hiểu nguồn gốc về cách thức hoạt động của các blockchain bằng cách đào sâu vào Merkle Trees.

Đặt vấn đề

Trên một mạng tập trung, việc tổ chức dữ liệu một cách hiệu quả không phải là vấn đề lớn vì bạn chỉ cần một bản sao dữ liệu và người dùng phải tin tưởng rằng dữ liệu đó là hợp lệ.

Trong một mạng blockchain phi tập trung, việc tổ chức dữ liệu một cách hiệu quả là vấn đề đáng chú ý — mọi nút trong mạng đều cần một bản sao hoặc ít nhất là quyền truy cập vào tất cả dữ liệu vào bất kỳ thời điểm nào. Do không có cơ quan quản lý, người dùng blockchain cần đến một cách khác để xác minh xem thông tin họ nhận được có đúng hay không.

Sự xuất hiện của Merkle Trees đã giải quyết vấn đề này.

Vậy, Merkle Trees là gì?

Merkle Trees cho phép các blockchain hoạt động hiệu quả và đáng tin cậy hơn. Merkle Trees có thể giúp tiết kiệm bộ nhớ và sức mạnh xử lý mà vẫn duy trì được tính bảo mật. Merkle Trees bảo mật nhờ vào mật mã học và các hàm băm, chúng tôi sẽ giải thích thêm về điều này ngay dưới đây.

Hàm băm

Nói chung, một thành phần quan trọng của Merkle Trees và mật mã đó là hashing. Hàm băm (hash function) là một quá trình chuyển đổi thông tin thành một tập hợp các chữ cái và số duy nhất. Chuỗi duy nhất được gọi là giá trị băm (hash).

Nếu chỉ một chút thay đổi ở đầu vào, đầu ra của hàm băm sẽ thay đổi hoàn toàn. Hàm băm mật mã (cryptographic hash function) là hàm một chiều — dễ dàng đưa thông tin vào, nhưng gần như không thể lấy thông tin đó ra. Merkle Trees dựa vào cả hai tính năng này để tổ chức và xác minh dữ liệu.

Merkle Trees được tổ chức như thế nào?

Merkle Trees làm cho các chuỗi khối có thể mở rộng hơn bằng cách chia nhỏ dữ liệu thành nhiều phần khác nhau. Ở dạng cơ bản nhất, Merkle Tree gần giống một cây thông Noel với mỗi nút ‘cha’ có chính xác hai nút ‘con’. Hàm băm của hai nút con tạo ra hàm băm của nút cha. Quá trình băm diễn ra trên toàn bộ cây cho đến khi tạo ra một hàm băm gốc (root hash). Gần như là bất kỳ lượng dữ liệu nào cũng có thể được đưa vào Merkle Tree, nhưng cuối cùng sẽ luôn tạo ra một hàm băm gốc.

Cách thức hoạt động

Trong Merkle Tree, dữ liệu như các giao dịch trong hợp đồng thông minh hay giữa các tài khoản sẽ được băm hay còn được hiểu là chuyển thành một chuỗi số và chữ cái. Hàm băm đó sau đó sẽ được băm lại, nhưng lần này sẽ được kết hợp với hàm băm của dữ liệu bên cạnh nó trong cây — được gọi là dữ liệu ‘anh chị em’ (sibling). Hàm băm mới của cặp dữ liệu anh chị em này tạo ra một hàm băm mới của ‘cha’ (parent). Quá trình băm này diễn ra trên toàn bộ cây cho đến khi nó tạo ra một hàm băm gốc ở trên cùng.

Lưu ý rằng việc thay đổi bất kỳ phần nào đầu vào của hàm băm cũng sẽ thay đổi đáng kể đầu ra của nó. Tương tự, việc thay đổi bất kỳ dữ liệu nào trong Merkle Tree cũng sẽ khiến hàm băm của nó và nút cha (parent node) thay đổi — dẫn tới sự thay đổi ở hàm băm gốc. Thuộc tính này đảm bảo rằng thông tin trong Merkle Tree luôn được đóng băng và không thể thay đổi, nhưng có thể kiểm tra và xác minh.

Merkle Proofs (Bằng chứng Merkle) là gì?

Merkle Trees sắp xếp gọn gàng dữ liệu sẽ được phục hồi sau này, còn Merkle Proofs được sử dụng để xác minh thông tin dữ liệu đó là đúng sự thật hay không. Merkle Proof sử dụng phần thông tin bạn đang kiểm tra và tất cả các "nhánh" cây liên quan để chuyển đến hàm băm gốc. Nếu hàm băm nhất quán từ nhánh đó đến gốc thì đúng. Nếu dữ liệu băm gốc không khớp thì chứng tỏ dữ liệu đã bị giả mạo.

Thay vì phải xác minh tất cả thông tin trong toàn bộ cây, Merkle Proofs chỉ cần đủ sức mạnh tính toán để xác minh một lượng nhỏ dữ liệu để xem liệu dữ liệu có đúng hay không.

Ai đã phát minh ra Merkle Trees?

Merkle Trees được đặt theo tên của Ralph Merkle, một nhà khoa học máy tính và là giáo sư đã phát minh ra mật mã khóa công khai và hàm băm mật mã cùng với Merkle Trees. Khái niệm này được phát minh vào năm 1987.

Bạn có biết?

Chúng tôi đang đề cập đến phiên bản cơ bản nhất của Merkle Trees được gọi là Binary Merkle Trees chỉ có hai nút con cho mỗi nút cha, nhưng sẽ phức tạp hơn nhiều với phiên bản nhiều nút con hơn cho mỗi nút cha. Bởi vì Ethereum phải xử lý các giao dịch cho các hợp đồng thông minh, vì vậy nó cần sử dụng một loại Merkle Tree phức tạp hơn được gọi là Patricia Trees.

Merkle Trees có gì đặc biệt?

Các blockchain như Ethereum phải lưu trữ, xử lý và xác minh dữ liệu của gần 9 triệu khối — mỗi khối chứa hàng trăm nghìn giao dịch. Ngay cả một blockchain tương đối đơn giản như Bitcoin cũng có hàng trăm nghìn khối và hàng nghìn giao dịch trong mỗi khối. Merkle Trees cho phép điều đó xảy ra mà không cần đến sức mạnh tính toán lớn.

Merkle Trees có gì khác?

Merkle Proofs được sử dụng trong các ứng dụng khách blockchain hạng nhẹ. Các chương trình ít tốn bộ nhớ hơn này cho phép người dùng tham gia vào chuỗi khối mà không cần tải xuống mọi giao dịch và tất cả dữ liệu từ mọi khối. Các ứng dụng khách hạng nhẹ chỉ cần biết root hash cho mỗi khối sau đó sử dụng Merkle Proofs để xác minh thông tin khi cần thiết.

Tương lai của Merkle Trees

Các blockchain như Ethereum vẫn không thể mở rộng ngay cả với Merkle Trees, vì vậy công cụ mật mã nền tảng này sẽ không sớm biến mất. Bởi vì dù rừng có phát triển lớn đến đâu, thì nó sẽ luôn cần đến gốc rễ của nó.

Bài viết được FXCE Crypto biên tập từ "Merkle Trees" của tác giả Ki Chong Tran với mục đích cung cấp thông tin và phi lợi nhuận. Chúng tôi không khuyến nghị đầu tư và không chịu trách nhiệm cho các quyết định đầu tư liên quan đến nội dung bài dịch.

# blockchain
ic-comment-blueBình luận
#