<?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=Ethel</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=Ethel"/>
	<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php/Special:Contributions/Ethel"/>
	<updated>2026-05-29T18:48:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Application_layer_protocol&amp;diff=2580</id>
		<title>Application layer protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Application_layer_protocol&amp;diff=2580"/>
		<updated>2020-10-23T04:01:15Z</updated>

		<summary type="html">&lt;p&gt;Ethel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Introduction ===&lt;br /&gt;
Application layer protocols in Bitcoin are rule sets defined and stored in transactions as arbitrary data. Various protocols have been implemented by application developers to store websites, social media posts, images, identity and other types of data since the [[History_of_OP_RETURN#Storing_data_on-chain|OP_RETURN push data limit was increased to 100KB]].&lt;br /&gt;
&lt;br /&gt;
=== Practical example ===&lt;br /&gt;
With the data carrier size of an output expanded to 100KB, we can store various types of data by creating a [[False Return]] output in a [[Bitcoin_Transactions|Bitcoin transaction.]] &lt;br /&gt;
&lt;br /&gt;
[https://bitcom.bitdb.network/#/ Bitcom] is a proposal  of a protocol, for defining protocols. Bitcom proposes to store a [[Bitcoin address]] as the prefix, ensuring uniqueness and a namespace.&lt;br /&gt;
&lt;br /&gt;
A heavily used protocol is the [https://github.com/unwriter/B B://] protocol created by developer _unwriter. This protocol defines how files can be stored on-chain, leveraging the Bitcom construct also defined by _unwriter. &lt;br /&gt;
&lt;br /&gt;
For example, to store a photo of a duck, we use the protocol prefix for B:\\:&lt;br /&gt;
&lt;br /&gt;
19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut&lt;br /&gt;
&lt;br /&gt;
Followed by the different fields B:\\ defines as additional push data:&lt;br /&gt;
  [Image Buffer]&lt;br /&gt;
  image/png&lt;br /&gt;
  binary&lt;br /&gt;
  duck.png&lt;br /&gt;
&lt;br /&gt;
Here is the [https://b.bitdb.network/#d6f000641a9bb66f510d8b66763c8f28fceb5b61b8bb6f9544c1a81db73805b4 example].&lt;br /&gt;
&lt;br /&gt;
=== Unlimited transaction size ===&lt;br /&gt;
These constructs were created to work with a 100KB transaction size, but with the [[Genesis_upgrade|Genesis upgrade]] much larger data can be written in a single transaction. Additionally, the OP_PUSHDATA opcodes are able to be used properly in script eliminating the reliance on using [[History_of_OP_RETURN|OP_RETURN]] as the sole means of pushing data into transactions.&lt;br /&gt;
&lt;br /&gt;
=== Widely used protocols ===&lt;br /&gt;
* [[Metanet Protocol]] - Defines a directed graph structure that stores data on the Bitcoin ledger where it can easily be queried and referenced by other applications.&lt;br /&gt;
* [https://www.tokenized.com Tokenized Protocol] - Defines protocol and platform where issuers and users can create, manage, and trade tokens leveraging built-in smart contracts.&lt;br /&gt;
* [https://bitcom.bitdb.network/#/ Bitcom] - Decentralised registry of application protocols uniquely identified by an input address, proving ownership. Bitcom protocols can be concatenated together with a | character.&lt;br /&gt;
* [https://github.com/unwriter/B B://], [https://c.bitdb.network/ C://], [https://planaria.network/@1G3BpTyEK6xF4LaQTHqdFBBaVxYHZzts4M D://], [http://bcat.bico.media/ BCAT] - Various protocols for storing files on the ledger and details how to reference them in a web page or application.&lt;br /&gt;
* [https://github.com/BitcoinFiles/AUTHOR_IDENTITY_PROTOCOL/ AIP - Author Identity Protocol] - Simple protocol to sign arbitrary OP_RETURN data and decouple the signing address from the funding source address.&lt;br /&gt;
* [https://map.sv/ MAP - Magic Attribute Protocol] - Protocol that maps arbitrary data via key/value pairs on-chain.&lt;br /&gt;
* [https://github.com/torusJKL/BitcoinBIPs/blob/master/HAIP.md/ HAIP - Hash Author Identity Protocol] - Similar to AIP but hashes the data signed for smaller capacity devices.&lt;br /&gt;
* [https://memo.sv/protocol Memo SV] - Protocol that defines various actions on Memo's on-chain social network embedded in OP_RETURN transactions.&lt;br /&gt;
* Contact the Bitcoin Association to have your stable, released protocol added.&lt;/div&gt;</summary>
		<author><name>Ethel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Application_layer_protocol&amp;diff=2579</id>
		<title>Application layer protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Application_layer_protocol&amp;diff=2579"/>
		<updated>2020-10-23T02:24:56Z</updated>

		<summary type="html">&lt;p&gt;Ethel: commas,&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Introduction ===&lt;br /&gt;
Application layer protocols in Bitcoin are rule sets defined and stored in transactions as arbitrary data. Various protocols have been implemented by application developers to store websites, social media posts, images, identity and other types of data since the [[History_of_OP_RETURN#Storing_data_on-chain|OP_RETURN push data limit was increased to 100KB]].&lt;br /&gt;
&lt;br /&gt;
=== Practical example ===&lt;br /&gt;
With the data carrier size of an output expanded to 100KB, we can store various types of data by creating a [[False Return]] output in a [[Bitcoin_Transactions|Bitcoin transaction.]] &lt;br /&gt;
&lt;br /&gt;
[https://bitcom.bitdb.network/#/ Bitcom] is a proposal  of a protocol, for defining protocols. Bitcom proposes to store a [[Bitcoin address]] as the prefix, ensuring uniqueness and a namespace.&lt;br /&gt;
&lt;br /&gt;
A heavily used protocol is the [https://github.com/unwriter/B B://] protocol created by developer _unwriter. This protocol defines how files can be stored on-chain, leveraging the Bitcom construct also defined by _unwriter. &lt;br /&gt;
&lt;br /&gt;
For example, to store a photo of a duck, we use the protocol prefix for B:\\:&lt;br /&gt;
&lt;br /&gt;
19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut&lt;br /&gt;
&lt;br /&gt;
Followed by the different fields B:\\ defines as additional push data:&lt;br /&gt;
  [Image Buffer]&lt;br /&gt;
  image/png&lt;br /&gt;
  binary&lt;br /&gt;
  duck.png&lt;br /&gt;
&lt;br /&gt;
Here is the [https://b.bitdb.network/#d6f000641a9bb66f510d8b66763c8f28fceb5b61b8bb6f9544c1a81db73805b4 example].&lt;br /&gt;
&lt;br /&gt;
=== Unlimited transaction size ===&lt;br /&gt;
These constructs were created to work with a 100KB transaction size but with the [[Genesis_upgrade|Genesis upgrade]] much larger data can be written in a single transaction. Additionally, the OP_PUSHDATA opcodes are able to be used properly in script eliminating the reliance on using [[History_of_OP_RETURN|OP_RETURN]] as the sole means of pushing data into transactions.&lt;br /&gt;
&lt;br /&gt;
=== Widely used protocols ===&lt;br /&gt;
* [[Metanet Protocol]] - Defines a directed graph structure that stores data on the Bitcoin ledger where it can easily be queried and referenced by other applications.&lt;br /&gt;
* [https://www.tokenized.com Tokenized Protocol] - Defines protocol and platform where issuers and users can create, manage and trade tokens leveraging built-in smart contracts.&lt;br /&gt;
* [https://bitcom.bitdb.network/#/ Bitcom] - Decentralized registry of application protocols, uniquely identified by an input address, proving ownership. Bitcom protocols can be concatenated together with a | character.&lt;br /&gt;
* [https://github.com/unwriter/B B://], [https://c.bitdb.network/ C://], [https://planaria.network/@1G3BpTyEK6xF4LaQTHqdFBBaVxYHZzts4M D://], [http://bcat.bico.media/ BCAT] - Various protocols for storing files on the ledger and details how to reference them in a web page or application.&lt;br /&gt;
* [https://github.com/BitcoinFiles/AUTHOR_IDENTITY_PROTOCOL/ AIP - Author Identity Protocol] - Simple protocol to sign arbitrary OP_RETURN data and decouple the signing address from the funding source address.&lt;br /&gt;
* [https://map.sv/ MAP - Magic Attribute Protocol] - Protocol that maps arbitrary data via key/value pairs on-chain.&lt;br /&gt;
* [https://github.com/torusJKL/BitcoinBIPs/blob/master/HAIP.md/ HAIP - Hash Author Identity Protocol] - Similar to AIP but hashes the data signed for smaller capacity devices.&lt;br /&gt;
* [https://memo.sv/protocol Memo SV] - Protocol that defines various actions on Memo's on-chain social network embedded in OP_RETURN transactions.&lt;br /&gt;
* Contact the Bitcoin Association to have your stable, released protocol added.&lt;/div&gt;</summary>
		<author><name>Ethel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Address_reuse&amp;diff=2578</id>
		<title>Address reuse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Address_reuse&amp;diff=2578"/>
		<updated>2020-10-23T01:44:09Z</updated>

		<summary type="html">&lt;p&gt;Ethel: Punctuation only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Address reuse''' refers to the use of the same [[Bitcoin address|address]] for multiple [[Bitcoin Transactions|transactions]]. It is an unintended practice, reducing the privacy and security of the participants of the transactions.&lt;br /&gt;
&lt;br /&gt;
Most wallets use [[Deterministic wallet|deterministic keychains]] and mask the generation of new addresses from the user making it easy and safe to maintain privacy. &lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Privacy ===&lt;br /&gt;
Address reuse harms the privacy of not only yourself, but also others - including many not related to the transaction.&lt;br /&gt;
&lt;br /&gt;
Every time a re-used address private key signs a fresh transaction, the receiving party can use the history of that address to discover information about that address and its owner.&lt;br /&gt;
&lt;br /&gt;
The relationship graph in a re-used address is powerfully-linked in that '''all''' of the inputs to that address are necessarily joined (via the spending authority of the private key) to all of its outputs.&lt;br /&gt;
&lt;br /&gt;
==Attribution==&lt;br /&gt;
This content is based on content sourced from https://en.bitcoin.it/wiki/Address_reuse 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>Ethel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitcoinsv.io/index.php?title=Block_header&amp;diff=2577</id>
		<title>Block header</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitcoinsv.io/index.php?title=Block_header&amp;diff=2577"/>
		<updated>2020-10-23T01:18:18Z</updated>

		<summary type="html">&lt;p&gt;Ethel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The block header is the first piece of information propagated by a node when it finds a valid block solution. Other nodes on the network, can validate the node's hash solution and determine whether the proposed block warrants the further checking required to secure its place as the top-most link in the longest chain of valid proof of work.&lt;br /&gt;
&lt;br /&gt;
A block header contains these fields:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Purpose&lt;br /&gt;
! Updated when...&lt;br /&gt;
! Size (Bytes)&lt;br /&gt;
|-&lt;br /&gt;
|Version&lt;br /&gt;
|Block version number&lt;br /&gt;
|You upgrade the software and it specifies a new version&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|hashPrevBlock&lt;br /&gt;
|256-bit hash of the previous block header&lt;br /&gt;
|A new block comes in&lt;br /&gt;
|32&lt;br /&gt;
|-d&lt;br /&gt;
|hashMerkleRoot&lt;br /&gt;
|256-bit hash based on all of the transactions in the block&lt;br /&gt;
|A transaction is accepted&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Current [[block timestamp]] as seconds since 1970-01-01T00:00 UTC&lt;br /&gt;
|Every few seconds&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Bits&lt;br /&gt;
|Current [[target]] in compact format&lt;br /&gt;
|The [[difficulty]] is adjusted&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Nonce&lt;br /&gt;
|32-bit number (starts at 0)&lt;br /&gt;
|A hash is tried (increments)&lt;br /&gt;
|4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The body of the block contains the transactions. These are hashed only indirectly through the Merkle root. Because transactions aren't hashed directly, the proof of work needed to mine a block with 1 transaction takes exactly the same amount of effort as a block with 10,000, 10,000,000 or 10,000,000,000 transactions.&lt;br /&gt;
&lt;br /&gt;
The format of target is a floating-point encoding using a 3 byte mantissa, the leading byte as exponent (where only the 5 lowest bits are used) and its base is 256.&lt;br /&gt;
&lt;br /&gt;
It is not possible for two nodes to be working on the same Merkle root because the [[Coinbase]] transaction is unique to that node, generating a different hash output. Every hash attempt made has the same chance of winning as every other hash calculated across the network.&lt;br /&gt;
&lt;br /&gt;
==Endianess==&lt;br /&gt;
Note that the hash, which is a 256-bit number, has lots of leading zero bytes when stored or printed as a big-endian hexadecimal constant, but it has trailing zero bytes when stored or printed in little-endian. For example, if interpreted as a string and the lowest (or start of) the string address keeps lowest significant byte, it is little-endian.&lt;br /&gt;
&lt;br /&gt;
Most block explorers display the hash values as big-endian numbers; notation for numbers is usual (leading digits are the most significant digits read from left to right).&lt;/div&gt;</summary>
		<author><name>Ethel</name></author>
		
	</entry>
</feed>