به قلم سپهر گنجی ورودی ۹۷ کارشناسی مهندسی کامپیوتر صنعتی اصفهان
بازنگریشده توسط متین حیدرنژاد، ورودی ۴۰۲ کارشناسی کامپیوتر صنعتی اصفهان

این مطلب صرفاً با هدف علمی و اطلاعرسانی نوشته شده و به هیچوجه تشویق یا توصیه به استفاده غیرقانونی از میکسرهای بلاکچینی نیست. اگر شما خلافکارید، لطفاً همینجا متن رو ببندید و برید دنبال اصلاح نفس :)
امروزه کمتر کسی اسم ارزهای دیجیتال (رمزارزها) به گوشش نخورده. همهٔ ما داستان کسی که ده هزار بیت کوین رو با دو عدد پیتزا معامله کرده شنیدیم :)
تو این متن در مورد اینکه رمزارزها چطوری کار میکنن یا چرا قیمت بیت کوین انقدر رفته بالا صحبت نمیکنیم. امروز به بحث حریم شخصی تو رمزارزها میپردازیم. شاید شنیده باشید که رمزارزها ناشناسن، یعنی مشخص نیست که یک آدرس بیت کوین مثل aaa متعلق به کیه. در حالی که در تئوری این قضیه کاملا درسته و شما میتونید همین الان یک آدرس جدید کاملا تصادفی تولید کنید و کسی ندونه که شما اون رو ساختید؛ اما آیا راهی هست که تا ابد ناشناس بمونید؟ یعنی آدرسی که ساختید با هویتتون گره نخوره؟ اینطوری به نظر نمیاد!
بلاکچین یک شبکه غیرمتمرکزه که روی اون میتونیم پولهامون رو جابجا کنیم. غیر متمرکز به این معنیه که توسط یک مرکز مدیریت نمیشه و هزاران کامپیوتر در سرتاسر جهان در حال کمک به جلو رفتن شبکه میشن. هر کدوم از این کامپیوترها، یک نسخه از کل تراکنشهای بیت کوین از ابتدای اختراع تا همین لحظه کنونی رو داره. پس اطلاعات اینکه در چه زمانی، چه مقدار بیت کوین از آدرس aaa به آدرس bbb رفت، در اختیار همه هست. این شفافیت، یکی از نقاط قوت بلاکچین هست. شفافیتی که باعث میشه بدون نیاز به داشتن یک بانک یا سرویس مرکزی، هیچ کسی نتونه تقلب کنه و همگی به توافق برسیم که هرکسی (به طور دقیقتر هر آدرسی) چقدر پول داره.
بیاید با یک مثال بررسی کنیم که چرا شبکهٔ فوقالعاده و غیرمتمرکز ما، چطوری ممکنه توی حفظ حریم خصوصی ما به مشکل بر بخوره:
همگی اسم صرافیهای رمزارز به گوشمون خورده. کار این صرافیها اینه که پولهای روزمره مثل ریال و دلار رو از ما میگیرن و در ازاش بهمون رمزارز میدن، و یا برعکس. خب این صرافیها برای ثبت نام نیازمند مدارک هویتی هستن و این بدین معنیه که دولتها دقیقا میدونن هرکدوم از ماها چقدر پول به چه آدرسی از بیت کوین وارد و چقدر برداشت کردیم. مهم نیست پولی که توی شبکه داریم رو چقدر بچرخونیم، از آدرس aaa به bbb به ccc به ... تا به zzz. در انتها (یا ابتدای) این زنجیره، کار ما به صرافی گره خورده و توی این نقطه تمام آدرسهای این زنجیره لو میرن و هویت ما بهشون گره میخوره!

سارا و دارا هر کدوم یک عدد بیت کوین دارن و تو آدرسهایی که به هویتشون گره خورده، ذخیره کردن. حالا بیتکوینهاشون رو تو یک جعبه قرار میدن و بعد اون جعبه هوشمند، دو بیتکوین رو به آدرسهای جدید سارا و دارا که به هویتشون گره نخورده (CCC و DDD) منتقل میکنه. حالا شما به عنوان ناظر بیرونی هیچ ایدهای ندارید که کدوم آدرس مال سارا و کدوم مال داراست!
اما صبر کنید، ما میدونیم که یکی از این آدرسهای خروجی مال سارا و اونیکی مال داراست. این یعنی با احتمال ۵۰٪ میتونیم همچنان آدرس رو به شخص درستی نسبت بدیم! برای این چه راهی وجود داره؟
خب اگه سارا و دارا، دوستهایی به اسمهای مانا و پایا داشته باشن اون وقت میتونن بعد از مرحله اول، یک مرحله مخلوط(!) دیگه هم انجام بدن؛ یعنی:

حالا از بین چهارتا آدرس خروجی، شما با احتمال ۲۵٪ میتونید حدس بزنید که کدوم متعلق به داراست! پس حریم شخصی دارا خیلی بیشتر حفظ شد. حتی میشه پا رو از این فراتر گذاشت و تعداد افرادی که توی تراکنش شرکت میکنن رو زیاد کنیم، مثلا اگه به جای دو نفر، تو هر مرحله چهار نفر داشتن اون وقت در انتها شما با احتمال ۱۲.۵ درصد میتونستید حدس بزنید که کدوم آدرس متعلق به داراست. همین روند رو با تعداد بیشتر تراکنش و یا آدمهای بیشتر میشه تکرار کرد تا به درصدهای خیلی بهتر هم رسید.
قبل از این که متن رو ادامه بدیم، یک نکته مهم رو باید همینجا بگنجونم:
شاید براتون سوال پیش اومده باشه که چرا همه دقیقا یک بیت کوین دارن توی این مثال؟ آیا فقط برای سادگی بوده یا هدف دیگهای هم داشته؟ بیاید جوابش رو با یک مثال ساده بررسی کنیم:
تصور کنید که دارا ۱.۶۷ بیت کوین و سارا ۱ بیت کوین داشته باشه. بعد از پایان تراکنش، جعبهٔ ما به صورت کاملا تابلویی(!) ۱.۶۷ بیت کوین به CCC بفرسته :) خب مشخصه که توی این سناریو لو میره این آدرس متعلق به داراست. پس برای این که مخلوط کن بتونه واقعا به صورت ناشناس کارش رو انجام بده، همه باید به میزان مساویای پول وارد جعبه کنن.
حالا که میدونیم میکسر چیه و به چه دردی میخوره، بریم سراغ اینکه خود میکسر (که تا حالا به عنوان جعبه هوشمند بهش نگاه کردیم) واقعا چیه و چهطوری کار میکنه.
به صورت کلی دو مدل میکسر میتونیم تعریف کنیم:
سرویس مرکزی ارائه دهنده میکسر: یعنی یک وبسایت یا سرویس بیاد این میکسر رو به مردم ارائه بده. مثلا اکبر برادر بزرگ اصغر، بعد از این که با مفهوم میکسر آشنا شده تصمیم میگیره اون جعبه هوشمند رو طراحی کنه و در اختیار کاربران قرار بده. دارا میاد و به اکبر میگه من میخوام ۱ بیت کوین به صورت ناشناس به آدرس CCC بره. ولی صبر کنید... اگه دارا به اکبر این رو بگه، یه جورایی دوباره داره هویتش رو لو میده! این دفعه نه به وبسایت صرافی، بلکه به وبسایت میکسر! پس همینجا میفهمیم که شاید میکسر مرکزی که توسط یک شخص یا نهاد ارائه و مدیریت میشه گزینه مناسبی نباشه.
میکسری از جنس غیر متمرکز: چی میشه اگر یک راهی وجود داشت که همه بدون نیاز به اکبر و فقط با توافق دسته جمعی (Consensus) بتونن عملکرد میکسر رو پیاده سازی کنن؟ خبر خوب اینه که وجود داره.
بذارید راهش رو با یک مثال بررسی کنیم. تصور کنید دارا به همراه ۹ نفر از دوستهاش تو یک جلسه خیلی مهم برای مخلوط کردن بیت کوینهاشون شرکت میکنن. این جلسه هیچ رئیسی نداره و هیچ کسی از آدرس مخفی شخص دیگه خبر نداره. توی این جلسه یک کیسه وجود داره که دور میز گردونده میشه و هرکسی آدرس مخفی خودش رو داخل کیسه قرار میده. بعد از اینکه هر ۱۰ نفر آدرسهاشون رو توی کیسه انداختن، یک داوطلب، قراردادی رو تنظیم میکنه که ما همگی قراره نفری ۱ بیت کوین (و مجموعا ۱۰ بیت کوین) بذاریم وسط و بعدش در خروجی جعبه، ۱ بیت کوین بره به آدرس اول، ۱ بیت کوین به آدرس دوم و به همین ترتیب. این قرارداد تنظیم میشه بدون اینکه کسی بدونه آدرسهای خروجی متعلق به کیه.
حالا وقتی این قرارداد رو بخوان ببرن بانکِ بیتکوین (به صورت فنی، بخوان یک تراکنش رو تو شبکه بیتکوین ارسال کنن) اون تراکنش نیازمند ۱۰ تا امضا هست. هر شخص با یک نگاه زیر چشمی به قرارداد، چک میکنه اون آدرسی که روی کاغذ نوشته بود (که همون آدرس ناشناسشه) تو قرارداد ذکر شده یا نه؟ اگه ذکر شده بود پای قرارداد رو امضا میکنه. بعد از این که هر ۱۰ نفر قرارداد رو امضا کردن تراکنش انجام میشه.
حالا چرا پروتکل غیر متمرکز اینطوری تنظیم شده و کار میکنه؟
کیسه مخفی: این کیسه برای ناشناس موندن آدرسها طراحی شده. درسته که اون ۹ نفر دوستهای دارا هستن اما تو این دوره زمونه آدم به دوستش هم نمیتونه اعتماد کنه. این کیسه کاری میکنه که هیچکس خبر نداشته باشه آدرس مخفی شخص دیگه توی این جلسه چیه.
نگاه زیر چشمی و بعد امضا: این مکانیزم برای این طراحی شده که اگر اون شخص داوطلب تنظیم کننده قرارداد بخواد یواشکی آدرس دارا رو حذف کنه و یه آدرس از خودش بذاره، نتونه! چون دارا موقع امضا آدرس مخفی خودش رو میدونه و اگه توی قرارداد نبینه از امضا کردن خودداری میکنه.
تصویر زیر مثال قراردادیه که گفتیم. برای سادگی، قرارداد بین دو نفر تنظیم شده:

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