
In this video, we give a introduction of what is a finite field in math
In this video, we lay down the framework for the definition of field element definition
In this video, we add the implementation of Add and Negate operation for the field element
In this video, we add subtract operation and its code implementation on the field element
In this video, we add Multiply and power method to the field element
In this video, we give code to solve the problem left from last video and add a multiply by scalar method to field element
In this video, we change order and num from uint64 to big integer to prevent value overflow by huge number value
In this video, We test the code changed in last video, make sure the code logic is not broken by our changes
In this video, for any element k in the field with order p, we compute k ^ (p-1), the result will used for algorithm derivation in later videos
In this video, we introduce the concept of division for finite field, its the reverse multiply
In this video, we will use Fermat's little theorem to develop field element division
In this video, we give a simple introduction about elliptic curve
In this video, we show how to use code to implement a point on elliptic curve
In this video, we show how to use code to check given point(x,y) it is on given elliptic curve or not
In this video, we define how to do addition on two points from elliptic curve
In this video, we use code to implement addition for points(one of the two is identity) on elliptic curve
In this video, we give mathematical derivation for A+B when A and B are not identity.
In this video, we give code for implementation for addition of points on elliptic curve, when two points are not identity
In this video, we give derivation about how to compute the slope of a tangent line on elliptic curve
In this video, we give code implementation for point addition when the adding two points are actually the
same point
In this video, we place the components in Point struct to FiniteField
In this video, we show how to use binary expansion to put 1 trillion times of addition into no more than 40 times
In this video, we give information about parameter setting for bitcoin elliptic curve, we give the generator
point for bitcoin and verify the point is on the curve
In this video, we show how generator point can create a set called group, and use code to verify the property of group
In this video, we give steps for signing and signature verification base on elliptic curve also known as ECSDA
In this video we give code implementation for verification of signature
In this video, we use code to implement the signing process, and verify the signing result by using the verify code we developed in last video
In this video, we introduce an encoding scheme call SEC to encode public key for network transition, we will use code to implement the uncompressed SEC format in this video
In this video, we introduce the algorithm for compute square value of a given finite field element, it will used in the design of compressed sec format
In this video, we show how to use code to implement sec compressed format
In this video, we show how to decode data in sec format into a public key
In this video, we introduce the DER encoding scheme for the encoding of signature
In this video, we show how to use code to implement the DER encoding scheme
In this video, we show how to use code to implement the base58 encoding algorithm
In this video, we show the code implementation for create a wallet address from public key
In this video, we show the conversion between network byte order and in memory byte order
In this video, we introduce a very important component named transaction in bitcoin
In this video, we show how to get the input count from raw data of transaction
In this video, we use code to implement the parsing the input count with variable length
In this video, we give framework code for parsing transaction output, and we will dive deep into it in later videos
In this video, we show how to use code to parse the transaction output from transaction raw data
In this video, we show how to use code to query transaction raw data from RPC provider
In this video, we introduce the basic structure of bitcoin script, make preparation for its parsing
In this video, we give code implementation for parsing script raw binary data
In this video, we show how to use code to implement the serialization of a script object
In this video, we introduce two's complement which is used for push value to stack when running bitcoin script
In this video, we use code to implement the two's complement value encoding and decoding
In this video, we convert the DER binary data for signature back to the signature object, it will be used by later sections
In this video, we use code to define bitcoin operation code
In this video, we use code to execute the bitcoin operation code with value OP_CHECKSIG, this operation is used to check the validity of given signature and message
In this video, we show how to use code to implement the script evaluation process and generate data for debug and test
In this video, we introduce the structure of p2pkh script
In this video, we show how to use code to construct a p2pkh script object
In this video, we add code to implement commands that will used by the p2pkh script and refactor the code
In this video, we debugging the p2pkh script evaluation process step by step
In this video, we show how to construct a script by using the ScriptSig of current transaction and ScriptPubKey of previous transaction output
In this video, we debugging the constructed script step by step
In this video, we introduce the first step for validate transaction that is make sure amount of inputs of the transaction is bigger than the amount of the output
In this video, we show how to use code to construct the signature message for script verification
In this video, we show how to use code to generate signature message and validate the whole transaction
In this video, we show how to generate wallet address from public key
in this video, we do the reverse of base58 encoding that is given the base58 encoded string we show how to get its original content
In this video, we show how to create inputs for a transaction
In this video, we show how to generate transaction output of a new transaction
In this video, we show to combine transaction input and output together to create a new transaction instance
In this video, we show how to broadcast a new transaction to blockchain network
In this video, we introduce to problems of p2pk transaction
In this code, we give code implementation for OP_CHECKMULTISIG
In this video, we use code to implement the verification of p2sh transaction
We fix some bugs before using code to implement the verification of p2sh transaction
In this video, we give code implementation of p2sh transaction verification
In this video, we show how to construct signature message for the verification of p2sh transaction
In this video, we have step by step for the debugging of a p2sh transaction verification process
in this video, we introduce a special transaction which is called coin base transaction
In this video, we introduce fields in the block header
In this video, we show how to use code to dissect block header
In this video, we introduce how bitcoin use proof of work to prevent cheating
In this video, we show how to compute the target value in order to meet the requirement for proof of work
In this video, we show how to use the bits field in block header to compute the difficulty level
In this video, we introduce the network packet structure for p2p communication between bitcoin nodes
In this video, we show how to use code to parse the p2p communication network packet for bitcoin nodes
In this video, we introduce the fields for version command payload
In this video, we show how to use code to simulate a bitcoin node and initialize the handshaking process with a bitcoin full node
bitcoin full node install instruction links:
https://bitcoin.org/en/download
https://bitcoin.org/en/full-node#setup-a-full-node
https://hub.docker.com/r/ruimarinho/bitcoin-core/
https://github.com/kylemanna/docker-bitcoind
In this video, we introduce a new packet with command as "getheaders" and give details about its fields
In this video, we give details code implementation about how to construct packet with command as "getheaders"
in this video, we give details about the response data structure for packet of "getheaders"
In this video, we show how to use code to parse response data for getheaders packet
In this video, we give code for communicating with bitcoin full node for get headers packets and show the packet communication process by debugging the code step by step
Welcome to the ultimate journey into the heart of Bitcoin development!
In this comprehensive course, you’ll dive deep into blockchain technology and cryptocurrency by harnessing the power of the Go programming language.
Bitcoin, the revolutionary digital currency, has captured the imagination of developers around the world. Now it’s your turn to join the ranks of elite blockchain engineers by mastering every facet of Bitcoin development with Go.
What You’ll Learn
Elliptic Curve Cryptography – Understand the mathematics underpinning Bitcoin’s security model and implement it in Go.
SEC Format – Encode and decode keys and signatures using the Standards for Efficient Cryptography (SEC) format.
Transaction Essentials – Explore the inner workings of Bitcoin transactions, including input/output scripts, pay‑to‑public‑key (P2PK), and pay‑to‑public‑key‑hash (P2PKH).
Scripting Language – Work with Bitcoin’s powerful scripting language and unlock its potential in your own applications.
Transaction Validation and Creation – Master the art of building and validating Bitcoin transactions to ensure blockchain integrity.
Pay‑to‑Script‑Hash (P2SH) – Implement P2SH addresses and transactions, adding a new layer of flexibility.
Blockchain Basics – Build your own blockchain from scratch, covering blocks, proof‑of‑work, and the Merkle tree structure.
Segregated Witness (SegWit) – Understand the SegWit protocol upgrade and its impact on transaction malleability and scalability.
Why This Course
Hands‑On Learning – Reinforce your skills with real‑world coding exercises and projects.
Expert Instruction – Learn from an experienced Bitcoin developer and product manager with years of industry experience.
Career Advancement – Unlock new opportunities as a blockchain developer or engineer with deep knowledge of Bitcoin development.
Lifetime Access – Enjoy unlimited access to all course materials, including code samples and articles.
Who This Course Is For
Software developers interested in blockchain technology
Cryptocurrency enthusiasts eager to understand how Bitcoin works under the hood
Product managers looking to deepen their knowledge of blockchain
Prerequisites
Basic knowledge of the Go programming language
Familiarity with cryptographic concepts is helpful but not required
Don’t miss this opportunity to become a master Bitcoin developer with Go. Enroll now and start building your own Bitcoin library from scratch!