<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bitcoinsv.io/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Daniel</id>
	<title>Bitcoin Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bitcoinsv.io/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Daniel"/>
	<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php/Special:Contributions/Daniel"/>
	<updated>2026-06-01T22:19:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Payment_Channels&amp;diff=2461</id>
		<title>Payment Channels</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Payment_Channels&amp;diff=2461"/>
		<updated>2020-05-05T13:03:10Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Payment Channels'' are a mechanism where two or more parties can directly and trustlessly exchange and update a transaction. The mechanism includes methods for establishing, or opening, a payment channel, updating the channel, and finalizing, or closing, the payment channel. The mechanism also covers the possibility of any of the parties becoming unresponsive, usually by enabling the recovery of funds after a fixed time.&lt;br /&gt;
&lt;br /&gt;
Payment channels support extremely rapid transaction updates with only the final closing transaction being confirmed in the blockchain.&lt;br /&gt;
&lt;br /&gt;
Payment channels can be useful for streaming data, operating a sequence of events or operating with a live dataset in applications such as gaming and more.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
*Payment channels can be opened and closed arbitrarily&lt;br /&gt;
*Payment channels can be opened directly with the participating peers, without needing a third party&lt;br /&gt;
*It is possible to open a payment channel with or without an on-chain action&lt;br /&gt;
*Payment channels can be private or public&lt;br /&gt;
*You can have many peers in a channel&lt;br /&gt;
*You can add and remove peers from a channel&lt;br /&gt;
*Payment channels are data conduits&lt;br /&gt;
*Channels are typically closed with an on-chain payment however an on-chain payment can be made outside the channel which causes it to update&lt;br /&gt;
&lt;br /&gt;
==Overview of the Mechanism==&lt;br /&gt;
A payment channel typically uses a transaction that has an [[nSequence]] that is less than 0xFFFFFFFF. The transaction can be updated many times between the peers until the nSequence is finalised and one of the parties transmits the transaction to the blockchain.&lt;br /&gt;
&lt;br /&gt;
==Example - Streaming Movie==&lt;br /&gt;
The following goes through the sequence of opening, using and closing a payment channel for the purposes of serving streamed content.&lt;br /&gt;
&lt;br /&gt;
===STEP 1===&lt;br /&gt;
User browses catalog for titles to watch. Content can be on-chain or off-chain. &lt;br /&gt;
&lt;br /&gt;
===Step 2===&lt;br /&gt;
User selects the content. At this point, there can be a few ways to manage the channel:&lt;br /&gt;
*In public via mining network&lt;br /&gt;
*In private with pre-funded UTXO per channel&lt;br /&gt;
*In private with separate channels for content purchase and service delivery per user&lt;br /&gt;
&lt;br /&gt;
===Step 3===&lt;br /&gt;
In this example, peers will use a timelocked UTXO in a public channel managed by miners to serve the content.&lt;br /&gt;
For the sake of this example we will assume a single UTXO is being used. This UTXO goes into a double spend monitoring pool.&lt;br /&gt;
&lt;br /&gt;
The viewer sends a transaction with the following output script to the provider to initiate the channel:&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* S&amp;lt;sub&amp;gt;vn&amp;lt;/sub&amp;gt; is the Viewer's  nth iteration of the channel signature&lt;br /&gt;
* P&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt; is the Viewer's pubkey&lt;br /&gt;
* H&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt; is the Viewer's PKH&lt;br /&gt;
&lt;br /&gt;
* S&amp;lt;sub&amp;gt;pn&amp;lt;/sub&amp;gt; is the service provider's nth iteration of the channel signature&lt;br /&gt;
* P&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt; is the service provider's pubkey&lt;br /&gt;
* H&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt; is the service provider's PKH&lt;br /&gt;
* H&amp;lt;sub&amp;gt;c0&amp;lt;/sub&amp;gt; is the hash of the merkle root of the content being selected&lt;br /&gt;
* H&amp;lt;sub&amp;gt;cn&amp;lt;/sub&amp;gt; is the hash of each content frame with H&amp;lt;sub&amp;gt;c1&amp;lt;/sub&amp;gt; being the hash of the first frame&lt;br /&gt;
* C&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; is the content frame with C&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; being the first frame data&lt;br /&gt;
* H&amp;lt;sub&amp;gt;fm&amp;lt;/sub&amp;gt; is the hash of a message the user can trigger to prematurely end or pause the stream&lt;br /&gt;
* F&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; is a message that the provider uses to end the stream&lt;br /&gt;
&lt;br /&gt;
The sequence no. for the input being spent is still 1&lt;br /&gt;
&lt;br /&gt;
The transaction iterates between the two scripts as as follows:&lt;br /&gt;
&lt;br /&gt;
==Iteration 1==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script No.&lt;br /&gt;
! Purpose&lt;br /&gt;
! Script&lt;br /&gt;
! Amount&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Iteration 1: Content Request&lt;br /&gt;
| H&amp;lt;sub&amp;gt;c0&amp;lt;/sub&amp;gt; DROP DUP HASH160 H&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt; EQUALVERIFY CHECKSIGVERIFY EQUALVERIFY DUP HASH160 H&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt; EQUALVERIFY CHECKSIG&lt;br /&gt;
| Price of first frame&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Change&lt;br /&gt;
| Viewer's change script&lt;br /&gt;
| Change amount&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Viewer also supplies the following input script:&lt;br /&gt;
&lt;br /&gt;
*''S&amp;lt;sub&amp;gt;v0&amp;lt;/sub&amp;gt; P&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
which would allow the service provider to countersign the tx and settle on the network, guaranteeing payment for the first frame.&lt;br /&gt;
&lt;br /&gt;
The transaction pays out the price of the first frame to the service provider and the remainder is returned to the viewer as change. If the viewer cancels their session without watching, the transaction can still be processed on the network &lt;br /&gt;
&lt;br /&gt;
===Step 4===&lt;br /&gt;
The provider responds with a new version of the transaction that modifies the output as shown:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script No.&lt;br /&gt;
! Purpose&lt;br /&gt;
! Script&lt;br /&gt;
! Amount&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Iteration 2: First frame&lt;br /&gt;
| SHA256 H&amp;lt;sub&amp;gt;c1&amp;lt;/sub&amp;gt; EQUALVERIFY DUP HASH160 H&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt; EQUALVERIFY CHECKSIGVERIFY EQUALVERIFY DUP HASH160 H&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt; EQUALVERIFY CHECKSIG&lt;br /&gt;
| Price of second frame&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Change&lt;br /&gt;
| Viewer's change script&lt;br /&gt;
| Change amount&lt;br /&gt;
|}&lt;br /&gt;
In this iteration, they sign to indicate they have received the first frame and provide the streaming service with payment for the second frame. This can be optimized for each service provider's fee model. &lt;br /&gt;
&lt;br /&gt;
They also provide a new signature ''S&amp;lt;sub&amp;gt;p0&amp;lt;/sub&amp;gt;'' for this output, allowing the user to countersign should they need to close the channel.&lt;br /&gt;
&lt;br /&gt;
===Step 5===&lt;br /&gt;
The viewer completes the transaction as shown:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script No.&lt;br /&gt;
! Purpose&lt;br /&gt;
! Script&lt;br /&gt;
! Amount&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Iteration 2: First frame&lt;br /&gt;
| SHA256 ''H&amp;lt;sub&amp;gt;c2&amp;lt;/sub&amp;gt;'' EQUALVERIFY DUP HASH160 H&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt; EQUALVERIFY CHECKSIGVERIFY EQUALVERIFY DUP HASH160 H&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt; EQUALVERIFY CHECKSIG&lt;br /&gt;
| Price of second frame&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Change&lt;br /&gt;
| Viewer's change script&lt;br /&gt;
| Change amount&lt;br /&gt;
|}&lt;br /&gt;
As in the previous iteration, they sign to indicate they have received the frame and provide the streaming service with payment for the next frame. This can be optimized for each service provider's fee model. &lt;br /&gt;
&lt;br /&gt;
They also provide a new signature for this output, ''S&amp;lt;sub&amp;gt;v1&amp;lt;/sub&amp;gt;'', allowing the service provider to countersign should they need to close the channel. In this example, the keypairs being used don't need to change for each iteration, but they could.&lt;br /&gt;
&lt;br /&gt;
===Step N===&lt;br /&gt;
The user can request that the provider close the channel. Streams can also be paused, or take place at any framerate or even use larger transactions to move chunks at a time. &lt;br /&gt;
In this case the user is deciding to close it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script No.&lt;br /&gt;
! Purpose&lt;br /&gt;
! Script&lt;br /&gt;
! Amount&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Iteration N: Final frame&lt;br /&gt;
| SHA256 H&amp;lt;sub&amp;gt;fm&amp;lt;/sub&amp;gt; EQUALVERIFY DUP HASH160 H&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt; EQUALVERIFY CHECKSIGVERIFY EQUALVERIFY DUP HASH160 H&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt; EQUALVERIFY CHECKSIG&lt;br /&gt;
| Price of second frame&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Change&lt;br /&gt;
| Viewer's change script&lt;br /&gt;
| Change amount&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The user puts the finish message hash at the front of the output. The streaming provider sees this and knows the customer wants to close the channel. &lt;br /&gt;
The user provide a new signature for this output, ''S&amp;lt;sub&amp;gt;vn&amp;lt;/sub&amp;gt;''. This allows the streaming service provider to finalise the channel.&lt;br /&gt;
&lt;br /&gt;
===Step N+1===&lt;br /&gt;
The user can request that the provider close the channel. Streams can also be paused, or take place at any framerate or even use larger transactions to move chunks at a time. &lt;br /&gt;
In this case the user is deciding to close it.&lt;br /&gt;
&lt;br /&gt;
The provider signs the transaction and solves the puzzle with the following script:&lt;br /&gt;
&lt;br /&gt;
''S&amp;lt;sub&amp;gt;vn&amp;lt;/sub&amp;gt; P&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt; S&amp;lt;sub&amp;gt;pn&amp;lt;/sub&amp;gt; P&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt; F&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
In this way rather than closing the transaction with a potentially large blob of content data at the front, just a short code need be used.&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Payments_in_Bitcoin&amp;diff=2460</id>
		<title>Payments in Bitcoin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Payments_in_Bitcoin&amp;diff=2460"/>
		<updated>2020-05-05T12:44:40Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The term ''payments'' in a Bitcoin context generally refers the process of a purchaser paying for a good or service from a vendor. Payments are an important aspect of Bitcoin and it is crucial that comprehensive standards exist that enable parties and software systems to process payments in ways that cover a wide variety of use cases.&lt;br /&gt;
&lt;br /&gt;
There are several standards defined for Bitcoin SV that cover methods of requesting and performing payments.&lt;br /&gt;
&lt;br /&gt;
==BIP270==&lt;br /&gt;
[https://github.com/moneybutton/bips/blob/master/bip-0270.mediawiki BIP270] is a streamlined version of the [https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki BIP70 Payment Protocol] introduced in 2013. It is a protocol for communication between a payment host (usually either a merchant, a payment processor, or simply the recipient's wallet) and their customer (the sender of the funds). It enables:&lt;br /&gt;
* Improved user experience&lt;br /&gt;
* Simpler wallet infrastructure&lt;br /&gt;
* Multiple outputs&lt;br /&gt;
* Improved security against man-in-the-middle attacks&lt;br /&gt;
&lt;br /&gt;
BIP270 is designed for wallets that use [[Simplified Payment Verification]] to achieve huge improvements at scale. Transactions can be exchanged partially or in iterations. This is far faster when done peer to peer directly between the payer and the payee, writing to the ledger only at the end to settle the transaction(s).&lt;br /&gt;
&lt;br /&gt;
This BIP is an optimisation of BIP70. Changes include:&lt;br /&gt;
* Moves all signature exchange and validation to the communication later (usually HTTPS)&lt;br /&gt;
* Add multiple outputs&lt;br /&gt;
* A library optimised for peer to peer transaction management&lt;br /&gt;
&lt;br /&gt;
==BSVAlias==&lt;br /&gt;
[[BSVAlias]] is a set of standards for using email type identities with Bitcoin SV, with making and receiving payments as one of its first use-cases.&lt;br /&gt;
&lt;br /&gt;
[[Paymail]] is the first practical implementation of BSVAlias.&lt;br /&gt;
&lt;br /&gt;
==Payment Channels==&lt;br /&gt;
[[Payment Channels]] are a mechanism where two or more parties can directly and trustlessly exchange and update a transaction. The mechanism includes methods for establishing, or opening, a payment channel, updating the channel, and finalizing, or closing, the payment channel. The mechanism also covers the possibility of any of the parties becoming unresponsive, usually by enabling the recovery of funds after a fixed time.&lt;br /&gt;
&lt;br /&gt;
Payment channels support extremely rapid transaction updates with only the final closing transaction being confirmed in the blockchain.&lt;br /&gt;
&lt;br /&gt;
Payment channels can be useful for streaming data, operating a sequence of events or operating with a live dataset in applications such as gaming and more.&lt;br /&gt;
&lt;br /&gt;
==Legacy Payment Protocols==&lt;br /&gt;
Many of the legacy payment protocols used a mechanism where the payer is asked to broadcast a transaction to the network and the payee would scan the network for relevant transactions, rather than handling the transaction directly peer-to-peer as with [[Simplified_Payment_Verification|SPV]]. This mechanism does not scale when transaction volume increases and is inefficient.&lt;br /&gt;
&lt;br /&gt;
===IP to IP payments===&lt;br /&gt;
The original version of the Bitcoin node client had the facility to conduct IP to IP payments where a receiver could give a payer their IP address. The payer's client would reach out to the Payee's client and request a public key for the payment to be addressed to.&lt;br /&gt;
This payment method had valid security concerns but rather than addressing these concerns the mechanism was removed.&lt;br /&gt;
New payment processes are in development which draw from this original idea, and will allow network peers to interact securely using cryptographically verified IP addresses.&lt;br /&gt;
&lt;br /&gt;
===BIP21===&lt;br /&gt;
[https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki BIP21] has been one of the predominant means of making mobile payments in Bitcoin throughout it's history. Almost all QR codes based payment gateways used within Bitcoin are or are an extension of BIP21. BIP21 itself is an extension of [https://tools.ietf.org/html/rfc3986 RFC-3986], the RFC standard for URIs (Universal Resource Identifiers).&lt;br /&gt;
&lt;br /&gt;
===BIP70===&lt;br /&gt;
[https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki BIP70] was a payment protocol for reaching out to receivers using an extension of BIP21 that added a URL. The URL directed the device to reach out to a server which would provide it a script or address linked to the QR code.&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Payments_in_Bitcoin&amp;diff=2459</id>
		<title>Payments in Bitcoin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Payments_in_Bitcoin&amp;diff=2459"/>
		<updated>2020-05-05T12:25:53Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The term ''payments'' in a Bitcoin context generally refers the process of a purchaser paying for a good or service from a vendor. Payments are an important aspect of Bitcoin and it is crucial that comprehensive standards exist that enable parties and software systems to process payments in ways that cover a wide variety of use cases.&lt;br /&gt;
&lt;br /&gt;
There are several standards defined for Bitcoin SV that cover methods of requesting and performing payments.&lt;br /&gt;
&lt;br /&gt;
==BIP270==&lt;br /&gt;
[https://github.com/moneybutton/bips/blob/master/bip-0270.mediawiki BIP270] is a streamlined version of the [https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki BIP70 Payment Protocol] introduced in 2013. It is a protocol for communication between a payment host (usually either a merchant, a payment processor, or simply the recipient's wallet) and their customer (the sender of the funds). It enables:&lt;br /&gt;
* Improved user experience&lt;br /&gt;
* Simpler wallet infrastructure&lt;br /&gt;
* Multiple outputs&lt;br /&gt;
* Improved security against man-in-the-middle attacks&lt;br /&gt;
&lt;br /&gt;
BIP270 is designed for wallets that use [[Simplified Payment Verification]] to achieve huge improvements at scale. Transactions can be exchanged partially or in iterations. This is far faster when done peer to peer directly between the payer and the payee, writing to the ledger only at the end to settle the transaction(s).&lt;br /&gt;
&lt;br /&gt;
This BIP is an optimisation of BIP70. Changes include:&lt;br /&gt;
* Moves all signature exchange and validation to the communication later (usually HTTPS)&lt;br /&gt;
* Add multiple outputs&lt;br /&gt;
* A library optimised for peer to peer transaction management&lt;br /&gt;
&lt;br /&gt;
==BSVAlias==&lt;br /&gt;
[[BSVAlias]] is a set of standards for using email type identities with Bitcoin SV, with making and receiving payments as one of its first use-cases.&lt;br /&gt;
&lt;br /&gt;
[[Paymail]] is the first practical implementation of BSVAlias.&lt;br /&gt;
&lt;br /&gt;
==Payment Channels==&lt;br /&gt;
Any transaction that has both an [[nLocktime]] in the future and an [[nSequence]] that is less than 0xFFFFFFFF is not finalised, and potentially from a [[Payment Channels|payment channel]].&lt;br /&gt;
The transaction can be updated once, or many times between peers until either nSequence is finalised or nLocktime runs out and one of the parties transmits the transaction to the blockchain.&lt;br /&gt;
Payment channels are useful for streaming data, operating a sequence of events or operating with a live dataset in applications such as gaming and more.&lt;br /&gt;
Payment channels have been unavailable since the early versions of Bitcoin and have been re-enabled since the [[Genesis upgrade]], enabling many potential use cases.&lt;br /&gt;
&lt;br /&gt;
==Legacy Payment Protocols==&lt;br /&gt;
Many of the legacy payment protocols used a mechanism where the payer is asked to broadcast a transaction to the network and the payee would scan the network for relevant transactions, rather than handling the transaction directly peer-to-peer as with [[Simplified_Payment_Verification|SPV]]. This mechanism does not scale when transaction volume increases and is inefficient.&lt;br /&gt;
&lt;br /&gt;
===IP to IP payments===&lt;br /&gt;
The original version of the Bitcoin node client had the facility to conduct IP to IP payments where a receiver could give a payer their IP address. The payer's client would reach out to the Payee's client and request a public key for the payment to be addressed to.&lt;br /&gt;
This payment method had valid security concerns but rather than addressing these concerns the mechanism was removed.&lt;br /&gt;
New payment processes are in development which draw from this original idea, and will allow network peers to interact securely using cryptographically verified IP addresses.&lt;br /&gt;
&lt;br /&gt;
===BIP21===&lt;br /&gt;
[https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki BIP21] has been one of the predominant means of making mobile payments in Bitcoin throughout it's history. Almost all QR codes based payment gateways used within Bitcoin are or are an extension of BIP21. BIP21 itself is an extension of [https://tools.ietf.org/html/rfc3986 RFC-3986], the RFC standard for URIs (Universal Resource Identifiers).&lt;br /&gt;
&lt;br /&gt;
===BIP70===&lt;br /&gt;
[https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki BIP70] was a payment protocol for reaching out to receivers using an extension of BIP21 that added a URL. The URL directed the device to reach out to a server which would provide it a script or address linked to the QR code.&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Transaction_Pools&amp;diff=2458</id>
		<title>Transaction Pools</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Transaction_Pools&amp;diff=2458"/>
		<updated>2020-05-05T08:45:45Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A ''transaction pool'' or ''mempool'' is a data structure containing the set of transactions that are unconfirmed but have been validated by a transaction processor (or ''miner''). Transactions are stored in a node's transaction pool prior to inclusion in a block.&lt;br /&gt;
&lt;br /&gt;
==Transaction Pools in Bitcoin SV==&lt;br /&gt;
&lt;br /&gt;
A bitcoin [[Mining| node]] stores bitcoin transactions that have been validated but not mined. It can be thought of as a staging area for transactions prior to their inclusion in a [[block chain|block]]. When creating a new block to mine, miners will gather transactions from their transaction pool using the rpc command ''getminingcandidate'' or the older ''getblocktemplate'' to construct a candidate block. Similarly, when receiving a block, a validator can speed-up the validation process if the [[TXID|transactions IDs]] match the transaction IDs in the validator's transaction pool. The transaction pool data is used extensively by block explorers, wallet servers and other Bitcoin SV related web services [https://jochen-hoenicke.de/queue/#3,24h].&lt;br /&gt;
&lt;br /&gt;
==Secondary Transaction Pools and Genesis==&lt;br /&gt;
&lt;br /&gt;
The [[Genesis upgrade| Genesis]] upgrade to Bitcoin SV introduced a taxonomy within the transaction pool aimed at improving efficiency for transaction validators and miners.&lt;br /&gt;
&lt;br /&gt;
*  '''Primary Transaction Pool''' - transaction pool containing transactions that meet the criteria to be included in a block (including the ''minimum transaction fee'') &lt;br /&gt;
&lt;br /&gt;
*  '''Secondary Transaction Pool''' - transaction pool for transactions that are do not meet the criteria to be included in a block, but may meet another transaction processors criteria (such as having below the ''minimum transaction fee'' limit but above the network-wide ''minimum relay fee'' limit). These transactions could eventually be included in another transaction processor's block and therefore should be stored to ensure fast [[Mining| block validation]] and optimize network performance.&lt;br /&gt;
&lt;br /&gt;
A further discussion of configurable minimum fee policy can be found here [https://bitcoinsv.io/2019/11/24/on-the-future-of-bitcoin-transaction-fees/].&lt;br /&gt;
 &lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Confirmation]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
* [1]   https://jochen-hoenicke.de/queue/#3,24h&lt;br /&gt;
* [2]   https://bitcoinsv.io/2019/11/24/on-the-future-of-bitcoin-transaction-fees/&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Satoshis&amp;diff=2446</id>
		<title>Satoshis</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Satoshis&amp;diff=2446"/>
		<updated>2020-04-30T14:25:25Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
A '''satoshi''' is the smallest division of a bitcoin and the base unit of exchange on the Bitcoin SV network. There are 100,000,000 satoshis in 1 bitcoin. The unit is named after [[Satoshi Nakamoto]], the author of the 2008 Bitcoin whitepaper.&lt;br /&gt;
&lt;br /&gt;
Satoshis are represented as integers where 1 satoshi is the smallest unit of exchange on the Bitcoin ledger. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bitcoins&amp;quot; are a human construct, as all values in Bitcoin are treated as integers quantities of Satoshis, rather than decimal bitcoin fractions in the protocol.&lt;br /&gt;
&lt;br /&gt;
The table below provides information on how many Satoshis in a Bitcoins, depending on their quantity:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Satoshi !! BSV&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0.00000001&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 0.0000001&lt;br /&gt;
|-&lt;br /&gt;
| 100 || 0.000001&lt;br /&gt;
|-&lt;br /&gt;
| 1 000 || 0.00001&lt;br /&gt;
|-&lt;br /&gt;
| 10 000 || 0.0001&lt;br /&gt;
|-&lt;br /&gt;
| 100 000 || 0.001&lt;br /&gt;
|-&lt;br /&gt;
| 1 000 000 || 0.01&lt;br /&gt;
|-&lt;br /&gt;
| 10 000 000 || 0.1&lt;br /&gt;
|-&lt;br /&gt;
| 100 000 000 || 1&lt;br /&gt;
|}&lt;br /&gt;
Thus, '''1 Satoshi = 0.00000001 Bitcoin'''.&lt;br /&gt;
&lt;br /&gt;
==Satoshis and the Miner Subsidy Schedule==&lt;br /&gt;
&lt;br /&gt;
The total number of satoshis in existence is approximately 2.1 x 10&amp;lt;sup&amp;gt;15&amp;lt;/sup&amp;gt;  (21 million BSV), and they are distributed at a mathematically predictable rate using the [[Miner subsidy|miner subsidy]] formula. The miner subsidy, which began at 50 newly minted bitcoins per block, is scheduled to divide in 2 every 210,000 blocks, approximately every 4 years. At the time of the 6th halvening (approximately 2032) the miner subsidy will fall below 1 BSV to 78125000 satoshis (0.78125 BSV).&lt;br /&gt;
&lt;br /&gt;
By the time of the 31st halvening (approximately the year 2136) the miner subsidy will be reduced to 1 satoshi and in the year 2140 (block no. 6,720,000) the subsidy will finish marking the final distribution of satoshi tokens onto the ledger.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Coinbase]]&lt;br /&gt;
* [[Miner subsidy]]&lt;br /&gt;
&lt;br /&gt;
==Attribution==&lt;br /&gt;
This content is based on content sourced from https://en.bitcoin.it/wiki/Satoshi_(unit) under [https://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0]. Although it may have been extensively revised and updated we acknowledge the original authors.&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=BSVAlias&amp;diff=2445</id>
		<title>BSVAlias</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=BSVAlias&amp;diff=2445"/>
		<updated>2020-04-30T08:41:27Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BSVAlias is a family of related standard protocols that enable the use of email style addresses for Bitcoin SV. Services that implement these protocols can be run by a domain owner or through a third party.&lt;br /&gt;
&lt;br /&gt;
The goals of BSVAlias are:&lt;br /&gt;
&lt;br /&gt;
*User friendly payments&lt;br /&gt;
*Permissionless implementation&lt;br /&gt;
*Self hosting&lt;br /&gt;
*Automatic discovery process&lt;br /&gt;
*PKI infrastructure (IPV4)&lt;br /&gt;
*Security&lt;br /&gt;
*Extensibility&lt;br /&gt;
&lt;br /&gt;
[[Paymail]] leverages BSVAlias into a set of protocols that allows BSV wallets to receive payments using email addresses as handles.&lt;br /&gt;
&lt;br /&gt;
The protocols allow for flexibility in capabilities and implementation.&lt;br /&gt;
&lt;br /&gt;
==Service Discovery==&lt;br /&gt;
The Service Discovery Process is split into two phases:&lt;br /&gt;
#Host Discovery&lt;br /&gt;
#Capability Discovery&lt;br /&gt;
&lt;br /&gt;
===Host Discovery===&lt;br /&gt;
Host Discovery is a DNS based lookup of the responsible host for a given BSVAlias. One practical implementation that exists today is Paymail, in which the host is identified through the domain attached to the receiving party's paymail address which is in standard email format (e.g. user@domain.tld).&lt;br /&gt;
&lt;br /&gt;
BSVAlias can be:&lt;br /&gt;
#Self hosted&lt;br /&gt;
#Hosted using 3rd party providers (done using a DNS SRV record)&lt;br /&gt;
&lt;br /&gt;
This makes BSVAlias compatible with the internet infrastructure we have today.&lt;br /&gt;
&lt;br /&gt;
===Capability Discovery===&lt;br /&gt;
Once the host has been identified, the sending party must learn its supported features.&lt;br /&gt;
&lt;br /&gt;
This is in the format of a machine readable (JSON) document which is placed on the host web server in the .well-known folder:&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;target&amp;gt;:&amp;lt;port&amp;gt;/.well-known/bsvalias&lt;br /&gt;
&lt;br /&gt;
Capabilities of a host are not necessarily reflected in an individual account.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
1. BSVAlias specification - https://bsvalias.org/&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=BSVAlias&amp;diff=2429</id>
		<title>BSVAlias</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=BSVAlias&amp;diff=2429"/>
		<updated>2020-04-29T09:50:27Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BSVAlias is a set of standards assembled to make it simple for individual domains to incorporate wallet services. These services can be run by the domain or through a third party.&lt;br /&gt;
&lt;br /&gt;
The goals of BSVAlias are:&lt;br /&gt;
&lt;br /&gt;
*User friendly payments&lt;br /&gt;
*Permissionless implementation&lt;br /&gt;
*Self hosting&lt;br /&gt;
*Automatic discovery process&lt;br /&gt;
*PKI infrastructure (IPV4)&lt;br /&gt;
*Security&lt;br /&gt;
*Extensibility&lt;br /&gt;
&lt;br /&gt;
[[Paymail]] leverages BSVAlias into a set of protocols that allows BSV wallets to receive payments using email addresses as handles.&lt;br /&gt;
&lt;br /&gt;
The protocols allow for flexibility in capabilities and implementation.&lt;br /&gt;
&lt;br /&gt;
==Service Discovery==&lt;br /&gt;
The Service Discovery Process is split into two phases:&lt;br /&gt;
#Host Discovery&lt;br /&gt;
#Capability Discovery&lt;br /&gt;
&lt;br /&gt;
===Host Discovery===&lt;br /&gt;
Host Discovery is a DNS based lookup of the responsible host for a given BSVAlias. The only practical implementation that exists today is Paymail, in which the host is identified through the domain attached to the receiving party's paymail address which is in standard email format (e.g. user@domain.tld).&lt;br /&gt;
&lt;br /&gt;
BSVAlias can be:&lt;br /&gt;
#Self hosted&lt;br /&gt;
#Hosted using 3rd party providers (done using a DNS SRV record)&lt;br /&gt;
&lt;br /&gt;
This makes BSVAlias compatible with the internet infrastructure we have today&lt;br /&gt;
&lt;br /&gt;
===Capability Discovery===&lt;br /&gt;
Once the host has been identified, the sending party must learn its supported features&lt;br /&gt;
&lt;br /&gt;
This is in the format of a machine readable (JSON) document which is placed on the host web server in the .well-known folder:&lt;br /&gt;
&lt;br /&gt;
https://&amp;lt;target&amp;gt;:&amp;lt;port&amp;gt;/.well-known/bsvalias&lt;br /&gt;
&lt;br /&gt;
Capabilities of a host are not necessarily reflected in an individual account.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
1. BSVAlias specification - https://bsvalias.org/&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=The_Metanet&amp;diff=2428</id>
		<title>The Metanet</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=The_Metanet&amp;diff=2428"/>
		<updated>2020-04-29T08:50:57Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:post.png|thumb|The Metanet Ecosystem]]&lt;br /&gt;
'''The Metanet''' is the term given to a value-based internet built on the Bitcoin SV blockchain. The Metanet can be used to refer to either of:&lt;br /&gt;
&lt;br /&gt;
* The concept of value-based internet built on [[Main_Page|Bitcoin SV]].&lt;br /&gt;
* The [[Metanet_Protocol|Metanet Protocol]].&lt;br /&gt;
&lt;br /&gt;
The Metanet was first [https://www.youtube.com/watch?v=MXpHHZqe6vI announced] as a concept by Dr. Craig Wright at the CoinGeek Week conference in London on November 30th 2018. &lt;br /&gt;
&lt;br /&gt;
The motivation for the Metanet is the creation of an on-chain internet that functions as an efficient value network, which has improved properties and [[The_Metanet#Capabilities|capabilities]] compared to the existing infrastructure of the Internet. The Metanet as a concept has since been widely adopted by the Bitcoin SV ecosystem and many protocols and applications have been built to implement the vision of a highly-connected blockchain-based internet for peer-to-peer content creation and monetization.&lt;br /&gt;
&lt;br /&gt;
==Core Principles==&lt;br /&gt;
&lt;br /&gt;
The motivations for the Metanet are linked to well-known problems with the existing Internet and e-commerce, which include the following:&lt;br /&gt;
&lt;br /&gt;
* Reliance on intermediaries for payments.&lt;br /&gt;
* Lack of a granular micropayment layer.&lt;br /&gt;
* Walled-garden applications and data silos.&lt;br /&gt;
* Concerns over data privacy and ownership for users.&lt;br /&gt;
* Prevalence of spam, trolling and bots in online social platforms.&lt;br /&gt;
&lt;br /&gt;
The first two issues, relating to payment intermediaries and lack of micropayments, are addressed by the use of the Bitcoin SV blockchain for simple payments. The Metanet aims to solve the remaining issues by combining online payments with immutable data stored on the public Bitcoin SV blockchain. &lt;br /&gt;
&lt;br /&gt;
The combination of payments and data both using the Bitcoin SV blockchain as a universal source of truth theoretically allow for a more equitable internet ecosystem in which:&lt;br /&gt;
&lt;br /&gt;
* Information is attributed value.&lt;br /&gt;
* Quality is incentivised over quantity.&lt;br /&gt;
* The cost of dishonest behaviour (e.g. trolling) is increased.&lt;br /&gt;
* Users own their data.&lt;br /&gt;
&lt;br /&gt;
==The Metanet Protocol==&lt;br /&gt;
[[File:Metanet_DAG.png|thumb|The Metanet Protocol]]&lt;br /&gt;
&lt;br /&gt;
The [[Metanet_Protocol|Metanet protocol]] is a protocol for structuring data within the on-chain internet architecture of the Metanet. The Metanet protocol uses a graph data model to create on-chain data structures for Metanet applications, websites and use cases. The protocol allows users to store, distribute and monetize their data using its native permissioning framework.&lt;br /&gt;
&lt;br /&gt;
The Metanet protocol is a graph-based data structure protocol. The protocol uses the native directed acyclic graph (DAG) data model of the underlying Bitcoin SV blockchain to create overlay DAG structures that exist natively on-chain.&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Peer-to-Peer_Network_Architecture&amp;diff=2427</id>
		<title>Peer-to-Peer Network Architecture</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Peer-to-Peer_Network_Architecture&amp;diff=2427"/>
		<updated>2020-04-29T08:44:16Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Peer-to-Peer computing or networking is a distributed application network architecture that shares resources amongst the participants. Participants are called nodes and are said to form a Peer-to-Peer network [1]. A distributed network architecture is classified as a &amp;quot;Pure&amp;quot; Peer-to-Peer if the removal of any single, arbitrarily chosen, node will not result in the loss of network service.&lt;br /&gt;
&lt;br /&gt;
==The Bitcoin Peer-to-Peer Network==&lt;br /&gt;
&lt;br /&gt;
Formally, the Bitcoin network is a Pure Peer-to-Peer network built on top of the internet. In the early days of Bitcoin the network had a flat topological structure, in which users were capable of running full nodes that could perform all of  Bitcoin's main functions: transaction creation, transaction validation and [[Mining |mining]] (see [https://www.metzdowd.com/pipermail/cryptography/2009-January/014994.html bitcoinv0.1]). However, as the network has grown, the requirements needed to perform each function on the network have evolved creating a necessity for nodes to specialize. Currently, the 3 main functions of the Bitcoin system are, in general, performed by separate actors within the ecosystem. Transaction creation is done by [[Simplified Payment Verification|SPV]] wallets. Transaction validation is done by the Bitcoin SV node client software and mining is a separate function performed using purpose built mining software.&lt;br /&gt;
&lt;br /&gt;
==Peer-to-Peer Architecture and the Bitcoin Scalability Dispute==&lt;br /&gt;
&lt;br /&gt;
Peer-to-peer is a term often misused and misunderstood, partly due the philosophical significance of ''decentralization'' which is seen as a key feature of blockchain technology. It has also been at the heart of disputes within the Bitcoin community that have lead to contentious forks that have split the Bitcoin blockchain on two occasions as well as generally delayed the development of the technology. &lt;br /&gt;
&lt;br /&gt;
The role of transaction validation and mining cannot be [[Attacks on Bitcoin|dominated by a single entity]] as the network would cease to provide any cryptographic or game theoretic advantages over existing centralized digital money systems. However, one of the main barriers to scaling is the extreme waste caused by forcing all users to perform all Bitcoin functions. Whilst it is true that engineering trade-offs between decentralization and scalability have to be made, it is the firm belief of the Bitcoin SV community that scalability can be achieved through specialization whilst maintaining strong security and decentralization.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
1. Rüdiger Schollmeier, [https://www.researchgate.net/publication/3940901_A_Definition_of_Peer-to-Peer_Networking_for_the_Classification_of_Peer-to-Peer_Architectures_and_Applications A Definition of Peer-to-Peer Networking for the Classification of Peer-to-Peer Architectures and Applications], Proceedings of the First International Conference on Peer-to-Peer Computing, IEEE (2002).&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Peer-to-Peer_Network_Architecture&amp;diff=2426</id>
		<title>Peer-to-Peer Network Architecture</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Peer-to-Peer_Network_Architecture&amp;diff=2426"/>
		<updated>2020-04-29T08:32:32Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Peer-to-Peer computing or networking is a distributed application network architecture that spreads workload between peers. Peers are equally privileged, participate equally  in the application and are said to form a peer-to-peer network of nodes [1]. &lt;br /&gt;
&lt;br /&gt;
==Bitcoin as a Peer-to-Peer Network==&lt;br /&gt;
&lt;br /&gt;
Formally, Bitcoin is a peer-to-peer network built on top of the internet. In the early days of Bitcoin the network had a flat topological structure, in which users were capable of running full nodes that could perform all of  Bitcoin's main functions: transaction creation, transaction validation and [[Mining |mining]] (see [https://www.metzdowd.com/pipermail/cryptography/2009-January/014994.html bitcoinv0.1]). However, as the network has grown, the requirements needed to perform each function on the network have evolved creating a necessity for nodes to specialize. Currently, the 3 main functions of the Bitcoin system are, in general, performed by separate actors within the ecosystem. Transaction creation is done by [[Simplified Payment Verification|SPV]] wallets. Transaction validation is done by the Bitcoin SV node client software and mining is a separate function performed using purpose built mining software.&lt;br /&gt;
&lt;br /&gt;
==Peer-to-Peer Architecture and the Bitcoin Scalability Dispute==&lt;br /&gt;
&lt;br /&gt;
Peer-to-peer is a term often misused and misunderstood, partly due the philosophical significance of ''decentralization'' which is seen as a key feature of blockchain technology. It has also been at the heart of disputes within the Bitcoin community that have lead to contentious forks that have split the Bitcoin blockchain on two occasions as well as a general slow-down in the development of the technology. &lt;br /&gt;
&lt;br /&gt;
On one hand the role of transaction validation and mining cannot be [[Attacks on Bitcoin|dominated by a single entity]] as the network would cease to provide any cryptographic or game theoretic advantages over existing centralized digital money systems. However, one of the main barriers to scaling is the extreme waste caused by forcing all users to perform all Bitcoin functions. Whilst it is true that engineering trade-offs between decentralization and scalability have to be made, it is the firm belief of the Bitcoin SV community that scalability can be achieved through specialization whilst maintaining strong security and moderate decentralization.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
1. Rüdiger Schollmeier, [https://www.researchgate.net/publication/3940901_A_Definition_of_Peer-to-Peer_Networking_for_the_Classification_of_Peer-to-Peer_Architectures_and_Applications A Definition of Peer-to-Peer Networking for the Classification of Peer-to-Peer Architectures and Applications], Proceedings of the First International Conference on Peer-to-Peer Computing, IEEE (2002).&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Satoshi_Nakamoto&amp;diff=887</id>
		<title>Satoshi Nakamoto</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Satoshi_Nakamoto&amp;diff=887"/>
		<updated>2020-01-06T13:42:22Z</updated>

		<summary type="html">&lt;p&gt;Daniel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''For the unit, see [[Satoshis]].''&lt;br /&gt;
&lt;br /&gt;
'''Satoshi Nakamoto''' is the pseudonym used by the author of the [https://bitcoin.org/en/bitcoin-paper Bitcoin Whitepaper], creator of Bitcoin and original Bitcoin client. &lt;br /&gt;
&lt;br /&gt;
Satoshi Nakamoto is an amalgamation of Japanese monk Tominaga Nakamoto and Ash Ketchum - the Pokémon trainer. &lt;br /&gt;
&lt;br /&gt;
The word Satoshi is Ash in Japanese. A light-hearted play on this word is Ash Ketchum. A more serious reference to Ash/ Satoshi was a cover picture of The Economist which depicted a phoenix rising from the ashes. Bitcoin began rising when the traditional financial system was crumbling and falling.&lt;br /&gt;
&lt;br /&gt;
Satoshi Nakamoto is better known as [https://craigwright.net/about/#biography Dr Craig Wright].&lt;br /&gt;
&lt;br /&gt;
Craig effectively went offline in January 2011, with no public involvement in the Bitcoin project. He spent some years in the private sector and did some humanitarian work. Craig did not like what Bitcoin had become, how it was being (mis)used for nefarious and dreadful criminal activities. In 2016 Craig returned to put Bitcoin back on track and to fulfill his vision.&lt;br /&gt;
&lt;br /&gt;
==Satoshi's Identity==&lt;br /&gt;
Craig registered copyright for the Bitcoin Whitepaper with the [https://cocatalog.loc.gov/cgi-bin/Pwebrecon.cgi?SC=Author&amp;amp;SA=Wright%2C%20Craig%20Steven%2C%201970%2D&amp;amp;PID=-LD5kwbSKWlbnDgVMK1jvxRknze-&amp;amp;BROWSE=1&amp;amp;HC=2&amp;amp;SID=6 US Copyright Office] and was awarded the rights to both the Bitcoin whitepaper entitled &amp;quot;Bitcoin, a peer to peer electronic cash system&amp;quot; and for the Bitcoin client software itself.&lt;br /&gt;
&lt;br /&gt;
In late 2019 Craig delivered testimony in US federal court that confirmed he was the person behind the Satoshi Nakamoto pseudonym, designed the system and wrote the whitepaper. He has also begun releasing digital copy of documents purported to be from pre-2009 which relate to Bitcoin which he is using to establish his identity as creator in a libel case in the UK.&lt;br /&gt;
&lt;br /&gt;
==Some interesting quotes==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;Like it or not, I am Satoshi.&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;It's very attractive to the libertarian viewpoint if we can explain it &lt;br /&gt;
properly. I'm better with code than with words though.&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=P2P_Network&amp;diff=71</id>
		<title>P2P Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=P2P_Network&amp;diff=71"/>
		<updated>2019-09-18T07:30:00Z</updated>

		<summary type="html">&lt;p&gt;Daniel: /* Malicious Peers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Currently, for practical purposes, any software that interacts with Bitcoin will need to either communicate using the P2P Network Protocol, or interface with another system that communicates using the P2P Network Protocol. This is a practical issue not a consensus rule. This is needed because the P2P Network Protocol is the mechanism that existing miners use to announce and distribute new blocks.&lt;br /&gt;
&lt;br /&gt;
== P2P Block Propagation ==&lt;br /&gt;
This topic refers to how nodes propagate new blocks across the network. It’s specific to new blocks, not downloading old blocks.&lt;br /&gt;
There are three mechanisms:&lt;br /&gt;
#Original - the original method with inv and getdata&lt;br /&gt;
#Headers&lt;br /&gt;
#Compact Blocks - an optimisation that has been around for a while&lt;br /&gt;
&lt;br /&gt;
Other techniques exist too: Bitcoin Unlimited on the BCH network has implemented Graphene which is a refinement of the Compact Blocks method and not covered here.&lt;br /&gt;
&lt;br /&gt;
Nodes on the P2P network start by assuming the Original method. If at some point a node sends the setheaders message to its peer, then it is expecting the Headers method to be used. If it sends the sendcmpct message, then it is expecting the Compact Blocks to be used. The Bitcoin SV Node implementation always tries to use Compact Blocks.&lt;br /&gt;
&lt;br /&gt;
Block propagation initiates when the node updates it’s copy of the blockchain. This could be because the node has had a new block submitted to it by mining equipment, or it could be because it has received a new block over the P2P network and validated the block.&lt;br /&gt;
&lt;br /&gt;
=== Original Block Propagation Mechanism ===&lt;br /&gt;
This is the original and default mechanism and all nodes are expected to be able to use this mechanism.&lt;br /&gt;
&lt;br /&gt;
When the blockchain is updated with a new tip, the node sends out a block inv message to all of its peers which contains the block id (the hash of the block). The peers check this message and will request the block from the node with the getdata message if they need the block.&lt;br /&gt;
&lt;br /&gt;
Note that the node will only send the inv message to the peers which it thinks do not yet have the block. If a peer has already sent an inv message for the same block to the node, then the node concludes that the peer already has the block so it does not bother sending the inv message to that peer. This is an optimization performed by the Bitcoin SV Node software and is not strictly required.&lt;br /&gt;
&lt;br /&gt;
This mechanism causes the peer to download the entire block from the node. This is quite wasteful since the majority of the block is transaction data and its very likely that peer already has most of the transactions, which is why the Compact Blocks technique was added.&lt;br /&gt;
&lt;br /&gt;
=== Headers Block Propagation Mechanism ===&lt;br /&gt;
This was a modification of the Original mechanism. Its a minor change. Instead of sending an inv message to its peers, a node will instead send a header message, which contains the information from the block header (which does not include the list of transactions). This will provide more data for the node to make a decision about whether it wants to obtain the block or not.&lt;br /&gt;
&lt;br /&gt;
=== Compact Blocks Propagation Mechanism ===&lt;br /&gt;
As noted above, the problem with the original mechanism is that it sends a lot of data that the peer probably already has. Compact Blocks was designed to avoid this.&lt;br /&gt;
&lt;br /&gt;
When activated, the node will send a cmpctblock message instead of the inv message (Note: I need to check this, this would be a bit wasteful if the peer already had the block). This message contains the block header, the list of transactions in the block, and the full transactions that the node expects that the peer does not already have (such as the coinbase transaction). The recipient will then check for transactions it does not already have and request those.&lt;br /&gt;
&lt;br /&gt;
It’s a bit more complicated than that, but that is the main idea. It actually uses “short ids”, which are shortened forms of the transaction ids.&lt;br /&gt;
&lt;br /&gt;
The specification for Compact Blocks is in [https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki BIP-0152].&lt;br /&gt;
&lt;br /&gt;
== Malicious Peers ==&lt;br /&gt;
Software implementations often implement a “banning” technique to mitigate against Denial of Service type attacks by peers.&lt;/div&gt;</summary>
		<author><name>Daniel</name></author>
		
	</entry>
</feed>