شبی با پادشاه!(One night with the king)

دیشب در مورد بیتکوین که معروف به پادشاه ارزهای دیجیتاله داشتم بحث می کردم برای همین اسم این نوشته رو گذاشتم شبی با پادشاه .سوال دوستی در کلاس این بود که چرا شبکه بیتکوین برق مصرف می کنه هدفش چیه از این کار مگه سازنده اون مرض داشته؟برای پاسخ این سوال این مطلب رو باید بخونی:اغلب حملات سایبری در دنیا متکی به خطا های انسانی و مهندسی اجتماعی شکل می گیره اما در حد شبکه های بزرگ و سازمان های با اموزش کافی روش های حملات سایبری به سه دسته زیر و یا مشتقی از این سه دسته تقسیم میشه: –DOS –DDOS – Brute Forceیه توضیح کوچک در مورد هر کدوم بدم که چی هستن:1- حمله DOS (Denial of Service) : داس یا حمله محروم سازی از سرویس به حملاتی گفته میشه که باعث میشه سرویسی از سرویس دهنده یه جایی رو با اختلال مواجه کنه یعنی چی ؟ یعنی اینکه توی این نوع حمله هکر کاری میکنه که بار ترافیکی سرور اینقد زیاد بشه که سرور به همه نتونه سرویس بده و با ایجاد بار زیاد الکی و غیر واقعی همه ظرفیت سرور رو مشغول خودش می کنه که به بقیه توانایی سرویس دهی نداشته باشه و در این حالت در اصل سرور داون میشه و توانایی سرویس دهی نداره یه مثال بزنم : یه زمانی ایرانسل طرحی گذاشته بود که تا پنجاه هزار پیامک رایگان می تونی بزنی و فلان قدر می تونی رایگان مکالمه کنی .اون موقع ما برای اذیت کردن دوستامون می رفتیم تو پیامک ها یه پیام می نوشتیم و تو تنظیمات گوشی نوکیای ساده قدیمی می تونستی یه پیامو به تعداد دلخواه برای یه نفر و یا چند نفر بفرستی ما از این قابلیت استفاده می کردیم و یه پیام چرت رو مثلا سه هزار بار برای یکی می فرستادیم و اون شخص بیچاره می شد حتی اگه گوشیشو خاموش می کرد به محض روشن شدن پیام ها براش تند و تند میومدن و تا تعداد پیام ها تموم نمیشد هیچ پیامی براش نمیومد و در کل کلا کلافه می شد .تو این حالت سرور ایرانسل تا اون سه هزار تا رو برای شخص نمی فرستاد داون می شد و دیگه ظرفیتی برای ارسال پیامک نداشت تا وقتی که اون تعداد پیام که اصلا اهمیتی نداشتن تموم میشد و سرور به حالت عادی بر می گشت این یه مثال از حمله داس بود ما از یک نقطه اقدام به ارسال تعداد زیادی درخواست کردیم و در کل سیستم دریافت پیامک دیگری رو با اختلال مواجه کردیم.2- حمله DDOS( Distributed Denial of Service) : این نوع حمله همون حمله داسه منتها فرقش اینه که از جاهای متعددی صورت می گیره و از یک نقطه نیست و در چندین جای مختلف به یک سرور حمله میشه و منابع اونو اشغال می کنه این حمله خیلی سنگین تر میشه و دفعش هم کار راحتی نیست .من یه مثال براتون میزنم :ایران خودرو زمانی که ساعت مشخصی رو برای ثبت نام و قرعه کشی ماشین انتخاب کرد و تعداد زیادی از مردم تو اون ساعت اقدام به ثبت نام کردن چه اتفاقی افتاد ، سرور ایران خودرو داون شد. چون تعداد زیادی درخواست از جاهای مختلف همزمان وارد سیستم ایران خودرو شد و اون نتونست مدیریت کنه تو اون تایم سیستم هنگ کرد چون بار بیش از منابع سرور بهش وارد شد این شبیه سازی یه حمله دی داس بود یعنی تعداد زیادی درخواست از جاهای مختلف وارد سرویس دهنده میشه و همه منابع اونو مشغول خودش می کنه و دیگه سیستم نمی تونه به درخواست های دیگه پاسخ بده.3- حمله برات فورس Brute Force : این حمله برای شکستن رمزهای عبور و کلیدهای رمزگذاریه روش کار این حمله خیلی ساده است شما فکر کن می خواید یه رمز گوشی نوکیا رو با حمله برات فورس باز کنید یه عدد چهار رقمی رمز گوشیه برای این کار باید ده هزار حالت مختلف رو تست کنید ( ده به توان چهار ) تا بتونی به گوشی ورود کنید. این روش روش ازمون خطا ست و همه حالت های موجود رو یک به یک امتحان می کنه تا به خواسته خودش برسه . تعداد حالت های زیر در حمله برات فورس رو ببینید :برای شکستن یه رمز چهار رقمی عابر بانک 10000 حالت(10 به توان 4)برای شکستن رمز 6 رقمی 1000000 حالت(10 به توان 6)برای یه کارت شارژ 16 رقمی 100000000E+16 (10 به توان 16)برای رمز تابع هش الگوریتم sha256 (2 به توان 256) که یک عدد بسیار بسیار بزرگه:1.1579208923731619542357098500869e+77ماشین حسابم ترکیدبعد از شناختن تهدید ها حالا بریم سراغ روش عملکرد شبکه بیتکوین:شبکه بیتکوین یه شبکه متمرکز نیست یعنی اینکه سازنده این شبکه به این فکر افتاده که یه شبکه ای بسازه که اطلاعات تو اون شبکه توی یه سرور نباشه و توی چندین هزار کامپیوتر باشه که کلی مزیت داره که اگه یه کم فکر کنین خودتون به مزیت هاش پی میبرین برای اینکه این قابلیت رو داشته باشه رفته سراغ فناوری بلاک چین و این یه امر منطقیه . حالا تو این شبکه چهار عمل اصلی ذخیره و بازیابی اطلاعات باید صورت بگیره که در اصل بهش میگن کراد یعنی ایجاد و خواندن و حذف و بروزرسانی . Create Read Update Delete(crud).با کمی تامل در میابیم که اگه کسی بخواد به سرور شبکه بلاک چین حمله برات فورس کنه و پسورد اونو به دست بیاره و از اطلاعات اون سوء استفاده کنه و بهش خوش بگذره کلا ول معطله چرا ؟ چون شبکه بلاک چین سرور هاش یه جا نیستن و اطلاعاتی که تو یه دونه از دونه های زنجیره بلاک چین وجود داره به تنهایی معنی خاصی نمیدن و در ترکیب با سایر دونه های زنجیره که اطلاعات معنی پیدا می کنه. پس فهمیدیم حمله برات فورس به سرور غیر متمرکز راه حل مناسبی برای هک نیستمیریم سراغ حمله داس و دی داس تو شبکه بیتکوین ببینیم اونا چطورن:اگه به یه شبکه بلاک چینی حمله داس کنیم می تونیم با ایجاد قواعد در پروتکل اون شبکه درخواست ها یی که از یه منبع هستند رو به یه عدد خاصی محدود کنیم مثلا بگیم هرشخص مثلا تعداد 2 بار در روز می تونه بروزرسانی کنه و بقیه موارد رو هم به همین ترتیب کنترل کنه به این صورت از یه منبع نمی شه درخواست های زیادی ارسال کرد و شبکه رو مشغول کرد و به اصطلاح داون کرد.پس در اصل حمله داس رو می تونیم راحت با ایجاد قواعد درشبکه بیتکوین کنترل کنیم که این کار رو کردن.ولی حمله دی داس رو چی؟ایا میشه گفت که کاربران که تو جای جای دنیا هستن به شبکه درخواست ندن؟ یا اینکه تشخیص داد درخواستهاشون تو شبکه واقعیه یا غیر واقعیه ؟(قبلا گفتیم در حمله دی داس درخواست ها از جاهای مختلف دنیا میتونه باشه نه صرفا از یه جا و سیستم رو مشغول خودشون می کنن)شبکه بیتکوین برای انجام اینکار یه راهکار تعبیه کرده و اون راهکار استفاده از روشی است به اسم:Pow (Proof of work)توی این روش سازنده شبکه تصمیم گرفته که برای ایجاد هر درخواست هزینه ای رو ایجاد کنه تا به این صورت اگه کسی بخواد درخواست های غیر واقعی بده براش نصرفه و در اصل هزینه حمله دی داس رو بالا برده که اگه حمله دی داس به شبکه بشه هزینه بیش از برداشت از اون شبکه داشته باشه و به این ترتیب کسی حاضر به حمله به شبکه نمیشه چون براش ضرر میشه نه سود و با این منطق سازنده شبکه بیتکوین رو از حمله ی دی داس در امان نگاه داشته.حالا این هزینه چیه:توی شبکه بیتکوین اگر درخواستی داری باید قبلش یه تابع هش رو به روش براتفورس حل کنی یعنی اینکه روی یه مسئله کلی پردازش و برق و امکانات صرف کنی تا بتونی بعدش تازه یه درخواست ساده بدی ، تنها در این حالته که شبکه به درخواستت ترتیب اثر میده به این روش شبکه میفهمه درخواست شما واقعیه چون شما برای درخواستت داری هزینه میدی و به این روش که شما داری قبل درخواست یه کاری رو انجام میدی بهش میگن اثبات کار و در اصل این یه الگوریتم اثبات کار هستش که ما داریم به وسیله ماینر ها انجام میدیم که بتونیم تو شبکه فعالیت داشته باشیم و درخواست بدیم .پس توی شبکه بیتکوین برای انجام هر درخواستی باید قبلش هزینه اون رو با حل کردن تابع هش الگوریتم SHA256 بپردازین هر بار که این تابع رو حل می کنیم باید این تعداد حالت:1.1579208923731619542357098500869e+77رو برای به دست اوردن جواب دونه دونه تست کنیم تا جواب به دست بیاد و این کار نیاز به مصرف برق و پردازش بسیاری داره که ماینر ها دارن با سی پی یو های خیلی قوی و خاص که طراحی شده برای حل این الگوریتم هستن انجام میدن. اگه این هزینه رو برداریم دیگه نیاز به ماینر و سی پی یو و برق و غیره نبود با یه سیستم معمولی میشد تو شبکه بیتکوین فعالیت کرد منتها فرقش اینه که اون شبکه اون موقع امن نبود و مورد هجوم هکر ها قرار می گرفت.نتیجه گیری :روش POW یا به نوعی ایجاد هزینه برای درخواست در شبکه بیتکوین باعث امن شدن شبکه از دست حملات DDOS میشه واین هزینه که باعث امن شدن شبکه شده همون پردازش ها و مصرف برق بالاست.اگه غلط املایی یا خطای نگارشی دارم پوزش . مطلب رو سریع نوشتم با توجه متوسط