اسکریپت قفل P2PK یا Pay To Public Key ، قدیمی‌ترین و ابتدایی‌ترین اسکریپت قفل بیت‌کوین است که مستقیماً توسط ساتوشی ناکاموتو در اولین نسخه بیت‌کوین توسعه داده شد. این به ما امکان می دهد تا با استفاده از نسخه توسعه یافته یک کلید عمومی به جای هش آن، پرداخت های بیت کوین را انجام دهیم، همانطور که در حال حاضر در مورد اسکریپت استاندارد P2PKH (پرداخت به هش کلید عمومی) وجود دارد.

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

P2PK چگونه کار می کند؟

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

در P2PK، آن آدرس بیت کوین (که معمولاً با “۱”، “۳” یا “bc1” شروع می شود)، یعنی رمزگذاری نشده است. به این ترتیب آدرس به عنوان کلید عمومی کامل باقی می ماند که شکلی شبیه به این خواهد داشت:

۰۴۹۶b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947

be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee

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

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

توضیح فرآیند عملکرد یک P2PK

تفاوت در فرآیند ارسال بین P2PK و P2PKH در نحوه عملکرد اسکریپت های مسدود کننده است و ما این جزئیات را در زیر توضیح می دهیم:

اول از همه، در P2PK نیازی به رمزگذاری کلید عمومی نیست. در عوض، ما فقط باید کلید کامل گفته شده را کپی کنیم، آن را در اسکریپت بیت کوین قرار دهیم و می توانیم تراکنش را ارسال کنیم. اسکریپت P2PK برای ارسال (یا مسدود کردن بیت کوین) به شکل زیر است:

اسکریپت مسدود کردن (scritpPubKey) : <کلید عمومی برای ارسال> OP_CHECKSIG

این بدان معناست که برای باز کردن قفل بیت کوین های گفته شده و قادر به استفاده از آنها، باید یک امضای دیجیتال معتبر برای کلید عمومی که داده ایم ارائه دهیم، همانطور که در scriptSig می بینیم که شکل زیر را دارد:

باز کردن اسکریپت (scriptSig): <SIGNATURE> (امضای دیجیتال معتبر)

با این حال، در یک P2PKH این کمی تغییر می کند و اسکریپت مسدود کننده به صورت زیر نوشته می شود:

اسکریپت مسدود کردن (scritpPubKey): OP_DUP OP_HASH160 <Public Key Hash> OP_EQUALVERIFY OP_CHECKSIG

و باز کردن قفل آن به وسیله:

باز کردن اسکریپت (scriptSig): <SIGNATURE> <Public Key>

این بدان معنی است که ما باید یک کلید عمومی ارائه دهیم، آن را کپی کنیم، آن را هش کنیم، تأیید کنیم که هش کلید عمومی تحویل داده شده است و امضاهای دیجیتال را تأیید کنیم تا بتوانیم از بیت کوین ها در آن آدرس استفاده کنیم.

همانطور که می بینید، P2PK یک گزینه بسیار ساده تر و از نظر محاسباتی کم هزینه تر است. با این حال، P2PK یک اسکریپت مسدودکننده است که امروزه در دنیای بیت کوین به ندرت مورد استفاده قرار می گیرد، و دلیل آن را در زیر توضیح خواهیم داد.

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

جوانب مثبت و منفی P2PK

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

  1. این اسکریپت بسیار ساده‌تر و از نظر محاسباتی ارزان‌تر از P2PKH است.
  2. این به طور گسترده ای سازگار است، همه نسخه های Bitcoin Core از این اسکریپت پشتیبانی می کنند، زیرا این اسکریپت اساس عملکرد آن از زمان شروع آن است.

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

  1. این خطر که رمزنگاری منحنی بیضوی می تواند به لطف اجرای موفقیت آمیز یک الگوریتم Shor اصلاح شده برای حل مشکل لگاریتم گسسته در منحنی های بیضوی کاملاً به خطر بیفتد. این وضعیتی است که نمایش کلیدهای عمومی مانند P2PK آن آدرس ها را آسیب پذیر می کند. برای جلوگیری از این امر، ناکاموتو تصمیم گرفت از هش کلید عمومی توسط فرآیندی استفاده کند که یک لایه امنیتی اضافی به این فرآیند اضافه می کند و این مشکل را حل می کند. در واقع، در نسخه اولیه بیت کوین، هر دو روش P2PK و P2PKH کاملاً قابل استفاده بودند.
  2. گسترش کوتاهتر P2PKH عامل دیگری به نفع کنار گذاشتن P2PK بود، نه تنها برای گسترش، بلکه برای ذخیره تراکنش ها و بهبود مقیاس پذیری بیت کوین.
  3. طول کلیدهای عمومی به جای آدرس های معمول بیت کوین یعنی ۳۴ کاراکتر، ۱۳۰ کاراکتر است. این بدان معناست که P2PK هنگام تأیید صحیح بودن آدرس ها به دقت بیشتری نیاز دارد، زیرا در غیر این صورت ممکن است وجوه به طور غیرقابل برگشتی از بین برود. به راحتی می توانید ببینید که یک آدرس با ۱ شروع می شود و می دانید که آدرس بیت کوین است یا آخرین کاراکترها را چک می کند تا ببینید آیا آدرس تغییر کرده است یا خیر .