Blockchain: Cây Merkle là gì?

Trong khoa học máy tính, một cái cây là một cấu trúc dữ liệu. Ý nghĩa của nó là:


Nó bao gồm các nút : một cách thú vị để nói một cái gì đó có chứa dữ liệu và có thể liên kết với các nút khác.


Nó cũng bao gồm các cạnh : đó là các liên kết mà chúng ta đã nói ở điểm trước.


IT là một loại biểu đồ : nếu bạn chỉ có hai điểm trước đó và không có giới hạn nào khác được áp dụng cho nó; bạn sẽ có một biểu đồ. Tuy nhiên, vì cây là loại biểu đồ đặc biệt; Nó bắt đầu bằng một nút gốc : Bạn phải có một nút là khởi đầu của cây của bạn, nơi tất cả bắt đầu. Các nút chỉ liên kết bằng cách phân nhánh của các nút cha. Như vậy, bạn không thể chỉ liên kết các nút của mình theo cách bạn muốn. Nút không có con được gọi là hoặc điểm cuối.



Bạn thấy đấy, mặc dù chúng tôi đã định nghĩa một thuật ngữ khoa học máy tính với các nút, lá và như vậy, nó thực sự không phải là thứ chúng tôi chưa từng thấy. Bất cứ khi nào chúng ta nghĩ về một hệ thống phân cấp, và nghiêm chỉnh thứ bậc, chúng ta nghĩ về một cái cây. Theo tôi, tốt nhất là đưa ra một ví dụ có liên quan như hệ thống phân cấp của tổ chức



Hóa ra, loại cấu trúc dữ liệu này mà chúng ta đã biết trước cả khoa học máy tính, có nhiều trường hợp sử dụng khác nhau. Nói cụ thể, nó thường được sử dụng để biểu diễn dữ liệu phân cấp, vì nó có cấu trúc nhất định lưu trữ dữ liệu để tìm kiếm hiệu quả và hơn thế nữa.


Một cây Merkle là một loại đặc biệt của cây. Và cũng là một trường hợp sử dụng khác cho cấu trúc dữ liệu này với các hạn chế bổ sung. Bạn thấy đấy, trong một cây merkle , còn được gọi là cây hash, mỗi chiếc lá đều chứa....


Chờ chút, có lẽ chúng ta đi quá nhanh, vậy HASH là gì?


Một hash về cơ bản là một chữ ký của bất kỳ loại dữ liệu tùy ý. Theo cách hiểu đơn giản hơn một chút, đó là một hàm lấy dữ liệu kích thước tùy ý và trả về kích thước cố định.


Tuy nhiên, vì nó là một chữ ký của dữ liệu mà nó phải có tính chất sau:


  • Xác định : Điều này về cơ bản có nghĩa là một hàm hash cho một dữ liệu. Như vậy, bạn không thể có sự trùng lặp ngẫu nhiên ở đây.

  • Thống nhất : Hoạt động xuyên suốt và không thay đổi.


Tuy nhiên, để có được chữ ký tốt thì phải có đầu ra nào (có kích thước cố định) gần như nhau. Nếu điều này không xảy ra, chúng sẽ xảy ra xung đột : có nghĩa là chúng ta có ngày càng nhiều dữ liệu có cùng chữ ký. Với đầu ra và kích thước đồng nhất (kích thước chữ ký) đủ lớn và có kích thước lớn, điều này dừng lại là một vấn đề, đặc biệt đối với dữ liệu có bất kỳ ý nghĩa phạm vi xác định nào.

Phạm vi xác định: Đây là phần xác định kích thước cố định.


Vì mục tiêu là lấy bất kỳ dữ liệu nào và tạo ra một chữ ký chung, nên nó phải có một phạm vi xác định. Điều này thường được nói là số lượng bit, do đó, hàm hash rất phổ biến SHA-512 chẳng hạn có 512 bit như phạm vi được xác định của nó. Không thể đảo ngược : Chúng tôi hy vọng những chữ ký này là đường một chiều, có nghĩa là bạn không thể có được nội dung gốc bằng cách sử dụng hàm hash.


Mặc dù điều này không phải lúc nào cũng là một yêu cầu nhất thiết phải có, đặc biệt đối với hash mật mã, nhưng nó chắc chắn rất quan trọng. (Có nghĩa là ví dụ thay vì lưu trữ mật khẩu của bạn, facebook có thể lưu trữ chữ ký xác nhận của mật khẩu và không gặp rắc rối trước đó)


Kể từ bây giờ chúng tôi có một ý tưởng về hasg là gì; trở lại Cây Merkle. Như chúng ta đã nói, mỗi chiếc lá trong cây này có một số khối dữ liệu trong đó. Bất kỳ nút nào khác chứa hàm hash mật mã (chữ ký một chiều) của nút con của nó. Điều này hóa ra là một cách rất thú vị để lưu trữ một số dữ liệu; đặc biệt bởi vì nó cho phép bạn xác minh bất kỳ loại dữ liệu. Nó cũng rất tốt trong việc đảm bảo đây là một quá trình nhanh chóng, vì chúng tôi chỉ kiểm tra chữ ký của dữ liệu và không có gì khác.


Nhưng tại sao? Chúng ta không thể kiểm tra dữ liệu hash bình thường của dữ liệu thay vì đặt nó thành từng mảnh và tạo ra cả một cây?


Chúng ta có thể. Tuy nhiên, nếu bạn đang phát triển một hệ thống phân tán/ngang hàng (nơi các máy đang trao đổi với nhau và bạn không biết bạn có thể tin tưởng cái nào), loại xác minh này trở nên cực kỳ quan trọng. Mặc dù cùng một dữ liệu ở nhiều nơi, không có cách nào để biết nếu không có cách trên.


Nút bạn nhận được dữ liệu là trung thực. Dữ liệu bạn nhận được là chính xác (và nút đó không lừa bạn). Dữ liệu không bị hỏng trên đường đi.


Đảm bảo các câu hỏi này được trả lời một cách đáng tin cậy trong khi cũng thực hiện xác minh nhanh là lý do tại sao chúng tôi sử dụng Cây Merkle. Có rất nhiều ví dụ về điều này trong tự nhiên, đặc biệt là hệ thống kiểm soát nguồn Git và tiền điện tử giả ẩn danh Bitcoin là những thứ đáng chú ý nhất được biết đến. Như vậy, đây cũng là điều kiện tiên quyết để hiểu blockchain là gì.



- Theo Hackernoon -


Đến với CJ Group để cập nhập thông tin nhanh và sớm nhất :

Channel CJ Team : https://t.me/CJGchannel

Website : https://cjgroupvn.com

Facebook : https://www.facebook.com/groups/CCryptoC.Japan


0 views

© 2018 by CJ Group. Proudly created with VuX51

  • White Facebook Icon
  • logo_telegram_white

Hãy theo dõi chúng tôi để nhận các thông tin mới nhất.