بیت کوین چگونه کار میکند و تراکنشهای آن چگونه انجام میشوند؟ -قسمت اول

شبکه بیت کوین چگونه کار میکند ؟ تراکنشهای بیت کوین چگونه انجام میشوند؟ ماینینگ بیت کوین و داشتن آن دقیقا به چه معناست؟ در این پست به تمام این سوالات به صورت کاملا فنی پاسخ داده خواهد شد.
قبل از هر چیز باید بدانید که برای استفاده از بیت کوین نیازی به داشتن دانش فنی خیلی بالایی ندارید همانطور که برای استفاده از اینترنت نیاز نیست که بدانید اینترنت چگونه کار میکند. همچنین در صورتی که نیاز به دانستن مبانی فنی ندارید.
بیت کوین چیست و چرا ارزشمند است؟
بیت کوین شبکه ای با هدف پرداخت های همتا به همتا است و ارز دیجیتال آن هم بیت کوین (BTC) نام دارد.
درست مانند ارزهای رایج ملی مثل دلار، بیت کوین به خودی خود ارزشی ندارد. مانند یک دلار، ارزشمندی بیت کوین هم فقط به دلیل اعتبار آن در نزد کاربرانش است که باعث عرضه و تقاضا میشود.
شاید این مسئله را ندانید اما از دهه ۱۹۷۰ به بعد، پولهای رایج جهان هیچ پشتوانهای ندارند و فقط اعتبار و اعتماد به پول یک کشور ارزش آن را تعیین میکند. در دهه ۱۹۷۰، دولت آمریکا قانون استاندارد طلا را لغو کرد و دلار رسما بدون پشتوانه شد. یک دلار آمریکا و بیشتر ارزهای ملی دیگر اکنون ارزششان نسبت به اعتبار و کاربرد آن تعیین میشود. ارزش بیت کوین را هم کاربران و شبکه آن تعیین میکنند.

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

هنگام ارسال بیت کوین شما به شبکه اعلام میکنید که مقداری از حساب شما کسر شود و به حساب گیرنده واریز شود.
نودها (Nodes) یا همان کامپیوترهای موجود در شبکه بیت کوین، تراکنش را در دفترهای خود اعمال میکنند و آن را به دیگر نودها پاس میدهند.
به غیر از ویژگیهای امنیتی، تمام چیزی که در بیت کوین داریم به شرح زیر است:
سیستمی که به گروهی از کامپیوترها اجازه میدهد تا از یک دفترکل (Ledger) نگهداری کنند.
در بانکها هم همینگونه است. بانکها یک دفترکل دیجیتال دارند که تراکنشها و دارایی مشتریان در آن ثبت شده است. مثلا محمد ۱۰ میلیون تومان پول دارد و علی ۵ میلیون تومان. این اطلاعات روی دفترکل بانکها ثبت میشوند. وقتی محمد ۵ میلیون تومان به علی پول میفرستد، در دفتر کل موجود در بانک، ۵ میلیون تومان از حساب محمد کسر میشود و به حساب علی واریز میشود. در هنگام انجام تراکنش بانکی، پول فیزیکی منتقل نمیشود بلکه فقط مالکیت پول تغییر میکند.
اما تفاوت دفترکل بلاک چین با دفتر کل بانکها چیست؟
حقیقت این است که در بیت کوین به جای یک نهاد مرکزی، دفترکل به صورت گروهی نگهداری میشود و همین موضوع تفاوتهای عمده ای را ایجاد میکند.
اول از همه، برخلاف بانک که شما فقط میتوانید تراکنشهای خود را ببینید، در بیت کوین همه میتوانند تراکنشهای هر فرد دیگری را ببینند.
در سیستم بانکی شما مجبور هستید به بانک، کورکورانه اعتماد کنید اما در بیت کوین شما با تعداد زیادی افراد غریبه سر و کار دارید که هیچ نیازی به اعتماد کردن ندارد.
سیستم بیت کوین به طرز شگفت انگیزی طراحی شده است و هیچ اعتمادی در شبکه آن نیاز نیست.
اگر رضا بخواهد برای محسن ۵ بیت کوین ارسال کند، باید درخواستش را به شبکه اعلام کند که ۵ بیت کوین از من کم کن و ۵ بیت کوین به محسن اضافه کن. هر نود در شبکه پیام را دریافت و کپی دفتر حساب و کتاب خود را طبق این درخواست بهروز میکند. همه این فرایند به صورت دیجیتالی صورت میگیرد.
اما نودها چگونه مطمئن میشوند که این درخواست معتبر است؟ اگر کسی که این پیام را فرستاده، واقعا بیت کوین نداشته باشد چه؟
به منظور انجام تراکنش در شبکه بیت کوین، شما به یک کیف پول دیجیتال (Wallet) نیاز دارید. کیف پول بیت کوین برنامهای است که اجازه ذخیره و تبادل بیت کوین را به شما میدهد.
در بیت کوین، کیف پول شما بانک شخصی شماست. برای اینکه تضمین شود که فقط کیف پول مورد نظر بتواند بیت کوین های داخل خود را خرج کند، هر کیف پول با نوعی روش رمزنگاری محافظت میشود.
کلید عمومی و کلید خصوصی
دو رشته کلید رمزنگاری شده در هر کی پول بیت کوین وجود دارد که مجزا بوده اما باهم ارتباط مکمل دارند. این دو کلید: کلید عمومی (Public Key) و کلید خصوصی (private key) نام دارند. ارتباط این دو به این صورت است که وقتی یک پیام توسط یک کلید عمومی خاص رمزگذاری میشود، فقط کلید خصوصی جفت شده با آن میتواند پیام را باز کند و بخواند. برعکس این موضوع هم صدق میکند: وقتی شما یک پیام را با کلید خصوصی رمزگذاری میکنید، فقط کلید عمومی جفت شده با آن میتواند پیام را از حالت رمزنگاری خارج کند.
رضا برای ارسال بیت کوین باید پیامی را که با کلید خصوصی کیف پولش رمزنگاری شده، به شبکه ارسال کند. به این شکل مشخص میشود که بیت کوینها دقیقا از طریق کیف پول رضا ارسال شدهاند و فرد دیگری به دروغ این پیام را به شبکه نفرستاده است.
هر نود (کامپیوتر متصل شده به شبکه به صورت مستقیم)، تراکنش ارسال شده از رضا را بررسی میکند تا مطمئن شود این پیام دقیقا از کیف پول رضا ارسال شده است. برای این کار، نودها با استفاده از کلید عمومی کیف پول رضا، پیام ارسال شده را میخوانند.
هنگامی که کیف پول شما یک درخواست تراکنش را با استفاده از کلید خصوصی رمزنگاری میکند، به نوعی یک امضای دیجیتال میسازد که نشان میدهد هر تراکنش متعلق به کدام کیف پول است.
این امضای دیجیتال یک رشته ی متنی است که از کلید خصوصی و پیام درخواست تراکنش تولید میشود.
با هرگونه تغییر در درخواست تراکنش، امضای دیجیتال به طور کامل تغییر میکند. این کار باعث میشود تا نتوان پیامهای درخواست تراکنش را تغییر داد.

برای مشاهده سایز کامل روی تصویر کلیک کنید
اگر بخواهیم مفاهیم بالا را به صورت روانتر بگوییم:
در بیت کوین برای خرج کردن داراییها نیاز به یک نوع کلمه عبور است و این کلمه عبور، امضای دیجیتال نام دارد.
مثل یک امضای دست نویس، امضای دیجیتال معتبر بودن یک پیام را تصدیق میکند. اما این کار با استفاده از یک الگوریتم ریاضی خاص انجام میشود و کپی و جعل آن را غیرممکن میکند.
امضای دیجیتال مانند یک کلمه عبور ساده و ثابت نیست بلکه برای هر تراکنش، باید امضایی کاملا متفاوت درج شود.
یادتان باشد که در شبکه بیت کوین شما با افراد کاملا غریبه سر و کار دارید، بنابراین باید امنیت شما تامین شود و داراییهای شما امن بماند.
یک امضای دیجیتال با استفاده از دو کلید جداگانه کار میکند. این دو کلید با وجود متفاوت بودن، مکمل یکدیگر هستند.
کلید خصوصی، یک امضا تولید میکند و با یک کلید عمومی بقیه میتوانند معتبر بودن امضا را بررسی کنند.
کلید خصوصی را به عنوان کلمه عبور واقعی در نظر بگیرید و امضای دیجیتال مدرکی است که نشان میدهد شما کلمه عبور را دارید.
در واقع آدرسهای کیف پول براساس کلیدهای عمومی هستند. بنابراین وقتی شما قصد ارسال بیت کوین دارید در در حقیقت به کلید عمومی فرد بیت کوین ارسال میکنید.
برای ارسال بیت کوین باید ثابت کنید که شما دارنده واقعی کلید عمومی هستید. شما این کار را با استفاده از تولید یک امضای دیجیتال از پیام تراکنش و کلید خصوصی انجام میدهید . بقیه نودهای شبکه میتوانند از امضا برای بررسی و تایید کلید عمومی شما استفاده کنند.
طی ریاضیات پشت یک امضای دیجیتال، نودها قادر خواهند بود که بدون دیدن کلید خصوصی، مالکیت آن را تایید کنند. همچنین، از آنجایی که امضا به پیام بستگی دارد، برای هر تراکنش، امضایی متفاوت وجود خواهد داشت و در نتیجه این امضاها نمیتوانند دوباره برای تراکنشهای دیگر استفاده شوند.
وابسته بودن امضا به پیام همچنین بدان معنی است که هیچ کس نمیتواند پیام را تغییر دهد از آنجایی که هر تغییر در پیام، امضا را غیرمعتبر میکند، نودها آن را نمیپذیرند.
چگونه موجودی حسابها مشخص میشود؟
سیستم بیت کوین میزان موجودی حسابها را ذخیره نمیکند. در بیت کوین تنها چیزی که ثبت میشود تراکنشهای تایید شده هستند.
به عبارت دیگر دفترکل بیت کوین فقط سوابق تراکنشهای منتشر شده را ذخیره میکند.

به جای ذخیره موجودی حسابها، مالکیت در بیت کوین بر اساس تراکنشهای قبلی تعیین میشود.
اگر مریم قصد ارسال ۱۰ بیت کوین به محمد را داشته باشد، او درخواست تراکنشی را ایجاد میکند. درخواست تراکنش مریم دارای پیوندهایی به تراکنشهای ورودی قبلی است و جمع میزان آنها باید حداقل ۱۰ بیت کوین باشد تا تراکنش انجام شود. به این پیوندها اصطلاحا انپوت (input) یا ورودی میگویند. در واقع هنگامی که مریم قصد ارسال بیت کوین را داشته باشد، باید تراکنشهای ورودی قبلی خود را به عنوان مدرک به شبکه نشان دهد.
به عبارت دیگر و زبان سادهتر وقتی شما قصد ارسال بیت کوین دارید، به شبکه تراکنشهای دریافتی قبلی خود را نشان میدهید و میگویید اینها مدارک دریافت بیت کوین هستند.
نودهای شبکه مقدار را بررسی کرده و مطمئن میشوند که این انپوتها خرج نشده باشند. در حقیقت یک بار خود برنامه کیف پول مقدار موجودی شما را بررسی میکند و یک بار نودهای شبکه این کار را با استفاده از اطلاعات تراکنشهای قبلی انجام میدهند. این فرایند موجب میشود که دوبار خرج کردن (خرج کردن دوباره بیت کوین) امکان پذیر نباشد.

داشتن بیت کوین بدان معناست که شما در شبکه بیت کوین تراکنشهایی دارید که خرج نشدهاند. همانطور که میدانید بیت کوین کاملا متن باز و مستقل از هر نهادی است. از این رو کلید خصوصی یک کیف پول به منزله کلید بیت کوینهای شماست. همیشه از کیف پول خود نسخه پشتیبان تهیه کنید و هرگز کلید خصوصی خود را در اختیار کسی قرار ندهید.
بینهایت آدرس
هر کس میتواند بدون نیاز به وارد کردن نام یا مشخصات خود به شبکه بیت کوین متصل شود. شبکه بیت کوین اجازه ساخت هر تعداد کیف پولی را به کاربران میدهد و هر کیف پول کلیدهای عمومی و خصوصی خاص خودش را دارد.
شاید فکر کنید که تولید یک کلید عمومی برای ساخت آدرس کیف پول، به معنای مشخص شدن هویت شخصی شما باشد. اما حتی این قدم هم ناشناس است و حتی میتواند بدون نیاز به اینترنت انجام شود.
شما میتوانید به سادگی و با یک کلیک در کیف پول خود کلید عمومی و خصوصی جدید بسازید.
اما یک مسئله:
در هنگام ساخت کیف پول امکان بررسی داشتن یا نداشتن یک آدرس توسط فرد دیگر وجود ندارد.
برای اینکه جمله بالا را بهتر درک کنید، فرایند ساخت ایمیل را در نظر بگیرید. هنگامی که قصد ساخت ایمیل دارید، سرویس ایمیل دهی (مثل جیمیل) از شما میخواهد که یک آدرس ایمیل برای خود مشخص کنید. شما آدرس دلخواه خود را وارد میکنید اما سیستم به شما میگوید که این آدرس ثبت شده است و نمیتوانید آن را برای خود بردارید. در بیت کوین اینگونه نیست.
بنابراین اگر بتوانید کلید خصوصی یک نفر را حدس بزنید به داراییهای او دسترسی خواهید داشت اما حدس کلید خصوصی تقریبا محال است. چرا؟
حداکثر تعداد آدرسهای احتمالی بیت کوین ۲¹⁶⁰ است یعنی ۱۴۶۱۵۰۱۶۳۷۳۳۰۹۰۲۹۱۸۲۰۳۶۸۴۸۳۲۷۱۶۲۸۳۰۱۹۶۵۵۹۳۲۵۴۲۹۷۶ احتمال برای آدرسهای بیت کوین وجود دارد.
برای اینکه بزرگی این عدد را خوب درک کنید به این مثال توجه فرمایید:
تخمین زده میشود که تعداد دانههای شن و ماسه در دنیا تقریبا ۷.۵ میلیون تریلیون باشد. حالا فرض کنید هر دانه شن یک کره زمین باشد و با احتساب شنهای این کرههای زمین، بازهم رقمی که به دست میآید خیلی پایینتر از احتمال آدرسهای بیت کوین است.
این موضوع باعث میشود تا هک یا حملات سایبری با استفاده از حدس زدن اعداد تقریبا غیرممکن شود.
مفهوم بلاک، بلاک چین و استخراج (ماینینگ) در بیت کوین
برای جلوگیری از دوبار خرج کردن بیت کوینها، یک مفهوم دیگر در سیستم بیت کوین وجود دارد.
تراکنشها از نودی به نود دیگر منتقل میشوند. بنابراین ترتیب رسیدن دو تراکنش مختلف به یک نود میتواند متفاوت باشد.
یک کاربر خراب کار میتواند به فرد دیگری بیت کوین بفرستد و بعد از اینکه آن فرد کالا یا پول بیت کوین را داد تراکنشی مخالف تراکنش قبلی بفرستد. و در این صورت به دلیل عدم وجود ترتیب زمانی، نودها ممکن است تراکنش دوم را زودتر دریافت کنند و عملا بیت کوینها دوبار خرج شوند
بنابراین چگونه میتوان فهمید که چه تراکنشی زودتر ارسال شده است؟
به همین دلیل سیستم بلاک چینی برای شبکه بیت کوین در نظر گرفته شده است. شبکه بیت کوین تراکنشها را با گذاشتن آنها در بلاک مرتب میکند.
هر بلاک دارای تعدادی تراکنش بوده و به بلاک قبلی خود متصل است. طبق این سیستم، در زمانی مشخص یک بلاک بعد از بلاک قبلی قرار میگیرد. به زنجیرهای از این بلاکها زنجیره بلاکی یا همان بلاک چین میگویند.

برای مشاهده سایز کامل روی تصویر کلیک کنید
تمام تراکنشهایی که در یک بلاک خاص قرار دارند به عنوان تراکنشهای ارسال شده در یک زمان در نظر گرفته میشوند و تراکنشهایی که هنوز در بلاک وارد نشده باشند به عنوان تایید نشده یا آنکانفرم (unconfirm) در نظر گرفته میشوند. زمانی که تراکنش در بلاک ثبت شود و آن بلاک به شبکه ارسال شود، تراکنش یک تایید (Confirm) میخورد. زمانی که بلاکهای جدیدی روی بلاک تراکنش قبلی ثبت شوند، تعداد تایید هم به همان میزان بالا میرود.
امتیاز دادن به خبر
با لایک کردن هر خبر میتوانید کوین بیشتری جایزه بگیرید





