G. Maxwell
  • Member for 4 years, 7 months
  • Last seen this week
  • Somewhere mostly harmless
How secure is using TOR in Lightning Network?
5 votes

The paper you link to when used as advice rather than a scholarly investigation into the tradeoffs of different choices is outright bad advice. The attacks they give are largely generic and have ...

View answer
Why does the decode function of the segwit bech32 encoder/decoder take a hrp (human readable part) as input?
5 votes

I'm assuming that the "dec.data[0] > 16" check is to make sure that the byte at index zero doesn't exceed a value of 16, which would be invalid hex. Is this correct? No, it's because only versions 0 -...

View answer
Is the idea of fraud proofs possible in reality?
Accepted answer
5 votes

The whitepaper said that SPV clients would avoid accepting a rules violating block by being altered to the violation, downloading the block, and checking for themselves. This is not realistically ...

View answer
Why are block header bits necessary? (Valid difficulty is already implied by chain history)
5 votes

Directly committing to the nbits allows you to determine how much work was used to produce the header statelessly before looking for (or fetching) information about prior headers. This can help fend ...

View answer
What incentive do miners have to respect the Replace-By-Fee flag?
Accepted answer
5 votes

Disrespecting it would require them modifying their software, which has ongoing administrative costs. Otherwise, there any incentive within the system to behave otherwise. Willfully not taking income ...

View answer
Why not retarget on every block?
5 votes

The update frequency results in some trade-offs. Faster updates increase the exposure to isolation attacks-- where a partitioned part of the network speeds back up to the nominal speed. Faster ...

View answer
How would one "Encrypt" a message using a Bitcoin *public key* and use its private key to decrypt it?
5 votes

If you want to encrypt messages, you should use a proper message/file encryption tool like PGP/GPG. Homebrewed cryptography using bitcoin things is prone to having poor security properties.

View answer
Regarding CVE-2018-17144 and test cases
Accepted answer
5 votes

There are tests for that. The specifically broken pattern was a block containing a single transaction spending the same output, which originated from an earlier block, twice. Testing it without ...

View answer
Can SPV clients offer "proof of absence" of a transaction?
Accepted answer
5 votes

There is no known way to do this with the current consensus rules nor does it seem likely except via computationally expensive general ZKP. The normal way to make compact proofs of non-membership is ...

View answer
How many txid gets added to mempool per second?
Accepted answer
5 votes

On a long term average the number of transactions is limited to the number of transactions that can enter the blockchain-- so roughly 7tx/s before segwit and 14tx/s after segwit activates. But on a ...

View answer
Is there a way to allow use of unconfirmed RBF outputs in transaction building?
Accepted answer
4 votes

Bitcoin Core will happily spend RBF marked inputs it doesn't avoid them much less prohibit them. Perhaps you're being confused by the fact that it will not spend an unconfirmed input created by a ...

View answer
The order of the generator point G used in bitcoin
Accepted answer
4 votes

It's easy to verify the order (n): Multiply G by n and find that you get the point at infinity. This proves that n is either the order or a multiple of it. Then convince yourself n is prime using a ...

View answer
What happens if I mistype the address when making a payment?
4 votes

Bitcoin Addresses contain a check-value: extra data added on computed as a function of the rest so that mistakes are unlikely to be acceptable addresses. 1x and 3x addresses use a 32-bit ...

View answer
group proof of work
4 votes

I believe any function that was not independent would have progress-- a miner with 3x the hashing speed would be first more often than 3x the time. When applied to POW consensus, progress is very bad ...

View answer
Did Bitcoin Core relay blocks sequentially or in parallel to peers before Compact Blocks?
4 votes

It isn't as simple as "sending sequentially" or "sending in parallel". Each connection is its own socket and the kernel performs packet scheduling. The Bitcoin protocol doesn't have any ...

View answer
Is there a way to verify how many Liquid Bitcoins are in existence?
Accepted answer
4 votes

You can easily verify the liquid circulation, in fact any liquid node can do this in realtime as part of its operation if you run a Bitcoin node along side it. Pegins can't, however, be reconized ...

View answer
Schnorr batch validation speed statistics
4 votes

Speedup in well optimized cryptographic functions are hard to come by. In libsecp256k1 we'll usually celebrate a 4% algorithmic speedup. Figures on the order of 2x are reasonable for the usage in ...

View answer
Why is a "first seen" rule is used to pick a side in a honest split, instead of deterministic criteria?
Accepted answer
4 votes

for example, the one with the "best hash" (number further away from the difficulty cut)? Deterministic criteria like that would allow the entire network to quickly know which block wins, and ...

View answer
How do Golomb Coded Sets work?
Accepted answer
4 votes

The data-structure is encoding a set which means it is not encoding an order. If you draw numbers uniformly at random from some universe then sort the result (thus destroying the order information), ...

View answer
Where is the New button in the Receiving Addresses windows of bitcoin core 0.17.0?
4 votes

Press "request payment" to get an address. The button on the address book was redundant and was removed by PR12721.

View answer
A couple of questions on Schnorr sig
Accepted answer
4 votes

A schnorr signature, without key prefixing, is a tuple {pubkey (P), message (m), R, s} where the equation R == sG + H(R||m)P holds. Now, assume you have pubkeys P and P2 who's discrete logs differ ...

View answer
Checksum vs. Hash: Differences and Similarities ?
4 votes

Sometimes these terms are used more or less interchangeably. Traditionally, a checksum is used to detect corruption and a hash is used to map large elements into slots randomly. In Bitcoin-land we'...

View answer
Can someone explain me ECDSA (creating public from private key) with 8-bit numbers?
Accepted answer
4 votes

It's my opinion that mechanical explanations of ECC are almost completely worthless to people, and mostly just generate false understanding. Exactly how two points get added to each other isn't an ...

View answer
Can the blockchain be outpaced by a chain of low-difficulty blocks?
4 votes

Nate gave a good answer on the modern meaning of "longest chain"-- as a historical curiosity, the originally released Bitcoin software behaved like you were expecting and that attack would actually ...

View answer
Bitcoin Privacy
4 votes

Technically, the hardness of the elliptic curve discrete log problem keeps your private key private! But we would normally say that this is what protects your Bitcoins from being stolen, since that ...

View answer
Known cases of miners withholding blocks when used as randomness?
3 votes

You're probably better off going to some ethereum venue, as ethereum has been rife with broken schemes like this-- riggable "fair" lotteries and such.

View answer
sendtoaddress command doesn't work with bech32 bitcoin core 0.17
Accepted answer
3 votes

It sounds like you are using the wrong address type for the network that you are on. Regtest bech32 addresses begin with "bcrt".

View answer
Generator Point G multiple
3 votes

You can find n by consulting a discrete log oracle, such as myself. N is 5. You're welcome.

View answer
Bitnodes for node on testnet
Accepted answer
3 votes

Testnet is a distinct although largely similar protocol. Bitnodes would need to specifically support it for it to work with it. I can't find any evidence that bitnodes has any testnet support or a ...

View answer
which was the purpose of changing the signature of a TX? or it was just a bug before segwit?
Accepted answer
3 votes

By using sighash flags you can flag a transaction to intentionally make specific parts of it modifiable after signing it. This kind of intentional malleability is a useful, if not often used, feature ...

View answer