اکنون در سپیده دم یک انقلاب جدید هستیم. با پیشرفت تکنولوژی و الکترونیکی شدن بخشهای مختلف زندگی بشر، پول هم از این قاعده مستثنی نبوده است. در سالهای اخیر ارزهای دیجیتال محبوبیت جالب توجهی پیدا کرده اند. در این فناوری، اطلاعات هر تراکنش در بلاک چین نگهداری میشود. ویژگی شفافیت و در دسترس همگان بودن بلاک چین باعث شده تا از صحت تراکنش اطمینان حاصل شود. هر شخص با اطلاعاتی غیرشخصی (به صورت گمنام و با یک شناسه خاص) عضو این زنجیره است و پس از هر تراکنش، اطلاعات آن در دسترس همگان قرار میگیرد. به عبارتی بلاک چین یکی از با ثباتترین دفاتر کل جهان است که در دسترس همگان قرار دارد. در بلاک چین به کمک الگوریتمهای خود کنترلی هرگونه تلاش مخرب برای گول زدن سیستم رد میشود و تقریبا امکان جعل کردن اطلاعات وجود ندارد. از این ویژگی منحصر به فرد میتوان در رایگیری الکترونیک هم استفاده کرد؛ زیرا رای گیری نیز نیازمند امنیت بالا، شفافیت و همچنین پنهان کردن شخصیت افراد و گمنامی است. شاید به جرات بتوان گفت مهمترین ویژگی مورد نظر برای رای گیری، اعتبارسنجی آن است. ویژگی ای که شاید کمتر به آن توجه شده است. اعتبارسنجی دومرحلهای، طراحی رای گیری الکترونیک را آسانتر و انعطاف پذیری آن را بالاتر میبرد.
مروری بر بلاکچین و ویژگیهای آن
در بیرونیترین سطح، آسانترین راه برای درک مفهوم بلاکچین این است که آن را یک پایگاه داده غیرمتمرکز بدانیم. مسئولیت مدیریت پایگاه داده، در سراسر یک شبکه از سیستمها پراکنده شده است. این امر باعث کاهش یافتن آسیب پذیری حاصل از وجود یک سرور مستقل میشود. این فناوری در واقع یک دفتر داده عمومی (Public Leger) و مشابه یک برنامه صفحه گسترده تعاملی بزرگ (Giant Interactive Spreadsheet) است که هرکسی میتواند آن را وارسی کند، اما هیچ کاربری نمیتواند به تنهایی آن را کنترل کند. شرکت کنندگان در سیستم بلاکچین به طور جمعی این دفترکل را به روز نگه میدارند. پس بلاک چین درواقع راه جدیدی برای ثبت و ذخیره تراکنشهاست که بسیار به پایگاه دادههای سنتی شباهت دارد، ولی بلوکها برای اطمینان از مقاومت در برابر نفوذ، به صورت رمزنگاری شده به یکدیگر زنجیر شده اند. هر بلوک در بلاک چین کدهای کامپیوتری هستند که شامل صورتهایی از اطلاعات مانند قرارداد، گواهینامه مالکیت و اثبات معاملات مالی بانکهاست.
هر بلوک از اطلاعات در این پایگاه داده کامپیوتری از طریق امضای دیجیتال به یکدیگر متصل میشوند. با اضافه شدن اطلاعات جدید، طول و پیچیدگی بلاکچین بیشتر شده و پایگاه داده کامپیوتری بزرگتر میشود. اگر فردی یک تغییر غیرمجاز انجام دهد، تمام افراد میتوانند منشا اصلی این اتفاق را پیدا و حتی معتبر بودن یا نبودن آن را نیز بررسی کنند. همه میتوانند یک کپی مشابه از این دفتر توزیع شده داشته باشند. این پایگاه داده از داراییها، در سراسر سایتهای مختلف به اشتراک گذاشته شده است. باوجود اینکه احتمال حمله سایبری وجود دارد، هک کردن آن بسیار دشوار است.
اسکریپت
بلاک چین و بیت کوین از یک سیستم برنامه نویسی به نام اسکریپت (Script) برای تراکنشهای خود استفاده میکنند. اسکریپت ساده و مبتنی بر استک (Stack Based) است که از چپ به راست پردازش میشود. یک اسکریپت در اصل یک لیست از دستورالعمل هاست که با هر معامله نگاشته میشود و چگونگی دسترسی به بیت کوین های منتقل شده برای خرج کردن نفر بعدی را توضیح میدهد. اسکریپت، برای یک انتقال معمولی بیتکوین به آدرس مقصد (D)، به سادگی مانع از خرج کردن آن در آینده میشود.
خرج کننده باید دو چیز آماده کند:
- یک کلید عمومی که وقتی هش (Hash) شود به آدرس مقصد (D) که در اسکریپت جاسازی شده، دست یابد.
- یک امضا برای نشان دادن شاهد و مدرکی از مرتبط بودن کلید خصوصی و کلید عمومی که فراهم شده است.
تراکنش وقتی معتبر است که هیچ شکستی در اسکریپت اتفاق نیافتد و آیتم بالایی استک مقداری درست داشته باشد. اهدافی که در ابداع این زبان اسکریپتی بیت کوین وجود دارد عبارتند از:
- صرفا برای استفاده بیتکوین و بلاکچین باشد.
- ساده و مختصر باشد.
- رمزنگاری را پشتیبانی کند.
- مبتنی بر استک باشد.
- محدودیتهای زمانی و حافظه را رعایت کند.
- حلقه در زبان اسکریپتی بیتکوین وجود نداشته باشد. به این معنی که هر دستور فقط یکبار و با یک روش خطی اجرا میشود.
این زبان، یک زبان کامل تورینگ (Turing Complete Language) نیست. به سیستمی، سیستم کامل تورینگ می گویند که میتواند در حل هر مسئله محاسباتی استفاده شود. اما چون زبان اسکریپت بیتکوین اینگونه نیست، قابلیت محاسبه توابع قدرتمند و دلخواه را ندارد. این امر به دلیل طراحی آن است. به این دلیل که استخراج کنندگان (Miners) باید این اسکریپت دلخواه شبکه ارسال میشوند اجرا کنند، پس نباید به آنها قابلیتی بدهیم که اسکریپتهایی را ارسال کنند که ممکن است حلقه بی نهایت باشد یا بخواهند برای ابد اجرا شوند. این دستورات شامل دستورات پایه ای و اعمال اصلی محاسباتی و ریاضی، شروط منطقی، اداره خطاها و منطق ها و دستورات رمزنگاری هستند.
قراردادهای هوشمند (smart contract) برنامه های کوچک یا اسکریپتهایی هستند که روی بلاک چین اجرا میشوند و شرایط قانونی یا قراردادی را خود به تنهایی کنترل میکنند. آنها صورت سادهای از تمرکززدایی هستند و در انواع زمینهها از جمله؛ شرطبندی (Wagers)، اعتماد خانواده، توافقنامه و اعتبارنامه (Escrow) ، نشانگذاری زمانی (Time Stamping)، اثبات درستی تحویل کار (Proofs Of Works Delivery)، مدیریت زنجیره تامین (Supply Chain Management)، دولت و رایگیری الکترونیکی، رعایت حقوق مالکیت معنوی و غیره کاربرد دارند.
در واقع آنها دارایی یا ارزش خاصی را از یک مالک، بر اساس یک شرط یا رویداد خاصی، بین افراد یا چیزهایی منتقل میکنند. این چنین است که اصطلاح Atomic Transaction تحقق مییابد. به این معنی که پول همزمان با مالکیت انتقال پیدا میکند و یا اینکه هیچکدام منتقل نمیشوند. قراردادهای هوشمند نشان دهنده یک حالت میانی بین طرفین است و ما به این برنامههای هوشمند به منظور تایید و اقدام بر اساس منطق، اعتماد میکنیم. مزیتهای قراردادهای هوشمند عبارتند از:
- لزومی بر بکارگیری سازمانهای واسط جهت بازرسی، تایید و نظارت وجود ندارد.
- به علت حفظ واسط نظارتی (Regulatory Interface)، سرعت افزایش مییابد و ارتباط همتا به همتا میشود.
- طرفین، خطرپذیری کمتری را تجربه می کنند.
طرح مسئله سنتی رایگیری
انتخابات یک فرآیند تصمیمگیری رسمی است که طی آن مردم برای اداره امور عمومی خود شخص یا اشخاصی را برای مقامی رسمی به مدت معلوم بر میگزینند. به دموکراسیهای حال حاضر، دموکراسی نیابتی یا مردم سالاری گفته میشود. در ایران از دموکراسی با عنوان مردم سالاری دینی یاد میشود و به این معنی است که ارزشهای دینی و مذهبی نقش اساسی در حوزه عمومی و سیاسی جامعه ایفا میکنند.
انتخابات برای انتخاب مجریان و قانون گذاران به طور مستقیم و یا غیرمستقیم انجام می شود. فرآیند انتخابات در مقیاسهای بزرگ ملی تا مقیاسهای کوچکی در شرکتها و سازمانها برای انجمنهای مربوط انجام می گیرد. فارغ از هر نظام انتخاباتی، هر انتخابات مشخصاتی مانند حق رای، نامزدی، زمانبندی، کارزارهای انتخاباتی و غیره دارد. رای مردم باید به یک تصمیم سیاسی بدل شود. با شمارش آرا این تصمیم سیاسی تحقق مییابد. برای رایگیری تعرفههای مختلفی به کار برده میشود. در بیشتر کشورها، نظام اعلام نتایج و شمارش، یک نظام اکثریتی است؛ یعنی برنده انتخابات فرد یا افراد یا احزابی هستند که اکثریت مطلق آرا را به دست بیاورند. نظامهای رایگیری متفاوت در کیفیت شاخصههایی چون؛ برگه و تعرفه رای، افراد مجاز به رای دادن، شیوه شمارش آرا با یکدیگر اختلاف دارند.
به طور کلی شایع ترین دلیل عدم تطابق انتخابات با استانداردهای بین المللی نظیر ‘آزاد و عادلانه’ بودن، دخالت دولتهای مستقر در انتخابات در دنیای یاد شده است که میتوانند با بکارگیری قدرت اجرایی در قدرت بمانند. در نبود آزادی برای رسانهها و جانبداریهای بعضی رسانهها، مردم دچار کج فهمی و نقصان اطلاعات شوند و برای یک نگاه خاصی تبلیغ میشود. رد صلاحیتهای نامزدهای رقیب و ایجاد محدودیتهای مستقیم و غیرمستقیم میتواند باعث تغییر نتیجه به سود دولت و افراد مستقر در قدرت شود. وارد کردن اتهامات به ستادها و تحت فشار گذاشتن آنها هم از مشکلات دیگر انتخابات است. تقلب و دستکاری در مکانیزم انتخابات هم یکی از مهمترین اتهامات به انتخابات است.
رایگیری الکترونیکی با روشی مبتنی بر بلاکچین
در یک رایگیری الکترونیکی، باید جامعیت و تمامیت دادهها حفظ شود، کاربران گمنام و داده ها محرمانه بمانند. همان طور که مشاهده کردیم آدرس تراکنشها از اطلاعات شخصی و حساسی مثل کد شناسایی ملی تولید نمیشوند. این تراکنشها قابل تایید، در دسترس عموم و برای جعل کردن بسیار سخت هستند. بلاکچین در اینجا میتواند به کمک ما بیاید و جامعیت و تمامیت دادهها، گمنامی کاربران و محرمانگی داده همچنین به جهت اطمینان از حق رای افراد باید احراز هویت وجود داشته باشد. اما ملاکهای یک رایگیری الکترونیکی چیست؟ و چگونه میتوان با استفاده از بلاکچین روشی مقرون را توسعه داد که به کمک آن بتوان در مقیاس بزرگ تراکنشها را مدیریت و به طور رسمی تایید کرد؟
در ادامه یک نظام رایگیری مبتنی بر بلاکچین، با استفاده از نظام احراز هویت دولتی را بررسی میکنیم.
الزامات علمی و نظری رای گیری با بلاکچین
طرح رای گیری الکترونیکی امن باید شرایط و الزامات علمی و نظری زیر را دارا باشد:
- تنها افراد واجد شرایط میتوانند رای بدهند.
- هیچ رای دهندهای نمیتواند بیش از یکبار رای بدهد.
- هیچکس نباید ارزش رای فرد دیگری را تعیین کند.
- هیچکس نمیتواند تکراری رای بدهد.
- رای دهندگان تایید کنند که رای آنها شمرده شده است.
چهار رکن اصلی
سازمان احراز هویت
برای هر رایگیری یک سازمان احراز هویت لازم است. سازمان احراز هویت (Authentication Organization) مثل کمیته ملی انتخابات، سازمانی است که لیست رایدر اختیار دارد. رایگیری الکترونیکی در انتخابات ریاست جمهوری، قرارهای کاری سهامداران و شرکتها و موارد دیگر به همانطور که میدانیم، همه میتوانند در بلاک چین تراکنش انجام دهند. اما نظام رای گیری تنها به رای دهندگان مجاز اجازه تراکنش یا به عبارتی رای دادن می دهد. پس احراز هویت برای یک کاربر الزامی است اما برای این کار با سه مشکل روبرو هستیم:
- مرکز احراز هویت فقط باید حق انتخاب کاربران را بررسی کند و نباید متوجه شود که چه کسی به چه کسی رای داده است.
- از آن جایی که مرکز احراز هویت، لیست رای دهندگان را دارد می تواند در تعداد رای دهندگان دستکاری کند.
- مرکز احراز هویت میتواند بلاکچین را در راهی که خودش می خواهد جعل کند.
شخص ثالث مورد اعتماد (TTP)
به دلیل مشکلاتی که در بالا ذکر شد، یک شخص ثالث مورد اعتماد (Trusted Third Party) را حل معرفی میکنیم. در واقع، شخص ثالث مورد اعتماد، وظیفه چک کردن اینکه یک رای دهنده مجاز به رای دادن هست یا خیر را بر عهده دارد. این عمل به وسیله گزارش دادن اعلام یک رای از سوی رای دهنده به یک مرکز احراز هویت انجام میپذیرد. یک «پیام هش شده» برای احراز هویت رای دهنده بدون افشای اطلاعات شناسایی، استفاده میشود. رای دهنده پیام هش شده خود را به مرکز احراز هویت میفرستد. سپس هنگامی که مرکز احراز هویت، یک رای دهنده ثبت نام شده را احراز هویت کرد، پیام هش شده را به اطلاعات شخصی رای دهنده نگاشت میکند. کد ملی در اختیار مرکز احراز هویت است ولی نباید در دسترس TTP یا در معرض عموم قرار بگیرد. در غیر این صورت شخص ثالث میتواند بفهمد که چه کسی به چه کسی رای داده است. پس یک پیام هش شده لازم است تا بدون اینکه به طور مستقیم اطلاعات شناسایی شخصی را فراهم و تبادل کنیم، رای دهنده مجاز را بین مرکز و شخص ثالث، شناسایی و احراز هویت کنیم.
رایدهنده: رای دهنده رکن سوم این نظام است که عمل اصلی در این نظام یعنی دادن رای و مشروعیت بخشیدن به رایگیری را انجام میدهد.همان طور که گفتیم رای دهنده با اعلام درخواست رای، مجوز و حق رای صادر میکند.
بلاک چین: در این مدل، تراکنشها در بلاک چین نگهداری میشود. راههای زیادی برای مدیریت بلاک چین وجود دارد. در اینجا دو راه را که برای مقاصد رایگیری مناسب به نظر میرسند، بیان میکنیم:
- عمل کردن با یک بلاکچین مستقل که توسط خود مسئولان رایگیری پشتیبانی میشود.
- استفاده از پروتکل بلاکچین بیتکوین
در این راه استفاده از پروتکل بلاکچین بیتکوین کارآمدتر به نظر میرسد. مسئولان برگزاری نگران تامین استخراجکنندگان خود نیستند. استفاده از این پروتکل سه مزیت دارد:
- از اجرای یک بلاکچین مستقل بینیاز هستیم و هزینهها بهتر مدیریت میشوند.
- ریسک کمتری برای جعل شدن تراکنشها وجود دارد.
- عملـــیات استــــــخراج (mining) هزینههایی دارد اما رای دهندگان میتوانند از مزایای مالیاتی برخوردار شوند. در نتیجه همزمان با به وجود آمدن یک تهییج برای مشارکت بیشتر، هزینهها پوشش مییابند.
مطالب مرتبط:
هش ریت (Hash Rate) به زبان ساده
فناوری بلاک چین چگونه کار می کند؟
استخراج بیت کوین چگونه انجام می شود؟
بهترین زبان های برنامه نویسی بلاک چین کدامند؟
منبع: مرکز تحقیقات بلاک چین