بیت کوین اسکریپت(Bitcoin Script): زبان برنامه نویسی بیت کوین
0

بیت کوین اسکریپت(Bitcoin Script): زبان برنامه نویسی بیت کوین

بازدید : 417

بیت کوین اسکریپت (Bitcoin Script) زبانی است که بیت کوین برای انجام هر کاری از آن استفاده می کند ، از ارسال پول از کیف پول گرفته تا اجازه ایجاد حساب های چند کاربره. همه این قابلیت های موجود در یک ابزار ساده، قابل توسعه و قدرتمند است که در ادامه خواهیم شناخت.

بیت کوین اسکریپت (Bitcoin Script) چیست؟

Bitcoin Script ، یک زبان برنامه نویسی ساده است که در Bitcoin برای پردازش تراکنش ها استفاده می شود. این زبان بر اساس یک سری ساختارهای خطی است که به عنوان stack شناخته می شوند و حاوی داده های موجود به ترتیب LIFO (Last In – Firt Out) هستند. یعنی آخرین ورودی به عنوان اولین خروجی پردازش می شود .هر دستورالعمل در این زبان به طور متوالی یکی پس از دیگری اجرا می شود.

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

بیت کوین اسکریپت ، یک زبان برنامه نویسی ضروری است زیرا به ما امکان می دهد برنامه بنویسیم و کامپیوترها خواسته های ما را اجرا می کنند. در بیت کوین به منظور برقراری ارتباط با خواسته های ما ، کدهای عملیاتی (OP CODES) ، عملکردهای مختلفی را ارائه می دهند. مانند دستکاری حافظه ، عملیات ریاضی ، حلقه ها ، فراخوانی ها و بسیاری موارد دیگر.

بنابراین ، Bitcoin Script اساساً مجموعه ای از دستورالعمل های برنامه ریزی شده است که با هر تراکنش انجام شده کار می کند. این دستورالعمل ها نحوه دسترسی کاربران و استفاده از بیت کوین های موجود در شبکه را توصیف می کند.

OP_CODE یا کد عملیاتی چیست؟

در محاسبات ، OP_CODE (کد عملیاتی) بخشی از دستورالعمل زبان ماشین است که عملیاتی را که باید انجام شود مشخص می کند. مشخصات و قالب آن توسط معماری مجموعه دستورالعمل (ISA) از مولفه پردازش کننده دستورالعمل تعیین می شود. به طور کلی این پردازش توسط سخت افزار رایانه (معمولاً CPU) انجام می شود.

اما همچنین می تواند نرم افزاری باشد که مخصوصاً برای شبیه سازی عملکرد پردازنده و پردازش این دستورالعمل ها تهیه شده است. به طور کلی ، یک دستورالعمل کامل زبان ماشین شامل OP_CODE و به صورت اختیاری ، مشخصات یک یا چند عملوند است که کد عملکرد باید بر اساس آن عمل کند.

نقش آپ کد در بیت کوین

در بیت کوین و بسیاری از ارزهای رمزنگاری شده دیگر ، OP_CODE ها ستون فقرات سیستم است که به شما امکان می دهد دستورالعمل های تراکنش را برنامه ریزی کنید. بیاد داشته باشیم که بیت کوین (و سایر ارزهای رمزپایه حاصل از آن) پول قابل برنامه ریزی است. و در اینجا کلمه کلیدی “قابل برنامه ریزی” است ، زیرا Bitcoin Script در واقع یک زبان برنامه نویسی است که در آن دستورالعمل هایی به صورت آپ کد داده می شود که شبکه بیت کوین قبلاً برای عملکرد خود تعریف کرده است. در حقیقت ، با توجه به ساختاری که بیت کوین در آن ایجاد شده است ، امکان تعریف 256 OP_CODE وجود دارد که متشکل از تعداد 0 تا 255 است. از این 256 OP_CODE ، در مجموع 116 تا در حال حاضر فعال هستند.

این OP_CODE ها به شما امکان می دهد عملیات مختلفی را در بیت کوین و برنامه ریزی تراکنش های آن مانند کنترل جریان داده ، مدیریت ثابتها ، مدیریت پشته ، مدیریت منطقی ، حساب ، time lock، عملیات رمزنگاری و رزرو شده انجام دهید. می توانید لیست کاملی و به روز شده از OP_CODEهای مختلف را مستقیماً در کد بیت کوین مشاهده کنید.

OP_CODE ها در بیت کوین اسکریپت (Bitcoin Script)

scritpSig و scriptPubKey : بخشهای اساسی بیت کوین اسکریپت

در شبکه بیت کوین ، هر اسکریپت بیت کوین به دو نوع اسکریپت ، scriptSig و scriptPubKey تقسیم می شود.

scriptSig

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

[irp posts=”4899″ name=”امضای دیجیتال (Digital Signature) چیست؟”]

scriptPubKey

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

[irp posts=”5105″ name=”تابع هش در بلاکچین”]

هدف از ایجاد اسکریپت

هدف از ایجاد یک زبان اسکریپت در بیت کوین ارائه یک سری پارامترهای آسان و انعطاف پذیر برای فعال کردن یک تراکنش است. بنابراین وقتی Satoshi Nakamoto بیت کوین را توسعه داد ، عملکردهای مختلف از جمله ضرب را غیرفعال کرد. بنابراین بیت کوین اسکریپت از نظر برنامه نویسی ساده نگه داشته می شود. این زبان برنامه نویسی است که تعیین می کند عملیاتی انجام شود یا خیر. یعنی اگر این عمل برای انتقال وجوه مجاز باشد.

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

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

نمونه ای از اسکریپت بیت کوین

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

مثال: تراکنش ها در بیت کوین با استفاده از اسکریپت P2PKH

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

به عنوان مثال ، اگر می خواهیم تراکنشی انجام دهیم ، اسکریپت مربوط به آن به شرح زیر است:

نمونه ای از بیت کوین اسکریپت (Bitcoin Script)

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

توضیح کامل تراکنش

اسکریپت قبلی بیت کوین در دو قسمت مشخص شده است: scriptPubKey و scriptSig.

برای scriptPubKey ، اقداماتی برای انجام وجود دارد ، در حالی که scriptSig حاوی امضا و کلید عمومی برای تأیید صحت این اقدامات است. این موارد اطمینان می دهد فقط کسانی که به وجوه دسترسی دارند می توانند با آنها هر عملیاتی را انجام دهند. از طرف دیگر ، OP_CODEهایی در این عملیات وجود دارد که به شرح زیر است:

OP_DUP: آیتم موجود در بالای پشته بالا را کپی میکند.

OP_HASH160: ورودی دو بار رمزگذاری می شود: ابتدا با SHA-256 و سپس با RIPEMD-160.

OP_EQUALVERIFY: تأیید میکند که داده های وارد شده صحیح و معتبر هستند.

OP_CHECKSIG: خروجی ها ، ورودی ها و اسکریپت کل تراکنش در یک هش خلاصه می شود. امضای استفاده شده باید یک امضای معتبر برای این هش باشد و باید در کنار کلید عمومی باشد.

آنچه در هنگام اجرای اسکریپت اتفاق می افتد به شرح زیر است:

  • ابتدا ، کلید عمومی اصلی مالک پول (که در scriptSig است) کپی می شود.
  • سپس کلید عمومی کپی شده یک فرآیند هش کردن را طی می کند. در این فرآیند ، ابتدا یک هش SHA-256 و یک RIPEMD-160 به نتیجه اعمال می شود.
  • نتیجه هش ها با هش کلید عمومی که در scriptPubKey وجود دارد مقایسه می شوند تا مطمئن شوید EQUALVERIFY است (یعنی همان کلید است و معتبر است).
  • اگر مطابقت داشته باشد ، اسکریپت همچنان اجرا می شود و CHECKSIG برای تأیید امضا با کلید عمومی انجام می شود.
  • به این ترتیب ، هر آنچه در کد نشان داده شده است ، به روشی ایمن و برنامه ریزی شده انجام می شود.
اجرای اسکریپت در بیت کوین اسکریپت (Bitcoin Script)

 زبان قرارداد هوشمند بیت کوین

بسیاری از افراد تصور می کنند که بیت کوین قادر به اجرای قراردادهای هوشمند نیست. واقعیت این است که این درست نیست ، زیرا با Bitcoin Script می توانید قراردادهای هوشمند ایجاد کنید. ولی مطمئناً توانایی های شما در مقایسه با آنچه می توانید با اتریوم انجام دهید محدود است ، اما این بدان معنا نیست که Bitcoin Script توانایی ایجاد قراردادهای هوشمند را ندارد.

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

اهمیت این محافظت ها این است که با اسکریپت بیت کوین، ایجاد اسکریپت هایی که برای همیشه اجرا شوند غیرممکن است. در حقیقت ، اسکریپتی که برای همیشه اجرا شود ، درهای حمله به شبکه را با استفاده از حمله (DoS) باز می کند.

اما این واقعیت که Bitcoin Script این نوع عملیات را محدود می کند و شبکه را از چنین حملاتی محافظت می کند. بنابراین هیچ شانسی وجود ندارد که یک برنامه اسکریپت با یک حلقه مداوم بتواند از عملکرد صحیح بیت کوین جلوگیری کند.

امکانات بیت کوین اسکریپت

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

نتیجه مطلب

Bitcoin Script ، یک زبان برنامه نویسی ساده است که در Bitcoin برای پردازش تراکنش ها استفاده می شود. Bitcoin Script اساساً مجموعه ای از دستورالعمل های برنامه ریزی شده است که با هر تراکنش انجام شده کار می کند. این دستورالعمل ها نحوه دسترسی کاربران و استفاده از بیت کوین های موجود در شبکه را توصیف می کند.

 

0
0
برای اینکه به فکت این مقاله کمک کنید روی دکمه زیر کلیک کنید و تا افراد بیشتری آن را دنبال کنند
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه نظرات
محل تبلیغ
محاسبه‌گر ارزهای دیجیتال
ارز معادل
تومان

محاسبه با مبلغ تتر : تومان

0
نظر خود را بنویسید !x