php editor Baicao will analyze the principles and technical details of the Ordinal inscription protocol in detail. The Ordinal inscription protocol is an encryption protocol used to protect data transmission. It uses advanced encryption algorithms and authentication mechanisms to ensure the security and integrity of data during transmission. This article will introduce the basic principles of the Ordinal inscription protocol, including core technologies such as key exchange, encryption algorithms, and message authentication codes, and deeply explore its application in network communications. Whether you are a beginner or a professional, reading this article will help you gain a deeper understanding of the Ordinal protocol.
Blockchain is a multi-user accounting technology, which can also be called a distributed database. It organizes records into blocks in chronological order and expands the ledger.
We used excel to make a table to illustrate how the blockchain works. An excel file represents a blockchain, in which each separate table represents a block. The blocks are in chronological order from 560331, 560332. to the latest 560336. 560336 will package the latest transactions in the block. The main part of the block is the most common double-entry accounting method in the accounting field. The address on one side is recorded as debit (debit), which is inputs from, and the address on the other side is recorded as credit (credit), which is outputs to. Value corresponds to the number of BTC in the corresponding address. The number of Inputs coins will be greater than the number of Outputs coins, and the difference is the transfer fee at the user level and the handling fee obtained by the miners (bookkeepers). The block header will obtain the height of the previous block, the hash value of the previous block, the creation time (timestamp) of this block, and a random number. So as a decentralized accounting technology, who will grab the accounting rights of the next block? It relies on this random number and its corresponding hash value. Miners with computing power perform a hash calculation on the random number of the current block. The miner who first obtains the hash value that meets the conditions has the accounting rights of the next block and wins the block reward and transfer fee. Finally, there is the script area, which can be used for some extended applications. For example, the script op_return can be used as a postscript column. It should be noted that in the actual block, the script area is attached to the input and output information, rather than really being a separate area. For example, the script attached to the input is an unlocking script (ScriptSig), which requires the wallet address for private key signature authorization to allow transfer, while the script attached to the output is a locking script (ScriptPubKey), which is used to set the unlocking conditions for receiving the BTC (generally The condition is "only those with the corresponding private key can consume").
The original input and output data structure tables show the accompanying parameters of the transaction information. Among them, the unlocking script (ScriptSig) is part of the private key authorization and is also called "witness data".
While the Bitcoin network has been running for over 10 years without significant incidents, transaction costs have repeatedly spiked to highs that are no longer feasible. As a result, Bitcoin developers have been discussing how to best scale the network to handle growing transaction volumes in the future.
In 2017, the Bitcoin development community was divided into two factions. One faction supported the SegWit function of soft forks, and the other advocated directly expanding the block size, known as the "big block" faction. The split sparked heated debate.
We mentioned above that the unlocking script needs to use private key authorization to generate "witness data", so can this witness data be separated from the block, thereby increasing the capacity of each block in disguise? What about the number of transactions? Segregated Witness was officially activated in August 2017. Its implementation is to divide all transaction data into two parts, one part is the basic information of the transaction (Transaction Data), the other part is the signature information of the transaction (Witness Data), and save the signature information in a new data structure , is in a new block called "segregated witness (witness)" and is transmitted separately from the original transaction.
Technically, the implementation of SegWit means that transactions no longer need to include witness data (it will not occupy the 1MB space originally arranged by Bitcoin for blocks). Instead, at the end of a block, an additional separate space is created for witness data. It supports arbitrary data transfers and has a discounted "block weight" that cleverly keeps large amounts of data within Bitcoin's block size limits to avoid the need for a hard fork. In this way, the upper limit of the transaction data size of Bitcoin transactions is increased, while the transaction fee of signature data is reduced. Before the SegWit upgrade, the upper limit of Bitcoin's capacity was 1MB. After SegWit, although the upper limit of pure transactions was still 1M, the size of the Segregated Witness space reached 4MB.
Taproot was implemented in November 2021 and consists of 3 different Bitcoin Improvement Proposals (BIPs), including: Taproot, Tapscript and its new digital signature scheme called "Schnorr Signature". Taproot is designed to bring many benefits to Bitcoin users, such as increased transaction privacy and lower transaction fees. It will also allow Bitcoin to perform more complex transactions, thereby broadening application scenarios (some new opcodes have been added).
These updates are a key enabler for Ordinals NFT, which stores NFT data in a spend script in the Taproot script path (witness data space). This upgrade makes it easier to structure and store arbitrary witness data, laying the foundation for the "ord" standard. As data requirements are relaxed, it is assumed that a transaction can fill an entire block with its transaction and witness data - reaching the 4MB block size (witness data space) limit - greatly expanding the types of media that can be placed on the chain. .
Some people may ask, since some strings are put in the script, are there no restrictions on these strings? What if these scripts are actually executed? If you put the content casually, will there be an error code that refuses to produce a block? This brings up the OP_FALSE instruction. OP_FALSE (also represented as "0" in Bitcoin Script) ensures that the execution path in the scripting language never enters the OP_IF branch and remains unexecuted. It acts as a placeholder or no operation (No Operation) in the script, similar to a "comment" in a high-level language, to ensure that subsequent code is not executed.
The above is the detailed content of Discussion of the principles and technical details of the Ordinal inscription protocol. For more information, please follow other related articles on the PHP Chinese website!