هش به این مفهموم اشاره دارد که مقدار نامشخصی از داده ورودی، توسط یک الگوریتم، به یک داده خروجی که هش نام دارد تبدیل می شود. این داده خروجی طول ثابت و مشخصی دارد. داده ورودی نیز می تواند یک کارکتر باشد یا حتی یک فایل صوتی یا تمام اینترنت! نکته این است که داده ورودی می تواند بسیار بزرگ باشد. الگوریتم هش می تواند بر اساس نیاز ما انتخاب شود. الگوریتم هش، یک مقدار نامحدود از بیت ها را به عنوان ورودی می گیرد و بعد از انجام یکسری محاسبات روی آن، یک خروجی با طول مشخص را تولید می کند. برای مثال یک رشته 256 بیتی. اما استفاده این هش تولید شده چه می باشد؟ یک استفاده عمومی از هش ها برای ایجاد اصالت در فایل ها است. به این معنی که این هش تایید می کند که فایل تاکنون توسط شخصی غیر از مولف آن و به طور غیر عمد دستکاری نشده است. برای مثال اگر وب سایت ویکیلیکس، یکسری از اسناد با هش MD5 آن را منتشر کند، هر کس که آن فایل ها را دانلود کند و هش آن را حساب کند، در صورت مغایرت هش حساب شده با هش منتشر شده توسط این سایت، متوجه خواهد شد که فایل دانلود شده به طریقی دچار دستکاری شده است.
اما بلاکچین چگونه از هش ها استفاده می کند؟
هش ها در بلاکچین برای نشان دادن حالت فعلی جهان به کار گرفته می شوند. یعنی ورودی کل حالت فعلی بلاکچین است: تمام تراکنش هایی که از ابتدا تاکنون صورت گرفته، به عنوان ورودی هش می شوند و در نتیجه هش، حالت فعلی بلاکچین را نشان خواهد داد. این هش برای توافق بین تمام بخش ها در دنیا بر سر اینکه حالت فعلی، تنها حالت فعلی و واقعی است به کار می رود. اما در حقیقت چگونه این هش ها محاسبه می شوند؟
هش اول برای بلاک اول یا بلاک ریشه ای محاسبه می شود که حاوی تراکنش های درون بلاک است. دنباله ی تراکنش های اولیه برای محاسبه هشِ بلاکِ ریشه مورد استفاده قرار می گیرد. برای هر بلاکی که بعد از آن تولید می شود، هشِ بلاک قبلی نیز مانند تراکنش های همان بلاک به عنوان ورودی مورد استفاده قرار می گیرد تا هش این بلاک مشخص شود. این نحوه شکل گیری زنجیره ای از بلاک ها است. هشِ هر بلاک جدید به هشِ بلاک قبل از آن اشاره می کند. این سیستم از هش ها تضمین می کند که هیچ تراکنشی در گذشته قابل تغییر نباشد؛ چون اگر یک قسمت از تراکنش تغییر کند، هش همان بلاک نیز تغییر می کند و در نتیجه هش های بلاک های بعد از آن نیز تغییر خواهند کرد. در نهایت تشخیص تراکنش های دستکاری شده، بسیار ساده خواهد بود. زیرا برای اینکار تنها نیاز دارید تا هش ها را با یکدیگر مقایسه کنید. نتیجه این کار بسیار جالب است. چرا که همه افراد روی زنجیره ی بلاک، تنها نیاز دارند تا روی 256 بیت برای تایید حالت زنجیره بلاک در بینهایت توافق کنند. بلاکچین اتریوم در حال حاضر چند ده گیگابایت حجم دارد، اما در عین حال، مقدار فعلی بلاکچین آن، یک هش شانزده دهی است که با 256 بیت نشان داده می شود.
امضای دیجیتال
امضای دیجیتال مانند امضای واقعی، راهی برای اثبات این است که هر کسی همان کسی باشد که ادعا می کند، با این تفاوت که در اینجا از ریاضیات و رمزنگاری به جای دستخط استفاده می شود که بسیار امن تر است. یک امضای دیجیتال راهی برای اثبات این است که یک پیام دقیقا از یک شخص مشخص به دست ما رسیده است نه کسی دیگر مثل یک هکر. امضاهای دیجیتال همه روزه در تمام اینترنت مورد استفاده قرار می گیرند. هرگاه شما به یک وبسایت از طریق ACTP مراجعه می کنید، شما در حال استفاده از SSL هستید که از امضای دیجیتال برای ایجاد اعتماد بین شما و سرور استفاده می کند. این به آن معنیست که هر وقت شما به وبسایت Facebook.com سر می زنید، مرورگر شما امضای دیجیتالی که از صفحه ی وب به دستش رسیده را چک می کند تا تایید کند که در اصل از Facebook آمده است نه از رایانه ی یک هکر.
در سیستم های رمزنگاری غیرمتقارن، کاربران یک جفت کلید تولید می کنند: یک کلید عمومی و کلید خصوصی. کلید عمومی و خصوصی با استفاده از یکسری روابط ریاضیاتی به یکدیگر وابستگی دارند. کلید عمومی می تواند به صورت عمومی به عنوان آدرس دریافت پیام توسط دیگران معلوم باشد. کلید خصوصی اما باید به صورت خصوصی و مخفی باشد و برای امضای پیام مورد استفاده قرار گیرد. این امضا درون پیام فرستاده شده لحاظ می گردد، بنابراین گیرنده می تواند توسط کلید عمومی فرستنده آن را تایید کند. با این روش، گیرنده می تواند مطمئن شود که تنها فرستنده، می توانسته این پیام را فرستاده باشد. تولید یک جفت کلید مشابه ایجاد یک حساب کاربری روی زنجیره بلاک یا بلاکچین است، اما بدون نیاز به ثبت آن در جایی. همچنین هر تراکنشی که روی زنجیره بلاک اجرا می شود، توسط کلید خصوصی امضا می شود. این امضا اطمینان خواهد داد که تنها صاحب حساب خواهد توانست پول را از حساب خود منتقل کند. برای جمع بندی مطالب گفته شده باید گفت، بلاکچین بدون هش و امضای دیجیتال وجود نخواهد داشت. هش راهی را برای توافق همگان روی وضعیت فعلی زنجیره ایجاد می کند. در حالی که امضاهای دیجیتال، راهی است برای اطمینان از اینکه تمام تراکنش ها فقط توسط شخص معتبر صورت گرفته. با تکیه بر این دو ویژگی می توان مطمئن شد که بلاکچین آسیب نخواهد دید و در معرض خطر نخواهد بود.