text:
Will Bitcoin copy Best Features of Litecoin, Ripple, if its Open Source?
Proponents of Bitcoin always mention that Bitcoin is Open Source, so if any better cryptocurrency comes along, Bitcoin can just copy those features in their open source.
Both Litecoin and Ripple have faster transaction speeds and more transaction capacity.
So why hasn't Bitcoin just copied those features, to improve itself?
We already know Bitcoin has current feature pull requests, and many of the nodes are agreeing to the changes. So why can't they upgrade speed/and capacity immediately?
Who approves the feature and bug code reviews in Bitcoin?
https://github.com/bitcoin/bitcoin/tree/4405b78d6059e536c36974088a8ed4d9f0f29898

@Prayank well I am talking in general, some cryptocurrencies have better advantages, which ever they are, just curious why Bitcoin hasn't absorbed them yet, etc

@Prayank I am not sure what these links are, I am just asking a general question, we're making a pretty strong assertion that Bitcoin is the top cryptocurrency out of a Litecoin, Ripple, others etc, thanks

Proponents of Bitcoin always mention that Bitcoin is Open Source, so if any better cryptocurrency comes along, Bitcoin can just copy those features in their open source.

Bitcoin can of course adapt to whatever its community agrees to. This isn't so much a result of the fact that it is open source, but of the fact that its use is entirely opt-in: it works because people want to use it with the properties it has. Any group at any point can decide to create their own modified network/software, possibly creating their own coin in the process. This has happened in the past, but only with very limited success.

Both Litecoin and Ripple have faster transaction speeds and more transaction capacity.

They do, but those come with significant costs too. Litecoin is fairly similar to Bitcoin, but has higher upper bounds on certain resource costs like bandwidth usage, processing time for nodes, block propagation guarantees... all metrics that influence how realistic it is to keep Bitcoin's full node network decentralized. Ripple is a completely different design that relies on wildly different security assumptions.
Note that I'm not trying to say the different choices those systems make are necessarily bad - they're just different trade-offs, and those are things to be decided by the network's ecosystem. It is highly unlikely you'll convince a sufficiently large and important subset of the ecosystem that such changes are desirable. Sure, some people will feel they are - but others won't, and unless it is clearly better in (almost) all regards, the Bitcoin ecosystem will likely prefer being conservative about such choices as it has been in the past.

So why hasn't Bitcoin just copied those features, to improve itself?

TL;DR: because not everyone considers those changes to be improvements, when taking the costs into account.

interesting, so are we saying, Bitcoin is probably the optimal  cryptocurrency, out of the 1000s out there, given the tradeoffs? it has no need to swiftly, copy These other features, your answer gave a pretty nice analysis of bitcoin,

People have heterogeneous visions for Bitcoin. Some people want it to be a digital gold, some value censorship resistance most, others want it to rival digital payment systems like PayPal. Given that, you will find that each of the ostensible improvements come with its set of tradeoffs—tradeoffs that infringe on the properties that other stakeholders hold dear.
There have been various schisms about the raison d'être of Bitcoin already. Namecoin, colored coins, Ethereum, Bitcoin Cash, each pushed for big changes of Bitcoin in some direction, but then eventually spun out into their own project aligned with their vision from the get-go, when it became obvious that Bitcoin wouldn't bend to their wishes. As such, Bitcoin has stayed a fairly simple and stable protocol at the base layer, and more ambitious features have been pushed out to other layers. The base layer has mostly evolved the biggest common denominator. Removed inefficiencies, some conservative scalability improvements and bug fixes. The upcoming Taproot soft fork is going to give a few new features for the first time in a long while.
This approach is more slower and more complex, but so far seems more future-proof:

Payment system? The Lightning Network scales users with transactions in the base layer, and provides almost instantly settled payments
Turing complete smart contracts? Run them on Rootstock.
Decentralized Exchanges? There's BISQ.
Privacy? Coinjoins, Joinmarket, atomic swaps, MAST, Musig2, confidential transactions on Liquid
Oracles? Discreet Log Contracts, coming up with Schnorr signatures in Taproot.
Security? Hardware wallets, broad support for multisig and self-custody
Issue your own Token? You can use RGB or Liquid.
Document authenticity? OpenTimestamps got you covered.

And all that only from a stupid simple base-protocol that has been developed in a forward compatible fashion without breaking changes. Maybe we aren't missing as many features as one would think.

interesting, so are we saying, Bitcoin is probably the best cryptocurrency, out of the 1000s out there? it has no need to swiftly, copy These other features, your answer gave a pretty nice analysis of bitcoin,

Bitcoin has a lot more features than what people give it credit for, and it has an enormous network effect. Especially the latter makes it very sticky and will continue to entice people to invest in Bitcoin improvements. There might be another cryptocurrency that has an overall objectively better set of tradeoffs, but unless it's at least a magnitude better, it's unlikely to catch up to the incumbent.


text:
Offline Paper Wallet Creation
I was wanting create an offline Paper Wallet, ideally, without using a computer for nothing more that verification.
So, that's how I came across Entropy.
What is the risk of attempting to create a wallet using non-computer methods only? I read some about people creating wallets that already had coins in them. The solution to getting around this is to ensure have a certain amount of entropy when you generate it.
Some say rolling dice will get you enough, but I'm not certain.
Does anyone know of any different methods?
Are there not any rng mechanisms you can pair with some math or something to achieve the threshold entropy for key generation?
Am I even understanding all this right, lol?
Are there human ways to get computer levels of entropy that are simple and straightforward? While it probably isn't something I will need all the time, it's very important i have at least one wallet that I generated myself, offline, that only me and god know about.
Ideally, I would want a method that is simple and that I could personalize over time.
For instance, if I could take a phone that couldn't connect to the Internet, Using the sensor data over a period of time to generate the key. Something kinda like that but lol not with the phone. Like those generators that you move your mouse around to do the rng. But with a few more added layers.
Any help is appreciated.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Should this be legal to charge a person a hashrate that is meant for 8 decimal point system then take and apply it to a 14 decimal system in bitcoin
I've been minning with Bitcoin crypto cloud mining company for a couple of months now.So everyday I go in and check on everything just to make sure the miners are still going, I'm mining at a hashrate of 1.53ths and that rate costs around $90 a month but I'm now into 3 months of mining with this particular mining company and this is the number I've got to show for all of my hard work and devotion to the bitcoin cause...(0.00006034789567mbtc)that's 60million three hundred and forty seven thousand eight hundred and ninetyfive and sixtyseven hashes in the last three months. But how much is it worth. Because I'm looking at it and I'm afraid that's it's only worth around $4.34 when I've already spent nearly $300.00. But here in 5 days I'm coming up another decimal point. And that makes a big difference. I want to withdraw the bits I have and put them somewhere that they can earn 20% extra to 50% extra in rewards instead of letting them just sit. Where thit is. What I'm afraid of is. If I do that,.will I lose that gain I get with the next decimal point.

If by "cloud mining" you mean you don't have your own physical mining hardware, you are being scammed. If they had profitable hardware, they'd just use it themselves, not let you rent it.

You ask "Should this be legal" - but all fraud of this sort is illegal. I suggest you stop giving money to criminals - doing so doesn't help the Bitcoin cause, it harms it.

Possible duplicate of https://bitcoin.stackexchange.com/q/41084/5406

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Crpyto Bitcoin Insurance
How will the Bitcoin Crypto market compete against theft, if other fiat currencies have similar to FDIC insurance?  In this article, some thieves did a phone swap, got a two factor authentication code, and stole money from Coinbase.
https://www.abcactionnews.com/news/local-news/i-team-investigates/cryptocurrency-accounts-wiped-out-in-an-instant-by-cyber-crooks
I prefer not to use Cold Storage, as I am lending my crypto out at 5% interest.

Currencies don't have insurance, financial institutions do.
Bitcoin was designed to operate without trusted third parties.
If you are trusting third parties and need insurance, that is not something that can be arranged by people who make wallets or who design cash
To put it another way, if you buy a leather wallet from Wal-Mart or from a Gucci store, and use that to take cash to a bank, neither Wal-Mart nor Gucci insure you against  bank failure.
The US Bureau of Engraving and Printing (https://www.moneyfactory.gov/) may print Dollar bills/banknotes and design their security features but they don't run FDIC.


text:
Did Bitcoin founders know Bitcoin is not scalable at Base Layer?
Given Bitcoin takes 45 min per Transaction, and consumes lot of energy (around 1 million Visa transactions),  https://digiconomist.net/bitcoin-energy-consumption/
This is more of a history question,
Did Bitcoin founders (Satoshi Nakamoto) know that Bitcoin would not be Scaleable?
Did they only create a Base Layer on purpose, and expect other people to create second derivative layers like Lightning Network?
Currently Bitcoin is not economic, without the key Lightning network, and certain provinces in China and other countries are attempting to shut down nodes. Lightning network has taken 10 years to release, since Bitcoin creation, and environmental politicians are starting to complain about power consumption. Just wondering if the founders, had foresight about this, and if they noted future goals for Bitcoin to work. I did not see it in their whitepaper. https://bitcoin.org/bitcoin.pdf

this question is Not a criticism on bitcoin, more of a historical question, and future goals in the whitepaper documents,

If you look at the announcement of bitcoin and the very first response to it, you can read James A. Donald pointing out that bitcoin (which we today call the base layer) "does not seem to scale to the required size".
Partial quote of James A. Donald's response:

We very, very much need such a system, but the way I understand your
proposal, it does not seem to scale to the required size. [...] hundreds of millions of people are doing transactions, that is a lot of
bandwidth - each must know all, or a substantial part thereof.

This response was sent more than two months before the genesis block was mined. Thus, it is fair to assume that Satoshi was well aware of the scalability concerns.

yeah, interesting, I read that earlier in the newsletters, did he address James's point later? I think he kept coding, knowing somebody else would prob fix the issue in the future ? not sure, its interesting he addressed many points in the newsletter, but not that particular one


text:
Where/How does Bitcoin-qt check for receives to it's addresses?
How does Bitcoin-qt technically check for receives to it's own addresses. I know it has a list of addresses loaded in from the wallet.dat, but when a new block or new transaction arrives, what logic increments the wallet balance you see and how? I've been told that it uses some merkle tree stuff.

the Blockchain contains all necessary info to know the balance of every address, including "it's own". When it downloads the next block, it updates all known balances by adjusting them based on every transaction in the block. This repeats.

Are you saying the Bitcoin-qt keeps a database of all addresses every used in the blockchain?

Yes - that's why it takes so long to start up the first time. It is downloading all transactions ever (the blockchain). In this way it can operate on it's own (that's what decentralised means) and check it's own copy to know "the balance" (which for the record is the total of the unspent outputs at a particular address). It can do that for all addresses not just its own addresses

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Offline transaction on exchanges
Do cryptocurrency exchanges use offline transactions?And if yes when they use it?Also is offline transactions somehow related to off chain transaction?

Businesses that provide accounts can transfer notional amounts of money between two of their customers, debiting one customers account and crediting a second customer's account. They can do this without using the Bitcoin network. Without using the Internet (so offline in that sense). All they are doing is changing some numbers in their own computer, separate from everyone else.
An off-chain transaction is one that is not recorded in the Blockchain. For example, a Bitcoin transaction in the Lightning Network is not recorded in the blockchain so is off-chain but it is online not offline - because it involves data communication between multiple parties across the Internet.

on-chain
off-chain

online
bitcoin
lightning

offline
not possible
exchange customer-customer

The intersection of two of many ways of categorising transactions denominated in Bitcoin.

So technically yes,exchanges uses offline transactions.Am i right?

Exchanges also use online transactions. For withdrawals and for payments by customers to non-customers.

I guess that offline transactions doesn't require blockchain confirmations,right?

@juhasa: Imagine that you and your friend Alice both have an account with some bank. You ask the bank to wire $10 to Alice. They just update your account balance to deduct $10, and increase Alice’s account balance by $10. Since they are only updating their own accounting, they can do that at their own leisure. It’s the same with an exchange. If however you want to wire money to Bob that has an account with a different bank, they’d actually need to wire money from bank to bank. In the Bitcoin context that would need a transaction going "on-chain".


text:
Off chain transaction on exchange
Are cryptocurrency exchanges uses off chain transactions?And if yes when does they used?

Related: https://bitcoin.stackexchange.com/q/76174/5406

Yes.
Whenever one of their customers sends money from that customer's account to the account of another of the customers of the same exchange.
Whenever a customer with an account deposits or withdraws money in another currency.

This happen via payment channels.Am i right?

Not via "payment channels" in the normal sense. Just numbers in proprietary records that are nothing to do with the Bitcoin network or blockchain.


text:
Bitcoin transaction not in my wallet
Transaction ID
BE105753
Order Type
BUY
Status
COMPLETED
BTC
0.00758253
Created
17/08/2023 05:21
Crypto Wallet
bc1p07uleun0j0d50uwhd9m3dadh59pd3xm35jplu54m78w35smpsynqrtf42v
Blockchain Link
https://blockchain.com/btc/tx/b693d9aefc5285f069c0daef8be372f8bf412c349a985e4913b7ebafd0e06456
Total Amount
235 EUR

Hi, this is a question and answer platform. Could you please include a question in this post? It would also help if you let us know what you were trying to do, how this outcome differs from your expectations and who your counterparty was.

Bitcoin transaction not in my wallet

Assuming you mean a Bitcoin transaction was made to pay money to an address generated by your wallet but your wallet is not showing the money as being received:
That transaction has a thousand confirmations, so the money is "at" the address you mentioned.
Your wallet should have a record of that address.
If your wallet doesn't show the money, there is something wrong with your wallet but remember that wallets don't contain money, they only contain the secret numbers known as private keys. The private keys give you control over money, the ability to spend received money. After having generated the receiving address passed to the sender, the receiving wallet plays no active part in the actual receipt of money - it just has to learn that it has happened in order to be able to show you that it has happened.

Why "secret keys" for "private keys"? Are we using new terminology globally or is it just syntactic sugar just for this post?

@Mercedes, just a typo really. Thanks for pointing it out. Fixed.


text:
Scripting an escrow transaction where the arbitrator ALWAYS gets paid
I am trying to make an Escrow and Arbitration where the arbitrator always gets paid say 5% of the transaction.
As in the famous escrow example here:
Charlie-the-customer wants to buy a product from Bob-the-businessman and Alice-the-arbitrator is responsible for making sure everyone obeys the rules of the contract.
The script for this 2-of-3 multisig is:
OP_2 [A's pubkey] [B's pubkey] [C's pubkey] OP_3 OP_CHECKMULTISIG

There is an issue with this script for my use case, Arbitrator is only needed and will get paid if there is a problem between Customer and Businessman. B and C can just sign the transaction and not give A anything.
I want A to be always paid when the funds move from the script to any address (not before it's added in the script), can this be implemented in the script?


text:
Keep getting high-hash error from bitcoind
I'm sending this json to bitcoind server running in regtest mode:
{"jsonrpc": 2.0,
 "id": "cumainer",
 "method": "submitblock",
 "params": ["000000200f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206a2db7dd515bcb1592ad65c2d5963e217120876d742f7b10d77d1a481017f4fb1ffff7f20a228fa6462a200000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff00000000010000000000000001000000000000000000000000a228fa64"]
}

First 80 bytes are my block header, 1 meaning the number of transactions and my coinbase transaction in raw hex.
My regtest server is fresh and it has only one block.
For some reason I always get "high-hash" result from the server.
However if I take first 80 bytes (block header size) of my "params" string and double hash it I get a string with few zeros at the beggining. getblocktemplate request gives me the first difficulty (0x207fffff = the easiest one) and I'm sending it back in little endian order as stated on submitblock reference (I actually tried sending in big-endian too).
So the double sha256 hash of my block header is clearly smaller than the target.
What does this error mean then ? What I am doing wrong ? Is it the byte order? Maybe the problem is actually with the merkle root hash ?

I tried to make sense of the data you submitted:
000000200f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206a2db7dd515bcb1592ad65c2d5963e217120876d742f7b10d77d1a481017f4fb1ffff7f20a228fa6462a200000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff00000000010000000000000001000000000000000000000000a228fa64
Here's how far I got before giving up

Hex
Should be
Concerns

00000020
block version?
Digit order looks reversed!

0f9188f13cb7b2c7 1f2a335e3a4fc328 bf5beb436012afca 590b1a11466e2206
ID of prior block

a2db7dd515bcb159 2ad65c2d5963e217 120876d742f7b10d 77d1a481017f4fb1
merkle root

ffff7f20
timestamp
This looks wrong! Looks like target bits in wrong place

a228fa64
target bits
Probably misplaced timestamp or nonce?

62a20000
nonce
Could be a valid timestamp in wrong place?

01
block contains 1 transaction

01000000
tx version

01
tx has one input

0000000000000000 0000000000000000 0000000000000000 0000000000000000
referenced txid (all 0 for coinbase input)

ffffffff
vout index (for coinbase input)

00
length of unlocking script
What about BIP34?

00000001
sequence?
Normally ffffffff

00
number of outputs
Can't be zero!

00000000
Locktime

00 00 01 00 00 00 00 00 00 00 00 00 00 00 00

Surplus data?

a228fa64

Repeat of data in target bits! So potentially intended as a locktime?

Maybe I am mistaken but that data doesn't look right to me
I recommend reading

https://developer.bitcoin.org/reference/block_chain.html#block-headers
Some doubts regarding the structure of the Coinbase Transaction?

The vout index for a coinbase input actually has to be 0xffffffff.

@Pieter thanks for pointing that out, answer corrected accordingly


text:
Is it possible to allow my bitcoin core node to connect remotely to sparrow but also locally?
I've changed the config file to connect my Sparrow wallet to the node, but when I do that, the ability to connect a different Sparrow wallet locally is gone. Is there a way to allow both?


text:
Questions about sidechain
Can coins from sidechains to be moved to mainnet and to be converted to bitcoin?Can you give me practical example of such transaction?

Can coins from sidechains to be moved to mainnet and to be converted to bitcoin?

That seems to be intrinsic to sidechains. Assuming we use the word "move" loosely.
According to Blockstream

Using something called a two-way peg, BTC can be “transferred” back and forth between the Bitcoin mainchain and the Liquid sidechain.

Transferring BTC from the Bitcoin mainchain to the Liquid sidechain is called a peg-in, and involves sending BTC to a multisig wallet controlled by the Liquid Federation. Once confirmed, an equivalent amount of L-BTC can be claimed by the user that initiated the peg-in. Anyone with a Liquid node can complete a peg-in.

Transferring BTC out of the Liquid sidechain back to the mainchain is called a peg-out, and involves a Liquid Federation member burning L-BTC that they hold. Once confirmed, an equivalent amount of BTC is sent from the Liquid Federation’s multisig wallet to one of the member’s whitelisted addresses.

So the underlying reality isn't that money disappears from the Bitcoin blockchain and reappears in a side-chain but that an amount of money is locked in the Bitcoin blockchain and an equivalent amount is created in the side-chain. By destroying that amount in the side-chain the equivalent amount locked in Bitcoin is released.
At a technical level the money doesn't move from side-chain to Bitcoin main-net, instead a previously locked amount of money is unlocked. It is designed that, from the end user's perspective, it just looks like money has moved.


text:
Can I always set the first byte to 0x02 with the following implementation?
I've followed this tutorial on generating a Public Private key pair value and generating a valid Bitcoin address.
But one part makes me wonder if the implementation is done correctly which is the following:
ECPublicKey epub = (ECPublicKey) publicKey;
ECPoint pt = epub.getW();
byte[] pubBytes = new byte[33]; //32 + 1
pubBytes[0] = 2; //0x02
System.arraycopy(pt.getAffineX().toByteArray(), 0, pubBytes, 1, 32);

To me it seems like hardcoding the 0x02 could lead to errors when the last byte of the Y coordinate is odd or am I wrong?
If this implementation does prove to be wrong, how could I implement it correctly?

In addition to that bug, Java BigInteger.toByteArray() slightly more than half the time won't be 32 bytes as needed here. That looks like a good website to stay very far away from.

@dave_thompson_085 I have checked that and for me, toByteArray() has consistently returned 32 bytes.

You're correct that the first byte should be 0x03 if the y-coordinate of the public key is odd. So indeed, the tutorial is not correct. If the y-coordinate is odd, just set this instead:
pubBytes[0] = 3;

It is worth noting, though, that you can simply negate the private key to achieve an even y-coordinate. This is obvious because if [s]G = Y then [-s]G = -Y. So it isn't really an issue if you did make this mistake and then wanted to fix it later. This was used in BIP-340 to make all public keys 32-bytes instead of 33, by omitting the 0x02/0x03 and always assuming the even y-coordinate.

thank you for this confirmation
I have adapted my code like this pubBytes[0] = pt.getAffineY().mod(new BigInteger("2")).equals(BigInteger.ZERO) ? (byte) 2 : (byte) 3;


text:
Can I rescan a wallet with bitcoin core in more than one session?
Since it takes long time, I want to close bitcoin core and continue later.
Will it continue from where it stopped, or do one must do the whole scan in one session?

You can use the rescanblockchain command/RPC to rescan in stages. Simply provide a start height and stop height, then next time, start from the previous place you left off. You can continue this until you've rescanned the entire chain.
You can use the getwalletinfo RPC to see the current rescan progress too. If the wallet is already scanning, you can use this to estimate which block height it is up to, and then resume from there using rescanblockchain.

Thanks! The problem is that I can't get to the RPC, since once bitcoin core is up it immediately starts rescanning and no menu ever appears.

Did you initiate the rescan, or did Bitcoin core do it automatically?

Automatically. I can’t even insert a password for that wallet. I can't do anything since there is no menu.   The bitcoin core version I have is 0.22


text:
Insert a password to a wallet.dat file from windows cmd
Is there a way to insert a password to a wallet.dat file from windows cmd?
I'm a newbie, so please be as specific as you can.
That wallet.dat file needs rescan, which I want to make after I insert the password. This I can't do from bitcoin core gui (version 0.22), since once running it starts rescanning immediately and so no menu appears and I can't do anything till it's finished the rescan.
Thanks

Using the info @Prayank provided, I managed to do it the following way:
Run first cmd session and changed directory to where bitcoind.exe resides. Then run bitcoind.exe
Run second cmd session, changed directory to the same one as above and then run
bitcoin-cli loadwallet directory_where_wallet.dat_resides
bitcoin-cli encryptwallet "my pass phrase"


text:
Consequence of deleting a Bitcoin Core wallet folder
One can generate many wallets from Bitcoin Core GUI, but for each one generated, a new folder appears with its name which contains few files.
Still, if you delete those folders, but maintain the wallet.dat file in the main Bitcoin Core folder, they will appear and you will be able to switch into them from Bitcoin Core GUI.
The question is whether deleting those folders can somehow compromise those wallets. E.g. Are the addresses generated before such folder deletion will 'perform' in exactly the same way as they would if the folder would still exist?
Another way to look at it is, if you just backup the wallet.dat files without the folders of the wallets you created, will that be enough for keeping and spending your BTC, or do you need to backup those folders too?

Each wallet folder contains all of the data for a wallet. If you delete a folder, you delete a wallet and all of its data. This includes any and all private keys, unless you have made a backup of that wallet.
The wallet.dat that is not in a folder is the wallet data file for the default wallet (the wallet whose name is the empty string). If you only backup this wallet.dat, you are only backing up the default wallet and none of the other wallets.
Older versions of Bitcoin Core will automatically create new wallets when it is told to open a wallet of a name if that wallet does not exist. It sounds like you are using an older version of Bitcoin Core which does that. It is seeing that you want to have wallets with specific names opened, but since those wallets do not exist, it is automatically creating them. Although these wallets are named the same, they are entirely different wallets. They contain different private keys and addresses. They are not related in any way, shape, or form, to the original that you deleted. This automatic creation behavior was removed recently.

Cheers @Andrew Chow!  I guess there are Consequences :)

is backing up the wallet.dat file from folders is enough, or do you have to backup the whole folder?

@mikest You should use the backup functionality built into Bitcoin Core itself. When the wallet is in use (and even when not in use), not all data is necessarily stored in the wallet.dat file. However if you use the built in backup functions, then the backup file exported will have all of the wallet's data. That backup file is still just a copy of the wallet.dat file, but it is created only after the wallet has ensured all data is present in the file.

Great! You have many aces up your sleeve, Andrew!


text:
What's the point of Multi Signature Addresses?
When an attacker has access to the private key of the wallet, he can dump the private keys of every address used for the multisign address(es).
So, what's the point of multi sign addresses when there's a single point of compromising the security of the Bitcoins?
Why don't we have a multi signature wallet? A wallet that requires multiple private keys to be opened.

When an attacker has access to the private key of the wallet, he can dump the private keys of every address used for the multisign address(es).

In the case of multisig addresses, there are multiple participating wallets, and multiple need to sign.

So, what's the point of multi sign addresses when there's a single point of compromising the security of the Bitcoins?

Compromising a single wallet is exactly what multisig protects against.

Why don't we have a multi signature wallet? A wallet that requires multiple private keys to be opened.

There are several. Some are commercial services, where one of the participants is the service operator (who then e.g. requires 2FA for signing). Others are advanced software that needs configuration to use.

Got it now, but then, why would we generate all multisign addresses inside the same wallet? Wouldn't we have to generate every address in a separate wallet for every address?

Each address will require signing with a list of public keys, one from each wallet. Typical schemes for address generation permit wallets to share their (master) public key, so that co-signers (and others) can derive multiple public keys at once. This means no communication with the wallets is needed for each new address.

"one from each wallet", which wallets? Bitcoin documentation does not specify that there are multiple wallets in the multisig process, rather, it suggests generating the addresses in the same wallet.

If we want a real Multisignature setup, with let's say 5 nodes, It looks to me, and please correct me if I am wrong, that we would have to run the command:
bitcoin-cli importaddress "multisig_address_generated_in_node_1" "" false
inside nodes 2,3,4,5.
Only this way we can achieve a real multisignature wallet, multisignature address having all of them a different private key

In practice, in a multisig wallet, you'll import the other wallets' master public key, so each participant can compute addresses that require all other wallets to sign as well.

This is going far beyond the scope of your original question. If you want to know how to practically use a multisig using particular wallet software, I recommend opening a new question for that with all relevant details.

We are still talking about bitcoin core (bitcoin-cli is the command line version of it), so, let's resume the talk:
Do we have to run that command in each node?
If so, then Bitcoin Docs need to be updated with proper security information, because the current multisignature tutorial is anti-security oriented

You didn't mention Bitcoin Core before, I was just answering your question as posted. Bitcoin Core does have documentation for multisig setups (https://github.com/bitcoin/bitcoin/blob/master/doc/multisig-tutorial.md), but if you have further questions on that, please open a new question. Here you just asked why multisig setups are secure in general.

Even if I end up asking there about it we will still end up talking about the process of how Bitcoin public keys are derrived in a multisignature process. So, it was okay to ask it here.
I thank you mister @PieterWuille for taking your time in replying me, and making me realize that every single address has to be generated in a separated wallet, not in the same wallet. Thank you for the detailed explanations!!

@LeaBit Why? A man needs to prove. He did, I appreciated his help and took my hat off for his time.

No, the addresses can be generated by any wallet. But they all involve public keys from all wallets, so those need to be shared beforehand.

Okay, let me bother you again with one more question to be 1000% sure: @PieterWuille
To guarantee no single point of compromise, it would be better to generate every address on a separated encrypted wallet ?

That has nothing to do with your original question. If you want to ask about practical multisig setups, please open another question.


text:
Does it make sense to create cryptocurrency based totally on go programming language?
The question is straightforward. Would such implementation be practical from performance prespective? or C/C++ and JAVA are the gold standart?

I don't know how well it performs, but here is a full node implementation of Bitcoin in go-lang that you could investigate: https://github.com/btcsuite/btcd


text:
Bitcoin on old version of Bitcoin
I have Bitcoin on an old version on the Bitcoin app; more specifically Bitcoin.org version 0.3.22. I tried to transfer the Coins to a newer wallet, but they don't go through. has anyone had or worked around this issue before? Thank you!

Does 0.3.22 have getrawtransaction?

I would strongly advise you to make a backup of the wallet.dat file, and then upgrade to a recent version of Bitcoin Core instead. 0.3.22 is extremely outdated, and unlikely to be able to catch up with the network (or even construct transactions the network accepts).

You can use pywallet to import the wallet.dat and export the private keys.
Then you can just sweep them into electrum or any other wallet supporting WIF.
Pywallet can be downloaded here: https://github.com/jackjack-jj/pywallet


text:
Invest 100USD in BTC and BTC went down by more than 100USD. How much I lose? Can I hold? how long?
If I invest 100usd in BTC and let's say BTC went down next down by 200. What will happen? Would I only lose my 100 usd? OR, I also owe another 100usd?
If anyone can explain. NOTE: Super new in investment world.
Thank you.

At an exchange rate (price of 1 BTC in $) of 47500, $200 buys you 200 / 47500 = 0.0042105263157895 BTC. If the exchange rate falls 200 then at an exchange rate of 47300, your 0.0042105263157895 BTC buys you 0.0042105263157895 * 47300 = $199.16.

You have 100 USD. The current BTC price is 40000 USD/BTC.
You buy 0.0025 BTC. This costs you 0.0025 BTC * 40000 USD/BTC = 100 USD. You now have 0 USD and 0.0025 BTC. You don't owe anybody anything.
Time passes, as long as you want. You can stop here, and just hold on to your BTC for eternity. You don't owe anybody anything.
The BTC price changes to 39900 USD/BTC. You still have 0 USD and 0.0025 BTC. You don't owe anyone anything. In fact, you didn't even lose anything - you have exactly the same as what you had before, only it is now worth a bit less when expressed in USD.
Now you decide to sell your 0.0025 BTC. This earns you 39900 USD/BTC * 0.0025 BTC = 99.75 USD. You now have 99.75 USD and 0 BTC. You still don't owe anyone anything. You lost 0.25 USD compared to what you had before buying, but no matter what the USD/BTC exchange rate does, it won't go negative.
As long as you don't borrow anything for anyone, you never owe anyone anything.
PS: Nothing here is specific to BTC. It applies to anything you could buy and resell later for a different price. If the price goes up and you sell, you win. If it goes down and you sell, you lose. Under no circumstances (*) will you ever owe somebody something because the price goes down; you'll just end up with less.
(*) This isn't true in some financial constructions (margin trading). Don't worry, if you were using these, you'd know.

Even when "it is now worth a bit less when expressed in USD." it might simultaneously be worth a bit more when expressed in hamburgers, Ferraris or Yen. Dollars are subject to inflation that, over a long period, generally devalues dollars. The long term trend over decades is for $100 to become worth less and less. The opposite is true for 0.0025 BTC. Just a thought.


text:
Could a Multi-Chain Bitcoin Help the issue of Scaling?
This question falls under the heading of "shower thoughts" that are Generally discouraged in the bitcoin-dev list.
I hope this is the right forum.
I have been running my full node for a few weeks now and have been watching the number of transactions in the memory pool hover around 90K. I'm thinking this is only going to grow and yet we seem to have peaked at an average of 2.5k transactions per block.
I have read of various proposals (BIPs) to fix this but have not seen anyone suggest breaking up the chain into multiple chains.
Currently we have ONE BIG CHAIN that everyone mines...and all transactions go into it...all wallets addresses are contained...
But what if we take half of all addresses (say last digit odd or even) and create TWO Bitcoin chains...
Each chain would start out with:

Half the difficulty setting.
Half the mining reward.
And a special wallet address on each chain that contains all the bitcoins in the other chain. This wallet would not be able to have spends as normal. It would only be able to spend based on the workings on special rules.

Miners would split their mining across both chains. Difficulty would adjust independently as normal. Rewards would continue to halve as expected...however more transactions processed would mean more fee income per block. (Should take 2.5k peak transactions per block to 3.75k per pair of blocks to both chains)
Transactions will go to the chain for the source wallet address (odd or even)
Any transaction that is odd to odd will stay on that chain...This is the savings in mempool and number of transactions as it won't effect the other chain.
Any transactions from odd to even will generate a transaction to the Special Wallet on Odd chain and add a new transaction to Even chain from special wallet to final wallet. And vice versa on the other chain.
The trick here would be having rules for the special wallet so only transactions can be spent from it using the other chains confirmed transaction as Proof. Embedded in that transaction is the spend to address that generates the final transaction on the other chain.  Cross Chain transactions would be a bit slower as they would require a confirmation from 1st chain before adding a transaction to the mempool on second chain... And then the issue of if the first transaction on first chain got orphaned...how would you cancel transaction on second chain...but this is a far as I've gone...
If this works...you could split this up to 3 chains, four chains...etc...with rapidly diminishing returns.
Has anyone heard of this before? Thoughts? Comments?
Thank you for reading!
Ryan

This is something between Ethereum's sharding proposal and Bitmessage's streams idea.

Ahh..Sharding was the term I was looking for...Thanks!

To only verify one shard just means you are trusting others to verify the other shards. Don't trust, verify.

Well..you are Trusting the protocol to verify the other shard..same way you are trusting the protocol to deliver your block reward..but I see what you mean. The transaction isn't really finished until it is confirmed on both shards.

You are not 'trusting the protocol', you are trusting users that are running software that is validating the shards that you are not (ie, how would the protocol stop users on another shard from creating a fake proof? It cannot). This is only marginally different than running a light-wallet, wherein you validate the block headers, but trust others that run nodes to validate the full blocks. afaik it is widely accepted that the most information-efficient way to verify information is to have the information itself, you cannot compress the information and gain the same verification assurances.

No, I don't think that sharding is as simple or beneficial as portrayed here. Here are a few thoughts:

Splitting by addresses doesn't seem plausible. Most transactions have either multiple inputs or multiple recipients. It's not clear how transactions would be handled that attempt to spend funds from both chains or pay to both chains. If they need to be present on each chain, I don't think we'd get a significant traffic reduction on either chain. If they do get included on both sides, how do we ensure that they don't get confirmed on only one side? If they can only be included on one side, how do we coordinate that?
ETH has been working on Sharding since 2016(?), and as far as I can tell, it requires layers of mitigations and complexity, and comes with all sorts of trade-offs. ETH requires global state for each transaction's execution. By introducing sharding, ETH gets multithreaded validation. Bitcoin's transactions are inherently stateless, and its scalability concerns are related to total resource usage. Two shards of 0.5 MB blocks are no better than one chain with 1 MB blocks for that. Two shards with 0.5 MB blocks that have a storage footprint of 0.75 MB and coordination overhead sound like a step back.
It sounds like a complete consensus overhaul. It's unlikely that people would be comfortable to support such a proposal.

That said, we already have some sidechains and second layer solutions that we can offload transaction traffic to with far less overhead or critical changes.

Thanks for the comments...I'll accept as answer.  However the two shards would still have 1MB blocks but half the transactions would have larger transactions sizes due to the added data. Probably not 50% larger... The multiple inputs and outputs though kinda kills it.


text:
Addresses After passphrase generation in wallet.dat
Say I generate a passphrase with bitcoin core to a wallet.dat, but also have a copy of it before the passphrase generation. Will EVERY address I'll generate AFTER the passphrase will NOT be accessible to the old copy (Before the passphrase) or is it a matter of luck – some addresses will be generated with the old keys and some with the new?

Will EVERY address I'll generate AFTER the passphrase will NOT be accessible to the old copy (Before the passphrase)

Correct. When encrypting a wallet, every key/address used from that point on will be new and encrypted. The wallet will not delete the old keys of course, otherwise it would lose all the funds before encryption. But from that point on, it will never give you an address from before encryption. There is no luck involved, beyond the usual negligible address collision probability.


text:
Is the paying of a transaction fee have anything to do with UTXO?
Say I have two addresses in my bitcoin core wallet, address A contains 0.1 BTC and address B contains 0.15
I choose to transfer someone 0.1 BTC, but there is also some fee, say 0.00001. Will the transfer take the BTC from address A and the fee from address B, so no BTC change (UTXO) will be received after the transaction?
Or the case is that, since the transfer + fee > 0.1 it will actually be taken from address B so there will be BTC change of 0.15-0.1-0.00001 = 0.04999 ?

Addresses are not account balances from which BTC amounts are deducted from. Addresses are only shorthand specifiers for an output script. The amount actually comes from UTXOs, each of which has a script which may correspond to an address.
The address the amount being spent (including fees) will "come from" depends on the UTXOs. Address A could have a balance of 0.1 BTC, but this could be composed of several UTXOs whose amounts sum to 0.1. The same applies to address B.
If there are only 2 UTXOs, one for address A of 0.1 BTC, and one for address B of 0.15 BTC, then the transaction will likely contain one input of the UTXO for address B and create a change output. UTXOs cannot be partially spent, so if the UTXO for A is chosen, then the UTXO for B must also be chosen as A does not have enough to cover the fee. This will also result in a change output.
The only scenario where there is no change output is if there are multiple UTXOs for each address and these can be combined in some way to sum to exactly the amount being sent.


text:
Check your wallet.dat passphrase
Is there a way of using bitcoin core gui in order to check if you know/correct about your wallet.dat passphrase by typing it only once?
I know you can change the passphrase, but I want to keep it and not by typing it 3 times (The other two as the 'new' passphrase).
I'm aware it might be considered a bit of an odd question, but when security is so paramount, this could matter IMO.

Yes, open the command console inside the GUI and type
walletpassphrase "your password" 1
This will only succeed if the password is correct.
If you have multiple wallets, make sure you have selected the correct wallet at the top of the console.   The console only works on one wallet at a time.

Thanks @meshcollider.  Is there a way to do it (On windows) while the passphrase characters are hidden(Not shown on the screen)?

@mikest, if you have backed up your BIP39 seed to a BIP32 wallet on paper, then you can through your computer in a lake and won't have to worry about loss of funds

If you prefer the characters not to show on the screen, then instead of doing what @meshcollider wrote, you can begin a send process by inserting an address (Use one of yours, for safety).
Then write an amount that is BIGGER than whatever you have in the entire wallet (So it won't be sent no matter what), then try to send it. It will ask for your password.
If you give the right one, it will inform you that you can't send (You don't have sufficient amount), if you enter the wrong password, it will tell you that you inserted the wrong password.

It would be safer to use the "sign message" feature instead of send - sign message also requires an unlock.

Hi @meshcollider, I get errors about the addresses I generate and place there. It seems it require legacy addresses, which to my understanding are not generated by bitcoin core current version unless you mess with the config file.


text:
Does inserting a passphrase also changes the private key of a wallet.dat file
If I insert a passphrase to a wallet.dat file but also save copy of it before the passphrase, and then make a transfer to it, will I be able to use the old wallet version (Without the passphrase) to spend it?
In other words, does the private key somehow changes when you insert passphrase to a wallet.dat file?

When encrypting a wallet, the wallet will generate new keys. If you transfer to those keys, the old, unencrypted backup will not be able to spend the funds. Only the encrypted wallet will have the private keys. Thus, after encrypting, you should take a new backup.

Thanks @meshcollider. And if I never transfer to it after the passphrase generation, but only spend some of the bitcoins there, I would still be able to use the old version (Without the passphrase) to spend the rest, it that right?

Not necessarily, when sending bitcoins the outputs available to send may not exactly match the amount of money you want to send, so you end up sending money "to yourself".

Peter is correct, this is known as "change" (in the same way you get change for overpaying with cash). Change would be sent to new, encrypted keys. But if you spend entire UTXOs at once with no change, then yes, both wallets will be able to access them.

Thank you @Peter Green, meshcollider


text:
Ledger BTC wallets
I have made 3 transactions of BTC to my Ledger Nano S device using Ledger Live. For each of these 3 transactions new receiving address was created for transfer. Ledger claims that this is done because of the privacy(https://support.ledger.com/hc/en-us/articles/360034336713-Receiving-address-changed?support=true).
When I take a look at blockchain explorer I can see that there are those 3 addresses that received my coins and they don't have any outgoing transactions.

Am I wrong if I make the assumption that BTC is not actually in my
wallet, but instead of these 3 wallets?
And am I wrong that those 3
wallets are not controlled by me, but are instead in control of
Ledger?

I'm currently learning about this too, and these posts about xpub look interesting: https://bitcoin.stackexchange.com/questions/60565/is-it-possible-to-use-xpub-address-to-monitor-balance-from-previously-generated?rq=1

Am I wrong if I make the assumption that BTC is not actually in my wallet, but instead of these 3 wallets?

Those three addresses will be belong to your wallet. A wallet consists of many secret keys and scripts. Thus, one wallet can generate many (unlimited) different addresses. But they still all belong to you.

And am I wrong that those 3 wallets are not controlled by me, but are instead in control of Ledger?

This is incorrect - all the secret keys to those addresses will be stored in your ledger hardware wallet and only be usable by you. That's the point of using a hardware wallet. Ledger has no access to your keys.


text:
I have a txt file labelled private key, inside is what i assume to be base64 string ending with =
I have a txt file labelled private key, inside is what i assume to be base64 string ending with =, is there any way I can access the wallet I assume this is the private key for?

Presuming you are in possession of an actual private key and not a random Base64 string, consider this answer to convert it manually yourself or use an external program like this or this to convert it to the Wallet Import Format (WIF).
It would be preferred if you do this in a virtual machine disconnected from the internet for security reasons.


text:
Is it possible to get a monthly "fiat/altcoin allowance" from simply "locking" your Bitcoins in a pure smart contract?
Let's suppose that Mr. John Doe has somehow managed to accumulate 10 BTC. He holds on to them for dear life as it's his one and only savings/lifeline. He has essentially zero fiat money. Only a bank account. His coins exist on an encrypted wallet.dat, created on a dedicated computer and redundantly backed up.
John has heard of all this "defi" stuff, but doesn't understand how it works in practice. He has spent many hours reading and asking questions related to this, but has still not been able to get it all straightened out. He just gets frustrated and irritated trying to make sense of the fuzzy sales talk found on all these slick websites.
Importantly, John has no ability to do "KYC/AML", and doesn't trust centralized entities either way. John is fine with providing his full name and bank details to any entity -- the only problem is producing a "photo id", since he hasn't got one and doesn't want to ever get one again. This is important to John.
John wishes to somehow get a steady monthly "income" from his ten digital gold bars (Bitcoins, that is), most likely in the form of some sort of "interest". John is not well educated in economic terms and therefore might not be using the correct financial terms.
Is there some way that John could enter some kind of command into his Bitcoin Core which creates a "smart contract" directly on the Bitcoin blockchain which, in some manner, "locks" the coins from being spent by him, but still doesn't make him lose control of them (the private keys stay with John)? That is, so that "some other entity" in some way derives value from this so that they will send John some reasonable sum of fiat money to his bank account monthly or yearly?
And if this is possible, how exactly does that other entity derive value from this smart contract if they don't control John's coins? They are just "locked" in the sense that John cannot spend them for some pre-determined amount of time, or until both parties agree to dissolve the smart contract. (This is what I'm guessing from my understanding.)
And assuming this is possible, what amount of USD would John get per month from such a setup? Are we talking $1,000 or $100 or even $10? John doesn't think it's worth it if it's less than $1,000, which has become sort of a "Western bare-minimum monthly income" for basic survival. Even if people trust these "smart contracts", there's always the risk of a bug or glitch which would make him lose all his hard-earned satoshis. That is a nightmare scenario for John.
In fact, the "monthly allowance" doesn't necessarily have to be paid in fiat money. It can just as well be Bitcoin or really just any altcoin supported by Bisq, so that John can trade them himself to end up with fiat in the end. If that makes a difference. (Maybe there's less regulations and legal obstacles for an entity to hand out some weird coin rather than dealing with bank transfers.)
I would highly appreciate if somebody could explain what I'm missing about this, sticking to John in the situation described here.
Please do not redirect this to an existing question; I have more than likely read it and the answers already.

No this isn't possible.
Firstly Bitcoin core's graphical user interface doesn't support complex transactions
Secondly no one is going to give John an income without receiving something in return that is more valuable to them. In particular some control over collateral that can be used to generate income now or in future  by some conventional mechanism.

It's not possible in the way you suggest.
Crypto lending services usually work by having the borrower offer some collateral, and the borrower gets full control of the crypto assets they are borrowing, with the collateral being offered in case the borrower defaults on the loan. You are offered "bonds" in exchange for lending your crypto assets, and the "bonds" represent the value you have offered for loan. Nobody is going to pay you interest merely for having your crypto assets locked up if they can't use those assets.
Such de-fi contracts may be possible on a future 2nd layer to Bitcoin, but is not possible in Bitcoin natively (so it won't be possible using Bitcoin Core). These 2nd layer solutions include sidechains such as Sovryn -- if you want to lend Bitcoin specifically, and you don't want to use a centralized service, you may be interested in looking into these sidechain projects.

@Prayank Well, that centralized website has a "Sign up" button and asks for e-mail addresses and usernames and has a Google reCAPTCHA thing on it. Hardly anonymous or "defi" in any way?

@Prayank "If you want to lend Bitcoin specifically, unfortunately your only option at this time is to go through centralized lending services..." From quickly checking on HodlHodl, they do not currently allow lending Bitcoin, as you acknowledge yourself. Please retract your downvote.

@Prayank It uses a central website, with accounts, where I need to register and log in and they have the e-mail address and username and password. How can you get this to "decentralized"?

@Prayank I don't understand what part is wrong. All 3 of those statements are true and what I wrote in my answer. If you disagree, please show me a single project that allows lending Bitcoin (not stablecoins or altcoins) without requiring a third party arbiter (aka decentralized) because I'm interested in using it too.

@Prayank Then it's easy for you to just cite the name of a project that does it? It's a pretty high in demand feature.. you keep saying "it exists" but have so far not yet just named a project...

@Prayank Fair enough, I guess a project like Sovryn, once production-ready, would meet the question requirement. I will edit my answer to mention it :) please retract the downvote now?


text:
How can I check if my seed matches a BTC address?
I have a seed with 12 words from Coinbase Wallet. The derivation path is: Segwit Native (p2wpkh) m/84'/0'/0' BIP84.
The first address generated seems to be wrong because it does not get generated anymore.
I can't get access to the funds with Electrum and a gap limit of 10000.
I'm sure that the address contains my funds and no other transactions than my initial are visible in the blockchain explorer.
How do I do get access to that address?
Can this be somehow brueteforced or something?

In HD wallets it rarely happen that a gap of more than 20 is being used. It relates to bip32 standard in most cases. And it may happen in only few cases:
-if the receiver is a payment processor that puts out hundreds of invoices and only few are being paid.
It doesn't sound like your case though. I would suggest using IanColeman website, please remember to use it in offline mode and be very careful about it anyway. I wouldn't use it with a bigger amount of funds personally.


text:
Could I mine a non-final transaction?
I know that non-final transactions (locktime in future and sequence number < MAX_UINT) are not "accepted by miners". However, I could not figure out the exact behavior.
If I mined my own block with a non-final transaction, would that block be considered valid, i.e., would clients add it to their copy of the chain and would other miners build on top of that block?
(I suppose the answer is "no" because otherwise attacks on contracts could be possible.)

This may be possible, assuming that other miners will accept your block and not orphan it.  However, you still need to sign the inputs of the transaction with the appropriate keys, so I'm not sure why you think that would allow an attack on a contract.

No.  In the reference client, main.cpp runs this check during "AcceptBlock":
    // Check that all transactions are finalized
    BOOST_FOREACH(const CTransaction& tx, block.vtx)
        if (!IsFinalTx(tx, nHeight, block.GetBlockTime()))
            return state.DoS(10, error("AcceptBlock() : contains a non-final transaction"),
                             REJECT_INVALID, "bad-txns-nonfinal");

which rejects your block if it contain a non-final transaction.  A client that accepts a block containing a transaction with a locktime in the future and sequence number less than std::numeric_limits<unsigned int>::max() would be on the losing side of a fork.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
What's the purpose of the WalletLocator field in Ripple accounts?
https://ripple.com/wiki/Transaction_Format#AccountSet_.283.29 defines  a field "WalletLocator" (256 bits) in Ripple's AccountSet transaction. That means that the field belongs to an account, and the owner of the account can set this field to whatever value they want.
Currently, it's not yet implemented in the client code but in the server code. I'm not able to make sense of the name "WalletLocator", and the code doesn't provide an explanation either.
What's the purpose of the field?

The original idea of the field was to keep a hash of the contents of your wallet that you could update in the Ripple ledger. Your wallet would also contain any prior hashes of earlier versions of the wallet that you couldn't confirm had already been replaced in the ledger.
That way, a malicious (or negligent) wallet provider couldn't serve you an old/obsolete version of your wallet. You just retrieve your WalletLocator from the network and if that isn't either the hash of your wallet or a prior hash stored in your wallet, you know you have a newer wallet out there somewhere. This would also catch the case where you store your wallet in more than one place and retrieve it from the "wrong" place.
Since the field was added, a different wallet model was used. But the field is still in the server and Ripple network in case anyone wants to use it.


text:
Why does Bisq claim that my earliest receive address has been used in 10 transactions?
In the "Funds" tab, in the "Receive funds" sub-tab, there's a long list of unused receive addresses (as expected). In the bottom, there's a bunch of ones saying "Used in 1 transaction(s)", again as expected...
But in the very bottom, there's one that stands out by saying "Used in 10 transaction(s)".
This makes me worried and anxious. Why was this not only reused, but reused nine times? I never did anything differently from how I trade/use Bisq today. That receive address must have been created when I created my Bisq wallet in early 2018.
Can somebody explain what the deal is with this? Has Bisq for some reason reused the same address and thus broken my blockchain privacy? Was it some kind of bug? Misunderstanding by me somehow?

Was it some kind of bug?

Yes, so it seems.

See https://bisq.community/t/privacy-address-reuse/5899

torte
1 Aug '18
When looking into my bisq account under
funds --> Receive funds
I see that usually new addresses are used. But on the bottom there is one address 1A… used already more than a dozen times and I wonder why

...

ManfredKarrer
Founder
Aug '18
Do you have the latest version? If there is a reuse of old addresses it is a bug. In older versions there was a bug with that but it should have been fixed a while back.

...

torte
Aug '18
Upgraded to version 7.1 and did the same type of transaction where I saw the address reuse before. This time no address was reused, so everything worked fine.
Great job, thanks to the team!
As well I’m pleased that I can manage the addresses in the wallet one by one (as far as I know not a new feature but a good one for privacy reasons).

The release notes for version 0.7.1 on  4 Jul 2018  say

Fix reuse of change addresses

Which refers to Issue 1540

the first address generated by the HD wallet gets reused repeatedly, other addresses were used, only once per address, but these are clustered around the first address (e.g. with oxt.me) , allowing transactions to be linked. this also discloses disclosing balances etc to counterparties who may have personally identifying information due to the nature of the transfers


text:
Blockchain.info: Is there a way to know if a transaction is confirmed or not?
I'm using the Blockchain.info API to get info about addresses and transactions.
It seems to me that the transactions (txs) don't indicate if they are confirmed or not.
Is there a way to get this info, directly from the api or indirectly, calculating the status from other values present in the repsonse?

I wouldn’t trust blockchain.info, they have quite the history of issues. But the good news is you can run your own node and easily query this information from it :)

The rawtx endpoint has a field block_height. If this field has an integer value, then the transaction was confirmed in the block at that height. If it is null, then the transaction is still unconfirmed. You can use that to know if a transaction is confirmed via the blockchain.info api.


text:
Syncing transactions. My transaction is showing syncing after I sent a bitcoin to another addressed
My transaction is showing syncing after I sent a bitcoin to another address.
Please I want you to explain to me the reason why.

Transactions are regarded as having happened when they are included in a new page  in the list of all Bitcoin transactions.
Each page in the list is called a "block". The list itself is a transaction journal called the Bitcoin "blockchain".
Every Bitcoin wallet that works as Bitcoin's inventor initially intended will talk to a few nearby wallets (or other "nodes" in the Bitcoin network) to find out about new unconfirmed transactions and new pages (blocks) in the transaction journal (blockchain). They each keep their own copy of the whole list from the beginning of Bitcoin in 2008. This process is called "synchronising".
Some wallets may discard old blocks that are no longer of interest. This is called pruning. It isn't really relevant to your situation but if I don't mention it, someone may feel the need to point this out.
By communicating with others on the network, a wallet may discover that it lacks details of some recent transactions and tell you it is "synchronising".
When you ask a wallet to pay someone. the wallet creates a transaction we call an unconfirmed transaction. This is like a draft transaction.
The unconfirmed transaction is only regarded as having really happened when it is added to a new page (block) of the transaction list (blockchain) by a miner. This is called a confirmation of the transaction.
Until a wallet is synchronised, it may not know about details of recent transactions and so may not yet know the outcome of recent transactions it has created.


text:
I saw an ad on Craigslist for a bitcoin runner
Hi there I saw an ad for a bitcoin runner.  The person is saying to buy bitcoin with the funds he sent me. I just received an obviously official cashiers check in the mail for $2,900.  Now he wants me to deposit it so that I can access my pay plus use the rest to buy bitcoin.  I have not deposited it yet.  Anyone heard of this? Is this a scam?

This looks like a fake check scam.

Does this answer your question? A person paid me with a fake check. How can I report a fraud?

This is 99.9999% likely to be a scam.


text:
Listunspent does not return all utxos
I am using Bitcoin Core to get all UTXOs for watchonly imported addresses. The strategy is the following:

I load a new wallet
await client.execute("loadwallet", ["testwallet"])

I import multiple addresses in the loaded wallet
import csv
import time

addresses = []
with open("addr.csv") as f:
    reader = csv.DictReader(f)
    for row in reader:
        timestamp = time.mktime(
            time.strptime(row["created_at"], "%d/%m/%Y %H:%M:%S")
        )
        addresses.append(
            {
                "scriptPubKey": {"address": row["address"]},
                "timestamp": int(timestamp),
                "watchonly": True,
            }
        )
res = await client.execute("importmulti", [addresses])
print(res)

After doing that, when calculating the utxos for one of the loaded addresses, I get a list with not all the utxos that I can find a block explorer. Could you please provide insights about what is going on here and how to solve it, preferably without heavy lifting such as indexing the blockchain ?

The documentation there is not so clear, at least for me (https://developer.bitcoin.org/reference/rpc/scantxoutset.html?highlight=set). I tried with something like: " bitcoin-cli scantxoutset "start" ["tb1...", "tb1...", ...] " and ti doesn't seem to work.

The documentation there is outdated. Use bitcoin-cli help scantxoutset. Nevertheless it still mentions what descriptor is to be used for an address: addr(tb1...).

Well, it works. But with a minus. It seems that it just read the actual blockchain and returns once the right answer. Then when I check balance thereafter (using listunspent), I still get the first result which was incomplete.

This is a replacement for listunspent. It reads the UTxO set directly, not the chain.

I get it, but it is significantly slower. I took me 10 sec to scan for one address. And it's still marked experimental. Is it definitive (in other words, is the doc outdated in this regard) ?


text:
How does public address "know" private key?
Imagine the following:
someone goes to the .org address of bitaddress, then switches off internet connection, then moves the mouse around until eventually the JavaScript Client-Side Bitcoin Wallet Generator produces a Bitcoin address with its corresponding Bitcoin private key, then saves everything on the screen to cold storage as a PDF, then scans the "Share" QR code onto a phone, then scans this QR code at a Bitcoin ATM to purchase Bitcoin and the Bitcoin in deposited in the wallet and this is confirmed on blockchain.
If later wanting to sell the Bitcoin, how does this public Bitcoin address "know" what the correct private key is?
That is, if the Bitcoin public address and private key have only existed on a non-internet connected PC and as a PDF in cold storage?

Does this answer your question? https://bitcoin.stackexchange.com/questions/102930/where-does-it-go-and-who-verifies-private-keys

How does public address “know” private key?

It doesn't. There's no need.
When receiving money, nobody needs to know anything from you other than your receiving address (in reality a Bitcoin script, the most common types of which can be displayed as an address). At this point no-one cares about your private key.

If later wanting to sell the Bitcoin,

When spending money, you have to provide proof that you know the private key corresponding to that receiving address, without revealing the private key. This is what your wallet does when constructing the transaction details that are sent out for miners to pick up.
Other Bitcoin nodes (wallets, miners etc) can mathematically check that the proof matches the public key and will then know that you have the secret number known as a private-key.

See

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

<<<When spending money, you have to provide proof that you know the private key corresponding to that receiving address, without revealing the private key.<<<   Thanks, so only proof is provided that you know the private key when selling, but not the actual private key. Interesting.


text:
Generate Paper Wallet using Electrum
Question: How do I generate a BTC paper wallet from an Electrum wallet.
Context: I have created a new wallet in Electrum and transferred a small amount of BTC there. That is the only transaction that has occurred in that wallet.
I would now like to use the contents of that wallet to generate a paper wallet for that full amount, and ideally do it all through the Electrum application. The reason why I want this as a paper wallet is that I want to give it as a gift for my nephew to have when they turn 21 in 20 years time. Having a nice laminated paper wallet seems both safer and cooler than placing a copy of the wallet on a USB stick or something else. Perhaps BTC will still be worth something then, or perhaps it won't even exist, but either way it will be an interesting thing for my future 21 year nephew to discover!
Note:

I am a complete newbe, so please explain everything.
If what I am asking is totally impossible using Electrum alone, please tell me the simplest and safest alternative.
I am using Electrum on a Mac.

Thanks in advance for any help! :)


text:
Can someone explain easily what pool-hopping is and explain proportional system?
I've been reading several articles but still can't understand the concept of pool-hopping. How are the shares distributed in the proportional method that is vulnerable against pool hopping? How are the shares submitted at the beginning of a round is worth more? and if a miner leaves a pool, won't it's rewarding stop. so it won't take any profit?


text:
Why are all popular crypto currencies deflationary?
There is a lot of criticsm and debate over whether bitcoins will ultomately fail because of its deflationary nature.
I don't want to debate if that's the case or not and I also understand that the goal of bitcoin was to have a fixed amount of coins so that there is no risk of (hyper)inflation.
What I'm wondering is, would it be technically possible for a crypto currency to have a fixed target inflation rate? For example the european central bank has a target inflation rate of 2% (I think) which is supposed to stimulate growth while at the same time avoiding over-inflation.
So I guess my question boils down to: Why are all popular crypto currencies deflationary? Is it a technical problem that cannot be solved or is there another reason it was designed like this?

There's no technical problem with making an inflationary crypto-currency. For Bitcoin, just changing the block reward schedule would do it. And there do exist crypto-currencies that have perpetual block rewards.
The thing is, the set of people who believe that inflationary currencies are good doesn't significantly overlap the set of people who think that currencies don't need to be managed by central banks. So there's not much of a market for such currencies. It's kind of like a veggie burger with bacon.

"It's kind of like a veggie burger with bacon." Very good way to put it!

Can we really say that "ever increasing supply of coins" is equivalent to "inflationary"? If the amount of wealth produced in the world grows (which seems the case), the amount of money can increase without inflation.

The term inflation originally meant an increase in the amount of money in circulation. This is now usually called "monetary inflation" and that's what we mean when we talk about inflationary currencies. Wealth is still being taken from people who hold the currency, it's just partially offset by newly-produced wealth.

It is indeed technically possible. In fact, there have been some alt-coins that do have permanent inflation.
PPCoin achieves it by creating 2 kinds of blocks: one the normal kind, where you have to demonstrate you made some work to get the block reward, and another one where you demonstrate you've been hoarding some coins for some time (proof-of-stake). First kind of reward has a cap (as in most other alt-coins) but the second doesn't.
Some minor alt-coins don't halve the reward after a certain number of blocks - they may have or not a final coin cap, some indeed dispense with the coin limit. Unfortunately none of them seem to have really taken off or at least I can't remember a notable one right now.

"would it be technically possible for a crypto currency to have a fixed target inflation rate?"
Nope it wouldnt, when the state economists talks about wanting 2% inflation they are talking about price inflation (so the coin being worth less) and not monetary inflation. They print more coins to archieve that (cause monetary inflation) but what they want is that coin devaluation not just compared with at its value would be if monetary inflation didnt existed but actual coin devaluation.
To a cryptocurrency have 2% value drop each year, the coin would need to be centralized, because you would need to actually somehow calculate the coin value and do enought monterary inflation (creating more coins) to make sure the coin devaluate 2%. Lets imagine you have 100 coins and print more coins enought to make 1 coin not be 1% of the total coins but 0.98% of it, if the market cap of the coin got so high that 0.98% of its price is more than 1% of the previous market cap value, the value of the coin will increase (a thing state economists dont want to happen), despise the 2% monetary inflation. You could try to use hash rate or amount of coins being staked as a method to try to gauge coin price without centralization, but that methods wouldnt be good enought.


text:
How do bitcoin exchanges work?
I'm relatively new to the world of Bitcoins and understand the basic principles of wallets and addresses etc, but was wondering how exchanges (like Coinbase) work exactly.
Is the entire exchange basically one large wallet with each user having their own address? That would mean that an exchange would hold a wallet containing all their users Bitcoins, no?
When you buy Bitcoins from an exchange using a bank transfer or credit card, where are the Bitcoins you're buying sourced from? It was my understanding that you have to buy Bitcoins from an individual who's actively selling their Bitcoins. Do they just buy a massive amount of coins all at once and slowly sell them off?

This may help: http://bitcoin.stackexchange.com/questions/19008/do-bitcoin-exchanges-own-the-bitcoins-they-trade-with?rq=1

Technically coinbase is not an exchange.  They operate as a wallet service that allows individuals to buy/sell only via ACH/credit cards.  Unlike MTGox which is an exchange that allows users to continually buy and sell coins without requiring funds being sent back to the bank.  Coinbase shops the market and buys and sells in an attempt to profit.

First of all, Coinbase is a little different from the main concept of an "exchange".
Real exchanges, like MtGox or Bitstamp, are really just a medium between traders. People can set limit orders to buy / sell bitcoins for a certain price. The exchange will match buyers and sellers when conditions of both the buyer and the seller are met.
More concrete, there are two types of orders: limit orders and market orders. Limit orders allow a trader to buy bitcoins at a price lower than the current price or sell bitcoins higher than the current price. However, these orders will only be executed once another user accepts them. Market orders will just find the best matching limit order.
So, let's say the last trading price is 100 EUR/BTC. Two people want to sell bitcoins but not for 100 EUR. One sets a limit order for 105 and the other for 110. So the best price to buy bitcoins for is then 105. When a person places a buying market order, it will look for the best price and it will buy from the one trader for 105 EUR. If the buyer wants to buy more than just one bitcoin, he will continually take the lowest price available. Doing this, the "price" of bitcoin will increase as the lower-price sell orders are no longer available.
Coinbase is different because it, as far as I know, does not allow for limit orders. I'm not sure how they implement trading, but it's possible that they charge a little higher price and take the risk for themselves or they may just make your order at another real exchange they partner with. But in any case, if no limit orders are supported, it is not a real person-to-person exchange like most others are.

ac to this solution, how different exchange has same price of a crypto (buy/sell both)


text:
Does Bitcoin "confirmations" have nothing to do with fullnodes -- only miners?
Roughly every 10 minutes, a new "block" is created. If Joe sends Sue a satoshi, it will be at least 9 minutes and 59 seconds until they get 1 confirmation (as I understand it). Then, subsequent blocks will increase the number of confirmations in perpetuity, with 6 blocks equating to roughly one hour.
But up until today, I always thought that "confirmations" were simply fullnodes (such as the non-pruned Bitcoin Core I'm running) "confirming" that the transaction took place.
Is this entirely false? If so, what is the point of my fullnode? Does it have any say/power whatsoever? It seems like the miners are the only ones who matter.

Every fully verifying node checks locally whether the transactions and blocks adhere to the consensus rules of the network. It is important that nodes enforce the consensus rules themselves as they otherwise would need to trust their peers to give them correct information—which would be trivial to abuse. By running a full node, you guarantee that your view of the Bitcoin network's state is valid according to the consensus rules.
We call the inclusion of a transaction into a block by miners the first confirmation of a transaction. The reliability of a transaction due to being confirmed is only ever probabilistic, because a chaintip could get replaced by a competing chaintip with more work (to be clear, this rarely ever happens in practice). However, each subsequent block adds more proof of work to the chaintip and makes it harder to replace the block that included your transaction. Thus, we count more blocks being found after the block that confirmed a transaction as additional confirmations for that transaction.


text:
How do I get the wallet balance from Bisq programmatically?
I have Bisq installed on Windows. Now I'm trying to fetch the current balance from PHP CLI.
I already tried to copy the bisq_BTC.wallet to a "Bisq" dir in the Bitcoin Core datadir (renamed to wallet.dat) and make it open that, but it's apparently a completely different format.
I've read the manual and find not one word about any API or command-line parameters such as: bisq.exe --grab-btc-wallet-balance.
How do I grab the balance without looking with my eyes in the GUI?


text:
Changes for bitcoin.conf file and details on the testnet network bitcoin-core
I have installed bitcoin core testnet and it is now synchronized with the network after 24 hours.
My question is about bitcoin.conf file.
I will tell you the procedure I used to install:
I created the start testnet.bat file with this command :
start "" bitcoin-qt.exe -regnet -datadir=./data_regnet/ -prune=550

Now There is this bitcoin.conf file in "data_testnet" folder. But the thing is it is empty.
And as I am new to this so want to know should I make any changes to bitcoin.conf file or leave it as it is.
And another question is right now I haven't closed the wallet in fear of losing the synchronization that it took so long, So the next time when I want to access the wallet I can directly start my start testnet.bat file??
Operating System: Windows 10 (x64-bit)
Bitcoin-core version: 0.16.3
Thank you:)

What is regnet? I think the option you want is regtest.

0.16 is also almost half a decade old.

Yeah regtest* typo

From where I am learning it has 0.16 so...

bitcoin.conf is a file where you can define configurations to bitcoind and bitcoin-qt persistently, you if you don't want anything like that, just leave it empty. Here you  can find more about the possibilities.

And another question is right now I haven't closed the wallet in fear of losing the synchronization that it took so long, So the next time when I want to access the wallet I can directly start my start testnet.bat file??

That's ok to restart it. Assuming you start bitcoind or bitcoin-qt with the same data directory, it will continue with the progress from the last session.


text:
Can I transfer Bitcoin from Binance to an Electrum Wallet?
I wanna be sure that it's possible.
I want to transfer Bitcoin I bought on Binance for trading purposes, to an Electrum wallet. Is this possible? If yes, can you explain me how to do it?
Thank you very much.

Yes it is possible, as long a Binance is willing to let you withdraw your coins.
Steps:

Open your electrum wallet. Open the 'Receive' tab, and copy the 'receiving address' to your clipboard.

Open Binance. Navigate to the page where you can initiate a withdrawal.

Paste the 'receiving address' from Electrum into Binance withdrawal form. Be sure to triple check that the address you pasted into Binance is exactly the same as the address that is showing in Electum

Submit the withdrawal to Binance, and then wait until they send you the coins. You will see confirmation of this in the Electrum wallet, as long as it is properly synced with the network.

Thanks! It can work but unfortunately it is way too expensive, I guess it isn't made for low BTC purchases, so, whatever. Thanks again!

NO, It is not possible.
You will ge the error message: The address does not match the currently selected network, it is recommended that you switch to another network.
Bitcoin or Etherum may even work, but at riddiculus fees (21,64€ for transfering 40€)

You are mistaken, Binance allow the withdraw of bitcoin.


text:
Safe to Carry a Card Containing my Seed Phrase and the Wallet in an International Flight?
As the question says. I have the seed phrase (collection of 24 words like theatre, soldier etc.) written on the card supplied by the manufacturer and the wallet itself.
As I am relocating, it is necessary to carry them with me. But in the process (with all those high tech airport scanners and cameras), what's the safest feasible way? I am actually more concerned about the card than the wallet itself.
If I put it with my locked check-in luggage (under protective layers of clothing and other items), as it will go through different cameras at origin and destination, can any of them pick up the words written on the card (with simple ball point pens)? I am not really a security-tech guy, so I may be paranoid? But is there a possibility?
I am more scared of carrying them (card+wallet) in person as hand luggage, as the security might call for a secondary check.
Assuming you have to carry both of them in the flight, how would you do it, feasibly, and inconspicuously, without drawing attention?
I don't currently have a lot of fund in the wallet, but I intent to continue to use it and keep more. So if it is compromised in the transit I may be screwed years down the line.


text:
Does Buying a Hardware Wallet Imply an Implicit Trust on the Wallet Manufacturer?
Just getting started with crypto, and as per some advices I read, a hardware wallet is the way to go for bullet proof security from malicious actors. After some research, think I will go with the Trezor model one as a cost-effective option. (Recommendation on any cheaper option, that does not compromise on the security, is welcome)
But, as a beginner, I have a few questions pertaining to different scenarios
Scenario 1
The hardware is lost, but I retain the seed phrase (combination of 40 words, right?). What's the exact process to recover my bitcoins? Simply buying another trezor one?
Scenario 2
Now suppose, in addition to the above scenario (hardware lost, retaining seed phrase), somehow, the company Trezor went bankrupt as well, i.e. their products are not available. What then? Will any hardware wallet work with the same seed phrase? And do I necessarily need a hardware wallet?
Scenario 3
The hardware is stolen. Does it have any security in place to at least make it difficult for the thief to spend the coins? Can I lock/destroy (I mean contents in it) it remotely (like, how I can lock my iPhone if it is stolen)?
Finally, if I am in possession of the wallet, and the seed phrase, can I do something like a factory reset of the wallet, i.e. restoring it to the same state when it was delivered and generating a new seed, again, like I can do on a smartphone? I know the funds inside (if any), will be lost, but just wondering if it is possible.

If you buy a hardware wallet, then you are trusting the manufacturer.
Trusting that they won't steal your keys or generate pre seeded keys.
Read: What is industry standard solution for trustless self custody?

Scenario 1 The hardware is lost, but I retain the seed phrase
(combination of 40 words, right?). What's the exact process to recover
my bitcoins? Simply buying another trezor one?

Buy any hardware wallet, and enter your seed phrase. Or use wallets like metamask, etc and enter your seed phrase.

Scenario 2 Now suppose, in addition to the above scenario (hardware
lost, retaining seed phrase), somehow, the company Trezor went
bankrupt as well, i.e. their products are not available. What then?
Will any hardware wallet work with the same seed phrase? And do I
necessarily need a hardware wallet?

Answered above

Scenario 3 The hardware is stolen. Does it have any security in place
to at least make it difficult for the thief to spend the coins? Can I
lock/destroy (I mean contents in it) it remotely (like, how I can lock
my iPhone if it is stolen)?

Hardware wallets usually have a secure PIN that you set, and use to login into the device. After couple of failed logins, the device can be configured to reset itself.
I think for open source wallets like Trezor, the wallet can be physically hacked and your key/seed phrase can be exported by technical experts. For closed source wallets like Ledger this is less probable as the technical experts don't know the Ledger firmware source code.

Finally, if I am in possession of the wallet, and the seed phrase, can
I do something like a factory reset of the wallet, i.e. restoring it
to the same state when it was delivered and generating a new seed,
again, like I can do on a smartphone? I know the funds inside (if
any), will be lost, but just wondering if it is possible.

You can do this and reset the device. But as long as you have the seed phrase written down somewhere, you don't loose your crypto.
Remember that SEED PHRASE = PRIVATE KEY = YOUR CRYPTO


text:
Confusion of Bitcoin Exchange Rate
According to How is the exchange rate for Bitcoin established? and How do bitcoin exchanges set prices? I understood that ,

An exchange doesn't set a price at all. It provides a framework for
customers to buy and sell coins to each other, at whatever prices the
buyers and sellers find mutually agreeable. The exchange itself does
not buy or sell, and the prices it quotes are just a report of what
its customers are doing right now Credit: Nate Eldredge

Still, I have questions.
Within the last few weeks, bitcoin drops to $33,000 from $50,000. Even before it went maximum of $69,000.
Just assume the current price of bitcoin is $50,000. According to what I understood, to it becomes $49,000 someone needs to buy bitcoin for $49,000, and someone needs to sell him to for $49,000.
There will be a lot of people who need bitcoin for $49,000 since the current price is $50,000. But who wants to sell bitcoin for $49,000 instead of $50,000 since the current price is $50,000.
For example, if I check the open orders of exchange like Binance, all open buy orders are below the market price and all open sell orders are above the market price. So I can't understand how the bitcoin price is dropping?

Your current understanding is correct, but incomplete. If the current price of bitcoin is $50k, no one has open offers to sell at $49k. Instead, there will exist buy offers at $49k. When a seller looks at the market and sees zero offers above $50k, and they still want to sell, they will have to accept the $49k offer, moving the price down to $49k.
Check out this article to learn more about how the price of Bitcoin is set.
There are two types of orders: market orders and limit orders. A market order executes immediately as it accepts the best open offer on the market. For example, if sellers have 3 open offers to sell at $47k, $48k, and $49k and a buyer places a market order, the market order will be matched with the $47k offer. These open offers are limit orders, and they do not execute immediately, but wait until a market order matches with them.
You can read more about Market Making as well.

If the price of bitcoin is $50,000, there will be lots of people willing to buy a bitcoin for $49,000 and lots of people willing to sell a bitcoin for $51,000.
Now, say the price of bitcoin is $50,000 and lots of people come along and buy bitcoins for $50,000. Eventually, there will be nobody left selling at $50,000 and you'll have to talk to the people selling at $51,000. The price just went up.
Or say the price of bitcoin is $50,000 and lots of people come along and sell bitcoins for $50,000. Eventually, there will be nobody left buying at $50,000 and you'll have to deal with the people buying for $49,000. The price just went down.
When the demand from buyers (or sellers) exceeds the supply of sellers (or buyers) at the current price, the price will move up (or down) as people continue to buy (or sell) at the new price.


text:
Setup Trezor with Electrum. Created a receiving address. Executed from my online wallet. Timed out and disconnected Trezor. Now what?
I setup Trezor 1 (not Model T) with Electrum, then created a receiving address in Electrum (not Trezor's wallet). I then sent transfer from Paxos account to this address. However, Paxos triggered some confirmation of transaction, and Trezor+Electrum had a 5 min time out. I had to disconnect Trezor and fire Electrum back up. I don't see transaction history in Electrum or the receiving address referenced anywhere. Now what?

You can see the full list of addresses on the addresses tab of electrum. If you can't see this tab go to view menu > show addresses. You can search the list by pressing ctrl+f. Search for the missing address there.

Electrum generates addresses deterministically. That means that the first address it generates based on your seed will always be the same as long as it is unused. As soon as Electrum sees a transaction on that address (regardless of whether it has been confirmed or not), it will never again generate that receive address.
As to why the transaction was not show in your history in Electrum: this is due to Paxos not immediately processing the actual Bitcoin transaction as soon as you confirm your withdrawal.

That makes sense. The weird thing that remains is that there is no visualization of that receiving address, whether used or not, once it times out or if you get disconnected. No log, history, console command that dumps the info. So in the case you get disconnected...poof...you're left wondering if you keyed the wrong address on the other end. Only solution I can think of is to screen shot it unless I'm looking in the wrong place?
And you're correct about paxos not immediately executing trans. Hence the reason I'm bailing out, among many others.

This resolved. However, it was significantly delayed by Paxos. Another reason to get out of the exchanges quickly.
As far as I can tell Electrum does not save the addresses created which hella annoying. Please correct me if I'm being dumb.


text:
Does a 12 word recovery phrase offer the same security as 24 words?
Watching this Q&A with andreas he states that a 12 word recovery phrase offers the same amount of security as a 24 word seed phrase as the output is 128 bits either way.
If this is the case, why do wallets use 24 word recovery phrases which adds extra user complexity for no, or a marginal at best, security improvement?

According to my calculator ...

2128 is around 3.4e+38.
204812 is around 5.4e+39

So I guess Andreas is right (unsurprisingly). A randomly chosen 12 word phrase from a 2048-word dictionary has enough entropy to generate any 128-bit seed.
However, I am not a mathematician nor a cryptographer, so there may well be some other important factors I am unaware of.
The fact that the phrase incorporates a checksum must slightly reduce the number of random bits in the generated seed.

BIP39 says this:

We refer to the initial entropy length as ENT. The allowed size of ENT is 128-256 bits.

So BIP39 allows for much greater entropy.
...

The following table describes the relation between the initial entropy length (ENT), the checksum length (CS), and the length of the generated mnemonic sentence (MS) in words.
CS = ENT / 32
MS = (ENT + CS) / 11

ENT
CS
ENT+CS
MS

128
4
132
12

160
5
165
15

192
6
198
18

224
7
231
21

256
8
264
24

So the checksum is accounted for.
I didn't see much other relevant discusssion of this aspect in the BIP.

The checksum is 4 bits for 12 words, which makes it 2048^12 / 2^4 = 2^132 / 2^4 = 2^128. Typically when a seed phrase is generated, it is done by generating 128 entropy bits, and then transforming that to the phrase with a checksum. The words represent the entropy original entropy. Checksum is for error checking.

My guess at this point is that it is much more difficult to brute force 24 words than 12.  The resulting seed is no stronger, so actually brute forcing the seed would be more effective than guessing the 24 words.


text:
Is it possible to cancel a lightning invoice?
Could the user who generates the invoice not just delete their secret so the payment would not be successful? Maybe there is a more eloquent way that wouldn't result in users funds being stuck for a period of time though but is cancelling a lightning invoice possible?

Yes. The payments on the Lightning Network are necessarily interactive, therefore the payee can just refuse the incoming payment.
Invoices are configured with an expiration date, such as the sender's wallet can warn the user if it has expired: no need to try to pay since the payee will just refuse the payment for sure.

@RenePickhardt C-lightning does via delinvoice. If you delete an invoice before it's expired, your node will effectively refuse the incoming payment. So you somehow "canceled" it.

just deleted my comment. maybe you can add your comment to your response. I missed that API.


text:
How to Prove Ownership of a New Address to an Exchange?
I am planning to withdraw some sats from my exchange (Gemini) to my Trezor one. But they seem to have a very strict withdrawal SOP that requires me to prove the ownership of a public address.
The problems, as I see, are twofold

my trezor wallet has a few sats, but the specific address I created is brand new and I never received any fund there
I can send a few sats from my trezor device to the exchange, as a small deposit test, but I do not see a way to control the origin address. I mean, is not my trezor device just the collection of all addresses? I can receive in any of them, but can I send from a specific one of them?

So what's the way out here? Does Trezor 1 support this feature? Or have to resort to something else?

You're in luck in using a Trezor, which actually makes this somewhat manageable.
The functionality you're looking for is called Coin Control - where you can specify which existing UTXOs to spend from, hence controlling the address the funds originate from in your deposit transaction to Gemini.
You would have to have enough BTC in some address to be able to first send it to the address you wish to prove ownership of.
Then, you can use the coin control features in Trezor Suite, or connect your Trezor to other wallets that offer similar functionality - Electrum, for example.