فهرست مطالب
- امضای دیجیتال چیست؟
- هش (Hash) چیست؟
- مکانیزم امضای دیجیتال چگونه عمل میکند؟
- نقش امضای دیجیتال در بلاکچین
- کلام آخر
تقریباً از قرن هفدهم، مردم برای تأیید اسناد و رسمیت بخشیدن به آنها از «امضا» استفاده کردهاند. توافقنامهها، قراردادهای کاری، کارتهای اعتباری، اسناد و بسیاری چیزهای دیگر با امضا رسمیت میپذیرند و در دنیای دیجیتال و بهخصوص بلاکچین هم این موارد صدق میکند به طوریکه بدون آن انجام تراکنشی امکانپذیر نیست.
امضای دیجیتال، ابزاری در شبکه بلاکچین برای تأیید تراکنش است. به این معنی است که کاربر باید اثبات کند که مجوز انجام تراکنش را دارا است. در این مقاله ما به بررسی امضای دیجیتال و نحوهی استفاده آن از کلید عمومی (Public Key) رمزنگاری شده برای بالابردن امنیت صحبت میکنیم.
امضای دیجیتال چیست؟
امضای دیجیتال، فرایندی برای تأیید صحت و یکپارچگی سند توسط فرستنده است. به عبارت ساده، بررسی میکند که سند دریافت شده توسط فرستنده موردنظر ارسال شده و توسط یک نفوذگر در شبکه تغییر نکرده باشد.
در این فرایند بهمنظور ایجاد یک سیستم امضای دیجیتال، فرستنده یک هش (Hash) از سندی که باید امضا شود ایجاد میکند (که در ادامه به توضیح آن خواهیم پرداخت). سپس، با استفاده از کلید خصوصی (Private Key) خود آن را رمزنگاری و ارسال میکند. دریافتکننده، سند را با استفاده از کلید عمومی فرستنده رمزگشایی میکند تا اطمینان حاصل شود که توسط فرستنده موردنظر ارسال شده است. امضای دیجیتال در بلاکچین فرایندی است برای تأیید (Verify) کردن یک تراکنش که از کلید خصوصی برای امضا و ثبت تراکنش و کلید عمومی (Public Key) برای مجوز دادن به درخواستکننده یا فرستنده استفاده میکند.
هش (Hash) چیست؟
هش کردن یکی از اصلیترین عناصر یک سیستم امضای دیجیتال است. هش یک تابع ریاضی است که مقدار ورودی با طول دلخواه را به خروجی رمزنگاری شده با طول ثابت تبدیل میکند. بنابراین صرفنظر از مقدار اصلی داده یا اندازه فایل ورودی، هش منحصربهفرد آن همیشه یک اندازه خواهد بود. بهعنوانمثال؛ کلمه «سلام» و جمله «من میخواهم به سرکار بروم» را در نظر داشته باشید؛ وقتی که تابع هش را روی این دو رشته اعمال کنیم، طول مقدار خروجی ما یکسان خواهد بود.
(در این مثال از الگوریتم هش بیت کوین برای رمزنگاری مقدار ورودی استفاده شده است)
علاوه بر این، نمیتوان از هشها برای مهندسی معکوس ورودی از فایلی که قبلاً هش شده است استفاده کرد، زیرا عملکرد هش «یکطرفه» است. مانند این است که بخواهید گوشت چرخشده را به حالت اول آن دربیاورید. با این حال اگر این تابع را روی ورودی یکسان استفاده کنید، هش دریافتی همسان خواهد بود، بنابراین اگر هش آن را از قبل دارید میتوانید تأیید کنید که دادهها یکسان هستند.
مکانیزم امضای دیجیتال چگونه عمل میکند؟
در زمینهی ارزهای دیجیتال، یک سیستم امضای دیجیتال از سه مرحله هش کردن، امضاکردن و راستیآزمایی (تأیید کردن) تشکیل شده است.
هَش کردن
در مرحلهی اول، دادهی دیجیتال هش میشود. این کار از طریق اعمال یک الگوریتم هش بر روی دیتا صورت میگیرد تا یک مقدار هش تولید شود.
امضاکردن
پس از اینکه اطلاعات یا دادهها هش شدند، فرستندهی پیام باید آن را امضا کند. در این مرحله پروسه (PKC) یا رمزنگاری کلید عمومی انجام میشود. انواع مختلفی از الگوریتمهای امضای دیجیتال وجود دارد که هرکدام مکانیزم خاص خود را دارند. اما اساساً داده هش شده با یک کلید خصوصی امضا میشود و دریافتکننده میتواند اعتبار آن را با استفاده از کلید عمومی فرستنده بررسی کند.لازم به ذکر است که بر خلاف امضاهای دستی که برای هر پیام و سند یکسان هستند، امضای دیجیتال با محتوای هر داده یا پیام مرتبط است و هر پیام یا دادهی امضا شده دیجیتال دارای امضای دیجیتال متفاوتی خواهد بود.
راستیآزمایی
بگذارید این مورد را با مطرحکردن مثالی توضیح دهیم؛ فرض کنید که میخواهید پیامی را به دوستتان ارسال کنید، آن را هش کرده و بعد با کلید خصوصی خود ترکیب میکنید تا یک امضای دیجیتال تولید شود. این امضا مثل یک اثر انگشت بیهمتا برای آن پیام بهخصوص میماند.
وقتی دوستتان پیام را دریافت کند میتواند با استفاده از کلید عمومی که شما به او دادهاید اعتبار امضای دیجیتال را بررسی کند. با این کار، دوستتان مطمئن میشود که امضا توسط شما ساخته شده است؛ چون فقط شما دارای کلید خصوصی هستید که با آن کلید عمومی مطابقت دارد. بنابراین، بسیار مهم است که شما کلید خصوصی خود را پنهان نگه دارید. اگر کلید خصوصی شما در دست شخص دیگری بیفتد میتواند بهجای شما امضاهای دیجیتال بسازد و خود را بجای شما جا بزند. در دنیای کریپتو به این معنی است که آن شخص میتواند بدون اجازه شما داراییتان را جابهجا یا خرج کند.
نقش امضای دیجیتال در بلاکچین
امضای دیجیتال نقشی بنیادی در پایه و اساس بلاکچین ایفا میکند و برای اعتبارسنجی تراکنشها استفاده میشود. وقتی کاربر تراکنشی را ارسال میکند، باید به تمام گرههای (Node) سیستم ثابت کند که مجاز به خرج کردن آن داراییها است و دیگر کاربران را از اینکه بتوانند آن را خرج و یا استفاده کنند منع کند. هر گره در شبکه، تراکنش ارسال شده را تأیید و بقیه گرهها را برای توافق بر روی صحت آن بررسی میکند.
بهعنوان مثال اگر شما بخواهید یک بیتکوین برای دوست خود ارسال کنید، باید تراکنشی را با کلید خصوصی خود برای خرج کردن یک بیتکوین امضا کنید که برای گرههای شبکه ارسال میشود. ماینرها که «کلید عمومی» شما را میدانند، شرایط تراکنش را چک کرده و امضای شما را اعتبارسنجی میکنند. پس از تأیید اعتبار، بلوک (Block) حاوی تراکنش برای نهایی شدن مراحل توسط اعتبارسنجها یا ماینرها آماده است.
کلام آخر
توابع هش و رمزنگاری کلید عمومی (PKC) هسته سیستم امضای دیجیتال هستند که در حال حاضر بر موارد بسیاری اعمال شدهاند. در صورت بارگذاری و اجرای مناسب، امضای دیجیتال میتواند باعث بالارفتن امنیت و اطمینان از یکپارچگی شود و احراز هویت انواع دادههای دیجیتال را تسهیل کند. امیداوریم از مطالعهی این مطلب در صرافی تتر لذت برده باشید.
نظرات