اول از همه بگم که این پست انقدر آپدیت میشه که آخرش بگم پایان، تا وقتی پایان رو ندیدی، سر بزن به این مطلب.
آیا امکان هک شدن بیت کوین یا اتریوم وجود دارد؟
تاحالا فکر کردید چجوری میشه بیت کوین رو هک کرد؟
بیت کوین و اتریوم به کنار، اگر ارزهای دیجیتال دیگه هک بشن میخواید چکار کنید؟
شاید یک مقدار بحث سنگین و فنی بشه، ولی میخوام خیلی ساده براتون این داستان تعریف کنم.
(چند خط اول میتونید اسکیپ کنید، چون واقعا داستان تعریف میکنم)
نزدیک ۲یا۳ سال پیش بود که به فکر امنیت بیت کوین و تحقیق کردن در رابطه با اون افتادم، هرچی اطلاعات در رابطه با بیت کوین بود یادداشت کردم.
اول از همه که ولت بیت کوین یک پابلیک کی داره و یه پرایویت کی به عنوان مثال:
1MAkJQHorigKrSpLEd41ewQhocydod3iyU
این پابلیک کی 34 کاراکتر هستش
ادرسیه که از طریق اون میتونید بیت کوین دریافت کنید، مثل شماره کارت شما میمونه...
حالاااااا، یه پرایویت کی داریم، به این شکل:
5KW2Fz8PQDPMspSuqdjBjnYR1dYUfYrm1263aVktJhgNBFEVgcZ
که این پرایوت کی هم 51 کاراکتر هستش، این پرایویت کی عزیز، همه چیز شما هستش.
راستی اگر شما هم میخواید ولت بیت کوین بسازید یا یدونه از این پابلیک کی ها داشته باشید به عنوان تست میتونید از سایت بیت کوین پیپر ولت اقدام به ساخت کیف پول کاغذی کنید.
یه همچین چیزی بهتون تحویل میده.
خب از بحث اصلی خیلی دور نشیم.
داستان در مورد هک بیت کوین بود، یادتون که نرفته?
خب حالا فرض کنید شما آدرس پابلیک کی یک نفر رو دارید، به هیچ عنوان امکانش نیست که پابلیک کی به پرایویت کی تبدیل بشه، اما پرایویت کی رو میتونید به پابلیک کی تبدیل کنید.
از طریق سایت iancoleman میتونید پرایویت کی رو به پابلیک کی تبدیل کنید.
اون موقع که هیچی از الگوریتم های رمزنگاری نمیدونستم
میگفتم خب وقتی یه چیزی به چیز دیگه تبدیل میشه پس برعکسشم میشه انجام داد، پیش خودم میگفتم خب، ادرس ولت یک نفر رو میگیری و بعد پرایویت کی رو ازش استخراج میکنی?، بعد متوجه شدم نه، اینطوریام نیست، بیت کوین از الگوریتم SHA-256 استفاده میکنه که امکان برعکس شدنش وجود نداره، یا نوع هش مطرح تر اگر بخوام نام ببرم MD5 که نوع هش ها یک طرفه هستند، یعنی مثلا شما بهش عبارت "متین بیگی" رو میدی و بهت "729d1a700b600e80f365d1cd37c761ff" تحویل میده, اگر شما هم خواستید تست کنید از سایت md5.cz میتونید استفاده کنید.
اصل مطل هم این هست که چطور بیت کوین را هک کنیم، منم میگم اگر این توضیحات برات خیلی مقدماتی هست، رد کن تا برسی به تیتر اصل مطلب، اما اگر دوست داری کم کم پیش بریم و قشنگ این داستان رو درک کنی، پس عجله نکن?
خب حالا اگر ما عبارت "729d1a700b600e80f365d1cd37c761ff" تحویل بدیم، آیا امکان داره برعکسش رو به ما تحویل بده جایی؟
جواب: نوچ، امکان پذیر نیست.
پس شما نمیتونی آدرس پابلیک کی یک نفر دریافت کنی و برسی به پرایویت کی.
اصلا با این پرایویت کی چه کارایی میشه کرد؟
خیلی ساده بهت بگم، دسترسی کل ولت از طریق همین پرایویت کی هست، اگر بخوای انتقال بدی مبلغی رو باید به پرایویت کی دسترسی داشته باشی...
برای همینه که میگم پرایویت کی همه چیز شماس.
خب، قبلا گفتیم پرایویت کی 51 کاراکتر هستش
پس اگر شما بتونید حدس بزنید پرایویت کی رو، پیشه گفت یک ولت رو هک کردید.
یک عملیاتی هست به اسم بروت فورس ساده بخوام توضیح بدم، کارش اینه حدس میزنه، مثلا اینستا یه نفرو میخوای هک کنی، پسورد لیست رو میدی و یکی یکی تست میکنه.
اگر دستی بخواید این ۵۱ کارکتر رو حدس بزنید و بعد تست کنید سال ها طول میکشه.
برای تست میتونید برید تو سایت iancoleman و یک عبارت 51 کاراکتری وارو کنید و اگر درست باشه پابلیک کی رو به شما نشون میده.
ولی شما میتونید با ابزار های مختلف این 51 کاراکتر رو بسازید و بگید همشونو بیاد تست کنه، این کار میشه همون بروت فورس ما
فقط یه نکته ای با 51 کاراکتر که به ازای هرکاربری میتونه یک عدد یا یک حروف باشه اگر در نظر بگیریم
۲۶ تا حرف انگیسی و ۱۰ تا عدد داریم یعنی:
36 به توان 51
خلاصه که خیلی طول میکشه?
یکم بیشتر فکر کردم دیدم خب، مردم از چی استفاده میکنن، از چه کیف پول یا ولتی؟ از کیف پول های سخت افزاری و نرم افزاری و بعضی ها هم از کیف پول سایت ها
دوباره فکر کردم گفتم خب چه چیزی مشترکی بین همه اینا هستش؟?
(سید همون مورد مشترک بین کیف پول ها بود که به ذهنم رسید)
سید یا عبارت بازیابی سری کلمات مختلف و تصادفی هستند که از ۱۲ یا ۲۴ کلمه تشکیل شدهاند. این عبارت در واقع کلید اصلی شما برای دستیابی به کیف پول و کوین های خود است.
قشنگ معلومه متن بالارو من کپیکردم?
بزار خودم ساده بگم برات، اگر از کیف پول های نرم افزاری استفاده کنید یا سخت افزاری
۱۲ تا یا ۲۴ کلمه به شما میدن
یه چیزی مثل این:
wise pride health pen bring notice visa alter skirt chicken leg notable
یا این:
tower quality small deer curtain trick crowd island electric south mule shop spider wink explain column flavor alien news sight warrior firm october hedgehog
شمام میتونید از سایت iancoleman از این سیدها بسازید.
خب حالا ادامه توضیح سید رو بگم
این ۱۲ یا ۲۴ کلمه رو که داشته باشید هم داخل کیف پول سخت افزاری میتونید استفاده کنید و هم نرم افزاری.
از طریق سید میتونید کیف پول برای ارزهای مختلف ایجاد کنید یعنی یک سید همه ارزهای دیجیتال رو ساپورت میکنه، خلاصه که بحث مرگ و زندگیه ?، حواستون به سید باشه که دست کسی نیوفته.
نمونه کیف پول نرم افزار coinomi که می تونید از گوگل پلی دانلود کنید و نمونه کیف پول سخت افزاری ledger nano s هست که از سایت های داخلی میتونید بخرید.
البته کار از هک کیف پول بیت کوین الان رسید به هک همه ارزهای دیجیتال، اینم بگم که نمیشه گفت باگی وجود داره که بیت کوین یا بقیه ارزهای دیجیتال رو هک کرد ولی یه کارایی میشه کرد.
نمیخوام امنیت ارزهای دیجیتال زیر سوال ببرم ولی اینجوری ها هم نیست که بگی هیچ راهی وجود نداره تا کیف پول یه نفر هک بشه.
قبلا همه کیف پول ها به شما سید ۱۲ کلمه ای میدادن و الان ۲۴ کلمه، پس اگر بشه این کلمات رو حدس زد، شما به یک کیف پول دسترسی پیدا میکنید که امکان داره خالی باشه و یا چندتا ارز دیجیتال مختلف داخلش باشه.
حدس زدن ۱۲ یا ۲۴ کلمه شاید بگید سخت تر هستش
بله اولش منم به همین فکر میکردم، این که یه عالمه کلمه وجود داره که بخوای بقل هم بزاری تا به یه ترکیب درست برسی.
ولی با یکم تحقیق بیشتر به این رسیدم که تمام کلماتی که این نرم افزارها یا سخت افزارها میدن محدود میشه به 2048 تا کلمه ثابت که از داخل لینک زیر این لیست رو میتونید ببینید.
https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
با هر کیف پول نرم افزاری و سخت افزاری که دوست دارید ولت ایجاد کنید، میبینید که کلمات شما داخل این لیست وجود دارند.
مثلا وارد همین سایت iancoleman بشید و generate رو بزنید، کلماتی که میده رو تو لیست بالا سرچ کنید، میبینید که تک تک کلمات داخل لیست وجود دارند.
الان لیست کلمات (2048کلمه) رو داریم و میدونیم باید به یه ترکیب ۱۲ با ۲۴ تایی برسیم تا به یک ولت دست پیدا کنیم.
خب چالش های مختلفی وجود داره که اگر هرکدوم رو حل کنیم سرعت مارو تو هک کردن یک کیف پول افزایش میده...
باید بتونیم با سرعت بالایی با استفاده از کلماتی (۲۰۴۸ تا کلمه) که داریم سید ایجاد کنیم.
یعنی بیایم هر سری ۱۲ تا کلمه رو جدا کنیم که تکراری نباشن.
یه چیزی مثل این:
wise pride health pen bring notice visa alter skirt chicken leg notable
با ۴ خط کد میشه گفت این کلمات من هستن خروجی بهم ۱۲ تاش رو بده
۲. باید بتونیم چک کنیم این کلمات ترکیبشون درست هست یا نه.
اگر بخواید دستی انجام بدید همون سایتی که معرفی کردم برای ساخت سید میتونید وارد بشید و از لیست کلمات دستی ۱۲ مورد رو انتخاب کنید و داخل سایت وارد کنید، اگر درست باشه ترکیب به شما میگه، که این مدلی خیلی طول میکشه.
پس باید دوباره ۴خط کد بگیم همون کلماتی که ایجاد شده رو بیاد چک کنه ببینه درست هست یا نه.
(هی میگم ۴خط کد، رو هوا نمیگم، انجامش دادم)
آخرش با این کار به یکسری ولت هایی میرسید که درست هستن.
حالا چجوری چک کنیم ببینیم چیزی داخلش هست یا نه...
اولا که امکان داره خالی باشه، چون خیلیا ولت ساختن و کار نکردن باهاش، همون سایتی هم که معرفی کردم بابت جنریت سید، هربار که کلیک میکنید و یکی میسازه، میشه یه ولت خالی، دوما شاید ارزهای مختلفی داخلش باشه، پس باید یکی یکی چک کنید.
ای بابا دوباره کار سخت شد که، نه...
الگوریتم های تبدیل سید به پابلیک کی وجود دارند، فقط کافیه سید رو بهش بدید و به شما پابلیک کی رو بده...
پس مرحله سوم میشه به دست آوردن پابلیک کی ها از سیدهای درست
حالا پابلیک کی هم به دست آوردیم، چجوری موجودی رو چک کنیم؟
مرحله ۴ میشه چک کردن موجودی کیف پول
یه نمونه پابلیک کی رو قبلا گذاشتم براتون
1MAkJQHorigKrSpLEd41ewQhocydod3iyU
خب چجوری ببینیم داخلش چقدر بیت کوین هست؟
خیلی شیک و مجلسی بنویسید BTC دات کام، اسلش، ادرس ولت یا همون پابلیک کی
اینجوری:
Btc.com/1MAkJQHorigKrSpLEd41ewQhocydod3iyU
حالا بیا یکی یکی چک کن، اوه، اوه، طول میکشه.
ولی برای این کار API وجود داره که میشه ۵۰ تا ۵۰ تا چک کرد?، لینک API میزارم براتون.
شایدم یهو کل پروژه رو گذاشتم رو گیت هاب.
البته که به همینجا ختم نمیشه و چالش های دیگهای هم وجود داره و همین روال هم میشه بهتر و بهتر کرد که سرعت کار بیشتر بشه.
فعلا تا اینجاش داشته باشید تا ادامه اش رو بگم.
ادامه دارد ...