راز آدرس ها در تکنولوژی بلاکچین!

در روزهای نخست بیتکوین، امکان ارسال پرداخت‌ها به یک آدرس IP مثل ۱۰۴.۲۵.۲۴۸.۳۲ وجود داشت. این کار برای ایجاد راحتی در استفاده از بیتکوین بدون استفاده از آدرس‌های کلید عمومی و خصوصی انجام شد. اما بعد از آن توسعه دهندگان متوجه شدند که این وضعیت ممکن است باعث بروز حمله Man in the middle شود.

آدرس‌ ها در بلاکچین یک چیز سفت و سخت نیستند. بلکه یک شناسه برای پذیرش و ارسال تراکنش‌های بلاکچین هستند. درست مانند آدرس‌های سوییفت. خود آدرس و فرمت آن مساله اصلی نیست. مساله مهم خدمتی است که آدرس ، برای تبدیل پرداخت‌ها به یک موجودیت اطلاعاتی، ارائه می‌کند. معمولا یک کلید خصوصی برای دسترسی به موجودی وجود دارد و آدرس چیزی به جز یک شناسه امن نیست. بعد از کنار گذاشتن آدرس IP در بیتکوین، P۲PKH به عنوان استاندارد جدید آدرس‌های بیتکوین شناخته شد. این آدرس چیزی شبیه به آدرس زیر است:

۱K۳۱KZXjcochXpRhjH۹g۵MxFFTHPi۲zEXb

یک آدرس استاندارد P۲PKH، سی و چهار حرف دارد و با ۱ شروع می‌شود. P۲PKH مخفف “Pay to Public Key Hash” است. یعنی شما توسط هش یک کلید عمومی، پرداخت انجام می‌دهید. برای مبتدیان، این ممکن است بسیار گیج کننده باشد. بنابراین ابتدا باید فرآیند ساخت همچین آدرسی را یاد بگیریم تا بدانیم چگونه عمل می‌کند.

هر نرم‌افزار کیف پول که استفاده می‌کنید یک آدرس P۲PKH تولید می‌کند. این کار ترکیبی از چند عملیات نه چندان پیچیده‌ی رمزنگاری است.

ابتدا، کیف پول شما یک کلید خصوصی ECDSA تولید می‌کند. ECDSA یک الگوریتم رمزنگاری در هسته آدرس‌های بیتکوین است که یک الگوریتم امضای غیرمتقارن می‌باشد. یعنی شما می‌توانید یک پیام را با کلید خصوصی امضا کرده و آن را با کلید عمومی تایید کنید. با  استفاده از ECDSA و امضا کردن پیام، ‌می‌توانید به بقیه ثابت کنید که شما تنها تولید کننده پیام هستید و اصالت آن را تایید کنید. این مورد بسیار شبیه به امضای یک نامه به طور فیزیکی است.

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

ایجاد آدرس بلاکچین در بیتکوین

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

نرم‌افزار هش، کلید عمومی را با SHA ۲۵۶ و سپس RIPEMD-۱۶۰ بدست می‌آورد. سپس آن را با ۰۰ بایت به عنوان پیشوند در ابتدای نتیجه قبل جمع می‌کند. به همین دلیل است که آدرس‌های P۲PKH با ۱ شروع شده و با چهار بایت checksum در انتها ختم می‌شود. چهار بایت از checksum توسط دوبار هش گرفتن از نتیجه با SHA ۲۵۶ و جدا کردن ۴ بایت اول آن بدست می‌آید. سپس کیف پول شما نتیجه را به یک رشته base۵۸ تبدیل می‌کند. حالا یک آدرس بیتکوین بدست آمده است.

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

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

اما بیتکوین آدرس‌های پیشرفته‌تری دارد: یعنی آدرس‌های P۲SH. که خلاصه “Pay To Script Hash” می‌باشد. یعنی شما به هش یک آدرس پرداخت نمی‌کنید؛ بلکه به هش یک اسکریپت پرداخت می‌کنید. برای امضای یک تراکنش شما به یک امضا که با یک کلید عمومی خاصی تطابق داشته باشد، نیاز ندارید. بلکه به یک اسکریپت که با یک هش مشخص تطابق داشته باشد نیاز دارید.

هر چند برای فهم قدرت P۲SH به دانش بیشتری نیاز است، فعلا بیتکوین را کنار گذاشته در ادامه روی آدرس‌ها تمرکز می‌کنیم.

آدرس‌ها در کوین‌های دیگر

بسیاری از کوین‌ها از آدرس‌دهی مشابه بیتکوین استفاده می‌کنند. برای مثال لایت‌ کوین ، دش و دوج کوین از روندهای مشابهی برای رمز‌گذاری استفاده می‌کنند: ECDSA, SHA ۲۵۶, RIPEMD ۱۶۰

تنها تفاوت وجود پیشوند هشِ RIPEMD-۱۶۰ است. در حالی که پیشوند ۰۰ در آدرس بیتکوین باعث شروع آن با «۱» می‌شود، کوین‌های دیگر مانند دش، لایت کوین و دوج کوین از پیشوند‌های دیگری استفاده می‌کنند که باعث می‌شود با حروفی مثل «X» و «L» و «D» شروع شوند.

مادامی که این کوین‌ها از الگوریتم‌های رمزنگاری متفاوتی استفاده می‌کنند، شما می‌توانید از همان کلید عمومی و خصوصی مشابه برای ذخیره کوین در تمام ارزهای دیجیتال استفاده کنید.

ارزهای دیگر از روش‌های دیگری برای تولید آدرس استفاده می‌کنند. برای مثال مونرو بر اساس الگوریتم Cryptonote می‌باشد. این الگوریتم نوع دیگری از الگوریتم امضای رمزشده را برای تولید کلید عمومی استفاده می‌کند. ارزهای مبتنی بر کریپتونوت (Cryptonote) یک امضای حلقه گونه دارند که حریم خصوصی بیشتری را فراهم می‌کند چرا که شما نمی توانید تعیین کنید یک تراکنش با کدام کلید امضا شده است. به همین دلیل، آدرس‌های کریپتونوت باید شامل دو کلید عمومی باشند: یک کلید مشاهده و دیگری کلید پرداخت.

همانند آدرس‌های بیتکوین، کریپتونوت یک پیشوند اضافه ‌می‌کند و نتیجه را هش می‌کند. این الگوریتم از Keccak-۲۵۶ بجای SHA-۲۵۶ دوتایی برای تولید checksum چهاربیتی استفاده می‌کند که به آخر یک رشته اضافه می‌شود. بعد از تبدیل نتیجه به base۵۸ شما آدرس نهایی را بدست می‌آورید که از بیتکوین طولانی تر می‌باشد. و شبیه زیر است:

۴۳ZZViHQKd۴۲X۷cajEtc۶NUoxG۴AvyMu۳ZqpGTBP۸۵uhEfYoPVAuGHxJcomMHEPp۳NWiKJRUMnuAJ۷dfBrPTcfjYMPJzz۲a

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

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

آدرس‌های اتریوم

مانند خیلی از چیزهای دیگر در دنیای رمزارزها، مبحث آدرس‌ها با رسیدن به اتریوم جذاب‌تر می‌شود. بسیاری از افرادی که با بیتکوین شروع کرده‌اند و سپس به سراغ اتریوم می‌روند، با دیدن قالب آدرس آن سردرگم می‌شوند که یک آدرس طولانی، و یک رشته در مبنای ۱۶ است که با ۰x شروع می‌شود. به عنوان مثال:

۰x۰eb۸۱۸۹۲۵۴۰۷۴۷ec۶۰f۱۳۸۹ec۷۳۴a۲c۰e۵f۹f۷۳۵

از لحاظ فنی، تولید آدرس اتریوم مشابه بیت‌کوین است، اما نه در همه موارد. برای تولید یک کلید عمومی ۶۴ بایتی، باید از یک کلید خصوصی شروع کرده و از ECDSA استفاده کنید. یعنی همان طور که بیت‌کوین عمل می‌کند. سپس آن را توسط Keccak-۲۵۶ هش می‌کنید. نتیجه که یک رشته ۳۲ بایتی خواهد بود. ۱۲ بیت اول از این بایت‌ها دور انداخته می‌شود و ۲۰ بایت باقی مانده که یک آدرس ۴۰ کاراکتری است با یک پیشوند ۰x آدرس اتریوم را تشکیل می‌دهند. برخلاف بیت‌کوین یا کریپتونت، اتریوم آدرس را به base۵۸ تبدیل نمی‌کند، بنابراین یک آدرس هگزادسیمال یا مبنای ۱۶ خواهد بود.

تفاوت دیگر اتریوم با رمزارزهای دیگر، این است که آدرس‌های اتریوم checksum ندارند. هر رشته‌ی ۴۰ کاراکتری مبنای ۱۶ می‌تواند یک آدرس اتریوم باشد. یعنی خطای تایپی در وارد کردن آدرس قابل شناسایی نخواهد بود.

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

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

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

ICAP یک شماره بانکی بین‌المللی کاملا معتبر است که نرم‌افزارهای بانکی می‌توانند آن را بفهمند و با آن تعامل کنند. IBAN نیز نمونه متمرکز این پروتکل بوده و شناسه بین‌المللی مشتریان در صنعت بانکداری است. این شناسه از ۲۳ کاراکتر حساس به حروف کوچک و بزرگ تشکیل شده است و شامل یک کد کشور، یک checksum و شماره بانک در کنار شماره حساب می‌باشد.

در حال فرمت ICAP حاضر اینگونه می‌باشد:

E۷۳۳۸O۰۷۳KYGTWWZN۰F۲WZ۰R۸PX۵ZPPZS

مانند بیتکوین، این آدرس از کاراکتر‌های base۵۸ استفاده می‌کند و شامل checksum می‌شود.

استیم، نام کاربری شما آدرس شماست!

ارز رمزنگاری‌شده استیم ( Steem ) سیستم مشابه اتریوم را استفاده کرده است. در استیم نام کاربری شما کیف پول شما است.

استیم رمزارزی مبتنی بر ایده Bitshares است. این ارز با بستر شبکه اجتماعی Steemit لینک شده است. یعنی شما می‌توانید استیم کوین را با بدست آوردن لایک و کامنت روی پست‌های خود ماین کنید! استیم مانند بیت‌کوین و اتریوم غیرمتمرکز نیست و قسمت‌های مهم آن در پلتفرم خصوصی Steemit میزبانی می‌شود و قسمت اصلی استیم می‌باشد.

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

شیوه آدرس دهی براساس نام کاربری در استیم جالب است چرا که قابلیت استفاده ایده‌آل را فراهم می‌کند. اما هنوز متمرکز بوده و عدم اعتماد کافی را برای بسیاری از کاربران بلاکچین به همراه دارد. یعنی سیستم هنوز از شفافیت کافی برخوردار نمی‌باشد.

یک سیستم قرارداد هوشمند مانند اتریوم، می‌تواند هر دو بخش ایده‌آل را داشته باشد؛ غیرمتمرکز بودن، اعتماد طبیعی بلاکچین و راحتی استفاده از آدرس‌های مبتنی بر نام استیم!


54321
امتیاز 3.6 از 7 رای

ممکن است شما دوست داشته باشید

ارسال نظر

جدید ترین قدیمی ترین محبوب ترین
ر . پردل

سلام روز خوش
من میخوام برای یه سایت لایت کوین انتقال بدم اما آدرسی که سایت در اختیارم میذاره با حرف M شروع میشه در صورتی که والت اکسچنج من Hit btc هر آدرس لایت کوینی که تولید میکنه با حرف L شروع میشه
مکاتبه کردم و گفتند که آدرس ما درسته اما هیت بی تی سی اون آدرس رو قبول نمیکنه
می تونید منو راهنمایی کنید ؟

افشین صالحی

با سلام من در سال ۲۰۱۵ در والت بلاک چین یک آدرس جدید ساختم و مقدار ۱.۶ بیت کوین واریز کردم بعد از چند ساعت دوباره والت را باز کردم آدرس پاک شده بود و تراکنش انجام شده بود اما دسترسی به آدرس را به من نمیدهد اینپود کردم آدرس را اما مینویسه غیر قابل برداشت به پشتیبانی سایت هم ایمیل زدم اما جواب درست حسابی نگرفتم و هنوزم اون والت را دارم ایا می تونید کمکم کنید ممنون میشم

معین ستایش

سلام ببخشید من چطور میتونم بامتخصصان شما تماس تلفنی داشته باشم

ادمین سایت

سلام وقت بخیر، در تلگرام با آیدی @mihanblockchain_ads ارتباط برقرار کنین

حسین حسامی

با سلام..
استاد گرامی تورو خدا کمکم کنید..من توی یه سایت کار میکردم و هر از چند گاهی برداشتهایم را به بیشتر به اتریوم برداشت میکردم و موفق هم بود..ولی امروز برداشت 0.00556بیت کوینم رو به ادرس بیت کوین کیف پولم انتقال دادم..ولی هر چه منتظر موندم دیدم هیچ پولی به حسابم نیومد .و بعدش دیدم که اون ادرسی که پول واریز شده بهش به صورت کمرنگ توی کیف پولم نوشته شده ادرس قبلی…لطفا کمکم کنید چگونه مبلغ بیت کوینم رو بازیابی کنم

ادمین سایت

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

سعید cryengine

سلام وقت بخیر یه سوال تخصصی دارم آدرس هایی در بیت کوین وجود داره که قبل از هاردفورک موجودی داشتن ، قاعدتا این آدرس ها بعد از هارد فورک نیز با توجه به بلاک چین های یکسان در قبل ، باید دارای همان موجودی باشن حالا تکلیف اون دارایی ها چی میشه ؟ به عنوان مثال BCHABC که یک هارد فورک از بیت کوینه در صورتی که آدرسی چک بشه که موجودی قبل از هارد فورک رو داشته، میشه همون مقدار موجودی رو درشون دید! سوالم اینه آیا میشه با همون کلید خصوصی بیت کوین به BCHABC های همون آدرس… بیشتر بخوانید »

ادمین سایت

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

امیررضا

سلام آدرسی که تو صفحه استخراج اتریوم من هستش تو ولتم نمیتونم پیدا کنم و برادشت رو زدم ، میشه راهنماییم کنین

ادمین سایت

سلام از چه کیف پولی دارین استفاده میکنین ؟

امیررضا

از سایت freewalt ساختم و وارد میشم

محمد شيرازي

سلام يه سوال دارم هر ادرس بيت كوين يك كليد خصوصي داره private key ؟؟ما 25 مليون ادرس بيت كوين داريم اگه اشتباه نكنم يعني 25 مليون هم كليد خصوصي داريم؟ممنون ميشم جواب بدين

ادمین سایت

سلام
پیشنهاد میکنم که در مورد master private key و master public key مطالعه کنین
همچنین کیف پول های HD هم میتونه برای پیدا کردن جواب سوالتون بهتون کمک کنه

علی زلقی

سلام چرا وقتی تو برنامه بلاکچینـمیخام ثبت نام کنم جیمیل و رمز جیمیل میدم اینو مینویسه یعنی چی
HDwalleterror

با سلام
برای اتصال از vpn استفاده کنید.

حسن

سلام id را دارم پسوردم را ندارم

StorM

سلام من از کسی بیت کوین خریدم گفت ادرس ولت بده من ادرس ولت رو دادم نمیدونستم تغییر میکنه ادرس ولت بعد زد به ادرس قبلی الان بیت کوین گیرم میاد امکانش است ؟

ادمین سایت

با سلام
بله مشکلی پیش نمیاد، این ویژگی hd wallet هاست.
پیشنهاد میکنم مقاله زیر رو مطالعه کنید تا با این ولت ها بیشتر آشنا بشید:
کیف پول اچ دی (HD Wallet) چیست؟ چند آدرس، یک کیف پول!

حسن

سلام منظورم شماره کیف پول بیت کوین هستش مثل این 3E8tYSoTHkFsAP4CLKQmjvgdgXp3R در سایت http://www.btconline.io وارد کردم استخراج ابری هستش و حالا موجودیم شده 0/05که میتونم برداشت کنم ولی یادم نیست این شماره مال کدام کیف پول بوده که وارد کردم ویندوزم راهم پاک کردم کیف پولهای که داشتم پاک شده
منظورم را نمیدونم متوجه شدین یا خیر
در هر صورت ممنونم پیگیر سوالم بشید

ادمین سایت

سلام مجدد
برای دسترسی به دارایی هاتون عبارات ریکاوری یا کلید خصوصی لازم هستش و اگه این موارد رو داشته باشین می تونین به کیف پولتون دسترسی داشته باشین