Search content
Sort by

Showing 20 of 59 results by tiffy
Post
Topic
Board Development & Technical Discussion
Re: Nonsense about increasing the 21M supply cap
by
tiffy
on 14/01/2025, 18:24:18 UTC
No because PoS is fundamentally flawed and is a terrible protocol.

I don't understand enough about that. You can also replace PoS with a protocol that has yet to be found.

In 20 years Biotcoin must be worth several million to be as safe as it is today. Or the fees or the transactions must increase significantly. We know where the reward will be in 20 years' time. But we don't know how many transactions there will be then. Or am I making a mistake in my thinking?

Mining does not validate transactions, miners mine blocks to build ontop of the blockchain and the transactions validation is done by every single node (including the nodes that miners are running). Anyways, what's a thermodynamic maintenance?

Perhaps thermodynamic protection would be a better phrase. I don't know. Be that as it may SHA256 forces the use of energy that can hardly be reduced. Correct? I think it is very secure today. I don't know how I could calculate SHA256 with significantly less electrical energy than Bitcoin computing systems do today.

But if there are fewer and fewer rewards, the price only increases by a few percent a year and not much more comes in via transaction fees, then this may change over time. Or am I making a logical mistake?
Post
Topic
Board Development & Technical Discussion
Merits 1 from 1 user
Re: Nonsense about increasing the 21M supply cap
by
tiffy
on 14/01/2025, 02:55:04 UTC
⭐ Merited by vapourminer (1)
so we do around 52560 blocks a year if we recover 250,000  lost coins from 2009

you could add 1 coin per block  get 5 years.


So a recovery of lost coins form just 2009 in 2059 or 2052  fixes the issue for years.

It's a simple fix.  I think they will do some variation of this.

Now I want to ask you people here one more time:

Why isn't an additional PoS layer being discussed?

I understand that SHA256 mining is important during the distribution process.

But if everything or almost everything is distributed, SHA256 mining simply becomes a validation whose thermodynamic maintenance depends on the transactions themselves that are to be validated.

You then have to expand the money supply. You can call it "recycling" of "lost" coins, but in economic terms it is an expansion of the money supply.

In my opinion, an additional PoS layer would be economically less intrusive. The reward could still go 100% to the remaining SHA256 miners. But the transaction fees could be partially distributed to PoS validators.
Post
Topic
Board Development & Technical Discussion
Re: Nonsense about increasing the 21M supply cap
by
tiffy
on 13/01/2025, 19:41:41 UTC
I do not get it, why do you believe Mining becoming increasingly important for Miners will lead to a contradiction in the Decentralized structure of Bitcoin? 
I didn't write that. I wrote that fees are becoming increasingly important for miners. The increase in fees means less decentralization because the miners become more (much) dependent on the users.

If Block Rewards are about zero by that time and Bitcoin becomes twice as scarce every four years, then it simply sounds like Mining Fees will become worth enough to make Bitcoin Mining desirable to most Miners.

But what if it isn't? Is it even desirable for the security of the network to depend on the level of fees? At the moment, the fees are used by users to prioritize their transactions. However, the miners are not dependent on the fees. And that wouldn't be good either, because unlike the mathematically predetermined reward, you can't plan the fees.

I don't have a definitive position on this. I don't have a suggestion that says: "this is how we have to do it!"

But I do know that in 16 years we will need eight times the market price of today to have the same fee-to-reward ratio.

As things stand now, the Bitcoin network would continue to exist with almost unchanged computing power even if there were not a single transaction in it. The miners would simply create empty blocks.

But will that still be possible in 20, 30 or 40 years' time?

And if the answer is no, then my question is simply whether that can be a problem?

My answer: I don't know, but I can't rule it out either.

But enough, I really have no idea. And I think smarter people than me still have a lot of time to think about it.
Post
Topic
Board Development & Technical Discussion
Re: Nonsense about increasing the 21M supply cap
by
tiffy
on 12/01/2025, 20:03:01 UTC
Notice how "increase the supply cap and print more bitcoins" is not an option.

That's because it's practically guaranteed to never happen. Nobody who owns Bitcoin will agree to let it become a money printer.

I don't have much of an idea, but I've given it some thought anyway.

I think that the mining process via the Proof-of-Work is the optimal safeguard in the distribution phase of Bitcoin. In this way, Bitcoin is distributed in a way that is acceptable to most people. The term mining implies that new Bitcoins are generated in this process. Changing these basics would indeed seem like fraud.

However, it is also clear that the Bitcoin price cannot more than double every four years for all time. This means that fees are becoming increasingly important for miners. Bitcoin loses its distributed nature because nothing is distributed anymore. But simply increasing the Bitcoin supply is not a solution either.

How do we escape this dilemma?

Instead of wanting to rule out 51% attacks, you probably need to think about how to deal with them.

Questions:
  • What is the point of a mining process that hardly generates any new coins?
  • Do validation and mining have to be inextricably linked?
  • If the fees exceed the reward, is it possible to add a proof-of-stake process for validation?

These are interesting mind games. I think we have at least another 16 years before we actually have to deal with these things. But it will have to be done at some point if humanity wants to use Bitcoin permanently. Solutions are usually found when a majority finds a technology useful.

Post
Topic
Board Development & Technical Discussion
Merits 1 from 1 user
Re: Deriving p2wpkh addresses (bc1) using Xpriv (dumpprivkey no-legacy fail)
by
tiffy
on 12/01/2025, 16:17:27 UTC
⭐ Merited by mcdouglasx (1)
Sometimes we want to backup our private keys from Bitcoin Core using the dumpprivkey command, but it fails because it only supports legacy wallets and does not support descriptor wallets. The solution to this is as follows:

Thank you for posting this here. I think there is a lack of software that calculates addresses independently of the core client. There is the Ian Coleman tool. See:

https://github.com/iancoleman/bip39

But the tool does not support taproot, for example. It would be fantastic if there was an easy-to-use tool for this too.

I absolutely understand that you want to check the calculations twice. But let's assume we trust the core client and the math.

Why don't you simply save the output of

Code:
listdescriptors true

I have already used it to completely restore wallets (as a test). It can also be encrypted. Linux command line:
Code:
# Export your xprv descriptors:
bitcoin-cli -rpcwallet="yourWallet" listdescriptors true > listdescriptors_true.txt
# This compresses the redundant text file by a factor of about 6:
gzip listdescriptors_true.txt
# -> listdescriptors_true.txt.gz
# Now we encrypt the compressed file:
openssl aes-256-cbc -a -salt -pbkdf2 -in listdescriptors_true.txt.gz -out listdescriptors_true.txt.gz.enc
# Enter passphrase twice
# Done! Safe listdescriptors_true.txt.gz.enc wherever you like.
And it fits easily into a QR code.
Code:
# Now let's build the QR code:
base64 listdescriptors_true.txt.gz.enc > listdescriptors_true.txt.gz.enc.b64
qrencode -s5 -r listdescriptors_true.txt.gz.enc.b64 -o listdescriptors_true.txt.gz.enc.b64.png
Output QR code on screen:
display listdescriptors_true.txt.gz.enc.b64.png
You can of course also print out the QR code.

That's just an idea. And quite independently of that, I find your project very useful.


Post
Topic
Board Bitcoin Technical Support
Re: Is ChatGPT's answer correct? (Question about P2WPKH)
by
tiffy
on 25/12/2024, 11:30:57 UTC
As for the signed data, it's the "message hash" (aka Z-value) which is the hash of the unsigned transaction with stripped parts depending on the "sighash type".
On that website, the whole process from unsigned raw transaction to signed raw transaction is explained here:
https://learnmeabitcoin.com/technical/keys/signature/#legacy-algorithm (example is for the commonly used "sighash_all")
Sighash type is explained just below that page.

I don't have a sendable Merrit at the moment, but thank you very much.
Post
Topic
Board Bitcoin Technical Support
Merits 2 from 2 users
Re: Is ChatGPT's answer correct? (Question about P2WPKH)
by
tiffy
on 24/12/2024, 14:37:04 UTC
⭐ Merited by nc50lc (1) ,ABCbits (1)
The signature can be further sorted-out to get the R and S values, refer to BIP66: (https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki#der-encoding-reference)

Many thanks for the reference. I am trying to understand this as a whole and also came across this page:

https://learnmeabitcoin.com/technical/script/p2wpkh/

I hope the explanations there are correct.

I think my difficulties in understanding are due to the fact that I have not yet understood the classic P2PKH procedure in detail. So I still need to study it myself.

One question that is bothering me: What exactly is signed with the P2WPKH procedure? I sign on my offline wallet with the private key material. But what is the input for a signature?

Or to put it another way: How does the Core Client check the correctness of the signature? To which data does the core client (or another Bitcoin programme) apply the coresponding pubkey?
Post
Topic
Board Bitcoin Technical Support
Re: Is ChatGPT's answer correct? (Question about P2WPKH)
by
tiffy
on 23/12/2024, 21:07:14 UTC
For actual example, here's the mentioned part of a testnet4 transaction's decoded PSBT:

Thank you for your assessment. Is it possible to decode “txinwitness” even further? So the first value:
Code:
"304402201616c3090b25b40a1972fc1af2100fac806c6671a6c0f2c3d70760dc0bddda3c02203ae0cb30476e5c9ecfe022cedc645fb7e82fcd4dc966935eb5dd9016af0311c501",
Post
Topic
Board Bitcoin Technical Support
Topic OP
Is ChatGPT's answer correct? (Question about P2WPKH)
by
tiffy
on 22/12/2024, 21:24:05 UTC
Question to ChatGPT:
I create an unsigned PSBT file (P2WPKH) in a watch wallet. I then sign the file offline and import the signed file back into my watch wallet. I can then broadcast the corresponding transaction and the transaction is added to the blockchain. However, when I look at the signed PSBT file, I only find “final_scriptwitness” as an additional value, but no explicit signature. What is the reason for this?

Quote from: ChatGPT
In Bitcoin, when you're working with P2WPKH (Pay-to-Witness-PubKey-Hash) transactions, the signature is embedded into the scriptWitness (for SegWit transactions) rather than in the traditional `scriptSig` field used in legacy transactions. This is key to understanding why you only see a `final_scriptwitness` field instead of an explicit signature in the signed PSBT file. Let's walk through this in more detail.

Key Concepts:

1. SegWit (Segregated Witness) Transactions:
  • P2WPKH is a SegWit address type, meaning the signature data is stored in the `witness` field rather than in the `scriptSig` field.
  • The `witness` is part of the SegWit structure that separates the witness (signature data) from the rest of the transaction data. This helps to reduce transaction size and enable lower fees.

2. PSBT Structure:
  • A Partially Signed Bitcoin Transaction (PSBT) is a container format used to allow multiple parties to sign a transaction in different environments (e.g., one party signs offline, another party signs online).
  • The PSBT for a P2WPKH transaction will typically have a `final_scriptwitness`field once it has been signed.
  • The `final_scriptwitness` field in the PSBT contains the actual witness stack, which includes the signature, the public key, and any other necessary data for the SegWit script execution.
   
   Specifically, for a P2WPKH transaction, the `final_scriptwitness` will contain:
  • Element 0: The signature (which is what you might expect to see directly).
  • Element 1: The public key (needed to verify the signature).
   
 However, the signed PSBT you’re inspecting does not directly show the signature in the traditional format, because SegWit transactions store this signature in the `witness` field, which is represented as the `final_scriptwitness` in the PSBT.

3. The Reason You Don’t See the Signature in the PSBT File:
  • When you sign the PSBT offline, the client (whether it's Bitcoin Core or another wallet) will create a SegWit-compatible witness stack that includes the signature and public key for the relevant input(s).
  • For P2WPKH, the final_scriptwitness will contain a witness stack (usually two elements): 1. The signature. 2. The public key.

The witness stack itself doesn't explicitly look like a signature in a traditional format. Instead, it looks like a data structure that Bitcoin Core (or other wallets) interpret as the witness for SegWit transactions. The signature is implicitly part of that stack.

So, when you look at the signed PSBT, you're seeing the signed witness data (which includes the signature) instead of a traditional, standalone signature field.
Post
Topic
Board Bitcoin Technical Support
Re: How to move coins with good privacy from Bitcoin Core in an airgap laptop setup?
by
tiffy
on 16/12/2024, 21:13:51 UTC
So when you create the PSBT file, does it let you using Coin Control and choose an address for the fee as well?
There's not much to choose from. You enter the Bitcoin amount and the destination address. The client takes care of everything else. It also calculates the appropriate fee, although you can overwrite this value with your own.

I also feel more confident with GUI and hope that it's not screwing up behind the curtain.

You can then view the PSBT file with the corresponding command lines and try to understand it before you broadcast it.
Post
Topic
Board Bitcoin Technical Support
Re: How to move coins with good privacy from Bitcoin Core in an airgap laptop setup?
by
tiffy
on 15/12/2024, 21:48:38 UTC
I think there is GUI support for PSBT now but I've only used it from the console myself now-- someone else will have to chime in there.  

Yes. I have already used it successfully. My main reason for this is the hope that the QT client will just do the “right” thing. For someone with little knowledge (like me), this is perhaps the best option. I don't know.




Post
Topic
Board Bitcoin Technical Support
Re: What is the best/correct way to manage new HD wallets
by
tiffy
on 14/12/2024, 11:24:36 UTC
Is the `listdescriptors true` command what I want here?

Yes, that's exactly what you're looking for. This describes your HD Wallet mathematical complete. Even if your backup of wallet.dat is lost, you can use this output to restore your wallet. It contains the xprv key from which all key material can be derived.

If you use listdescriptors (without true), you will get the descriptors with the corresponding xpub keys. You can use this to set up a watch-only wallet on an online system.

I had exactly the same problem/questions as you.

This is how I proceeded:

  • First I wrote `listdescriptors true` in a file on my offline system. Then I wrote down the xprv key manually. Then I removed the xprv key in the file from all descriptors and replaced it with a string, for example:
    '__XPRV-KEY-HERE__'
  • I then saved the file with the descriptors (without xprv key) electronically and also printed it out.
  • Finally (for testing only), I took a completely new offline system and merged the descriptor file and the xprv key again. I imported the result into the core client and used it to sign a test transaction.

The encoded xprv key is about twice as long as the old legacy keys. But you have stored all the private keys of your wallet with it. 

This is not a complete description of what to do. But I hope this gives you an idea of how you can proceed for your purposes.
Post
Topic
Board Bitcoin Technical Support
Re: How does the network check for double spending efficiently?
by
tiffy
on 14/12/2024, 10:32:25 UTC
Short answer, full node use UTXO index/database.

Oh, that makes sense. Many thanks for the tip. I found a good explanation here:

https://www.reddit.com/r/Bitcoin/comments/wywsre/comment/im0g45w
Post
Topic
Board Bitcoin Technical Support
Topic OP
How does the network check for double spending efficiently?
by
tiffy
on 13/12/2024, 19:44:31 UTC
Why do I have to rescan the blockchain for hours to see the correct balance when I add a descriptor/key, but when I broadcast a transaction, it is confirmed in no time at all? Sometimes it really only takes a few minutes to get the first confirmation. I usually end up in the next block or the one after that. 

How does the network check for double spending so efficiently?

Sorry for the maybe stupid question, but I'm stumped right now.
Post
Topic
Board Bitcoin Technical Support
Re: How to create a watch-only wallet for an old (but migrated) Core wallet?
by
tiffy
on 10/12/2024, 00:26:19 UTC
However, you can create a blank descriptor wallet and import the watchonly descriptors for the 2 addresses you used. You can then use this wallet to create a PSBT sending the coins somewhere else. The PSBT can be transferred to the offline machine to be signed, and back to the online one for broadcast.

With such a wallet, there is no risk for loss because of change as the wallet will be unable to generate any change addresses, so if any change is needed, it will simply fail to create the transaction. You can further reduce risk here by using the sendall RPC.

Or the corresponding button in the GUI? Thanks for the explanation, that helps me a lot!

I have two more questions if you have time to answer. 

1. I have imported one of the descriptors (pkh) on the online machine. The daemon has started a rescan. This probably takes a very long time in my case. The RPC call ended with a timeout at some point. But the daemon continued rescanning. Then I terminated the daemon as a test and started it again. But it does not continue with the rescan after restart.  I know that the displayed balance is correct, but why doesn't it continue the rescan or start it again? I have also reloaded the wallet.

2. I have received 4 descriptors with the same pubkey for each legacy address. The types are pk, pkh, sh(wpkh), wpkh. I have now used the pkh descriptor. But could I also use the others? What should I use? I would like to transfer the coins to a Segwit address (bc1).
Post
Topic
Board Bitcoin Technical Support
Re: Viewing the addresses of wallet.dat WITHOUT Bitcoin Core?
by
tiffy
on 08/12/2024, 22:33:26 UTC
Can I view wallet.dat (old school I guess Core Bitcoin client) in some other manner than downloading the entire Blockchain.

Do you really mean all addresses or addresses with UTXO?
Post
Topic
Board Bitcoin Technical Support
Topic OP
How to create a watch-only wallet for an old (but migrated) Core wallet?
by
tiffy
on 08/12/2024, 22:04:22 UTC
Given: A copy of an old non descriptor wallet (originally created 2013) on an offline system with Bitcoin Core 28. Only two addresses were used at the time (2013-2014).  Bitcoin Core 28 was able to open this old wallet and it was possible to migrate it to a descriptor wallet. Now listdescriptors shows me thousands of descriptors that I don't actually need. All this on an offline machine.

What I would like to do: I would like to set up a watch-only wallet for the two addresses on an online machine and then create a unsigned transaction that transfers the coins from the old addresses to a new hd wallet.

The problem I see is that I can't generate new keys in a legacy non-hd watch-only wallet. This shouldn't actually be necessary in my case, but I still have the feeling that I'm on the wrong track here. What would be the safest course of action?

Is it possible to have legacy descriptors and hd descriptors in one wallet? Would the core client then derive the change addresses from the xpub keys?
Post
Topic
Board Bitcoin Technical Support
Merits 6 from 3 users
Topic OP
Address reuse (Bitcoin Core)
by
tiffy
on 04/08/2024, 00:38:15 UTC
⭐ Merited by LoyceV (4) ,ABCbits (1) ,vapourminer (1)
Is it safe to use an address twice (privacy excluded)?

I have read that if the random nonce k used for the ECDSA signature is not chosen at random then someone can calculate the private key.

Is this really a problem in practice?

I make a test transaction for new addresses to make sure that they work correctly.

I use Bitcoin Core 27.1.



Post
Topic
Board Bitcoin Technical Support
Re: Bitcoin Core: fundrawtransaction or PSBT for signing simple transactions offline
by
tiffy
on 02/08/2024, 20:22:21 UTC
You and nc50lc helped me again a lot. Nevertheless, I need to look into it more myself in order to fully understand what you have written.

What I generally understood:

The process of signing may require significantly more data than appears later in the transaction, as previous transactions may also be included here. The PSBT may then have to contain this additional transaction data. The size of the PSBT depends on how my transaction was added to the blockchain. I could use Taproot (Bech32m) to avoid the problem.

An average transaction is only 300 bytes in size. I could therefore mitigate the problem by converting the signed PSBT into a raw transaction on the offline device. Then at least the return path via a QR code would work. Do I see that correctly?

I don't know what you think, but I'm a little reluctant to use Taproot because it's still so new and I know so little. I didn't even understand the normal Segwit. I think I'll stick with the Bitcoin Core standard addresses (native Segwit) and figure out how to deal with the big PSBT problem and my air gap later.

Post
Topic
Board Bitcoin Technical Support
Re: Bitcoin Core: fundrawtransaction or PSBT for signing simple transactions offline
by
tiffy
on 02/08/2024, 14:27:35 UTC
Shouldn't legacy addresses according to BIP 44 solve this problem? The psbt file should remain small, shouldn't it? Do legacy addresses have any disadvantages for me apart from higher fees?