MERKLE TREE LÀ GÌ

      240

quý khách hàng đang biết thiết bị gì thông thường được thực thi trong những công nghệ Bitcoin, Git, IPFS, Ethereum, BitTorrent, cùng Cassandra? Có thể tiêu đề sẽ gợi ý cho chính mình, chính là "Merkle tree", một nghệ thuật lưu trữ dữ liệu cực kỳ bổ ích làm việc những khối hệ thống có bản vẽ xây dựng phi triệu tập. Nhưng Merkle tree giải quyết gần như vấn đề gì cùng bằng phương pháp làm sao ? Mình đã phân tích và lý giải điều đó trong bài viết này !

*

I. Xác thực trong mạng phân tán

Kiến trúc phân tán (peer-to-peer) trường đoản cú Khi sinh ra càng ngày được thực hiện rộng rãi, tuy thế nó cũng gặp cần không ít sự việc cùng một trong số đó là làm cho gắng nào nhằm "Xác thực" kết quả.Một hệ thống tin cẩn đề nghị cần được xác xắn nhằm bảo vệ rằng các nguyên tố tđam mê gia không

Làm chuyển đổi tài liệu vày vô tình hoặcLàm biến hóa tài liệu bởi núm ý

giữa những phương pháp thịnh hành để ngăn ngừa vấn đề bên trên là dùng các hàm băm mã hoá. Vậy hãy khám phá xem bọn chúng được thực hiện thay như thế nào.

Bạn đang xem: Merkle tree là gì

Hàm băm mã hoá liệu vẫn là chiến thuật ?

Băm cục bộ dữ liệu

Nếu ta muốn lưu trữ phân tán 1 file dữ liệu lớn, hàm băm có thể hỗ trợ chúng ta tính mã băm của toàn bộ file (trước khi lưu trữ phân tán) cùng lưu lại nó vào 1 máy chủ (gồm độ tin cậy cao) nhằm mục đích xác xắn khi cần thiết.

*
Toàn cỗ "File 1" (được chia thành 4 phần W, X, Y, Z) được băm ra và tác dụng lưu trữ trong 1 server

Sau Lúc được băm, họ lưu trữ phân tán tệp tin trên các peer vào mạng. Bất cđọng bao giờ có 1 peer đề xuất ngôn từ tổng thể file đã cần sở hữu bọn chúng trường đoản cú những peer đang tàng trữ những nhân tố của tệp tin. Peer này đã bắt buộc tính toán mã băm của toàn bộ file (sau thời điểm đang bao gồm đủ những thành phần) cùng tuyệt đối bằng cách so sánh với mã băm ở server.

*

*P/s: Nếu chúng ta nghĩ 2 tệp tin hoàn toàn có thể gồm cùng mã băm thì trọn vẹn đúng. Nhưng vào thực tế, mã băm 256-bit thường xuyên được thực hiện cùng hoàn toàn có thể cho đến 2^256 tác dụng. Vì vậy câu hỏi trùng lặp gần như tất yêu !

Cách tiếp cận này vận động, cơ mà chưa công dụng bởi:

Chỉ có thể triển khai xác xắn sau khi tích lũy đầy đủ cục bộ file: Nếu tài liệu phân tán bên trên hàng chục ngàn peer, sẽ sở hữu vụ việc là 1 trong những số phần sẽ được gửi đến nhanh chóng, với 1 số sẽ tới muộn rộng. Việc chỉ chờ đợi toàn cục được gửi mang lại rồi mới có thể tuyệt đối là sự lãng phí thời hạn. Không thể xác minh được yếu tố như thế nào không nên lệch (do chỉ kiểm lúc cục bộ những nguyên tố đã được gộp lại). Tính đồng bộ thừa cao: Chỉ 1 ký kết trường đoản cú đổi khác cũng dẫn đến sự việc tính toán lại mã băm toàn cục file cùng tàng trữ lại tại server.Server lưu trữ mã băm là điểm yếu vào mạng phi triệu tập này.Băm từng phần dữ liệu

Việc lưu trữ mã băm thuộc từng phần bên trên hệ thống rất có thể là phương án mang đến vụ việc "1", "2" bằng phương pháp xác thực từng phần với phần như thế nào vụ việc "3" vì chưng rất có thể chỉ update lại phần dữ liệu chuyển đổi. Tuy nhiên, vẫn tồn tại phần đa nhược điểm:

Server lưu trữ thêm một lượng bé dại biết tin.Tăng khả năng đụng hàng mã hash.Toàn bộ mạng vẫn nên nhờ vào 1 hệ thống. Sẽ cố nào nếu VPS này sẽ không xứng đáng tin ?

Chuỗi băm

Vậy nếu ta có tác dụng ráng này thì ?

*
Ta gộp những mã hash của từng nhân tố vào và băm ra tiếp, công dụng (Điện thoại tư vấn là root hash) được lưu trữ tại VPS. Root hash sẽ sở hữu được mục đích đảm bảo. Vậy thì sẽ thế này:

Ban đầu, peer thu thập các phần của dữ liệu.Sau kia, ta vẫn hash từng phần và gộp các mã hash lại, liên tiếp tính tân oán root hash. Root hash này sẽ tiến hành so sánh với chiếc bên trên hệ thống.Và Lúc, cùng giả dụ root hash của ta mãi sau trên VPS, ta có thể lưu giữ nó lại nhằm trường đoản cú chuẩn xác đến tương lại nhưng mà không đề nghị dựa vào hệ thống nữa.

Có vẻ là hồ hết sản phẩm số đông tốt quanh đó sẽ ráng làm sao giả dụ server ko xứng đáng tin với trả về mang lại ta công dụng đánh giá không đúng về root hash.

Thật ra có một cách nhưng mà server có thể minh chứng nó đánh tin. Đọc tiếp nhé ....

Lưu trữ những báo cáo hơn trên server

Vậy ví như ta tàng trữ cả mã hash từng phần và root hash trên hệ thống thì ?Tất nhiên ngân sách lưu trữ sẽ tăng lên 1 chút, dẫu vậy lại hoàn toàn có thể xử lý vụ việc "4" nhỏng sau:

*

Thay vì chưng phàn hồi root hash có trường thọ hay là không, VPS đang phải gửi tổng thể những mã hash để tính tân oán ra root hash.Với hầu hết mã hash gửi về, cùng với mã hash của phần dữ liệu nên đúng đắn, client có thể từ bỏ mình tính toàn ra root hash và so sánh cùng với root hash được gửi về.

Xem thêm: Chi Nhã¡Nh Giã Y Thæ°Á»£Ng đìNh Á»Ÿ Tp Hồ Chã­ Minh, Giầy Bóng Đá Thượng Đình Mũi Da

Chúng ta sắp đến đi đến tổng thể lời giải về Merkle trees rồi !

II. Vậy Merkle Trees là gì ?

Kiến trúc

Đi cho giải thuật, nếu như quy mô lưu trữ thay này còn có phát âm trái không ?

*

Các nút ít lá vào cây khớp ứng cùng với mã hash của từng phần tài liệu, cùng 2 mã hash con kết phù hợp với nhau rồi tiếp tục hash sẽ ra mã hash sống nút ít mẹ. Đây chính là phong cách xây dựng của Merkle trees.

Tại sao quy mô này hiệu quả ?

Quý khách hàng rất có thể đã tự hỏi bằng phương pháp như thế nào quy mô này rộng những quy mô trước với nó bổ ích ích gì. Nó thực thụ hiệu quả trong lưu trữ cùng tính toán thù như sau:

Xác thực dữ liệu

Dữ liệu sẽ được chuẩn xác trong Merkle Trees nlỗi sau:

Nhỏng trước, ta mua những phần tài liệu về node.Ta gửi yên cầu các mã hash quan trọng mang đến server.Server trả về kết quả.Với các mã hash hiện tại gồm, ta có thể tính toán ra root hash với so sánh cùng với dòng trên VPS.

lấy ví dụ, nếu 1 node nên xác xắn dữ liệu Y, khi ta gửi request, VPS sẽ trả về cho ta H(Z) cùng H(WX), được Hotline là audit trail hoặc merkle path.

*

Ta hoàn toàn có thể tính toán:

H(YZ) được xem toán trường đoản cú H(Y) cùng với H(Z) đã có VPS gửi về.H(WXYZ) được tính toán từ bỏ H(YZ) cùng với H(WX) đã làm được server gửi về.

Cuối cùng, ta đối chiếu H (WXYZ) cùng với root hash trong server. Nếu khớp, hoàn toàn có thể xác minh dữ liệu an toàn. Còn ko, ta buộc phải check lại peer đang gửi Y mang đến ta cùng request Y tự peer không giống.

Vậy nó xuất sắc sinh hoạt đâu:

Chỉ đề nghị khôn xiết ít đọc tin giao hàng cho Việc chính xác. mặc khi khi số nút ít lá (phần dữ liệu) tăng gấp hai, ta cũng chỉ cần thêm 1 mã hash với tiến hành hashing thêm 1 lần để tuyệt đối.Và với việc phải ít dữ liệu, để giúp giảm thiết lập đến đường dẫn.

*

Đây là cách tân bự đối với phương pháp tiếp cận trước nhưng mà ta phải gửi toàn thể mã hash trường đoản cú VPS.

Xác minc tính tốt nhất quan

Các khối hệ thống phân tán chỉ được cho phép tài liệu được cung ứng cơ mà quan yếu xoá đi. Vì vậy Merkle Trees cực kỳ có ích vào việc bảo đảm bất cứ phiên bạn dạng bắt đầu vào của tài liệu bao gồm đựng các dữ liệu cũ hay không.

Đồng bộ dữ liệu

Merkle trees hoàn toàn có thể thay thế sửa chữa mang lại câu hỏi so sánh toàn thể tài liệu để khẳng định biến hóa. Ta chỉ việc đối chiếu các mã hash trong cây với một Lúc có nút lá biến hóa, chỉ tài liệu kia nên nhất quán hoá với những node khác trong mạng.

III. Kết luận

Trong bài viết này, ta đã từng có lần bước khám phá bí quyết Merkle trees thao tác làm việc cùng đối chiếu nó với những phương án không giống cùng làm cho chũm như thế nào nó xử lý các vụ việc trong mạng phân tán. Tuy hiệu quả cao trong sử dụng cơ mà bài toán thiết đặt nó thì hết sức đơn giản dễ dàng. Trong nội dung bài viết tiếp, bản thân sẽ lý giải chúng ta setup Merkle trees.