در کوین سرا از جدیدترین و داغ ترین اخبار و مطالب دنیای ارزهای رمزپایه مطلع می شوید .

هشینگ(Hashing) و هش تراکنش چیست؟

0 5,550

هشینگ به فرایند تولید یک خروجی با اندازه ثابت از ورودی با اندازه های متغیر گفته می شود. این کار با استفاده از فرمول های ریاضی معروف به توابع هش(که به عنوان الگوریتم هشینگ اجرا می شوند) صورت می گیرد.

اگر چه همه توابع هش تنها در ارزهای رمزنگاری استفاده نمی شوند، اما توابع هش رمزنگاری در هسته ارزهای رمزنگاری قرار دارند. به لطف این توابع، بلاک چین و سایر سیستم های توزیع شده قادر به دستیابی به سطح قابل توجهی از صحت و امنیت داده ها هستند.

عملکرد هر دو توابع هش معمولی و رمزنگاری مشخص است. مشخص بدین معنی که تا زمانی که ورودی تغییر نکند، الگوریتم هشینگ همیشه همان خروجی را ایجاد می کند(که به عنوان هش شناخته می شود).

به طور معمول الگوریتم های هشینگ ارزهای رمزنگاری به عنوان توابع یک طرفه طراحی شده اند، به این معنی که بدون داشتن قدرت محاسباتی بالا و زمان زیاد، به راحتی برگشت پذیر نیستند. به عبارت دیگر ایجاد خروجی از ورودی بسیار آسان است، اما رفتن در جهت مخالف(تولید ورودی فقط از خروجی) دشوار است. به طور کلی، هر چه پیدا کردن ورودی سخت تر باشد، الگوریتم هشینگ امن تر است.

تابع هش چگونه کار می کند؟

توابع مختلف هش خروجی هایی در اندازه های مختلف تولید می کنند، اما اندازه خروجی ممکن، برای هر الگوریتم هشینگ همیشه ثابت است. به عنوان مثال الگوریتم SHA-256 فقط می تواند خروجی های 256 بیتی تولید کند، در حالی که SHA-1 همیشه هش های 160 بیتی تولید می کند.

الگوریتم SHA-256

دقت کنید که یک تغییر جزئی(تغییر حرف اول از بزرگ به کوچک)، هش کاملا متفاوتی را ایجاد خواهد کرد. اما از آنجا که ما از الگوریتم SHA-256 استفاده می کنیم، خروجی ها، صرف نظر از اندازه ورودی، همیشه اندازه ثابت 256 بیت(یا 64 کاراکتر) را دارند. همچنین مهم نیست که چندبار این دو کلمه را از طریق الگوریتم اجرا کنیم، این دو خروجی ثابت خواهند بود.

برعکس اگر ورودی های مشابه را از طریق الگوریتم هش SHA-1 اجرا کنیم، نتایج زیر حاصل می شود:

کلمه SHA مخفف کلمه Secure Hash Algorithms است. این به مجموعه ای از توابع هش رمزنگاری اشاره دارد که شامل الگوریتم های SHA-0 و SHA-1، همراه با گروه های SHA-2 و SHA-3 است. در حال حاضر فقط گروه های SHA-2 و SHA-3 امن در نظر گرفته می شوند.

چرا آنها مهم هستند؟

توابع هش معمولی دارای موارد استفاده گسترده، از جمله جستجو در پایگاه داده، تجزیه و تحلیل فایل های بزرگ و مدیریت داده ها هستند. از سوی دیگر، توابع هش رمزنگاری به طور گسترده در اپلیکیشن های اطلاعات امنیتی مانند تایید صحت پیام و اثر انگشت دیجیتال استفاده می شوند. وقتی صحبت از بیت کوین می شود، توابع هش رمزنگاری بخش مهمی از فرایند استخراج هستند و همچنین در تولید آدرس ها و کلیدهای جدید نقش دارند.

قدرت واقعی هش ها هنگام مواجهه با اطلاعات عظیم حاصل می شود. به عنوان مثال می توان یک فایل بزرگ یا مجموعه ای از داده ها را از طریق یک تابع هش اجرا کرد و سپس از خروجی آن برای تایید سریع صحت و درستی داده ها استفاده کرد. این امر به دلیل ماهیت قطعی توابع هش امکان پذیر است: دادن ورودی همیشه به یک خروجی ساده و فشرده شده منجر می شود. این روش، نیاز به ذخیره و یا به خاطر سپردن مقدار زیادی اطلاعات و داده ها را برطرف می کند.

هشینگ در چارچوب فناوری بلاک چین نیز مفید است. بلاک چین بیت کوین چندین عملیات را از طریق هشینگ انجام می دهد که بیشتر آنها در مراحل استخراج قرار دارد. در حقیقت تقریبا تمام پروتکل های ارزهای رمزنگاری برای ایجاد ارتباط و متراکم کردن اطلاعات دسته ای از تراکنش ها در بلاک ها و همچنین برای ایجاد ارتباط رمزنگاری بین هر بلاک، برای ایجاد بلاک چینی موثر، به هشینگ تکیه دارند.

توابع هش رمزنگاری

یک تابع هش که از تکنیک های رمزنگاری استفاده می کند، ممکن است به عنوان یک تابع هش رمزنگاری تعریف شود. به طور کلی شکستن یک تابع هش رمزنگاری نیاز به نیروی محاسباتی بالایی دارد. برای این که شخصی بتواند تابع هش رمزنگاری را حدس بزند، باید از طریق صحیح و خطا آنقدر ورودی را حدس بزند تا به خروجی هش برسد. با این حال امکان دارد که ورودی های مختلف خروجی یکسانی را بدهند، که در این صورت تلاقی(collision) رخ می دهد.

قبل از این که در مورد هر ویژگی صحبت کنیم، اجازه دهید منطق آنها را در سه جمله به صورت خلاصه عنوان کنیم.

  • مقاومت در برابر تلاقی: سخت شدن داشتن دو ورودی متفاوت که یک خروجی یکسان را بدهند.
  • مقاومت معکوس: نشدنی بودن معکوس کردن تابع هش(پیدا کردن ورودی از طریق خروجی)
  • مقاومت معکوس ثانویه: رسیدن به ورودی ثانویه ای که با ورودی اصلی تلاقی دارد، غیرممکن است.

مقاومت در برابر تلاقی

همانطور که گفته شد تلاقی زمانی رخ می دهد که ورودی های متفاوت خروجی هش یکسانی را بدهند. بنابراین یک تابع هش تا زمانی که فردی در لحظه، تلاقی را پیدا نکند، در برابر تلاقی مقاوم است. به این نکته توجه داشته باشید که تلاقی برای هر تابع هش همیشه وجود خواهد داشت، زیرا ورودی های احتمالی بی‌نهایت هستند، در حالی که خروجی های ممکن محدود اند.

به عبارت دیگر هنگامی که امکان یک تلاقی آنقدر کم باشد که نیاز به انجام محاسبات طی میلیون ها سال داشته باشد، تابع هش را در برابر تلاقی مقاوم می کند. بنابراین علیرغم اینکه هیچ تابع هشی از تلاقی عاری نخواهد بود، برخی از توابع آنقدر قوی هستند که مقاوم در برابر تلاقی در نظر گرفته می شوند(مثل تابع هش SHA-256).

در بین الگوریتم های مختلف SHA، گروه های SHA-0 و SHA-1 دیگر امن نیستند، زیرا تلاقی در این گروه زیاد پیدا شده. در حال حاضر گروه های SHA-2 و SHA-3 مقاوم در برابر تلاقی در نظر گرفته می شوند.

مقاومت معکوس

ویژگی مقاومت معکوس به ویژگی یک طرفه بودن توابع مربوط می شود. وقتی احتمال بسیار کمی وجود دارد که کسی بتواند از طریق خروجی به ورودی برسد، یک تابع هش مقاوم در برابر معکوس شدن محسوب می شود.

توجه داشته باشید که این ویژگی با مورد قبلی متفاوت است، زیرا در اینجا یک مهاجم سعی می کند تا ورودی را از طریق خروجی حدس بزند. اما تلاقی زمانی است که فردی دو ورودی را پیدا کند که خروجی یکسانی بدهند و فرقی نمی کند که از کدام ورودی استفاده شود.

خاصیت مقاومت در برابر معکوس شدن برای محافظت از داده های بسیار ارزشمند است، زیرا یک هش ساده از یک پیام می تواند صحت آن را بدون نیاز به افشای اطلاعات، اثبات کند. در عمل بسیاری از ارائه دهندگان خدمات و برنامه های وب به جای استفاده از پسوردهای ساده، از هش های تولید شده به عنوان کلمه عبور و ذخیره اطلاعات مهم استفاده می کنند.

مقاومت در برابر روند معکوس ثانویه

برای ساده تر شدن درک این خاصیت می توان گفت که این ویژگی مابین دو ویژگی قبلی است. این حمله زمانی رخ می دهد که شخصی غیر از ورودی که حالا مشخص است بتواند ورودی دیگری را که همان خروجی را می دهد، تولید کند.

به عبارت دیگر یک حمله معکوس ثانویه شامل پیدا کردن یک تلاقی است؛ اما به جای جستجوی دو ورودی تصادفی که باعث ایجاد یک هش یکسان می شوند، آنها ورودی را جست و جو می کنند که همان خروجی را تولید می کند.

بنابراین، هر تابع هشی که در برابر تلاقی مقاوم باشد، در مقابل حملات ثانویه معکوس نیز مقاوم است. با این حال هنوز هم امکان انجام این حمله وجود دارد، زیرا این امر به معنای پیدا کردن یک ورودی واحد از یک خروجی است.

استخراج

مراحل استخراج بیت کوین بسیار زیاد است که در توابع هش قرار دارد. مثل چک کردن مانده حساب، ارتباط بین تراکنش های ورودی و خروجی و تراکنش های هشینگ داخل یک بلاک که درخت مرکل را شکل می دهد. اما یکی از مهمترین دلایل ایمن بودن بلاک چین بیت کوین، این واقعیت است که نیاز است استخراج گران عملیات هشینگ زیادی را انجام دهند تا در نهایت راه حل معتبری برای حل بلاک بعدی پیدا کنند.

به طور خاص، یک استخراج کننده هنگام ایجاد یک هش برای یک بلاک خاص، چندین ورودی مختلف را امتحان می کند. در واقع آنها فقط در صورت ایجاد یک هش خروجی که با تعداد معینی صفر شروع می شود، می توانند بلاک مورد نظر خود را تایید کنند. تعداد صفرها همان چیزی است که سختی استخراج را تعیین می کند و با توجه به میزان قدرت هش اختصاص داده شده به شبکه متفاوت است.

در این حالت، نرخ هش بیانگر مقدار قدرت محاسباتی است که به شبکه استخراج بیت کوین اختصاص داده شده است. اگر نرخ هش شبکه افزایش یابد، پروتکل بیت کوین به طور خودکار سختی استخراج را طوری تنظیم می کند که میانگین زمان لازم برای استخراج هر بلاک نزدیک به 10 دقیقه باقی بماند. در مقابل اگر چند استخراج کننده تصمیم بگیرند که از شبکه خارج شوند، نرخ هش به میزان قابل توجهی کاهش می یابد. در نتیجه سختی استخراج تنظیم می شود و کار برای استخراج کنندگان راحت تر می شود(تا زمان متوسط 10 دقیقه برای استخراج هر بلاک ثابت باقی بماند).

از آنجا که استخراج بیت کوین کار بسیار پرهزینه ای است، استخراج کنندگان دلیلی برای تقلب در سیستم ندارند، زیرا این امر منجر به خسارت مالی قابل توجهی خواهد شد. هر چه استخراج کنندگان بیشتری به بلاک چین بپیوندند، شبکه بزرگتر و قوی تر می شود.

هش تراکنش

هش تراکنش یا txid شناسه ای است که برای تشخیص و شناسایی یک تراکنش خاص استفاده می شود. کلیه تراکنش هایی که بر روی زنجیره انجام می شوند، دارای txid منحصر به فردی هستند که می توان از طریق آن جزئیات تراکنش را مشاهده کرد. هش تراکنش شبیه مجموعه ای از حروف و اعداد تصادفی است.

بسته به نوع ارز رمزنگاری، می توانید از جستجوگرهای متفاوت بلاک استفاده کنید. در زیر نحوه استفاده از جستجوگر viabtc برای بیت کوین به صورت تصویری توضیح داده شده است. شما می توانید با داشتن آدرس کیف پول مبدا و یا مقصد، تراکنش های آن را بررسی کنید. همچنین با وارد شدن به هش تراکنش به جزئیات تراکنش دست پیدا می کنید.

نتیجه گیری

شکی نیست که توابع هش ابزاری اساسی در علم کامپیوتر هستند، به ویژه هنگام مواجهه با حجم عظیم داده ها. الگوریتم های هشینگ زمانی که با ویژگی های رمزنگاری ترکیب شوند می توانند کاملا متنوع باشند و صحت و امنیت را به روش های مختلفی ارائه دهند. توابع هش رمزنگاری نیز برای همه شبکه های ارزهای رمزنگاری مهم هستند. بنابراین درک ویژگی ها و مکانیسم کار آنها مطمئنا برای هر کسی که علاقمند به فناوری بلاک چین باشد، مفید است.

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.