آموزش مبانی توسعه دهندگان بیت کوین 02: امضاهای رمزنگاری + دیجیتال

Bitcoin Developers Basics 02: Crypto + Digital Signatures

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: در رمزنگاری و امضاهای دیجیتالی که بیت کوین را ایمن نگه می‌دارند غوطه‌ور شوید توسعه‌دهندگانی که به دنبال یادگیری اصول اولیه بیت‌کوین هستند. و صرف یک تراکنش چند بیت کوین پیش نیازها: هیچ تجربه قبلی در زمینه بلاک چین یا رمزنگاری لازم نیست. فرض بر این است که شما با مطالب موجود در Base58 Developer Basics: Transactions, Scripts + SegWit آشنایی دارید برخی از دانش پایه پایتون و جبر مفید خواهد بود.

پس در مورد بیت کوین شنیده اید؟ تا به حال به این فکر کرده اید که در مورد داده ها در یک تراکنش چه می گذرد، یا چگونه بیت کوین قفل می شود و از یک دارنده به دارنده دیگر منتقل می شود؟


این دوره توسط مربی Base58 niftynei، شما را به بررسی عمیق فیلدها، بایت ها و اسکریپت هایی که داده های بلاک چین بیت کوین را تشکیل می دهند، می برد. به روشی متمرکز بر مهندس نرم‌افزار، همه چیزهایی را که برای ساختن تجزیه‌کننده تراکنش‌های بیت‌کوین خود باید بدانید، اسکریپت‌های قفل بیت‌کوین سفارشی خود را بنویسید و تراکنش‌هایتان را با قالب مدرن SegWit تطبیق دهید، بررسی می‌کنیم.


مرحله 1: بیایید با رمزنگاری منحنی بیضوی آشنا شویم

ابتدا می‌فهمیم که بلوک‌های سازنده برای ایجاد امضای دیجیتال در زنجیره‌های بلوکی چیست: منحنی‌های بیضوی! ما یک قدم بسیار اساسی در مورد نحوه عملکرد و کارکرد اینها از جایی که منحنی secp256k1 بیت کوین از کجا آمده است، انجام خواهیم داد. در نهایت چند کلید خصوصی را انتخاب می‌کنیم و یاد می‌گیریم که چگونه نسخه کلید عمومی آن را پیدا کنیم.

موضوعات: منحنی‌های بیضوی در زمینه‌های محدود، secp256k1، کلیدهای عمومی و خصوصی

مرحله 2: P2PK، P2PKH: قفل کردن بیت کوین تا کلیدهای عمومی

اکنون که تعدادی کلید خصوصی و عمومی در اختیار داریم، آماده‌ایم تا در مورد اسکریپت‌های استاندارد بیت‌کوین همراه با امضا بیاموزیم. ما تعدادی اسکریپت P2PK، P2PKH، و P2WPKH می نویسیم و بیت کوین را روی آنها قفل می کنیم (تا بعدا بتوانیم قفل آن را باز کنیم).


موضوعات: کلیدهای فشرده، P2PK، P2PKH، P2WPKH


مرحله 3: امضاهای دیجیتال

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

موضوعات: نمادهای دیجیتال، ECDSA


مرحله 4: آه کشیدن

اکنون که ECDSA را در اختیار داریم، آماده ایم امضا کنیم تا بیت کوینی را که روی کلیدهای عمومی خود قفل کرده ایم خرج کنیم. در اینجا ما از sighashes برای ساخت پیام امضا با ECDSA استفاده می کنیم. Sighashes روشی است که ما به داده‌ها در یک تراکنش متعهد می‌شویم تا از دستکاری هر شخص دیگری در داده‌ها در مسیر خود به یک بلوک جلوگیری کنیم.


موضوعات: Sighashes، SegWit، میراث، SIGHASH_ALL، SIGHASH_NONE، SIGHASH_SINGLE


مرحله 5: Multisig

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


موضوعات: چند علامت، OP_CHECKMULTISIG، اسکریپت


سرفصل ها و درس ها

معرفی Introduction

  • به مبانی توسعه دهنده بیت کوین Base 58 خوش آمدید: امضاهای دیجیتال Welcome To Base 58's Bitcoin Developer Basics: Digital Signatures

  • پیش نیازها و منابع اضافی Prerequisites and Additional Resources

  • اختیاری: بررسی اجمالی تجزیه و تحلیل اسکریپت بیت کوین و TX OPTIONAL: Bitcoin Script & TX Parsing Overview

خانه داری Housekeeping

  • آنچه شما برای این کلاس نیاز دارید What You'll Need for this Class

  • راه اندازی bitcoind + bitcoin-cli (نسخه مک) Setting Up bitcoind + bitcoin-cli (Mac edition)

  • تأیید بیت کوین (نسخه مک) Verifying bitcoind (Mac edition)

  • راه اندازی یک Replit جدید با bitcoind + bitcoin-cli (نسخه مرورگر) Setting up a new Replit with bitcoind + bitcoin-cli (Browser edition)

  • استفاده از Base58 Replit با بیت کوین + bitcoin-cli (نسخه مرورگر) Using the Base58 Replit with bitcoind + bitcoin-cli (Browser edition)

  • پروژه 1: راه اندازی یک نود بیت کوین Regtest (Replit) Project 1: Setting up a Regtest Bitcoin Node (Replit)

  • پروژه 1: راه حل//Walk-Through Project 1: Solution // Walk-Through

  • نحوه استفاده از Block Explorer How to Use a Block Explorer

  • با استفاده از Block Explorer Using a Block Explorer

  • محیط کدگذاری بیت کوین Nifty Nifty's Bitcoin Coding Environment

منحنی های بیضوی و secp256k1 Elliptic Curves And secp256k1

  • مقدمه ای بر منحنی های بیضوی + رمزنگاری Intro to Elliptic Curves + Cryptography

  • معادلات منحنی بیضوی Elliptic Curve Equations

  • دقیق تر: معادلات منحنی بیضوی More Rigorous: Elliptic Curve Equations

  • فیلدهای محدود Finite Fields

  • منحنی های بیضوی بر روی میدان های محدود Elliptic Curves Over Finite Fields

  • secp256k1 secp256k1

  • نقطه ژنراتور چیست؟ What is a Generator Point

  • رمزگذاری نقطه فشرده + غیر فشرده Compressed + Uncompressed Point Encodings

  • پایتون: پیاده سازی find_y Python: Implementing find_y

  • تجسم افزودن منحنی بیضوی Visualizing Elliptic Curve Addition

  • تجسم ضرب منحنی بیضوی Visualizing Elliptic Curve Multiplication

  • حساب منحنی بیضوی Elliptic Curve Arithmetic

کلیدهای عمومی با پایتون و بیت کوین Public Keys with Python & Bitcoin

  • نمای کلی بخش: ساخت اولین اسکریپت Pubkey ما Section Overview: Making our first Pubkey Script

  • ریاضی کلید عمومی با پایتون Public Key Math with Python

  • پروژه 2A: چالش های کلید عمومی/خصوصی secp256k1 Project 2A: secp256k1 public/private key challenges

  • Project 2A: Solution//Walk-Through Project 2A: Solution // Walk-Through

  • پروژه 2B: از کد خود استفاده کنید Project 2B: Use Your Code

  • آنچه رمزنگاری کلید عمومی ثابت می کند What Public Key Cryptography Proves

  • پرداخت به کلید عمومی Pay to Public Key

  • باز کردن قفل از اسکریپت بیت کوین Pay به Pubkey Unlocking from a Pay to Pubkey Bitcoin Script

  • پروژه 2B: P2PK Project 2B: P2PK

  • پروژه 2B: راه حل//Walk-Through Project 2B: Solution // Walk-Through

الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) Elliptic Curve Digital Signature Algorithm (ECDSA)

  • مقدمه ای بر الگوریتم های امضا Intro to Signing Algorithms

  • ECDSA ECDSA

  • معکوس های ضربی در میدان های محدود Multiplicative Inverses on Finite Fields

  • ECDSA: ایجاد یک امضا ECDSA: Making a Signature

  • ECDSA: تأیید یک امضا ECDSA: Verifying a Signature

  • پروژه 3: ECDSA Sign + Verify Project 3: ECDSA Sign + Verify

  • پروژه 3: راه حل//Walk-Through Project 3: Solution // Walk-Through

  • امضاهای رمزگذاری شده DER DER Encoded Signatures

  • پروژه 4: تجزیه کننده های رمزگذاری DER Project 4: DER Encoding Parsers

  • پروژه 4: راه حل//Walk-Through Project 4: Solution // Walk-Through

  • Low-S در امضاهای ECDSA Low-S in ECDSA Signatures

ایجاد خلاصه پیام از تراکنش های بیت کوین (میراث) Creating Message Digests from Bitcoin Transactions (Legacy)

  • تایید امضای تراکنش بیت کوین Verifying the Signature of a Bitcoin Transaction

  • تأیید امضای تراکنش بیت کوین، ادامه یافت Verifying the Signature of a Bitcoin Transaction, continued

  • راه اندازی نمونه سیقاش (سه ورودی، دو خروجی) Sighash Example Setup (Three Inputs, Two Outputs)

  • SIGHASH_ALL ساخت خلاصه پیام SIGHASH_ALL Message Digest Construction

  • SIGHASH_SINGLE ساخت خلاصه پیام SIGHASH_SINGLE Message Digest Construction

  • SIGHASH_NONE ساخت خلاصه پیام SIGHASH_NONE Message Digest Construction

  • تبدیل خلاصه ها به امضا Turning Digests into Signatures

  • SIGHASH_SINGLE: قاب لبه کشنده SIGHASH_SINGLE: Fatal edge case

  • SIGHASH_ANYONECANPAY SIGHASH_ANYONECANPAY

  • پروژه 5a: صیغش ساز Project 5a: SIGHASH Builder

  • پروژه 5a: راه حل//راه رفتن - از طریق Project 5a: Solution // Walk - Through

  • پروژه 5b: سرقت ورودی SIGHASH_SINGLE معیوب Project 5b: Stealing a faulty SIGHASH_SINGLE input

  • پروژه 5b: راه حل//راه رفتن - از طریق Project 5b: Solution // Walk - Through

پرداخت به هش کلید عمومی (Legacy + SegWit) Paying to Public Key Hashes (Legacy + SegWit)

  • P2PKH P2PKH

  • ساختن P2PKH Building a P2PKH

  • خرج کردن P2PKH Spending a P2PKH

  • P2PKH P2PKH

  • P2WPKH P2WPKH

  • P2WPKH P2WPKH

ایجاد خلاصه پیام از تراکنش های بیت کوین (SegWit) Creating Message Digests from Bitcoin Transactions (SegWit)

  • BIP143 الگوی صیغه BIP143 Sighash Algo

  • کدهای اسکریپت BIP143 BIP143 ScriptCodes

  • امضا و ارسال خلاصه سیغاش Signing and Sending the Sighash Digest

  • BIP143: پرچم های سیقاش (هیچ، تک، ACP) BIP143: Sighash Flags (NONE, SINGLE, ACP)

  • BIP143: چرا از هش استفاده کنیم؟ (hashPrevouts/hashSequence/hashOutputs) BIP143: Why use hashes? (hashPrevouts/hashSequence/hashOutputs)

  • SegWit Sighashes را وارد کنید: BIP143 Enter SegWit Sighashes: BIP143

  • پروژه 6: پیاده سازی Segwit v0 Sighash Project 6: Segwit v0 Sighash Implementation

  • پروژه 6: راه حل//Walk-Through Project 6: Solution // Walk-Through

  • پروژه 6b: صرف یک P2WPKH Project 6b: Spending a P2WPKH

  • پروژه 6b: راه حل//Walk-Through Project 6b: Solution // Walk-Through

چند علامت (OP_CHECKMULTISIG) Multisigs (OP_CHECKMULTISIG)

  • معرفی Multisig + Thresholds Intro to Multisig + Thresholds

  • ساخت اسکریپت OP-CHECKMULTISIG Making a OP-CHECKMULTISIG script

  • نوشتن یک Tx برای صرف خروجی های Multisig Writing a Tx to Spend Multisig Outputs

  • مولتی سیگ خرج کردن (مولتی سیگ خالی، P2SH، P2WSH) Spending Multisig (bare multisig, P2SH, P2WSH)

  • Witness Stack Data در مقابل داده ScriptSig Witness Stack Data vs ScriptSig Data

  • OP-CHECKMULTISIG اجرای اسکریپت پیاده روی OP-CHECKMULTISIG Script Execution Walk Through

  • امتحان نهایی: یک P2WSH Multisig خرج کنید Final Exam: Spend a P2WSH Multisig

خلاصه: دوره امضای دیجیتال بیت کوین Wrap Up: Bitcoin Digital Signatures Course

  • خلاصه ای از آنچه یاد گرفته ایم و ساخته ایم Recap of What We've Learned and Built

  • مراحل بعدی در مسیر شما به سمت جادوگری بیت کوین Next Steps on Your Path to Bitcoin Wizardry

  • متشکرم! Thank You!

نمایش نظرات

آموزش مبانی توسعه دهندگان بیت کوین 02: امضاهای رمزنگاری + دیجیتال
جزییات دوره
9.5 hours
80
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,036
4.8 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

niftynei Base58⛓️? niftynei Base58⛓️?

مهندس پروتکل رعد و برق در Blockstream