انسان معمولاً برای حل مشکلات به دنبال سادهترین و سریعترین راهحلهاست.
سالها است که علم با یافتن پاسخ سوالات خود و استفاده از آنها در پیشامدهایی که الگوی تکراری دارند، اهداف خود را پیش میبرد و سریعتر از انتظار انسان، رازهای طبیعت را از دل آن بیرون میکشد.
راهحلهایی که تستشده و مطمئن هستند و میتوانند سوالاتی با مفاهیم یکسان را حل کنند، الگوریتم نامیده میشوند. ریشه کلمه الگوریتم از نام خوارزمی دانشمند ایرانی به دست آمده است
عناوین مطلب:
بهطور خلاصه، یک الگوریتم (به انگلیسی Algorithm) مجموعهای از مراحل است که دنبالهای از اقدامات را تعریف میکند.
الگوریتم همچنین ممکن است بهعنوان مجموعهای از دستورات تعریف شود که برای دستیابی به یک هدف خاص یا حلکردن یک مشکل مشخص طراحی شدهاند.
الگوریتمها عمدتا در زمینههای ریاضیات و علوم کامپیوتری مورد استفاده قرار گرفته و بررسی میشوند، اما ممکن است به زمینههای دیگری مانند شبکههای عصبی بیولوژیکی و دستگاههای الکترونیکی نیز مرتبط باشند.
در علوم کامپیوتری، یک الگوریتم شامل یک توالی از دستورالعملهای مشخص و بدون ابهام است که برنامههای کامپیوتری را در اجرای مجموعهای از وظایف مدیریت میکند.
از الگوریتمها میتوان در جهت اجرای یک عمل ساده مانند کسر دو عدد یا عملیاتی پیچیدهتر مانند یافتن بهترین مسیر بین دو یا چند مکان جغرافیایی استفاده کرد.
به همین ترتیب، الگوریتمهای کامپیوتری برای انجام انواع کارها، از محاسبات معمول گرفته تا دادهپردازی و حتی تصمیمگیری بسیار مفید هستند.
هر الگوریتمی از یک نقطه شروع و پایان ثابت ساخته شده و خروجیها را با توجه به ورودیها و طبق مراحل ازپیشتعریفشده تولید میکند.
از الگوریتمهای چندگانه میتوان برای انجام کارهای پیچیدهتر و دقیقتر استفاده کرد اما پیچیدگی بیشتر احتیاج به منابع محاسباتی بیشتری نیز دارد.
الگوریتمها را میتوان با صحت و کارایی آنها سنجید. صحت الگوریتم یعنی اینکه بتواند مسئله خاصی را بهدرستی حل کند. کارایی الگوریتم مرتبط با میزان منابع و زمانی است که الگوریتم برای انجام یک وظیفه خاص نیاز دارد.
بسیاری از دانشمندان علوم کامپیوتری از یک تکنیک تحلیل ریاضی که به نام تکنیک مجانبی (asymptotics) مشهور است برای مقایسه الگوریتمهای مختلف استفاده میکنند، صرف نظر از اینکه از چه زبان برنامهنویسی یا سختافزاری برای اجرای آن بهره میبرند.
الگوریتم در دنیای بلاکچین
از ویژگیهای مهم بلاکچین، غیرمتمرکز بودن است.
غیرمتمرکز بودن (decentralized) در دنیای کامپیتر به زبان ساده به این معناست که هر نوع اطلاعات در یک سرور مرکزی ذخیره و پردازش نمیشود، بلکه تمامی آنها در چندین کامپیوتر ذخیره و نگهداری میشود.
به سرورهایی که این اطلاعات را ذخیره کرده و به نوعی سرویسدهنده شبکه هستند، گره یا نود (Node) گفته میشود.
بزرگترین دلیل استفاده از انواع دفاتر کل توزیع شده مانند بلاکچین، بالا بردن امنیت و مطمئن بودن از عدم نابودی و خرابی دادههاست.
اگر اطلاعات در یکی از سرورها (گرهها) به هر دلیلی از بین برود، چندین هزار و حتی میلیونها سرور دیگر آن اطلاعات را در خود ذخیره کردند.
اما هنگام استفاده از بلاکچین یا انواع دیگر، یک مسئله حیاتی مطرح میشود. زمانیکه قرار باشد اطلاعات آپدیت و به روزرسانی شوند، باید در همه گرهها این اتفاق بیفتد.
برای حل این مسئله، از الگوریتم اجماع یا مکانیزم اجماع استفاده میشود.
الگوریتم اجماع به زبان ساده یعنی روشهایی برای به توافق رسیدن اعضای یک شبکه.
برای این واقعیت، طبق این الگوریتم قبل از هر چیز فرض شده است که برخی از گرهها در دسترس نباشند.
در سیستمهای متمرکز، برای مثال یک شرکت، همه کارمندان در زمان مشخصی در اداره حضور دارند و در صورت نیاز همه آنها قابل دسترسی هستند.
اما در سیستمهای غیرمتمرکز این ویژگی وجود ندارد.
در نتیجه، یک الگوریتم اجماع باید دارای یک حداقل برای تصویب یک تغییر در کل شبکه باشد.
به طور مثال اگر 51 درصد از گرههای یک شبکه در الگوریتم اجماع بلاکچین به توافق برسند که اطلاعات را آپدیت و بهروزرسانی کنند، این اتفاق خواهد افتاد.
کاربردهای الگوریتم اجماع
الگوریتمهای اجماع کاربردهای دیگری هم دارند، مانند:
- تصمیمگیری در خصوص صلاحیت یک تراکنش برای تایید و ذخیره روی دفتر کل توزیع شده و یا عدم تایید آن
- انتخاب گرهها برای مدیریت امور روی دفتر کل توزیع شده
- تضمین یکدستسازی اطلاعات روی سیستمهای سرویس دهنده به شبکه
در مثال شرکت، اگر کارمندان بر سر یک موضوع اتفاقنظر نداشته باشند، مدیر شرکت تصمیم نهایی را خواهد گرفت.
با استفاده از الگوریتم اجماع، توافق بین گرهها از طریق یک سیستم رایگیری انجام خواهد شد.
به این صورت که اگر یک کاربر تراکنشی (هر نوع اطلاعاتی را شامل میشود) را به شبکه ارسال کند، داده فرستاده شده توسط همه گرهها مورد بررسی قرار میگیرد.
اگر با توجه به اطلاعات قبلی، تراکنش ارسال شده درست باشد، گره یک تاییدیه مبنی بر صحت آن به شبکه میفرستد.
اگر بیش از 51 درصد گرهها اضافه شدن این بلاک را به بلاکچین تایید کنند، همه گرهها بلاک جدید را به سیستم خود اضافه خواهند کرد و تراکنشهای داخل آن موفق و نهایی خواهد شد.
به این ترتیب مجموعهای از بلاک ایجاد میشود.
در زمینه بلاکچین، الگوریتم اثبات کار (Proof-of-Work algorithm) بیتکوین یکی از مولفههای اساسی فرآیند استخراج است که تراکنشها را مورد راستیآزمایی قرار داده و آنها را تائید میکند.
الگوریتم اثبات کار همچنین شبکه بلاکچین را ایمن کرده و تضمین میکند که عملکرد شبکه همانطور که در نظر گرفته شده است پی گرفته میشود.
یک نوع الگوریتم رایج دیگر در بلاکچین، اثبات سهام (Proof-of-stack) نام دارد: در مورد الگوریتم POS بیشتر بخوانید.
شما در بورس، علاوه بر خرید و فروش سهام:
- میتوانید در داراییهایی مانند طلا و مسکن سرمایهگذاری کنید
- در صندوقهای سرمایه گذاری بدون ریسک، سود ثابت بگیرید
برای شروع سرمایهگذاری، افتتاح حساب رایگان را در یکی از کارگزاریها انجام دهید:
نام شرکت | ویژگیها | امتیاز | لینک ثبتنام |
---|---|---|---|
کارگزاری آگاه |
|
برای سرمایهگذاری و معامله موفق، نیاز به آموزش دارید. خدمات آموزشی زیر از طریق کارگزاری آگاه ارائه میشود: