Tóm tắt AI
Hiển thị thêm
Nhanh chóng nắm bắt nội dung bài viết và đánh giá tâm lý thị trường chỉ trong 30 giây!
Cây Merkle được sử dụng trong các ứng dụng khoa học máy tính như một cấu trúc dữ liệu giúp xác minh và đồng bộ hóa dữ liệu. Cây Merkle cũng được sử dụng để mã hóa dữ liệu blockchain an toàn và hiệu quả hơn bằng Bitcoin và các loại tiền điện tử khác.
Với tiền điện tử, cơ sở dữ liệu cây Merkle được sử dụng để phân tách dữ liệu của khối một cách an toàn và đảm bảo rằng dữ liệu đó không bị mất, bị hỏng hoặc bị thay đổi. Phương thức quản lý dữ liệu này cho phép xác thực các giao dịch cụ thể mà không cần tải xuống toàn bộ blockchain có kích thước hàng terabyte. Đây là một phương pháp mật mã đáng tin cậy, an toàn để chạy blockchain.
Do sự sụp đổ của gã khổng lồ Sàn Giao Dịch Tập Trung (CEX), FTX, nhiều CEX đã xây dựng và triển khai Cây Merkle dưới dạng Bằng Chứng Dự Trữ (PoR) để đảm bảo với người dùng rằng tiền của họ được an toàn. Trong bài viết này, chúng tôi sẽ thảo luận về khái niệm cây Merkle, vai trò của chúng trong blockchain và cách người dùng có thể xác thực tiền bằng cây Merkle.
Ralph Merkle, một nhà khoa học máy tính nổi tiếng với công trình về mật mã khóa công khai, đã đưa ra đề xuất cây Merkle trong bài báo năm 1987 "Chữ ký số dựa trên chức năng mã hóa thông thường". Hàm băm mật mã cũng được Merkle phát minh ra.
Cây Merkle là một cấu trúc dữ liệu toán học dựa trên hàm băm giúp tổng hợp các bản tóm tắt của tất cả các giao dịch trong một khối. Đây là một phương pháp giúp kiểm tra nhanh độ chính xác của dữ liệu theo cách phi tập trung. Nhờ các chức năng của mình mà cây Merkle được sử dụng hiệu quả và an toàn hơn để mã hóa dữ liệu blockchain.
Cây Merkle thường được sử dụng với các mạng lưới ngang hàng (P2P) do nhu cầu chia sẻ thông tin và xác thực độc lập. Hãy cùng hiểu thêm về cây Merkle và cách thức hoạt động của chúng.
Cây Merkle, còn được gọi là cây hash, có cấu trúc cây nhị phân, với các hash của dữ liệu giao dịch ở hàng dưới cùng được gọi là "Nút lá", các hash trung gian được gọi là "Nút không lá" và hash ở trên cùng được gọi là "Root". Dù phần lớn các cách triển khai cây hash mang tính nhị phân (mỗi nút có hai nút con), chúng cũng có thể có nhiều nút con hơn.
Khi nhìn vào cấu trúc của cây Merkle, ta thấy tất cả các giao dịch được nhóm theo cặp. Mỗi cặp có một hash được tính toán được lưu trữ trực tiếp trong nút cha. Các nút này cũng được nhóm thành cặp, sau đó hash của chúng được lưu trữ ở cấp độ tiếp theo. Quá trình này tiếp diễn cho tới khi đến gốc của cây Merkle.
Hãy cùng xem xét từng nút:
Đây là các giá trị hash của mỗi giao dịch tiền điện tử trong một khối, còn được gọi là ID giao dịch (TXID). Bạn nhìn thấy hash giao dịch khi tìm kiếm giao dịch trên trình khám phá khối.
Sau đó, để tạo một lớp gồm các nút không lá phía trên các nút lá, các nút lá này được hash với nhau theo cặp. Chúng được gọi là các nút không lá vì trái ngược với các nút lá, chúng chỉ lưu trữ hash của hai nút lá mà mình đại diện và không chứa ID giao dịch (hoặc giá trị hash). Kết quả là, sẽ có một nửa số hash (hoặc nút) trong lớp nút không lá phía trên các nút lá so với trong lớp nút lá. Càng đi lên, cây càng thu hẹp lại, các lớp nút không lá này tiếp tục được hash với nhau theo từng cặp, dẫn đến số nút trên mỗi lớp chỉ còn một nửa. Hai nút sẽ có mặt trong lớp nút không lá cuối cùng. Điều này tạo ra gốc Merkle và là vị trí của hàm băm cuối cùng trong cây Merkle.
Với Bitcoin, hash của tất cả các giao dịch được kết hợp thành một hash duy nhất và được lưu trữ trong tiêu đề khối. Gốc Merkle, còn được gọi là hash gốc, chính là hash đặc biệt này. Các nút lá (ID giao dịch/giá trị hash) ở phần gốc của cây Merkle có thể được xác minh bằng cách sử dụng gốc Merkle này. Khi được sử dụng cho tiền điện tử, gốc Merkle đảm bảo rằng các khối dữ liệu không bị thay đổi, không bị hư hại và vẫn còn nguyên vẹn.
Cây Merkle mang tính nhị phân, có nghĩa là tổng số nút lá khác nhau phải là số chẵn để cây có được kết cấu chuẩn xác. Khi tồn tại số nút lá lẻ, hash trước đó sẽ được sao chép để cung cấp số nút chẵn.
Về cơ bản, cây Merkle được thiết kế để chia các phần dữ liệu lớn thành các phần nhỏ hơn đáng kể, đảm bảo rằng tất cả các giao dịch có thể được xác minh kịp thời. Cây này tóm tắt mọi giao dịch bằng cách tạo một dấu vân tay nhỏ của một tập hợp giao dịch cụ thể, giúp người dùng dễ dàng xác minh tính khả dụng của các giao dịch trong một khối hơn.
Cây Merkle được hình thành bằng cách băm các cặp nút khác nhau cho đến khi chỉ còn lại một hash, được gọi là gốc Merkle. Những cây này được xây dựng từ dưới lên, với mỗi giao dịch bao gồm các giá trị hash. Mỗi nút lá là một hash dữ liệu đơn lẻ. Đối với các nút không lá, đây chính là giá trị hash của các giá trị hash trước đó.
Giả sử rằng cây Merkle bao gồm bốn giao dịch được gắn nhãn D0, D1, D2 và D3. Mỗi giao dịch được băm trước khi hash được lưu trữ trực tiếp trên nút lá. Khi điều này xảy ra, hash N0, N1, N2 và N3 được tạo ra. Bất kỳ cặp nút lá liên tiếp nào sau đó sẽ được tóm tắt trong một nút cha thông qua quá trình băm của hash N0 và hash N1, kết quả là hash N4. Nếu hash N2 và hash N3 được băm cùng nhau, thì hash N5 được tạo ra. Cả hai giá trị hash này, N4 và N5, được băm một lần nữa để tạo gốc Merkle.
Quá trình này có thể được sử dụng với các tập hợp dữ liệu mở rộng. Gốc Merkle chịu trách nhiệm tóm tắt dữ liệu có trong các giao dịch cụ thể, tất cả đều được lưu trữ trực tiếp trong header khối. Kỹ thuật này dẫn đến khả năng duy trì đúng cách tính toàn vẹn của dữ liệu. Trong trường hợp một chi tiết trong giao dịch bị thay đổi tại một số điểm, gốc Merkle sẽ tự động thay đổi theo.
Có nhiều lợi ích cho công nghệ blockchain và nền tảng tiền điện tử khi sử dụng cây Merkle để xác minh giao dịch, bao gồm mọi thứ từ xác minh hiệu quả đến dễ dàng phát hiện giả mạo.
Thật dễ dàng để xác minh tính toàn vẹn của giao dịch gần như ngay lập tức. Do cách cấu trúc dữ liệu nên cần sử dụng rất ít bộ nhớ trong quá trình xác minh và sức mạnh tính toán cần thiết sẽ giảm đáng kể.
Vì các blockchain thường bao gồm hàng trăm nghìn khối, mỗi khối có thể chứa tới vài nghìn giao dịch, nên việc xác thực dữ liệu đặt ra hai thách thức lớn: không gian bộ nhớ và sức mạnh tính toán. Mọi nút trên mạng lưới sẽ cần phải duy trì một bản sao hoàn chỉnh của mọi giao dịch từng diễn ra trên blockchain nếu cây Merkle không phải là một khái niệm trong blockchain. Một nút sẽ phải so sánh từng dòng đầu vào khi xác minh một giao dịch để đảm bảo rằng các bản ghi khớp chính xác với các bản ghi của mạng lưới. Khả năng bảo mật của mạng lưới có thể bị hủy hoại nếu có bất kỳ sự khác biệt nào giữa các bản ghi. Do đó, để so sánh các bản ghi nhằm đảm bảo rằng không có thay đổi nào, máy tính được sử dụng để xác thực dữ liệu sẽ cần nhiều sức mạnh xử lý hơn.
Mặt khác, cây Merkle đưa ra giải pháp cho vấn đề này bằng cách giảm đáng kể lượng dữ liệu phải được lưu giữ cho nhu cầu xác minh. Cây Merkle hash mọi mục nhập trong sổ cái, tách dữ liệu ra khỏi bằng chứng hỗ trợ một cách hiệu quả. Không cần biết từng TXID đơn lẻ trong một khối, nhờ cây Merkle, bạn vẫn có thể kiểm tra TXID bằng gốc Merkle. Cây Merkle về cơ bản là một cách tuyệt vời để chứng minh rằng có thứ gì đó hiện diện trong tập dữ liệu mà không cần phải tải xuống toàn bộ tập hợp đó. Do vậy, cần ít sức mạnh tính toán hơn để xác thực các giao dịch.
Do sự phân phối các giao dịch trên khối giữa những người xác thực, mỗi người xác thực đang cùng lúc làm việc trên giao dịch khác nhau. So với một phương pháp mà mỗi giao dịch được xác thực tuần tự sau giao dịch khác, thì cách này hiệu quả hơn nhiều.
Xác Minh Thanh Toán Đơn Giản (SPV) – cho phép bạn xác nhận giao dịch mà không cần tải xuống toàn bộ khối hoặc blockchain – có thể thực hiện được nhờ cây Merkle. Điều này cho phép sử dụng nút ứng dụng khách nhẹ, được biết đến với tên gọi chính thức hơn là ví crypto, để gửi và nhận giao dịch.
Cấu trúc hash giúp thợ đào dễ dàng xác định xem có xảy ra tình trạng giả mạo với các giao dịch hay không.
Một giá trị hash riêng biệt được tạo cho mỗi khối bằng cách sử dụng gốc Merkle. Khối này liên kết khối này với khối khác trong blockchain bằng cách đưa vào hash của khối trước đó. Hash của bất kỳ giao dịch nào thay đổi bất cứ khi nào giao dịch đó được sửa đổi. Khối trở nên không hợp lệ do sự thay đổi này bởi vì nó xếp tầng lên Gốc Merkle và làm thay đổi giá trị của gốc này. Điều này sau đó tạo ra thay đổi trong hash của khối tiếp theo, khiến phần còn lại của Blockchain trở nên không hợp lệ. Kết quả là, cây Merkle tạo ra một bản ghi bất biến về các giao dịch của khối.
Do đó, hành vi chi tiêu hai lần cũng có thể được ngăn chặn. Nếu một cá nhân cố gắng chi tiêu hai lần lượng tiền kỹ thuật số của mình, một hash sẽ được tạo cho giao dịch đó. Nếu hash đó khớp với các bản ghi hiện có trên Blockchain, giao dịch đó sẽ bị từ chối.
Cây Merkle đã được chứng minh là cần thiết cho công nghệ blockchain vì chúng tạo điều kiện xác minh nhanh chóng và dễ dàng theo cách mà các kỹ thuật khác không thể thực hiện được. Những cây Merkle này cung cấp cho các nhà phát triển khả năng nén các tập dữ liệu cực lớn bằng cách loại bỏ tất cả dữ liệu không cần thiết và biến dữ liệu còn lại thành giá trị hash. Các tính năng đa dạng mà cây Merkle cung cấp bao gồm:
Như đã đề cập ở phần đầu, sau sự sụp đổ của FTX, người dùng lo lắng rằng liệu tiền của họ có thực sự được giữ an toàn trong các CEX hay không. Do đó, nhiều CEX hướng tới việc phát triển cơ chế Bằng Chứng Dự Trữ Cây Merkle. Trong phần này, chúng tôi sẽ xem xét bằng chứng Merkle và cách người dùng có thể xác thực tiền của họ.
Bằng chứng cây Merkle là một phần từ cây Merkle, không phải cây thực tế. Và được biểu diễn dưới dạng một mảng hoặc chuỗi (được hiển thị bằng phần màu cam trong biểu đồ bên dưới).
Tất cả các nút lá và thông tin số dư cho một người dùng cụ thể của công ty chúng tôi được biểu thị bằng các nút cấp cuối cùng của hình. Giả sử rằng những người màu hồng trong hình đại diện cho những người nhận bằng chứng dự định, chúng tôi trích xuất các phần màu cam của hình theo cấp độ và trình bày các tài liệu bằng chứng cho người dùng theo thứ tự chiều cao. Điều quan trọng cần nhớ là bằng chứng Merkle có hai thành phần chính
Lấy khối lượng 10 triệu người dùng làm ví dụ, chiều cao của cây có thể được tính là Log2(10.000.000) = 23,2534966642 dựa trên công thức toán học cho biết chiều cao của cây là 24 cấp. Do đó, các nút trong biểu đồ không được cung cấp cho người dùng một cách có chủ ý sẽ là 24 - 2 = 22.
Cây Merkle là một cây nhị phân hoàn chỉnh, cho phép tính toán tất cả thông tin về nút cha khi chỉ cần biết các nút bên trái và bên phải. Hai phần tạo nên thông tin đầy đủ này: dữ liệu số dư và dữ liệu hash.
Quá trình xác thực cây Merkle được tính toán bằng cách lấy từ B và D và xác minh rằng
Bằng cách sử dụng hàm tóm tắt hash, cây Merkle cho phép người dùng xác định xem họ có phải là một phần của toàn bộ cây hay không mà không cần phải biết mọi nút màu tím trong biểu đồ. Bằng chứng Merkle dành riêng cho kiểu người dùng đó. Chẳng hạn, cây Merkle 24 cấp cần một mảng gồm 23 phần tử để xác minh thông tin số dư của người dùng và mảng này chỉ có thể xác nhận rằng bằng chứng số dư của người dùng là chính xác.
Người dùng không thể xây dựng lại toàn bộ cây dựa trên thông tin bị phân mảnh của mình, miễn là họ không lấy được hơn một nửa tổng số người dùng. Do đó, cây Merkle bảo vệ cả quyền riêng tư của người dùng và khả năng của công ty trong việc ngăn chặn rò rỉ thông tin về tài sản tổng thể của công ty.
Có 2 phương thức giúp bạn xác thực tài khoản Bybit và kiểm tra tính hợp lệ của tiền.
Công Cụ Xác Thực Nền Tảng
Phương thức này là đầu tiên và duy nhất trong toàn bộ mạng lưới và sẽ hiển thị quá trình tạo nút xác thực Cây Merkle theo kiểu đồ họa trực quan trên nền tảng của công ty.
Công Cụ Tự Xác Thực
Mã nguồn tạo cây Merkle và mã xác thực của công ty được cung cấp công khai trên github để hỗ trợ người dùng lập trình thao tác xác thực của riêng họ. Quá trình tính toán cây Merkle liên quan đến một lượng lớn phép tính của người dùng, thường được thực hiện bởi dữ liệu lớn và Java.
*Mã Java mở nghĩa là mã này mở cho người dùng mà không giữ lại bất kỳ thông tin nào.
Bybit đã cung cấp mã nguồn mở sau đây để người dùng chuyên nghiệp xác thực tệp bằng chứng Cây Merkle của riêng họ bằng cách sao chép tệp đó từ trang bằng chứng dự trữ sang phiên bản hệ thống "không đổi" của riêng họ thông qua nút Sao Chép Dữ Liệu và lưu trữ dưới dạng tệp mang tên myProof.json vào đĩa cục bộ.
Cấu trúc cây Merkle và gốc Merkle đã được áp dụng rộng rãi trên nhiều nền tảng blockchain và tiền điện tử khác nhau. Sau đây, xin giới thiệu chi tiết về ba ứng dụng như vậy.
Bitcoin sử dụng cây Merkle theo nhiều cách, khiến những cây này trở nên không thể thiếu trong toàn bộ nền tảng Bitcoin. Trên thực tế, những cây này có mặt trong mọi tiêu đề khối Bitcoin. Hash cho mọi giao dịch có sẵn trong khối được đặt trong tiêu đề. Khi nói đến Bitcoin, gốc Merkle rất quan trọng đối với cả hoạt động đào cũng như xác minh.
Các khối bitcoin bao gồm các tiêu đề chứa siêu dữ liệu cũng như danh sách giao dịch phong phú. Danh sách này thường lớn hơn tiêu đề của khối. Thợ đào hash dữ liệu để tạo đầu ra tuân thủ các điều kiện cụ thể – điều cần thiết khi xác thực một khối. Các thợ đào có thể thực hiện hàng nghìn tỷ lần thử riêng biệt trước khi tìm thấy một khối hợp lệ. Mỗi lần thử đều yêu cầu thay đổi một số trong tiêu đề của khối. Dù hàng nghìn giao dịch riêng biệt có thể tồn tại trong một khối, nhưng mỗi giao dịch đều phải được hash.
Gốc Merkle cho phép các thợ đào thực hiện quy trình này hiệu quả hơn nhiều. Khi quá trình khai thác bắt đầu, tất cả những gì cần thiết là các giao dịch được tạo thành cây Merkle, sau đó hash gốc có thể được đặt trong tiêu đề khối. Tại thời điểm này, thợ đào chỉ cần hash tiêu đề của khối, trái ngược với toàn bộ khối.
Một khía cạnh khác mà gốc Merkle được sử dụng với Bitcoin liên quan đến đòn bẩy, tập trung vào các ứng dụng khách nhẹ. Khi một nút đang được vận hành trên một thiết bị tương đối yếu có tài nguyên hạn chế, người dùng sẽ không thể tải xuống và hash mọi giao dịch trong một khối đơn lẻ. Thay vào đó, có thể yêu cầu bằng chứng Merkle – xác nhận rằng một giao dịch có mặt trong một khối. Bằng cách giảm số lượng giá trị hash cần thực hiện trong quá trình xác minh, quá trình xác minh có thể diễn ra mà không cần sử dụng nhiều tài nguyên máy tính.
Ethereum dựa trên một phiên bản đã sửa đổi đôi chút của cây Merkle, đó là lý do tại sao nó được gọi là cây Merkle Patricia. Mỗi khối trong blockchain Ethereum bao gồm ba cây Merkle, trái ngược với một cây nhị phân - vốn diễn ra trong các khối Bitcoin. Mỗi gốc trong số ba gốc đó có một mục đích riêng.
Gốc ban đầu được coi là gốc của mọi giao dịch. Gốc thứ hai hiển thị trạng thái của giao dịch. Gốc cuối cùng là quá trình nhận giao dịch. Người dùng có thể xem xét gốc Merkle để xác định giao dịch có xuất hiện trên một khối cụ thể hay không, cũng như xác định xem số dư tài khoản của họ là bao nhiêu.
Khi xem xét cụ thể về Hyperledger Fabric, ta thấy nền tảng blockchain này sử dụng cây Merkle để tính toán dữ liệu khối dưới dạng hash. Giá trị hash xác định chiều rộng của cây Merkle. Cây Merkle trên nền tảng Hyperledger Fabric hoạt động giống như cây trên nền tảng Bitcoin.
Cây Merkle đã được chứng minh là rất hữu ích cho các nền tảng tiền điện tử muốn đảm bảo rằng quy trình xác minh giao dịch của mình diễn ra dễ dàng và hiệu quả nhất có thể. Nếu không có cấu trúc này, việc xác minh sẽ là một quá trình tốn thời gian vì dữ liệu sẽ phải được chuyển khắp toàn bộ mạng lưới để xác minh. Các nền tảng sử dụng cây Merkle hưởng lợi từ các yêu cầu về băng thông và sức mạnh tính toán ít hơn.
Không spam. Chỉ có nội dung hấp dẫn và cập nhật ngành trong không gian tiền điện tử