Merkle Tree چیست ؟
فرض کنید یک بلاک هزاران تراکنش دارد و میخواهیم خلاصهای کوچک از همه آنها داشته باشیم. Merkle Tree یا درخت مرکل ساختاری است که با استفاده از هشها چنین کاری را ممکن میکند.
در این ساختار، هش تراکنشها در چند مرحله با هم ترکیب میشوند تا در نهایت به یک هش نهایی به نام Merkle Root برسیم. این Root به محتوای تراکنشهای زیر آن وابسته است؛ بنابراین تغییر در دادهها میتواند نتیجه نهایی را عوض کند.
یک تشبیه ساده، مسابقات حذفی است. چندین شرکتکننده در پایین جدول قرار دارند و نتایج مرحلهبهمرحله ترکیب میشوند تا در بالای جدول فقط یک نتیجه باقی بماند. در Merkle Tree بهجای نتیجه مسابقه با هشها سروکار داریم.
مزیت مهم این ساختار این است که برای اثبات وجود یک تراکنش در مجموعه، لازم نیست همیشه تمام تراکنشها فرستاده شوند. با یک Merkle Proof میتوان مسیر لازم تا Root را ارائه کرد.
در بیتکوین، Merkle Root تراکنشهای بلاک داخل Block Header قرار میگیرد. همین موضوع به کلاینتهای سبک کمک میکند بعضی بررسیها را با داده بسیار کمتر انجام دهند.
پس Merkle Tree را میتوان روشی هوشمند برای خلاصهکردن و اثبات عضویت دادههای زیاد با کمک هشها دانست.
