@ -383,7 +383,7 @@ Alice((("bitcoins", "receiving")))((("receiving bitcoins"))) uses the _Receive_
[role="width-50"]
[[wallet_receive]]
.Alice uses the Receive screen on her mobile Bitcoin wallet and displays her address in a QR code format
.Alice uses the Receive screen on her mobile Bitcoin wallet and displays her address in a QR code format.
image::images/mbc3_0101.png["Wallet receive screen with QR code displayed. Image derived from Bitcoin Design Guide CC-BY"]
The QR code is the square with a pattern of black and white dots, serving as a form of barcode that contains the same information in a format that can be scanned by Joe's smartphone camera.
@ -475,7 +475,7 @@ prompt him with a suggested fee (or fee rate). The higher the transaction fee,
faster the transaction will be confirmed (see <<confirmations>>).
[[wallet-send]]
.Bitcoin wallet send screen
.Bitcoin wallet send screen.
image::images/mbc3_0102.png["Wallet send screen. Image derived from Bitcoin Design Guide CC-BY"]
Joe then carefully checks to make sure he has entered the correct
@ -89,7 +89,7 @@ TODO: Replace QR code with test-BTC address
////
[[invoice-QR]]
.Invoice QR code
.Invoice QR code.
image::images/mbc3_0201.png["payment-request"]
Unlike a QR code that simply contains a destination Bitcoin address, this
@ -177,7 +177,7 @@ is signing a transaction that transfers value from a previous
transaction over to a new owner identified by a Bitcoin ((("transactions", "inputs", startref="transaction-input-ch2")))((("transactions", "outputs", startref="transaction-output-ch2")))((("inputs", startref="input")))((("outputs", startref="output")))address.
@ -589,7 +589,7 @@ the process of mining and the way it builds confidence in more ((("bitcoins", "m
<<mining>>.
[[block-alice1]]
.Alice's transaction included in a block
.Alice's transaction included in a block.
image::images/mbc3_0207.png["Alice's transaction included in a block"]
[role="less_space pagebreak-before"]
@ -618,7 +618,7 @@ for a new website page. Now the chain of transactions will
look like <<block-alice2>>.
[[block-alice2]]
.Alice's transaction as part of a transaction chain from Joe to Gopesh
.Alice's transaction as part of a transaction chain from Joe to Gopesh.
image::images/mbc3_0208.png["Alice's transaction as part of a transaction chain"]
In this chapter, we((("transactions", "spending bitcoins", startref="transaction-spend2")))((("bitcoins", "spending", startref="bitcoin-spend2")))((("spending bitcoins", startref="spend-bitcoin2"))) saw how transactions build a chain that moves value
@ -83,7 +83,7 @@ top-level fields. We'll examine each of them in the order they appear
in the transaction and describe any additional fields that they((("transactions", "serialized", startref="transaction-serialize")))((("serialized transactions", startref="serial-transactions")))((("Bitcoin Core", "serialized transactions", startref="bitcoin-core-serial-transaction"))) contain.
[[alice_tx_byte_map]]
.A byte map of Alice's transaction
.A byte map of Alice's transaction.
image::images/mbc3_0601.png["A byte map of Alice's transaction"]
.Map of bytes in the inputs field of Alice's transaction
.Map of bytes in the inputs field of Alice's transaction.
image::images/mbc3_0602.png["map of bytes in the inputs field of Alice's transaction"]
==== Length of Transaction Input List
@ -575,7 +575,7 @@ maximum relative timelock in both blocks and seconds from 16 bits
as defined by BIP68.
[[bip_68_def_of_nseq]]
.BIP68 definition of sequence encoding (Source: BIP68)
.BIP68 definition of sequence encoding (Source: BIP68).
image::images/mbc3_0603.png["BIP68 definition of sequence encoding"]
Note that any transaction that sets a relative timelock using sequence
@ -591,7 +591,7 @@ transaction where Alice pays Bob, displayed as
a map of those bytes in <<output-byte-map>>.
[[output-byte-map]]
.A byte map of the outputs field from Alice's transaction
.A byte map of the outputs field from Alice's transaction.
image::images/mbc3_0604.png["A byte map of the outputs field from Alice's transaction"]
==== Outputs Count
@ -1020,7 +1020,7 @@ other fields, so we'll start with a map of those bytes from
Alice's transaction in <<alice_tx_witness_map>>.
[[alice_tx_witness_map]]
.A byte map of the witness structure from Alice's transaction
.A byte map of the witness structure from Alice's transaction.
image::images/mbc3_0605.png["A byte map of the witness from Alice's transaction"]
Unlike the inputs and outputs fields, the overall witness structure doesn't
@ -1261,7 +1261,7 @@ this chapter is shown represented in weight units in
the difference in size between the various fields in the ((("transactions", "weights", startref="transactions-weight")))((("weights (of transactions)", startref="weights")))((("vbytes", startref="vbytes")))two images.
[[alice_tx_weight_map]]
.A byte map of Alice's transaction
.A byte map of Alice's transaction.
image::images/mbc3_0606.png["A weight map of Alice's transaction"]
@ -444,7 +444,7 @@ else or submitted to the blockchain.
showing the funding, commitment, and settlement ((("payment channels", "state channels", startref="payment-channel-state")))((("state channels", startref="state-channel-terminology")))((("transactions", "state channels", startref="transaction-state")))transactions.
[[payment_channel]]
.A payment channel between Bob and Alice, showing the funding, commitment, and settlement transactions
.A payment channel between Bob and Alice, showing the funding, commitment, and settlement transactions.
image::images/mbc3_1401.png["A payment channel between Bob and Alice, showing the funding, commitment, and settlement transactions"]
==== Simple Payment Channel Example
@ -470,7 +470,7 @@ Fabian. <<emma_fabian_streaming_video>> shows Emma buying the video
streaming service from Fabian using a payment channel.
[[emma_fabian_streaming_video]]
.Emma purchases streaming video from Fabian with a payment channel, paying for each second of video
.Emma purchases streaming video from Fabian with a payment channel, paying for each second of video.
image::images/mbc3_1402.png["Emma purchases streaming video from Fabian with a payment channel, paying for each second of video"]
In this example, Fabian and Emma are using special software that handles
@ -546,7 +546,7 @@ transaction that allocated the final balance correctly between((("payment channe
participants.
[[video_payment_channel]]
.Emma's payment channel with Fabian, showing the commitment transactions that update the balance of the channel
.Emma's payment channel with Fabian, showing the commitment transactions that update the balance of the channel.
image::images/mbc3_1403.png["Emma's payment channel with Fabian, showing the commitment transactions that update the balance of the channel"]
==== Making Trustless Channels
@ -612,7 +612,7 @@ shorter timelock, allowing it to be spent before the previous
commitments become valid.
[[timelocked_commitments]]
.Each commitment sets a shorter timelock, allowing it to be spent before the previous commitments become valid
.Each commitment sets a shorter timelock, allowing it to be spent before the previous commitments become valid.
image::images/mbc3_1404.png["Each commitment sets a shorter timelock, allowing it to be spent before the previous commitments become valid"]
Each subsequent commitment transaction must have a shorter timelock so
@ -802,7 +802,7 @@ isn't enough to encourage fair conduct.
where the output paying the holder of the commitment is delayed.
[[asymmetric_commitments]]
.Two asymmetric commitment transactions with delayed payment for the party holding the transaction
.Two asymmetric commitment transactions with delayed payment for the party holding the transaction.
image::images/mbc3_1405.png["Two asymmetric commitment transactions with delayed payment for the party holding the transaction"]
Now we introduce the final element of this scheme: a revocation key that
@ -1005,7 +1005,7 @@ capacity of 4 bitcoins in each channel.
to make a payment from Alice to Eric (see <<lightning_network>>).
[[lightning_network_fig]]
.A series of bidirectional payment channels linked to form an LN that can route a payment from Alice to Eric
.A series of bidirectional payment channels linked to form an LN that can route a payment from Alice to Eric.
image::images/mbc3_1406.png["A series of bi-directional payment channels linked to form a Lightning Network"]
Alice wants to pay Eric 1 bitcoin. However, Alice is not connected to
@ -1019,7 +1019,7 @@ payment from Alice to Eric, through a series of HTLC commitments on the
payment channels connecting the participants.
[[ln_payment_process]]
.Step-by-step payment routing through an LN
.Step-by-step payment routing through an LN.
image::images/mbc3_1407.png["Step-by-step payment routing through a Lightning Network"]
Alice is running an LN node that is keeping track of