*هشینگ (Hashing) و امضای دیجیتال در Blockchain چیست؟*هشینگ ایده ایست که بازای دریافت ورودی دلخواهی، با اعمال برخی الگوریتم‌های ریاضی به آن، یک خروجی با طول ثابت توليد میکند که Hash نام دارد. این ورودی میتواند تعدادی بیت، کاراکتر، یک فایلMP3، یک رمان کامل، برگه تاریخچه حساب بانکی، و حتی کل اینترنت باشد. نکته مهم اینست که ورودی میتواند بزرگ باشد ولی پس از اعمال محاسباتی بر روی آن، خروجی با تعداد بیت ثابت مثلاً 128 یا 256 یا 512 بیت توليد میکند. الگوریتم Hash میتواند برحسب نیاز انتخاب گردد و هم اکنون چندین الگوریتم موجود هست.از توابع Hash برای تأیید دستکاری نشدن فایلها و حفظ یکپارچگی آنها استفاده میگردد. بعنوان مثال اگر فایلی را دانلود نمودید برای مطمئن شدن از درستی و اصل بودن فایل میتوانید Hash آن را محاسبه نموده و با Hash فایل که بهمراه فایل ارسال شده مقایسه نمایید و در صورت مطابقت، از درستی و اصل بودن فایل مطمئن شوید.*کاربرد Hash در ساختار Blockchain *ورودی تابع Hash در Blockchain همه تراکنشهای صورت گرفته تا آن لحظه (زمان خرید ارز دیجیتال) میباشد و خروجی، حالت جاری Blockchain هست. بعبارت دیگر Hash برای توافقی بین همه بخشهاست که نشان دهد حالت کلی Blockchain یکی هست.*نحوه محاسبه Hash در Blockchain *اولین Hash برای بلوک اول (Genesis) محاسبه میشود که برای تراکنش در آن بلوک بکار میرود. رشته تراکنش اولیه برای محاسبه Hash بلوک جهت تولید بلوک Genesis(اولیه) بکار میرود. برای بلوک جدید که بعداً تولید میشود، Hash بلوک قبلی و تراکنش خودش بعنوان ورودی Hash استفاده میگردد. بدین ترتیب زنجیره‌ای از بلوکها شکل میگیرد. (البته هش بلاک برای هدر (سرایند بلاک ) انجام میشهتراکنش ها دو به دو هش میشن و باز نتیجه ها هش میشن تا به یه ریشه میریسم.به این میگن درخت مِرْکِلْریشه درختِ مرکلِ تراکنش های یه بلاک تو سرایند بلاک هست)بنابرین هر Hash بلوک جدید اشاره به Hash بلوک قبل آن میکند. این سیستم Hashing تضمین کننده اینست که در هیچ تراکنشی امکان دستکاری نیست زیرا درصورت تغییر بخشی از تراکنش، Hash بلوکی که درآنست و همه Hash های زیربلوکها تغییر میکنند. تشخیص دستکاری شدن در Blockchain آسان هست زیرا هرکسی فقط نیاز به تأیید 256 بیت دارد. بلاکچین اتریوم، هم اکنون ده‌ها گیگابایت میباشد اما Hash آن 256 بیت میباشد.*امضای دیجیتال در Blockchain *امضای دیجیتال امروزه در اینترنت مورد استفاده قرار میگیرد مثلاً زمانیکه از SSL برای دیدن یک وبسایت استفاده میکنید. اینکار نوعی اعتماد بین شما و وب سرور مربوطه ایجاد مینماید که پاسخ دریافتی از وب سرور مطمئناً از طرف وب سرور ارسال شده و هکرها آنرا ارسال نکرده‌اند.در امضای دیجیتالی از رمزهای نامتقارن استفاده میگردد که هر کاربر دارای دو کلید خصوصی و عمومی برای رمزنگاری میباشد. این کلیدها با یک رابطه ریاضی بهم مربوط میشوند. کلید عمومی برای دریافت پیام از طرف دیگران، به اشتراک گذاشته میشود. کلید خصوصی بصورت مخفی نزد هر کاربر نگهداری میگردد. در امضای دیجیتال، Hash پیام توسط کلید خصوصی رمز میگردد و در سمت گیرنده با کیلد عمومی فرستنده رمزگشایی میگردد و با Hash پیام مقایسه میگردد و هویت فرستنده و صحت یکپارچگی پیام تأیید میگردد. تولید زوج کلید خصوصی و عمومی مشابه ایجاد یک حساب کاربری روی Blockchain میباشد بدون اینکه مجبور به ثبتنام در جایی باشد. هر تراکنشی که بر روی Blockchain اجرا میشود توسط کلید خصوصی فرستنده امضا میگردد. این امضا به دارنده حساب این اطمینان را میدهد که فقط او قادر به جابجایی پول به خارج از حساب میباشد. blockgeeks.comکریپتو آموزش CryptoAmoozesh@Bitcoin_Iran💰💸💸💰