text:
BTC Treasure hunt
Alright, I’m new to Bitcoin/Crypto, and this might be a long story but worth it.
My life long friend had a $50 Visa gift card back in 2009-2011. His friends were over the house one day and mentioned this new thing called Bitcoin. My friend (we’ll call him John), said cool I’ll buy some (mind you, we were early teens). He didn’t have cash or any kind of credit card so he used the entire gift card, on Bitcoin... in 2009-2011. He made the purchase, and they continued on with their day. Fast forward to about 2014-2015, my friend John is diagnosed with serious epilepsy and had to have a portion of his brain tissue removed, as a result, his memory of anything prior to the surgery is shot. Fast forward, 2017... BTC ROCKETS in value. John, remembering that he had purchased BTC back in 09’-11’ went on a search for the computer they purchased it on, and here lies the issue. There are 3 computers it was potentially purchased on, his, his brothers, his friends. The only remaining one is his which we recently found in the closet... I have the hard drives, I have the hardware to access 2 of them. There are no "wallet" or "wallet.dat" files on the two drives I've searched BUT there are a few files on there (forgive me if I am totally lost) one being CryptoCME.dll and a few others in a "Crypto" folder with a bunch of text. All of which have text that resembles this text when I open it on Notepad:
©Ô„ Õ}UðÛ oˆ‘ ÞùêÊÓìÚ ËŽÌY; its a LOT of that kind of text and a lot of the files have "CryptoAPI Private Key" in plain text written in them.
I'm unsure what this encryption/cryptography is or if I'm looking at a bunch of stuff that has literally nothing to do with Bitcoin. Anything would help. Anyone that helps me gain access, will be compensated. And yes, I am well aware of the scammers out there, I understand that this acts as cash and can be taken immediately if I give any specifics out so don't try it, and no need to remind me. Please excuse my complete ignorance and thanks for the help.

CryptoCME.dll is unrelated to cryptocurrency, as is CryptoAPI Private Key.

You say you're aware of scammers but you are no doubt being contacted by many right now.

You are on a wild goose chase.
Don't use notepad to investigate files, use a hexdump tool and/or something like the 'strings' command in Linux or in the installable Windows Linux subsystem that Microsoft provide in Windows 10.
Don't work on the actual discs, make a low level duplicate, not a file copy, but a copy that includes the contents of unused space. If you are working on the original disks you are liable to trample over valuable data in unallocated space. Mounting the disks read only might reduce the risks but working on s low level copy is best. Use file recovery tools on the copy to retrieve deleted files and fragments. Search contents for typical wallet contents. Don't rely on filenames.
Check old email for messages from online exchanges or wallet providers.
Familiarise yourself with the appearance of private keys and look through scraps of paper in places you friend kept important paper documents.
Even if you find a wallet, there is a good chance you won't have any clue to the password that might be needed.


text:
Need Coldcard CLI doc clarification
I'm looking at the documentation for the Coldcard CLI and I'm a little confused as to what specifically the -p, --path TEXT command does. In the documentation, it says the following:

% ckcc msg --help Usage: ckcc msg [OPTIONS] MESSAGE
Sign a short text message
Options:   -p, --path TEXT  Derivation for key to use
-v, --verbose Include fancy ascii armour
-j, --just-sig   Just the signature itself, nothing more
--help           Show this message and exit.
% ckcc msg "Hello world" Hello world
mp2SHbLDr5hg4tvKhaZGKzkf3GmzAuQCz1
H3wh0RIKoIcyRShkbMm5SbVoKaeMYlf4up7dvVfvP1c1N5FEXoBcjiiTNxR88ybpW3XlujHGhyCvy2/hnMtSE+c=

Let's say I have a transaction with a single input with the path m/84'/0/0/1/0. If I were to, say, command --path m/5', would that then sign the transaction with the PRIVATE KEY at m/5' or would it sign it with m/5'/84'/0/0/1/0?
Thanks,
Myles

Based on the behaviour of their test suite, it should sign with the key at m/5', and not attempt to coerce it into a prefix for a standard path.

source: Stack Exchange

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

sort: votes


text:
Trying to find Elegant solution to PSBT Multi-sig Signing
I am trying to sign an incoming PSBT in custom software I'm building and I'm having trouble understanding how the signing process of a PSBT actually works. I have a Trezor where the xPub I used in the 2-of-3 multi-sig setup is actually the child of the main key of the Trezor (for example's sake, say the xPub is located at m/26H).
From my understanding, I can use HWI to sign the PSBT, but I don't know what information is necessary for me to provide and what the Trezor assumes. I think that the Trezor fetches the private key for each of the inputs based on the derivation path in the decoded PSBT, but I want to replace it with the correct path for my program, Ex: If the PSBT shows m/44/0/0/1/0, I need to replace it with m/26H/44/0/0/1/0 because remember; my xPub is not from the seed but rather one of its children. Also, I believe for multi-sig signing, I need to provide the other public keys used in the transaction in order to create the next script, but isn't that included in the PSBT? If not, is it even possible for me to get the public keys of the other 2 wallets if all I have are their xPubs? (Doesn't hardened derivation prevent me from finding child public keys therefore if the PSBT uses keys at, say, path m/44H/0H/0H/1/0, I can't generate the keys?)
Overall, my goal is to simply sign a PSBT with my recovery key that exists in my Trezor. And, here's all the information I have:

PSBT (created and signed by one key in BlueWallet)

Derivation path from seed xPub to the wallet xPub (example: m/26H gets the xPub of the recovery wallet)

The other two wallet xPubs

Let me know if I need to make any additional clarifications.
Thanks.

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


text:
xPriv needed to derive hardened child xPubs?
I am trying to create a java method that gets the xPub associated at the childnumber of the input hardened:
  private String getDerivedXPubFromPathAndXPub(Integer childNumber, String xPub) {
    return childXPub;
  }

For example, getDerivedXPubFromPathAndXPub(20, xpub123) would return the child at m/20H where m is xpub123. Do I need to have the xpriv for xpub123 in order to do so? This method in my program is used for account creation and I need to find a way to create new master keys from a single key without 24/7 access to my private keys.

Yes, parent extended private key(xprv) is required to derive hardened child xpub. You may use non-hardened derivation for child keys if you don't want access to parent xprv, but less secure as exposure of one child private key and parent xpub can result in all coins stolen.
You can find the detail of child key derivation(CKD) functions in BIP32.

That's what I thought. I believe hardened derivation is best for my project so I'm going to try a workaround where I generate many child xpubs at a time and store them along with their derivation paths so I can query that file for "new" extended keys. Thanks for the help!


text:
Lost / Forgotten Wallet?
I have this issue I have... When I first started using crypto currencys I used a lot of wallets ... etc trying to get a feel for what I wanted.. so ... Now I have a wallet that reads . 01 BTC balance and while I recognize the the last few letters of the address .. I have no clue what or where is it.. Evercoin, Crytonator, Coinbase... Any ideas .. I am sure I can find it if I had and clue where to look...

If you were getting transaction notifications to your email address, you might be able to find something in your mail account. Other than that, an address alone does not provide any indication which service or software might have generated it.


text:
Recovering a Bitcoin Key Made From Rolling Dice
So a few years ago I created a private key by rolling dice.  Following the instructions from bitaddress.org, I rolled a dice 99 times and entered the string into the bitaddress.org.  Rather than storing the private key in WIF or HEX, I wrote the 99 digit string of dices rolls.  However, I changed some of the dice rolls to obfuscate the true private key if someone else stumbled upon the 99 digit numbers.  Now I can't remember which digit(s) I changed.
Using Python libraries, I've been trying different combinations/permutations of the 99 digit number.  Stuff like what if I swapped two positions or straight replacement of one or two digits.  No luck.
Any ideas?  How fast can I create keys and check if my key matches my bitcoin address?  Python libraries that I have found let me check about 10 permutations a second.  How much faster can I do with C?

A 6 sided die rolled 99 times gives 6^99 = 1.088864372500119e77 possible combinations. This is almost exactly the same key space of a 256 bit private key (roughly 2^256), in other words, without knowing how many digits you changed, it is impossible.
Let's see, if my math is correct, I believe if you changed 1 digit, then you have to try each number 6 times, or 99 x 6 = 594 tries. If you changed 2 digits, then you have to try 594^2 = 352836. If you changed 3, 594^3 = 209584584. That is much more doable and will have less to do with what language you use, and more to do with how you implement it. You can generate the private key, and then the public key and encode it to see if the address matches (assuming you still have the address).

Assuming I only changed 3 digits and using Python, checking 209584584 different keys will take 242 days running 24/7.  Any idea how much faster it would be to check in  pure C code (compiled language)?  Trying to understand if its worth it to learn enough C to get a tester written in C.

The page at https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/gpp-python3.html suggests anything from 0.52% of the time (1.27 days) to 54% (131 days). Perhaps more valuable is discovering early that it wasn't only 3 digits.

Your best bet would be to implement GPU to generate the private key.
There are tools like vanitygen on Gihub where you can generate keys using OpenCL libs and GPU or simply use btcrecover tool (might need modification in your case)
The Vanitygen github is here: https://github.com/samr7/vanitygen
BTC recover Github is here: https://github.com/gurnec/btcrecover
Good luck!
/KX


text:
How to figure out the coordinates of a compressed G point?
I really can't get my head around this ECDSA thing... So far I know that it's used for validating transactions by having a private key sign its signature to the transaction. I've come to the math part of ECDSA, but I just can't find any sources that are newb-friendly or explain everything to detail. I've checked out the datasheet for the secp256k1 and all the recommended values for the different variables. In the datasheet there's the G point, which is in both compressed and uncompressed form, but I just don't get how I figure out the X and Y value, the actual coordinates, the location of the base point?
Does anyone have any SUPER well explained guide or something on how the math behind it works? It's for a really important assignment due thursday.
Thanks in advanced.

The uncompressed encoding in hex for elliptic curve points is 04 + 32-byte X + 32-byte Y.

Try reading SEC 1 - Standards for Efficient Cryptography Group it contains everything apart from the efficient ways of computing different things (like point multiplication) but I think it is a good start. The part answering your question is explained in section 2.3.3 page 10 and 11.

Actually the compressed form in hex is 02 + X_coordinate if Y coordinate is even, or 03 + X_coordinate if Y coordinate is odd; comparing to the uncompressed form is 04 + X_coordinate + Y_coordinate.
So to retrieve the coordinates from the compressed form, just calculate the Y coordinate by curve equation Y^2 = X^3 + a*X + b, there will be two Y values, then choose the correct one by the prefix which is 02 or 03.
You will get the actual coordinates of the point.

The following complements the answer from @James with some simple working bitcoin-explorer math examples to facilitate comprehension:
G = 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
k = 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD (private key)
K = G*k
where 0 < k < 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
To compute a compressed public key (K) using secp256k1 elliptic curve math:
% bx ec-multiply 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD
03f028892bad7ed57d2fb57bf33081d5cfcf6f9ed3d3d7f159c2e2fff579dc341a
Since G is fixed for secp256k1, the compressed public key can be simply computed using this:
% bx ec-to-public 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD
03f028892bad7ed57d2fb57bf33081d5cfcf6f9ed3d3d7f159c2e2fff579dc341a
The information below should provide addition low level insights. Notice with the examples below if elliptic curve addition is defined then elliptic curve multiplication can be defined:
G + G = 2*G:
% bx ec-add 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000001
02c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5
G + G + G = 3*G:
% bx ec-add 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000002
02f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9
2G + 2G = 4*G:
% bx ec-add 02c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5 0000000000000000000000000000000000000000000000000000000000000002
02e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13
4G + 4G = 8*G:
% bx ec-add 02e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13 0000000000000000000000000000000000000000000000000000000000000004
022f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01
256-bit private key (k) integers can be factored and addition operations above applied repeatedly to create lookup tables to quickly calculate elliptic curve multiplication operations:
% bx ec-multiply 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000001
0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
% bx ec-multiply 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000002
02c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5
% bx ec-multiply 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000003
02f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9
% bx ec-multiply 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000004
02e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13
% bx ec-multiply 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 0000000000000000000000000000000000000000000000000000000000000008
022f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01

Hi, I think you have switched G and k? G should be 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798. Can you please fix it? Thanks in advance, Bernard


text:
How to run a python script when occur incoming transaction in Bitcoin core 0.18?
I want to run a python script when occur an incoming transaction. I think set zapwallettxes flag in bitcoin.conf but I don't know where set the script path to execute.
Is it possible to execute another executable file or another language script?

You're looking for walletnotify setting in bitcoin.conf
It will call the specified script for every transaction received for your own wallets.
walletnotify=/some/path/mywalletscript.py

Here mywalletscript.py will handle the JSON data passed into it.
Here is a sample walletnotify implementation including database access. It's a bit dated but should give you an idea on how to handle events.
As per this Bitcointalk thread you can also hook up handlers for blocknotify and alertnotify so you can create your own payment system by receiving alerts, checking block confirmations and so on.
Just wire up a walletnotify handler via bitcoin.conf as answered here and here.


text:
How to put comment when use sendrawtransaction in bitcoincore?
I use sendrawtransaction to submitt my transaction and I want to put comment or comment-to in transaction like sendtoaddress fields that store in the wallet and not sent with transactions. I think the "data": "hex" field in createrawtransaction is for this, but I can not use that.
I use the following list as recipients field in createrawtransaction, but I get error: bitcoinrpc.authproxy.JSONRPCException: -8: Invalid parameter, key-value pair must contain exactly one key
 [{'mowMh2bocyV97NUP9vqVsuCPcJ2XhJUuoH': Decimal('0.000123'),
 '2NAJPzU1pVTcNABNrdrD336eRWRrbKBBuSe': Decimal('0.03149347')},
 {'data': 'happy birthday'}]

How to use that? Is there any good idea to do this?

data is meant for OP_RETURN outputs.
You cannot add comments using sendrawtransaction.

Do you have any idea to put comment?

Use sendtoaddress, or keep a map of txid:comment in an outside database.


text:
Is there any exchange website that directly converts to a specific currency once a cryptocurrent payment is received?
I wonder if there is some exchange service that I can use for my webshop (Woocommerce) that directly when a customer pays in the webshop, convert the cryptocurrency money to a specific currency like USD or Euro.

What you're looking for is a payment gateway service, and if they take settlement in fiat such as USD or Euro.
It appears Coinpayments.net works on Woocommerce and allows you to withdraw in fiat pairs. You could also look into GloBee, BitPay, Paybear and Coinbase payments, and compare what they offer to see if they suite your needs.


text:
Do we have failed transactions in bitcoin?
I was checking the failed transactions and gas used in Ethereum: https://blockchair.com/ethereum/transactions?q=failed(true)
Do we have similar transactions in bitcoin that I can compare with?

No, a bitcoin script has to evaluate to true to be spendable.
https://en.bitcoin.it/wiki/Script


text:
Understanding Transactions, Mining, and the 10 minutes block solved
I'm not entirely sure if the questions I have regard to Bitcoin all relate to each other?
How do miners decide how many transactions they should have in a block in order to mine 1 bitcoin? When miners compete to find the "nonce" that has the smallest possible hash number, would it be faster/easier to find the "nonce" if there are fewer transactions? Or do miners try to pack as many transactions (up to 1 mb of data) into a block so they can get the most fees?
Do all miners try to solve a solution where all the transactions should be the same in a single block and everyone's trying to compete to finding the nonce and hash? Or is it random, and its just whoever finds a hash the quickest, saves those transactions and adds it to the blockchain?
Also, I noticed looking at btc.com, there are blocks being mined less than 10 minutes back to back, I thought it needs to be 10 minutes to be mined?

How do miners decide how many transactions they should have in a block in order to mine 1 bitcoin?

The amount of work miners do has no impact on the amount of Bitcoin they make. The block subsidy is a fixed amount, and transaction fees are determined from transactions. Mining 1 Bitcoin does not require some specific amount of work.
Miners determine how many transaction they should have by determining how much in transaction fees they stand to gain from including those transactions. This is typically done by ordering all known unconfirmed transactions by their fee rate. Then the miner just includes as many transactions that is allowed by the consensus rules, starting from the transaction with the highest transaction fees.

When miners compete to find the "nonce" that has the smallest possible hash number, would it be faster/easier to find the "nonce" if there are fewer transactions?

No. The number of transactions has no significant effect on the difficulty of a block or the amount of work required to mine a block. While including more transaction nominally requires computing more hashes, this is negligible in the grand scheme of things, especially since this calculation is only done once for a set of nonces and extraNonces.

Do all miners try to solve a solution where all the transactions should be the same in a single block and everyone's trying to compete to finding the nonce and hash?

Everyone chooses their own set of transactions to include. Everyone is making their own block, just each block points to the same parent block.

Or is it random, and its just whoever finds a hash the quickest, saves those transactions and adds it to the blockchain?

It is entirely random. It's however finds a block first and broadcasts it.

Also, I noticed looking at btc.com, there are blocks being mined less than 10 minutes back to back, I thought it needs to be 10 minutes to be mined?

The average time between blocks is 10 minutes, but that is an average, not a requirement. Blocks can be found in less than 10 minutes, or more than 10 minutes. The average block is ~10 minutes.

Thank you so much! You cleared up a lot of confusion for me!


text:
Any Bitcoins on an old computer
I purchased an older computer at a garage sale, the seller said her son used it from about 2008 to 2012 to play games online.  It still has the original hard drive and the seller says its been in storage since her son passed and she wants to sell it and I bought it for $20.  How would I look to see if there are any bitcoins stored on the HD?

In %APPDATA% is there anything that sounds like the name of a wallet software?

The only thing that looks like it might be interesting is a file called key.txt, but just a couple of pages of what looks like jibberish


text:
Is there a helper method to confirm PSBTs?
Does anyone know of a library/method in Java that I can pass a String into and see if it is a properly formatted PSBT in base64?

the bitcoin-s library

May be this ExtLibJ parse method

I can find some PSBT related pull requests in ACINQ’s Kotlin library, which I think compiles to JRE. BitcoinJ does not have support for PSBTs, judging from this open pull request. I’m not aware of another Java-based library that has PSBT support.


text:
Testnet vs Mainnet PSBTs
Is there a difference between test net and main net PSBTs? Or, if I cover all edge cases for test vectors I created on main net in my unit testing, is that sufficient?

This is a hard question to answer, because "implementing PSBT" isn't very well defined.
PSBT is an interchange format for transaction and related data between pieces of software that want to do something with those transactions. But what software may do with these can vary wildly. Software may author transactions, sign transactions, alter transactions in various ways, combine signatures from multiple signers, construct a broadcastable serialized transaction, ...
The PSBT aspect of these operations is all identical, as it's just a matter of encoding/decoding fields containing information. But the rest of the process may differ. For example, transaction authoring software may need to deal with fee estimation on mainnet, which does not meaningfully exist on testnet.

Thanks. What I'm getting is that structurally, they are the same but the processes done to them can be difference across the two networks? All I'm implementing in my project is a way to identify a PSBT (boolean return value to see if a string is correctly PSBT formatted or not) so the network of origin of the PSBTs I use in my tests shouldn't matter.

There is absolutely nothing testnet-specific/dependent in the PSBT format. But realistically, just reading/writing the PSBT format isn't ever what you're going to do with it in production - you'll use it as part of a wallet or other software, and what those things do may very much depend on the network.

I believe I have a unique situation in that case because I am simply passing information from one wallet to another and want to make sure the integrity of the data passed is solid and never tampered with. The interface of the destination requires me to give the PSBT and the network parameters and that's it. Really, I don't NEED to check the PSBT but it saves me space complexity in the long run.

PSBTs between test net and main net differ primarily in their network parameters. Test net PSBTs use a separate chain, which means different transaction IDs, address formats, and UTXOs. Unit testing on the test net can validate edge cases, but main net testing is essential to confirm that no test net-specific quirks impact real transactions, especially regarding fees, address formats, and broadcast behavior. Always conduct minimal-value tests on the main net for thorough validation.

Address formats are unrelated to PSBT.


text:
Trust PSBT Coldcard
I sent a psbt through HWI to my coldcard for signing (it is a multisig tx created with one of the keys in the CC at m/48h/0h/0h/2h) and I am getting the error:

HWI.hwilib.errors.BadArgumentError: Coldcard Error: Unknown multisig
wallet

Anyone know why that is? I enabled TrustPSBT to TrustPSBT, so I'm assuming that I don't need to register the wallet in the coldcard (I am actively trying not to, in fact).
Thanks


text:
What is causing this Data Error from Trezor?
I'm experimenting with output descriptors and multi-sig wallets and I came across a problem providing the last signature to my 2-of-3 psbt.

Data Error: Input does not match scriptPubKey.

I'm creating descriptors for wallets through a program I created by simply fetching public keys of various hardware devices and inputting them along with their fingerprints and derivation paths into a multi-sig template. I fetch the keys from each device at m/48h/0h/0h/2h except for the third key I fetch from a different account index. I'm wondering if this approach is flawed and that's the reason I get the above error.
I will provide the descriptor as this is just for testing purposes and I am not worried about exposing my public keys:

wsh(sortedmulti(2,[b5b630b5/48h/0h/0h/2h]xpub6EE1hjfD2y7ULYeKmttfoNgqV9crHMErQ9gYtSBrjJTkYRJEvy3J252UJZcVQth2haCDMoSKo1yiftTpJErQLBcfShNXsMJZv5FhVx92T2R/<0;1>/,[9f40e694/48h/0h/0h/2h]xpub6E9AaLTxxxPGXRd7eB8oC9s5uJUMZVJueBXGgcpQvW6e9puqcxT82bfumGtYQMVVZyLZai6uFCVcwFLwiHFupdRJU9WJSo34n4DMSAQ8UNQ/<0;1>/,[00000000/48h/0h/0h/2h]xpub6FAopVoDqUtob6myxA6iuUWxUb5H176FmjNovn7mik9MyQb9P3vPbEfxT1WNphDVnnRWDmNvtjytCRyqRtX5ChUMCcawaHLHMZsMHQJ5e6M/<0;1>/*))#cprm2dm2

The error occurs only when I try to sign with the first key (b6b630b5) from my trezor. I believe this has to with the way I construct the descriptor, however I am not sure where I went wrong as the wallet correctly imports to Sparrow, and I was able to provide a signature with one of the other two keys.
Here is the psbt I am passing into the Trezor that includes the scriptPubKey information:

cHNidP8BAH0CAAAAAba/vJ3hz6deXKlJ5dANs0D46Kx9IuT1xmaz21Sj2EAEAAAAAAD9////AqAPAAAAAAAAFgAU/KntEKoymoEXlBUQ4u0Zgt9Tics1CwAAAAAAACIAIKLnG/vjEHtNwQhh5/ST6syKUZEvqUUgqEraS67QMRO6Sh4NAE8BBIiyHgTencicgAAAAoRrHAh6dr1caHy6j0zHJUM8BOWGO4bRDTkwWOnEo5WZAozs6SoJKcBvFEqFa+uBh1fIHV4Hs7bbR/JUngPSyLtSFAAAAAAwAACAAAAAgAAAAIACAACATwEEiLIeBFK2mjGAAAACr4AJAF8iM5XUvVNzLtuz+dWN7NyEb1hKpKiVwcBulcwCnzg+p/WzvoJAGHOD0VeSFs1shVZ/6nofnAunCDsPAr4UAAAAADAAAIAAAACAAAAAgAIAAIBPAQSIsh4Eys33fIAAAAJYqGy8Gq4eUF+Irn60ypEWxwf/xpJ6VNrx+rspGEstxQInqwkW2hly/Ys7XMOKu2YQEwBE/F5ZsIgQYXT6s5Nn2BS1tjC1MAAAgAAAAIAHAACAAgAAgAABAH0CAAAAAVqBXmBLma/DRGmxNEpX4gZiTT+VY4jA+HNvZyFHDwPzAQAAAAAAAACAAkAfAAAAAAAAIgAgSQKGu2mqUszz/4YpLX4+H0HwnHrJLOu3Yld5Ccgk//B+RAEAAAAAABYAFPwwYXHtNFJPCxMf2PfkZpyw0Ti/AAAAAAEBK0AfAAAAAAAAIgAgSQKGu2mqUszz/4YpLX4+H0HwnHrJLOu3Yld5Ccgk//AiAgLX2flICSFX8PGFyM9ku5+gPxkHzMHTV4RvgbAcsz/oPUcwRAIgBCPEGH3vZ+DuSPmRoTfsQ0pj6Zpv/Qc9/PXfhj4Qm3oCIFgEOtqLA7UbvsV/gpOIyMvWPSze9eAlg2ck0gPS4nl7AQEDBAEAAAABBWlSIQLX2flICSFX8PGFyM9ku5+gPxkHzMHTV4RvgbAcsz/oPSEDbcF45nSmdZ3Z8WigUC8+EjVMLuwHS5RndSePboeEBlIhA+wBoT/b8ZY23Fp1y3npVCzVt2+eNj1XQZ97ya9yHIuiU64iBgPsAaE/2/GWNtxadct56VQs1bdvnjY9V0Gfe8mvchyLohwAAAAAMAAAgAAAAIAAAACAAgAAgAAAAAAAAAAAIgYC19n5SAkhV/DxhcjPZLufoD8ZB8zB01eEb4GwHLM/6D0cAAAAADAAAIAAAACAAAAAgAIAAIAAAAAAAAAAACIGA23BeOZ0pnWd2fFooFAvPhI1TC7sB0uUZ3Unj26HhAZSHLW2MLUwAACAAAAAgAcAAIACAACAAAAAAAAAAAAAAAEBaVIhAjSgpAW++F1x6Li3f7UCPNcj5QrmctErqJZ348brCzKMIQJy4RHsLrzOehhSzBB6vXfuw+/dldB+qixBmxzMbgPzhSEC0NOaIUEkrdr19uH01QxlgrzszJQIO/Znpg1Ch1M/ccpTriICAtDTmiFBJK3a9fbh9NUMZYK87MyUCDv2Z6YNQodTP3HKHAAAAAAwAACAAAAAgAAAAIACAACAAQAAAAAAAAAiAgI0oKQFvvhdcei4t3+1AjzXI+UK5nLRK6iWd+PG6wsyjBwAAAAAMAAAgAAAAIAAAACAAgAAgAEAAAAAAAAAIgICcuER7C68znoYUswQer137sPv3ZXQfqosQZsczG4D84UctbYwtTAAAIAAAACABwAAgAIAAIABAAAAAAAAAAA=

What software are you using to send this PSBT to the Trezor? Trezor does not take PSBTs directly so the software must do a translation step, and it looks like that's probably what's gone wrong.

Best guess currently is because you have 2 different xpubs that have the same paster fingerprint and derivation path. I suggest making the master fingerprints unique.

First I import the keystore to Sparrow wallet using my Trezor (import > connect hardware device > scan), then I import a second keystore from BIP 39, then I create a PSBT and click sign on the PSBT view. The first signature worked but the second one (the one with the unique fingerprint and derivation path) is the problem.

Quick Update: I believe the issue is because of Sparrow wallet's PSBT creation because I imported the wallet to BlueWallet and created the PSBT there and was able to send the PSBT back to Sparrow to sign it and broadcast it.


text:
Bitcoin transactions between two parties
Lets say bitcoin become a global currency which replace fiat money..
If someone (physically )is asking for bitcoins and its urgent and i don't  have phone to access the network and the one whos asking don't  have the phone also.how can this transaction be done.because with fiat money you could just take the money out of your pocket and give him

Lets say bitcoin become a global currency which replace fiat money

Logically, if Bitcoin were to fully replace fiat money and be used for every transaction, then we should expect there would be some way of facilitating transactions easily, in pretty much every situation. Otherwise, people aren't going to adopt it if it is a worse solution that what is already available.
But to answer your question more directly: there are ways to transfer ownership of provably not-backed-up private keys, such as the OpenDime (disclaimer: I have never used an OpenDime, but understand how they are supposed to work, in concept). So if you had a device like the OpenDime that was loaded with the correct amount of BTC, you could just trade it to your counterparty. No internet connection needed.


text:
Non spendable bitcoin
I downloaded the app because the person who was helping me said they can’t transfer my profits to my luno account and he asked for all my login details now there’s non spendable bitcoin he’s saying I should pay money for the for me to be able to withdraw please kindly assist me urgently

This is a scam. Don't respond.

Possible duplicate of How to unlock private key of bitcoin or of How can I get a private key for this address?


text:
Issue with sendrawtransaction missing inputs error code -25
Working with Bitcoin-qt 0.16.3 testnet
Attempting to sendrawtransaction, however, receive following error:
Missing inputs (code -25)

From what I have read, this results from attempting to use outputs in the transaction that have already been spent.
I am confused, however, because I am explicitly using a transaction listed by listunspent. Doesn't that mean the output is unspent???
If you could point me to where I am going wrong, it would be greatly appreciated.
Here's exactly my work:
listunspent
output
[
  {
    "txid": "8d42a2db310b794ae0d75ed9a68262081fd83817a862f87a99cd176ce8743223",
    "vout": 1,
    "address": "2MtBLx3arsHFV1cBYSo5AXmX5Pf3tfcgda3",
    "account": "addy2",
    "redeemScript": "0014436faf386d5c77c575e3372a97e268a08e3f5378",
    "scriptPubKey": "a9140a3c45e4e27e98b6bf1171b4fe1bf689b9a3dbf287",
    "amount": 0.00010000,
    "confirmations": 229,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

input
createrawtransaction '[{ "txid": "8d42a2db310b794ae0d75ed9a68262081fd83817a862f87a99cd176ce8743223", "vout":2 }]' '{ "2N8kPhdhwAYYK8rFt7Fhvm3oapsMF7vqbcB":0.00003, "2MtBLx3arsHFV1cBYSo5AXmX5Pf3tfcgda3":0.0000695}'

output
0200000001233274e86c17cd997af862a81738d81f086282a6d95ed7e04a790b31dba2428d0200000000ffffffff02b80b00000000000017a914aa0e0ebe49d03dc1b79f91775aada9293179bb2387261b00000000000017a9140a3c45e4e27e98b6bf1171b4fe1bf689b9a3dbf28700000000

input
signrawtransaction '0200000001233274e86c17cd997af862a81738d81f086282a6d95ed7e04a790b31dba2428d0200000000ffffffff02b80b00000000000017a914aa0e0ebe49d03dc1b79f91775aada9293179bb2387261b00000000000017a9140a3c45e4e27e98b6bf1171b4fe1bf689b9a3dbf28700000000' '[{"txid":"8d42a2db310b794ae0d75ed9a68262081fd83817a862f87a99cd176ce8743223","vout":2,"scriptPubKey":"a9140a3c45e4e27e98b6bf1171b4fe1bf689b9a3dbf287","redeemScript": "0014436faf386d5c77c575e3372a97e268a08e3f5378",
"amount":0.0001}]'

output
{
  "hex": "02000000000101233274e86c17cd997af862a81738d81f086282a6d95ed7e04a790b31dba2428d0200000017160014436faf386d5c77c575e3372a97e268a08e3f5378ffffffff02b80b00000000000017a914aa0e0ebe49d03dc1b79f91775aada9293179bb2387261b00000000000017a9140a3c45e4e27e98b6bf1171b4fe1bf689b9a3dbf287024830450221009274a153ee55925681d5382fecbff723e2ec12e92dafc7188565e2ee2bef092402201133ec3545333afeacda23b63917660ed62be667508dbb5a121a4ed9aa52125401210273340ff4511f6bbcf7d9f1c1fe69f66704398e54f4cde0e0ec60313476fc92ab00000000",
  "complete": true
}

input
sendrawtransaction 02000000000101233274e86c17cd997af862a81738d81f086282a6d95ed7e04a790b31dba2428d0200000017160014436faf386d5c77c575e3372a97e268a08e3f5378ffffffff02b80b00000000000017a914aa0e0ebe49d03dc1b79f91775aada9293179bb2387261b00000000000017a9140a3c45e4e27e98b6bf1171b4fe1bf689b9a3dbf287024830450221009274a153ee55925681d5382fecbff723e2ec12e92dafc7188565e2ee2bef092402201133ec3545333afeacda23b63917660ed62be667508dbb5a121a4ed9aa52125401210273340ff4511f6bbcf7d9f1c1fe69f66704398e54f4cde0e0ec60313476fc92ab00000000

output
Missing inputs (code -25)

From your listunspent: "vout": 1,
From your createrawtransaction: "vout":2
You are trying to spend an output that doesn't exist.

negative. if i amend createnewtransaction so "vout":1 and repeat process, I still get same error.

Did you also change the vout parameter in signrawtransaction too?


text:
Coin selection algorithm
Playing around with Bitcoin Core Client v0.18.0, I used this command:
$ bitcoin-cli sendtoaddress "mozazucvLK179u41bF5Vd2Agp4wsm7HsPo" 0.1

which created
this transaction.
I noticed that the transaction created consumed three inputs, even though there were UTXOs of the exact amount available.
Looking for the UTXO selection algorithm, I came across the Bound Coin Selection Algorithm, but I'm not really familiar with the codebase.
Is this the only coin selection algorithm used by the client? Can someone explain how does it work?

Does this answer your question? What is the coin selection algorithm?

What kind of address is that? Is this about an alternative chain?

There are a lot of things that need to be considered when selecting coins. Just covering the amount that you want to send is not enough, you have not considered the transaction fees that you will be paying for your transaction. So even though you have UTXOs of 0.1 BTC in value, using just one of those means that you will not have enough value in the transaction to cover the transaction fee so your transaction won't be relayed or confirmed.
So if you have to go over the target value, now you need to have change outputs. But even here you have to be careful. If you choose just enough Bitcoin to cover the outgoing amount and the transaction fee, you may end up producing a very small change output that would be considered dust. Dust outputs are not good as they are uneconomical to spend, i.e. they cost more in transaction fees than they are worth.

Bitcoin Core uses two different coin selection algorithms for different cases, and they have different target values.
The first one (the one that you found), is known as Branch and Bound. It tries to exactly match the amount needed for the transaction (outgoing amount + transaction fees) and not produce change. There is a small buffer allowing the algorithm to select slightly more coins than necessary in order to have a better match and avoid producing change outputs.
The general idea for this buffer is that if you are willing to create a change output and have to consume the cost of spending that output in the future, then you are willing to take that cost now and simply not produce a change output. So long as the extra amount that was selected is less than the predicted cost of spending a change output in the future, it is worth it to burn that amount now as extra transaction fee rather than producing a change output. The cost to the user is at most the same, and more likely to be less.
In general, this will produce smaller transactions and thus pay less in fees due to avoiding change outputs. It also helps with privacy because there is no change to link back to your wallet.
If the Branch and Bound exact matcher fails and it must produce a change output, then Bitcoin Core falls back to its original algorithm. This original algorithm is largely also an exact matcher, it just has a bunch of random fixes and hacks that were put into it to fix various issues. At a high level, it randomly selects coins.
An important part of this fallback algorithm is that, because it must create a change output, it chooses to target a minimum change amount to avoid the dust issue I mentioned earlier. Bitcoin Core defaults a minimum change amount of 0.01 Bitcoin. Of course there are exceptions to this when there are not enough coins in the wallet.

So what happened here is that you did not have coins of the correct values to exactly match 0.01 BTC + transaction fees, so the Branch and Bound algorithm fails. It falls back to the fallback algorithm and now targets 0.01 BTC (outgoing) + 0.01 (minimum change) + transaction fees. The fallback algorithm is able to select coins for this target value and thus you get the transaction that you have.


text:
Output and bitcoin spent what does it mean? I need help

Hope you are doing well, I'm new to bitcoin. Please does this mean I received $61.213.88 in my account? Or the total output of all my transactions it shows 2 bitcoin addresses under, what does "spent" mean? And all the addresses are invalid when I look them up. THANKS

To provide any help, you’ll need to offer up more info. How are you associated with this transaction? Do you expect to receive this amount of BTC? Which addresses do you own (have the private key for)? Etc

This transaction just means that, some time in the past, someone transferred an amount of Bitcoin (BTC) to two recipients, one was probably a second person providing goods or services to the first person, the other recipient was probably change being returned to the first person.
The amount of Bitcoin was roughly equivalent to $61,000 at some point in time.
Both the recipients subsequently spent the received amounts in further transactions.
It is possible that either or both recipients now control 0 Bitcoin.
It is possible that either or both recipients now control millions of Bitcoin.
Only the recipients can tell for sure. Their Bitcoin wallets will tell them.

Let's say B is new to Bitcoin and wants to buy some for 150 Canadian dollars. B meets a millionaire A who is willing to sell some. B gives A the 150 Canadian dollars. A does the Bitcoin equivalent of reaching into their back pocket and taking out a crocodile-skin wallet. A looks inside sees seven $1000000 banknotes and a $61,234.56 banknote∆. A gives B the $61,234.56 banknote and B then gives A a $61,134.56 banknote in change. B now has $100 more, A has $100 less.
A and B then immediately spent all their  money on a superyacht and a pair of trainers and are now broke.
Or maybe not.
∆ Such things exist in the cryptocurrency world.


text:
address information
a person is trying to get me to transfer 500.00 in bitcoin to an address. The address doesn't have any balance, known input, repeated input, tags, or website appearances, total received, last known ouptput, repeated output. To me this is fraudulent since there is no history of bitcoin activity with this individual. Am I being too paranoid.? thanks for your help. new here,lol

You can never understand someone's trustworthiness by looking at their balance history.
It's common to use a new address to receive a new transaction every time. This may be to make it harder for a customer to see another customer's balance or more importantly, understand who sent them money (for example, 2 people buy the same thing costing $500, while you have received $500 only once)


text:
Unconfirmed Blockchain Status
Need Help,
Transaction invalid: some outputs that it attempts to spend have been already spent or are no longer valid.
This is the message appearing on the Summary report from block chain. It was process last January 08,2021 and the result until right now is Invalid and no progress at all. How to fix the issue.
Thanks in advance...

That message means that the sender created two transactions that attempted to spend the same coins. This is called "double spending" and is not allowed. One of the two transactions has to be marked as invalid by any Bitcoin node that sees the two. I believe most Bitcoin nodes will initially set aside whichever they received last. Over a short time time, the network as a whole comes to a common view about which transaction is accepted (so some nodes may change their decision after a few tens of minutes from their initial decision).
The transaction that you are looking at has long ago been determined, by all participants in the Bitcoin network, to be the incorrect one of the two.

How to fix the issue.

You can't.
If you are the creator of the transaction, you should be able to find the other transaction where you spent that money.
If you are a recipient, you just treat that transaction as if it never happened, you were not paid.

Related

Can this double-spend attack happen in Bitcoin?
Other quesions about double spending attack


text:
PLEASE help me get armoury to online on my mac?
Macos 10.11.6 El Capitan
Armoury 0.93.3
BitcoinQT v0.17.1
I have to use those software versions to get them to open in OS10.11
I cannot get armoury to go online. PLEASE HELP ME.
Both apps open separately.
I type this '/Applications/Armory.app/Contents/MacOS/Armory' into terminal and got this.
(ERROR) ArmoryQt.py:7074 - Socket already in use.  Sending CLI args to existing proc.
(ERROR) ArmoryQt.py:7078 - Exiting...
I'm not sure if this is the only issue or how to fix it?

Are you trying to set up a new wallet, or restore an old one? Armory has been out of vogue for a long time, it is very slow and has very little development.

Are you sure you can't use Armory's latest version? Backwards compatibility is a top priority in wallet development.


text:
Can not connect to rpc server bitcoind 0.16
I have 2 server v0.18 and 0.16. They're nearly same config but I can't connect to v0.16 server via RPC though using command on it is still well eg bitcoin-cli -info.
I have searched few configs and none of them are useful for my case, please help me check this config, thanks so much.
v0.16 can not connect:
datadir=/data/bitcoind
debuglogfile=/var/log/bitcoin_testnet.log
dbcache=1000
txindex=1
server=1
rpcuser=...
rpcpassword=...
rpcport=18888
port=18887
daemon=1
testnet=1
rpcallowip=0.0.0.0/0

[test]
rpcbind=0.0.0.0

walletnotify=/data/bitcoind/bitcoind_walletnotify.sh %s
blocknotify=/data/bitcoind/bitcoind_blocknotify.sh %s

I have tried to drop rpcbind=0.0.0.0 and port but it's not worked. Example on my other server v0.18 can connect via RPC well:
server=1
testnet=1
txindex=1
dbcache=2048

rpcallowip=0.0.0.0/0
rpcuser=...
rpcpassword=...

datadir=/data/blockchain/bitcoin/
debuglogfile=/var/log/bitcoin.log

# Limit 25 transactions
#limitdescendantcount=300
#limitancestorcount=300

[test]
rpcport=18332
rpcbind=0.0.0.0

#[regtest]
# Notify when receiving coins
walletnotify=/data/blockchain/bitcoin/bitcoin_walletnotify.sh %s
blocknotify=/data/blockchain/bitcoin/bitcoin_blocknotify.sh %s

If you run the version 0.16 with the default configuration work? I think could be the port of the node with the version 0.16 is locked

I try to switch other port but on log is always failed: 2019-08-16 09:22:23 Binding RPC on address :: port 18991 failed., same to default bitcoind - daemon.

try to run the bitcoind -rpcport=18888 -rpcuser=... -rpcpassword=.. if worked the problem is the link to bitcoin.cong

bitcoind -daemon -debug=rpc -debug=mempool -rpcuser=btcrpc -rpcpassword=... -rpcport=18991 -rpcbind=0.0.0.0 -rpcallowip=0.0.0.0/0 -testnet -server -debuglogfile=/var/log/bitcoin_testnet.log, no binding port failed anymore but I still can not connect. :-(

@vincenzopalazzo, detail there:
https://pastebin.com/smdNiq5K

In your logs doesn't exist any error, right? the bitcoind running

Let us continue this discussion in chat.


text:
Create P2SH address is not same as address saved on rpc node
I have a private key and trying to create P2SH address on testnet like my node created but they're not same. Please help me a bit, thanks so much.

PrivateKey: c5964e19634e473e9c8fed3b149c4d44b6d62d62724035aad3eb911a1495ae27

P2SH address from 1 threshold and 1 pubkey:
2N4GriyLchUgwwCBonzYHgsCHNhYRHW45w7

P2WPKH address: 2NGA8uGdnaQ21phNpVyV5uye5cbUtudxBWh || tb1qld2fzw9gj30wxjamsz73fug62das7cyq0em4mn

Address from node: 2N8qKVKuR3QAy2cA5fF2QbuCpBGfGCmbUHx

Here is more detail from getaddressinfo:
{
    "result": {
        "address": "2N8qKVKuR3QAy2cA5fF2QbuCpBGfGCmbUHx",
        "scriptPubKey": "a914aafc9f09b99cbb1ba46001ec4868ba4fb32543ca87",
        "ismine": true,
        "solvable": true,
        "desc": "sh(wpkh([a1696bdc/0'/0'/375509']02a7065a210c28d27a591e55ac6be092111349fc4b23927bb4d13c46a683bcfff7))#hrgzj3gs",
        "iswatchonly": false,
        "isscript": true,
        "iswitness": false,
        "script": "witness_v0_keyhash",
        "hex": "00146da71bc5de0c0b59bbf73520df7e7d4048d02594",
        "pubkey": "02a7065a210c28d27a591e55ac6be092111349fc4b23927bb4d13c46a683bcfff7",
        "embedded": {
            "isscript": false,
            "iswitness": true,
            "witness_version": 0,
            "witness_program": "6da71bc5de0c0b59bbf73520df7e7d4048d02594",
            "pubkey": "02a7065a210c28d27a591e55ac6be092111349fc4b23927bb4d13c46a683bcfff7",
            "address": "tb1qdkn3h3w7ps94nwlhx5sd7lnagpydqfv5pyqurf",
            "scriptPubKey": "00146da71bc5de0c0b59bbf73520df7e7d4048d02594"
        },
        "label": "test",
        "ischange": false,
        "timestamp": 1561438016,
        "hdkeypath": "m/0'/0'/375509'",
        "hdseedid": "e2e9dd17501f967b789c28c4be1dbf64897ad8d2",
        "hdmasterfingerprint": "a1696bdc",
        "labels": [
            {
                "name": "test",
                "purpose": "receive"
            }
        ]
    },
    "error": null,
    "id": 1
}

do you have same code for create the P2SH, if yes, can you public it?

@vincenzopalazzo,
of course bro: https://pastebin.com/dL5vW22T

if possible the bitcoin RPC and the bitcoinj generated two scripts different p2shScript?

@vincenzopalazzo, is that true? I don't think that bro... Maybe by someway can create many p2sh address?

The address p2sh is created from the hex of the script if the script is different the p2sh address is different. ps. Yes is possible to generate much p2sh address, one script p2sh <-> address p2sh

That's because you changed your private/public key when switched method! The private key you posted has a public key starting with 033452B8 the "node" is using a public key starting with 02a7065a

@vincenzopalazzo, yeah I read that can create many P2SH address depend on P2SH script, I will check more.

@CodingEnthusiast, you're right, I wrong key but out result is still not match. Correct wif is cUNCS8F8n2dgineo4ENshEo4qFDMTLYa7MC31DKSo8whVZaV6FDu

If your resulting address is different then it means you are using different scripts, otherwise they should be the same.


text:
Why is it not showing?
Someone from blockchain wallet send me some Bitcoin to my jubiter wallet #1BtQi9JmvTvyEBmbGvMQLUCEdUXQyZF21Y and it been two days still havnet receive nothing but it said it's confirmed what going on? Help please thank you

According to Blockstream block explorer, it looks like you have 1 confirmed output. So most likely it's an issue relating to the wallet you're using.
Unfamiliar with the Jubiter wallet but do you know whether it connect to Jubiter's nodes through a web/app, or do you have to connect it to a full node running on your machine? My guess is the former. I'd double check that the address above is the correct as well.
Maybe someone else knows Jubiter better.

How can the person. That sent me the Bitcoin get the Bitcoin back ... And I'm just using the website no app I'm new to this so help please

And do I got go wait on a business day for the transaction to go thru I did it on Friday night...

@Trub there is no concept of 'business day' for Bitcoin. The network runs 24/7 without interruption. If Jubiter wallet lets you hold your own private keys (ie, you have a seed phrase backup, in most cases), then there is likely just an issue with your wallet syncing to the network. If Jubiter is a custodial service (they hold the private keys), then you'll need to contact their customers service to have things set straight.

@chytrik so what should I do call them and what a private key


text:
Why are there no Bitcoin price/trade records before 2013?
Example: http://www.livebitcoincharts.com/
On that chart, it starts at $135. That's quite a sum to start with. Why does it only start in 2013 when it started "blowing up" for the first time?
"All time" apparently means "since sometime 2013".

This is a fascinating question and good catch. The only chart I could find listing anything before 2013 is 99Bitcoins. TradingView history begins in May 2014, and CoinMarketCap goes back to May 5, 2013. The bigger exchanges I checked don't go back that far except for Bitfinex, which starts in January 2013, and for dates during that period Bitfinex only charts weekly changes.
I don't have a definitive answer but will offer two possible explanations. The first is that this lack of price data is related to the March 12, 2013, "accidental hard fork" caused by an undiscovered inconsistency between versions 0.7 and 0.8.0, when a block created by a miner running the newer version was considered invalid by miners running the older one. This would mean that for a short time there wasn't a way to define a price because there wasn't consensus about what wallets held which coins (which led Mt. Gox to temporarily suspend deposits with a subsequent crash in exchange rate).
But the more plausible explanation for why there aren't trading records or a price prior to 2013 is that for there to be "a" publicly available price for any exchangeable asset, there has to be some sort of public market for the asset. BitcoinWiki has a table of prices for periods before 2013, but before March 2010 the price is listed as "basically none." The page also says that on Oct 5, 2009, the first public sale was offered on the New Liberty Standard stock exchange (at a rate of 1 USD/1,309.03 BTC), which is also mentioned in this review of Nathaniel Popper's Digital Gold: Bitcoin and the Inside Story of the Misfits and the Millionaires Trying to Reinvent Money. So before October 2009, there literally wasn't a price (if by "price" we mean the exchange rate denominated in fiat currency). There were no trades (denominated in fiat), hence no trade history.
On March 17, 2010, the first online market exchange, BitcoinMarket.com, began operating. Mt. Gox launched the same year and by 2014 was the largest exchange. Although both companies are now defunct and their trade histories (presumably) not publicly available, 99Bitcoins does list "the" price of bitcoin going back to the day BitcoinMarket.com began operations. For these two companies there likely isn't a publicly available record of trades that would allow for an accurate calculation of an average exchange rate in fiat currency for bitcoin before still-existing exchanges began publishing their trade histories. Exchanges may only publish pricing information from the date they begin operation, and the USD/BTC exchange rates on TradingView are all based on particular exchanges, which is why even their aggregate data may not go back before 2014.


text:
Why would Bitcoin Core freeze my computer when syncing? And is it supposed to take this long?
24 hours ago, I finally bit the bullet and dug up my old computer, set it up physically, installed Linux Mint (with full disk encryption), installed Bitcoin Core through its software manager, started it, immediately selected "pruned mode" in the settings (kept it at default 2 GB since I have no idea if it's good or bad to increase/decrease it), closed it and started it again, to let it sync from scratch to 100%...
When I went to bed, it seemed awfully unresponsive, with mouse movements taking several seconds before they showed up on the screen.
When I woke up just now and looked at the progress, it was still at 21%, with "10 weeks left". It now would not at all react to any attempts to close it or click on anything. I had to "hard-cut" the power to the machine and restart it. Now I'm again running Bitcoin Core and so far, it seems very responsive and says "10 days".
It's connected directly to 100/100 Mb/s fiber, and the hardware is 3 GB RAM and a 2011-era Dell CPU. Dual core something. The HDD is 250 GB and mechanical. (Which is why it was not a choice to store the entire blockchain and I had to use pruned mode right away.)
I don't know what to make of this. My guess is that it was not actually doing any work during the entire night, instead having somehow "hung". I sure hope it's not some hardware issue or something, because that machine is the only practical means for me to have a decent chance of setting up a secure new wallet for cold storage.
Others online seem to be talking about "hours" to sync, but this seems like it at best will take at least four days, if everything goes perfectly and progresses exactly like it has so far, minus the hanging. And again, the program itself is talking about "10 days"... nope. Now it says "6 days". I just looked over at the screen.
Basically, I have no idea what's going on.

If your computer has some problem during the night, maybe the download never started, but it is normal that your bitcoin core is not in complete sync at the moment because the velocity of Sync doesn't depend on type connection (well it is part of the truth, if you have a slow connection, it is a problem).
In addition, I run a pruned sync on this days on my Linode node and I can share the data.
Before doing that I run the bitcoin node on a Linode server of 5$ and it runs without problem.
The space on the machine is 25Gb (Wow :-P) and it use only around 2/4 Gb I don't know well this data.
To prove that the connection is not important for the upper bound limit of velocity I can the Linode data where the VM works to sync the Bitcoin Network.

In addition, your bottleneck can be the disk, I know that in an HDD the synchronization is a little slower and it is also possible that you have a delay on the Bitcoin core answer. For instance when you run a command like getblockchaininfo. But this really depends on your Computer conf and HDD quality. In addition, I don't know if your disk encryption, can make things slower, I don't know this because I never use disk encryption (I like privacy but I like to pull my data if my Linux has some kernel panic :-) ).


text:
What possible explanation could there be that Bitcoin Core on Linux Mint claims to but does not save the wallet backups?
Linux Mint. Bitcoin Core 0.21.0.
I go to "File" and "Backup wallet", then select any location. I've tried with /home/a and /tmp and others.
Every time, Bitcoin Core says that the file has been successfully saved to the location I picked.
Then I look at that location in the GUI file manager, as well as in the terminal. THE WALLET .DAT BACKUP FILES ARE JUST NOT THERE!
I swear I'm not making this up and that I've enabled "Show hidden files" and tried everything to make sure that I'm not doing something wrong.
The files just are not saved, even though Bitcoin Core claims that they are. Why?
They are just not there on my file system. The only wallet.dat that exists is the actual one that Bitcoin Core itself saved, and it has put that in: /home/a/.var/app/org.bitcoincore.bitcoin-qt/data/blablabla/wallet.dat
At this point, having tried and asked and searched so much, I'm starting to truly question my sanity as well as the QA of Linux/Bitcoin Core.
This is even worse than various file nonsense in Windows. Is there some secret, very well hidden setting that I need to enable to "actually show the files" or something? Beyond "Show hidden files"?

Are you sure it is asking for a folder name and not a file name? (e.g. try entering "/tmp/backup-wallet.dat")

@RedGrittyBrick Yeah, but even so, I tried again after you asked. Same thing. Bitcoin Core says it was saved to /home/a/test.dat, and then I go to that location, and there is just no test.dat. And what's worse, if I then do "File", "Back up wallet" again, Bitcoin Core's file GUI box does show my test.dat in that dir...

I think I would check that SELinux is not installed and su to root in a terminal to ls -la /home/a and maybe also check the directory size. Sounds pretty weird.

@RedGrittyBrick Unless "SELinux" is installed by default, it is not installed. And "su" just says "Authentication failed" every time it asks for the password. AFAIK, there was only one account set up in the installer, and that was the "a" user. No special "root" setup. I assumed that "a" is root.

In the "users" section, there is only an "a" account and it's of type "Administrator".

sudo ls -la /home/a asks for the password for "a", and I enter it, and then it runs that command, listing all the files. But no wallet.dat or test.dat or anything.dat.

The only other thing I can think of at the moment is that Bitcoin Core is chrooted. I would try sudo find / -name test.dat

@RedGrittyBrick I did now, and it doesn't output any path with such a file. Only two "Permission denied" and two "Invalid argument" rows for weird /run and /proc paths. That's all it outputted. If it's in a "chroot", how do I get it out from that jail?

Or, consider if Bitcoin Core is running in Docker or other container session, or is Flatpak. The install instructions on Linux are very simple, https://bitcoin.org/en/full-node#linux-instructions  --  What if you exit Bitcoin Core and launch with bitcoin-qt & and then attempt backup?

@Willtech No "bitcoin-qt" and no "/usr/local/bin/bitcoin-qt".

With Bitcoin Core running this command may reveal the path, ps -e a | grep bitcoin

Do you have Linux Mint installed or are you using it within the install-disc test environment? In the second case, files saved to disc are generally not stored across reboots.

What possible explanation could there be that Bitcoin Core on Linux Mint claims to but does not save the wallet backups?

Possible explanations include:

The path to the saved file is not what you think it is

using a relative path rather than an absolute path
using a chrooted program

Some higher level of security is preventing you seeing the files

SELinux?

There is a bug in Bitcoin core. This seems unlikely but if you can reproduce the behaviour on another machine you could document the exact circumstances in a bug report.

footnote 1
All normal Linux systems have a large number of default users and not just the one you use to log in normally. If you cat /etc/passwd you'll see a list. It will include a root user (and around a dozen others) unless the system has been substantially modified from the typical arrangement.

footnote 2
You can make your own backups of the wallet.dat but, for extra reassurance, you could practice extracting the private key using the debug-console then importing the data into a new wallet (of any type) on another computer and verifying that you can create spending transactions there.

Well, it is definitely not a relative path. It has "/home" in the leftmost part, and the file is nowhere on my file system according to the find commands. As for chroot, I buy that it's a possible explanation, but I don't know how I would find out or what that means exactly. SELinux has not been installed by me, and AFAIK, Linux Mint doesn't do that on its own. But if so, why does that hide my files? The only other computer I have is this Windows one. Saving backup wallet.dats works perfectly well here with the same version as on the Linux Mint machine.

And I don't know what to tell you in regards to the root user. I did not do anything weird and just followed the installer's questions and input fields.

Let's say that this Bitcoin Core on Linux Mint is in some kind of "pretend-filesystem" inside of the real one. Okay. How do I get files out from there? How do I access it?

And why would they just randomly add such a thing with not ONE WORD letting me know about it? I've already spent forever on syncing the blockchain... Now I don't even know how I'm going to get my wallet out from this damn machine.

Notwithstanding your problem, you should be able to get the wallet by accessing the file /home/a/.var/app/org.bitcoincore.bitcoin-qt/data/blablabla/wallet.dat as mentioned in your question. You should be able to save this file manually as a backup.

@csknk That may be true, but the fact that it "pretend-saves" backup wallet files makes me question whether it really works at all... It's not a nice feeling to have when you are trusting it to secure your life savings in Bitcoin.

The problem with "testing it on a different computer" is that the whole reason I do this on a dedicated computer is to make sure it doesn't get compromised. I don't plan to ever decrypt/unlock it on any other machine.


text:
Could decentralised proof of time in BCHSV solve for high PoW power consumption?
0-conf requires decentralised consensus of time in order to determine the order and time of each transaction.
Bitcoin has a block time of 10 minutes achieved by brute forcing hashing algorithms of variable difficulty at enormous scale with a difficulty optimised for it to be solved in ~10 mins. This is what gives the currency its security.
With decentralised time consensus such as that required for 0-conf, would it not theoretically be possible to enforce a 10 minute block time by instead implementing the following conditions:

Each block submission must contain at least one transaction that has been entered 9mins 55secs after the previous block (ie: No incentive to mine until 5 seconds before 10 min block time)
Difficulty optimised to allow the network to solve the block within ~5 seconds
In the case of conflict within the 5 second challenge period, lowest hash in bit value wins
In the case of conflict after the 5 second challenge period, first hash wins
Network decides any further split in consensus thereafter by longest chain as it does now

Assuming this would be doable, would it not technically be possible to secure Bitcoin with the same hashrate it has now, but consume 0.0083% as much power, and make mining far more profitable for miners (especially in countries that don't have cheap energy) with no loss of security?

'0-conf' is inherently insecure, don't listen to anyone trying to tell you otherwise. After all, If it was secure, then why would we need a blockchain record? (ie, as Anonymous wrote, the blockchain is the timestamp)

Mining is the timestamp in Bitcoin, it allows for a decentralized system to achieve synchronized ordering of transactions with high probability. If a system for doing decentralized time sync existed there would be no need for mining blocks at all, you'd simply timestamp transactions as they arrived and call it a day.
No system for this exists, hence we use Proof of Work to achieve an approximation.

Can't comment inline because not enough reputation, but Satoshi himself spoke both cautiously and positively of zero-conf, his sentiments more or less being "don't immediately part with expensive goods without a confirmation, but it's probably fine for a cup of coffee." The "mining is the timestamp" answer ignores the initial premise of the question that you have already solved for decentralised time consensus required for secure zero-conf to exist. I don't see why this wouldn't be possible?

If we assume things which don't exist, we might as well ask hypothetical questions contingent on magic. Decentralized time does not exist, which is why Bitcoin exists, as an approximation. If its easy, great, explain how.


text:
how to compile brainflayar in window based Linux
hi can any one explain how they do it like this 1EpisodeiV111111111111111111wbq9i2 1ANewHope1111111111111111111vnYm6D 1itisAPeriodofCiviLWarRebeLyzK2rV 1SpaceshipsStrikingFromA111vh24Fi 1HiddenBaseHaveWonTheirFirstVCugGV 1VictoryAgainstTheEviL111123YSBKF 1GaLacticEmpire1111111111111xsW5HG 1DuringTheBattLeRebeLSpies11ybfhTP 1ManagedToSteaLSecretPLansToxvKf4K 1TheEmpiresULtimateWeapon11zoRcyn 1TheDEATHSTARAnArmoredSpacezUyCHa 1StationWithEnoughPowerTo11vFTWwP 1DestroyAnEntirePLanet1111122KUcy5 111111111111111111112xT3273 111111111111111111114ysyUW1 1111111111111111111141MmnWZ 1111111111111111111114oLvT2 1PursuedByTheEmpiresSinisterypjWrk 1AgentsPrincessLeiaRacesHomewxuNTT 1AboardHerStarshipCustodian1yhX6zg 1ofTheStoLenPLansThatCan111zCJt3F 1SaveHerPeopLeAndRestore111yULD1y 1FreedomToTheGaLaxy1111111122roNk3
last 6 char dont care
but how it is possible can any one help me to gen address in specific private key from to option
i try to use brainflayar , bitcoin-rnn , blockparser but unable to compile i run Linux Ubuntu command line in windows pls help

You can use ThePiachu's online tool: https://gobittest.appspot.com/ProofOfBurn
Note that burn addresses are not the same as vanity addresses. Private keys of burn addresses are infeasible to find. Therefore, the addresses you listed weren't generated from private keys. So, Vanitygen wouldn't help in this case.

hi, thanks for your reply can you help me how to use brainflayar  i try to compile but i get error that opessl.sha.h not found if you like i can share you my skype id

@djboys Does sudo apt install libssl-dev help?


text:
Lightning?full node question
I'm running a full node as well as a Lightning Node with 4 channels open. I also have incoming ports enabled. I've noticed that my balance varies daily by a few thousand Sats. I'm new to running a node so wondered if someone could explain why this happens (or maybe link me to an article explaining).
Many thanks...

If it is only the balance of your channels that is changing I would assume that your node is routing payments. The lightning network is all about forwarding payments.
So the following explains what could have happened assuming you have two channels to a node A and a node B:

(A)--20sat------40sat--(you)--30sat------50sat--(B)

meaning:

node A has 20 satoshi
your node has 40 satoshi + 30 satoshi = 70 Satoshi
node B has 50 satoshi

Let us assume B wants to pay 15 satoshi to A this does work via lightning and via your node. The channels will update their balance:

(A)--35sat------25sat--(you)--45sat------35sat--(B)

meaning:

node A has 35 satoshi
List item
your node has 25 satoshi + 45 satoshi = 70 Satoshi
node B has 35 satoshi

Probably your node even takes some routing fee which could have a standard value of at least one satoshi in that case your final balance would look like this

(A)--35sat------25sat--(you)--46sat------34sat--(B)

meaning:

node A has 35 satoshi
your node has 25 satoshi + 46 satoshi = 71 Satoshi
node B has 34 satoshi


text:
How much does a block's recorded time differ from the actual time that my node first sees it?
A block has a "time" and a "mediantime". Is it correct that the "time" is supposed to generally reflect the real time the block was mined and broadcast to the network? If so, how reliable is it? Assuming my node is well connected to other nodes, and sees all blocks within a few seconds after they are mined, how much can I expect the block's "time" to differ from the actual time that my node first sees the block?


text:
How does a Lightning transaction work if one party starts with no Bitcoin and no wallet?
Let's say Alice wants to give Bob 1₿, and Bob doesn't have a regular blockchain wallet address yet.
The classic example assumes that Bob is locking some Bitcoin of his own on the blockchain, and Alice and Bob are both funding a channel between each other.  But what if Bob doesn't have any Bitcoin yet, and Alice wants to give him some via Lightning?  Then he could get the Bitcoin from Alice, do transactions with it with other parties in the Lightning Network, and only do a slow expensive blockchain transaction when he's ready to cash out.
I know it's possible because I've been able to test this out with two different Lightning apps with separate wallets.  I funded one Lightning Wallet, and opened another app with 0 balance and no regular wallet.  I was able to fund the second wallet instantly.  But I'm not sure what's going on to make it happen.

The classic example assumes that Bob is locking some Bitcoin of his own on the blockchain, and Alice and Bob are both funding a channel between each other.

This is not how lightning currently works! Currently only one side is funding the channel. People are working for a dual funding solution in which two parties fund the channel in a way how you suggested it. So if Bob does not have any Bitcoin alice could fund the channel and then send btc to Bob. (which should also be the answer to your question)


text:
Can you help me and my grandmother
My grandmother told me that she owns a bitcoin which she was gifted a long time ago before they were valuable, she doesn't know anything other then the email she used. I have some expertise in tech but am in no way familiar with bitcoin
Could we possibly retrieve said bitcoin by mail?


text:
AVG antivirus quarantines Bitcoin-Qt
I verified the Bitcoin Core V28 (MacOS) download using the usual recommended methods, but my antivirus software detects "malware" with the attached message. Is this normal, and should I be concerned? Is there a way to bypass this as otherwise I can't run Bitcoin Core on my machine? Any help to get me started would be great.

Is there a way to bypass this

AVG says

Open AVG Antivirus and go to ☰ Menu ▸ Settings.
Select General ▸ Exceptions, then click Add exception.
Read through the questions to ask and click Next ▸ I understand risks.
Add an exception in one of the following ways:

Type the specific file/folder path or URL into the text box, then click Add exception.
Click Browse, tick the box next to the file or folder, then click OK ▸ Add exception.

Your specified file, folder, or website is added to the exceptions list.

Cool! Thanks, I followed your advice and voila, it worked. Good to know :)


text:
Deleting Electrum wallet and setting up new one
I set up an Electrum wallet before I learnt that you should verify the signature. While I went straight to the electrum.org website to download it, I would still like to be secure, just in case. So I want to start again (I had no crypto yet in this wallet).
What should I do to be sure that I have eliminated all the files for the old wallet from my PC (Windows 10), so there is no chance of confusion when I download a second time? I downloaded the Windows Installer version.

As far as eliminating the wallet files; just navigate to the directory used by electrum to save/open wallet files and delete "wallet_1", "wallet_2", etc.. or whatever custom named file you may have chosen for your wallet. Getting rid of the actual software is fairly straightforward also; if you downloaded the standalone executable file then just delete that. If you downloaded the setup files and installed from there then either use the Uninstall.exe from the installation directory or go to the Programs and Features section in the Control Panel, select Electrum, and click Uninstall.

If you're using Electrum on Windows, in my opinion just checking that it is signed with the correct code-signing certificate is sufficient; if any security beyond that is desired, you should use a hardware wallet with Electrum. When you open it, if the Windows UAC prompt says the file is "from the verified publisher Electrum Technologies GmbH", then that should be assurance that the file is the correct Electrum installer.
However, if you just want to delete the wallet files from the old Electrum installation, they are typically located in %appdata%/Electrum.


text:
multiple socket address usage error - using rpc to index block hashes
When I am attempting to index and create an array out of all the blockhashes on the blockchain I keep getting this error:
"[WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted"
        block_counter = 0
        total_blocks = rpc_connection.getblockcount()
        while block_counter < total_blocks:
            block_hash = rpc_connection.getblockhash(total_blocks)
            blockHashArray = np.append(blockHashArray, block_hash)

Am I getting this error due to an incoming transaction on my node? If so, how can I get around this issue?

In your code, the issue seems to stem from the fact that you're continuously trying to retrieve block hashes in a loop without properly managing the connection to your RPC server. Each call to rpc_connection.getblockhash(total_blocks) opens a new connection, and since you're not closing these connections, you eventually exhaust the available ports.
To resolve this issue, you should ensure that you properly close the connection after each call.

I figured it was something along those lines but I tried reading the documentation for bitcoinlib and don't find anything regarding how to close the RPC connection.
I tried deleting the rpc connection object, but that didn't work, and I tried using rpc_connection.stop() but that didn't seem to work either.

Just a quick follow up some other things I have tried with no success.
I tried to use the conn parameter in the AuthServiceProxy
    rpc_connection._AuthServiceProxy__conn.close()


text:
How do I connect an lnd docker image to my umbrel bitcoin node?
I have an umbrel node running a full bitcoin node as an app. I would like to run a lnd docker image  (https://github.com/lightningnetwork/lnd/blob/master/docs/DOCKER.md) on my laptop and connect to it (using it to sync with the blockchain). But I cannot find any instruction on how to actually docker run the lightning container, let alone how to connect it to my umbrel node. It always complains its missing rfc configs but there is no documentation on how to set this up.
So basically, umbrel node runs on the network, the lightning container should run on my laptop. I want to do transactions from my laptop using lncli (or the rest api). How do I start the docker container right so it connects to umbrel and lets me run transactions?


text:
Why don't miners charge more for high value transactions?
I know high and low value transactions take up the same amount of space in the blockchain.
But wouldn't btc be more economical and fair if miners deliberatly chose transactions based on the value/fee ratio?
That way small transactions became cheaper and more viable

What is a miner?

@Cloud You can read up this post: What exactly is mining?

The biggest counter question is identifying what constitutes high value transactions. Bitcoin works on an Unspent Transaction Outputs (UTXO) based model rather than an account based model. The input of Bitcoin transaction needs to include outpoint (txid and vout) of the transaction from which you control bitcoins with your keys. This input is then consumed in its entirety and any change is sent back to yourself. This is illustrated below:
                     / ----- Pay for your coffee (1 BTC)
Consume UTXO (3 BTC)
                     \ ----- Send the 2 BTC change to yourself

Let us assume miners set aside a limit that transactions above 1.5 BTC will be charged higher fees. Considering the above cited example, should miners treat it as high value? The user paid 1 BTC for coffee (which would be below the limit) and is sending 2 BTC change back to itself (which would be above the limit). There is no sure shot way for miner to know which output was being used to spend for coffee. Although there are some methods which you can use to determine which output is a spending output versus what is a change, they are not reliable, and can be gamed by changing the amounts of outputs slightly. Moreover, how do you charge CoinJoin transaction?
If you are thinking any output value (be it spending or change) which is above a certain limit will be charged higher fees, then it will encourage users to create smaller value UTXOs so that they do not have to send higher value change back to themselves (to avoid higher fees). UTXO storage is costly as it is cached in the RAM, and to dodge higher fees users will create multiple UTXOs thus costing the network as a whole to maintain such a big costly database.
From an economic perspective I would like to point out that the most efficient way to maximize your income from mining is by using fee/vbyte. This is because Bitcoin's block size is capped, which means maximum profit can be derived from fitting in as many transactions as possible (thus dependent on size). If you try to use any other methodology, then you are creating an opportunity for other miners to step in and claim the profit your are forgoing.
This would be a classic example of economic equilibrium where any inefficiencies will be ironed out by market forces thus forcing it settle to the most practical equilibrium (fee/vbyte). Thus doing anything apart from charging fee/vbyte would require cooperation of ALL miners or a 51% attack. The former is difficult to achieve from an economic standpoint as discussed above.

This answer is mostly correct (there is difficulty in observing the value of a transaction), but I don't think it explains it entirely. The whole point of miners is that they're replacable (anyone can become a miner without permission, with the right investment), so if some miner is deviating from maximizing their income, other miners will be more profitable, and maximizing fee per (v)byte is very close to maximizing income. Put in other words: doing anything but charging per vbyte would require either all miners to do so, or a 51% attack.

@PieterWuille You are absolutely correct in your reasoning that fees/vbyte maximizes the income for the miners. What I wanted to point out was that even thinking about fee/value is preposterous as there is no sure shot way of knowing what the value of the transaction. I'm incorporating your suggestion in my answer to make it more robust

what is a vbyte?

@Ben, virtual byte, the unit of transaction sizes since the introduction of segwit (number of vbytes in a tx = number of bytes in the non-witness portion of a transaction + 0.25 * number of witness bytes).

For 1 BTC, that had better be the universe's ultimate cup of coffee...

Miners don't charge anyone.
Users put aside some amount of satoshis to incentivize a miner to include a transaction in a block, as the miner takes those satoshis if they are successful in mining that block.
A miner has the incentive to maximize their own profitability by including the highest paying transactions into their block, and to squeeze as many in as possible to maximize that revenue.
The idea that miners might reject some large value transactions because they don't pay a higher fee is incompatible with their incentives, which are to compete with other miners for those transactions which pay the most per weight unit. If a miner decided not to include transactions with sufficient fee, some other miner would include them, and be more profitable than the miner who didn't. It only makes sense then that the miners will continue to operate as they currently do because attempting to adopt a strategy like you suggest would be harmful to them.
Ultimately, miners do not control anything. They merely attempt to profit from what the market is offering.

Miners may not charge anyone in a literal sense, but by declining to process transactions that don't include a large enough incentive, they certainly produce the effect of charging.

If a large enough group of miners decided not to accept lower than a certain amount, the effects might be felt...

If charging by vbytes instead of value is the more profitable strategy, then why dobt credit card manufacturers charge every transactions way instead of value?

@user2741831 very different value scenario. A CC processor passes the transaction through their accounts, paying out of their own pocket first and receiving the value back later from the other party. In that scenario, risk scales directly with value/volume, which is why it affects the price. A miner has no risk in handling a transaction in regard to the transferred amount.

@user2741831, much of the expense of processing a credit-card transaction is the risk that the transaction is fraudulent. Since the cost of a fraudulent transaction scales with the size of the transaction, it makes sense to scale the processing fee similarly. There's no such thing as a fraudulent bitcoin transaction, at least as far as a miner is concerned, so most of the cost comes from the act of processing a block of transactions. Since processing that block costs the same no matter how many transactions are in it, charging more for physically larger transactions makes sense.


text:
What are some other uses for blockchain instead of money?
What has blockchain been used for aside from money in the 10 years its been around?
I know things like etherium exist, but They don't seem be going anywhere, most of its value seams to come from the hope that someday someone will fond a use for smart contracts.
So has someone found a n alternative use for blockchain yet?

Colored coins have used the blockchain to record the creation, ownership, and transfer of extrinsic assets other than bitcoin. Here's an excerpt from Mastering Bitcoin

Colored coins are used to track digital assets as well as physical assets held by third parties and traded through colored coins certificates of ownership. Digital asset colored coins can represent intangible assets such as a stock certificate, license, virtual property (game items), or most any form of licensed intellectual property (trademarks, copyrights, etc.). Tangible asset colored coins can represent certificates of ownership of commodities (gold, silver, oil), land title, automobiles, boats, aircraft, etc.

This chapter mentions other use cases like Proof-of-Existence (Digital Notary), Kickstarter (Lighthouse), and Payment Channels (The Lightning Network). But I guess the later two still involve money.
Source: https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch12.asciidoc

Note: Using tokens to represent extrinsic assets (or otherwise reconcile extrinsic events) involves trusting an oracle which will input data to the chain, or otherwise honour the information stored in the chain. This is distinct from tokens/assets that are intrinsic to the chain, in that the oracle is a necessary trusted third party.


text:
Imported address:private key
Please I want to ask how can I get the private key so to withdraw from my imported address and is it possible that you get to pay a certain amount of btc to get the private key..thanks in anticipation

You are the victim of a scam. Please don't send anymore money to the scammers and in future read about how bitcoin works before you put your money into it.

That's not through.. you don't need to pay to get private key. You can get your private key from the root of ur wallet address host such as blockchain,  coinbase, bitcoin dtcom. If you have remember your password / Phrase text recovery.


text:
Is it possible to make a transaction with no transaction fee?
Is it possible to make a transaction with no transaction fee? Is it possible to pay more fee to prioritize your transaction?

Is it possible to make a transaction with no transaction fee?

As Raghav Sood noted in a comment, transactions with no transaction fee are not transmitted by standard Bitcoin nodes - so your zero-fee transaction normally won't reach a miner. In theory you could make some special arrangement with a miner but it's hard to see why they would want to do that.

Is it possible to pay more fee to prioritize your transaction?

Choosing a higher initial fee tends to result in quicker confirmation. If your wallet supports Replace By Fee (RBF) you can use that subsequently to improve the likelihood of a quicker confirmation.

Standard nodes will not broadcast 0 fee transactions, so you likely won't be able to reach a miner at all, unless you have some special path to them

How do you choose a higher fee incase of a paper wallet?


text:
Does the chain become computationally more expensive to validate over time?
Since there is only one chain per coin, doesn't that mean it becomes computationally more expensive to validate the chain the older the coin is and the longer the chain becomes?

Yes. The longer the chain, more computation is required to validate it. When you run Bitcoin Core you get a screen saying "validating blocks...". For ~600k blocks it takes a couple of minutes on a modern PC. If you multiply by 10, say for 100 years of Bitocoin history, it'd take half an hour with today's technology. So probably a nonissue in the long term.

Validation of proof of work is extremely cheap, and scales linearly with the length of the chain. That is to say, validating the proof of work for 2N blocks will take only twice as long as validating the proof of work for N blocks.
The part that does not scale linearly over the life of the chain is the transactions themselves - signature validation is expensive, and as networks get more busy, validating the transaction signatures and the utxo set takes up the bulk of the block validation time. These are limited by the SIGOPS limit of a block, which limits how many signature verification operations a block may have
(although it is not an exact 1:1 correlation, but more of an upper limit/yardstick to manage script complexity), and the block size, which puts an upper limit on how many transactions can be in a block.
Note that transaction validation as an isolated operation is still mostly linear - signature validation has a fixed, but high cost. Validating 2N signatures will take roughly twice as long as validating N signatures. It's just that blockchains naturally tend to grow at an exponential rate, so the number of transactions in block 2N may be exponentially more than those in block N, thus leading to a non-linear validation time.
A blockchain such as Bitcoin that runs at near-full capacity most of the time will still have a linear validation cost for recent blocks.

There’s some non linearity in doing sha256 on transaction validation. It’s faster to do 4 hashes at once than do 4 hashes one time.


text:
Why is my bitcoin wallet keep telling me: there was a problem sending your transaction uneconomical UTXO requested

That is what I keep receiving when I try to sent my bitcoin to another wallet address ...

Which wallet software are you using? It would probably be best to direct this question towards their customer service department.

See comments to Uneconomical UTXO requested

To state simply, you don't have enough money to send, your output was 4142 satoshi in the previous transaction but you need 22013 satoshi, try to find out if this is because of hidden tx fees or your trying to send from the wrong wallet/ transaction chain

Many Bitcoin Wallets have complicated error states that don't clarify things for the end user. When sending BTC, there is a chance you could be spending an input that is a lower cost than the cost of sending the transaction. This is due to the fee market imposed by preventing the scaling of the block size. It seems you may have hit that error with your Bitcoin Wallet. Best to get clarification from their support team.


text:
How does an ASIC Bitcoin miner work on a fundamental level?
I'd like to understand how ASIC miners are more efficient at mining bitcoin. Having a background in CS, how does the ASIC miner work on a binary level on the CPU and why is it so much faster?

Does https://bitcoin.stackexchange.com/q/12029/5406 or https://bitcoin.stackexchange.com/q/16940/5406 perhaps answer your question?

ASIC miners hash quicker with less electricity draw over time due to microprocessor chip advancements, ie J/TH efficiency. ASIC are only designed to do the SHA-256 algo, whereas CPUs and GPUs can be reprogrammable. In general ASIC advancements follow Moore's law.


text:
What are the biggest Proof-of-Stake roadblocks?
What are the biggest hurdles (technological or otherwise) that the Proof-of-Stake consensus algorithm must overcome to become the de facto consensus algorithm for blockchain? Or put differently, what's stopping PoS from becoming a reality, right at this moment?
And furthermore, in what ways is it so much more difficult to implement than a Proof-of-Work consensus algorithm? (I am assuming it is much more complicated by virtue of the years and years of R&D required to make it a reality, relative to PoW which was implemented 10 years ago now by one man, or perhaps a small team of people, depending what you believe)

I'm voting to close this question as off-topic because it appears to mostly be about Ethereum

PoS will not become the defacto standard because Bitcoin is the defacto standard, and it is based on PoW.
PoS has a different risk/reward tradeoff to PoW, because funds are not irrevocably committed to securing a block, and reward is guaranteed for being honest, assuming that honest stakers remain the majority.
PoW irrevocably commits funds in the form of energy consumed to perform proof of work. You can never get these funds back. The reward is also psuedo-random, it depends on the unpredictable output of secure hash algorithms, and so you can only have a probabilistic measure of reward at best.
For a PoS stake system to achieve the same, you would need a perfect oracle, which can randomly pick winners from those who irrevocably risk their own funds into securing the chain in hope of a reward which is not guaranteed.
PoW is probabilistic gambling (where the probability is out of human control), and PoS is rent-seeking for the biggest stakeholders.


text:
My Bitcoin client has stopped syncing

As you can see my client is stuck on 99,7% with unknown. Syncing Headers(577895), It has been in this state since last day synced(which you can see). How can I get it to work since I have plenty of disk space and I run a computer maintenance program quite often.

Can you include the contents of the debug.log file?

Contents of debug.log:
2019-06-08T07:51:14Z Potential stale tip detected, will try using extra outbound peer (last tip update: 230677 seconds ago) 2019-06-08T07:51:20Z New outbound peer connected: version: 70015, blocks=579781, peer=8097 2019-06-08T08:01:09Z Timeout downloading headers from peer=8084, disconnecting 2019-06-08T08:01:09Z ERROR: AcceptBlockHeader: block 0000000000000000000267fdf54d391d7e63d24c92f9437f94897fbc0c63c1e1 is marked invalid 2019-06-08T08:01:10Z ERROR: AcceptBlockHeader: block 0000000000000000000267fdf54d391d7e63d24c92f9437f94897fbc0c63c1e1 is marked invalid


text:
how do I use the getwalletinfo RPC?
I can't seem to get a firm grasp of how to use the getwalletinfo RPC in the cmd line as well as in PHP code, The documentation says getwalletinfo doesn't take any parameters, but I've seen ways to send specific requests to the daemon this RPC. So, my question is, how do I use the getwalletinfo RPC in PHP to get information of a specific wallet?

getwalletinfo does not take parameters.
It sounds like what you are looking for is how to send getwalletinfo to a certain wallet loaded into Bitcoin Core. The way to do this is to use that wallet's API endpoint. The endpoint is /wallet/<name> where <name> is the name of the wallet you are trying to send commands to.
So the full URL that you need to send your RPC requests to is http://<ip>:<port>/wallet/<name> where <ip> is the IP address that Bitcoin Core is listening on (probably 127.0.0.1), <port> is the port the RPC interface is bound to (probably 8333), and <name> is the name of the wallet.

so that would be $bitcoin->getwalletinfo("http://127.0.0.1:8333/wallet/testwallet");?

To be more specific, this is supposed to be automated, a new wallet is created for every user on my website. The way I see it, now that accounts are gone, wallets are the only thing to use!

No, that is sending the URL as a parameter as getwalletinfo. As I said, getwalletinfo does not take parameters. You need to change $bitcoin to send RPC requests to http://127.0.0.1:8333/wallet/testwallet rather than http://127.0.0.1:8333/

So those changes take place in the bitcoin.conf file? Is the <:port> the default URL? I can't think of anything else than parameters to use when automating the selection of wallets, this confuses me!

No, they are not options to Bitcoin Core. They are something that you need to configure your RPC client to use. It's just like how for REST APIs you need to send requests to a certain URL. You need to do the same thing here; RPC is just a HTTP server where you send requests to a URL. This is something that you need to change in your PHP code. You need to look at the code for the RPC client in PHP and figure out how to set the URL it sends to.

Oh now I get it, it's probably about the third party class which contains the URL, thanks!

Ok, I now understand what I need to do, I updated the Bitcoin connection initializer to this: $user_bitcoin = new Bitcoin('user', 'password', 'HTTP', 'localhost', '8332', '127.0.0.1:8332/wallet/');, it then didn't return true. I did a print_r($user_bitcoin->error()); which returned 1


text:
Wallet management now that accounts are deprecated?
I'm building a website which will allow every user to make deposits and transact with Bitcoin, how will I be able to get the balance of a specific wallet. I currently know these commands:
$bitcoin->createwallet("wallet_name");
But to get the wallet info of that specific wallet is confusing for me, according to the documentation the getwalletinfo RPC takes no parameters. So my question is how do you get wallet information of a specific wallet?

If you are using more than one wallet, the wallet is selected by sending the RPC requests to <host:port>/wallet/<wallet_name>.

how would that look in PHP?

I don't do PHP, but it should just be a matter of update the URL you are sending the request to so that it includes the wallet path.

I tried to run this in command line: bitcoin-cli getwalletinfo "home/username/bitcoin/wallets/testwallet" which returns an error code

Just for clarification, my OS is linux

If you are using bitcoin-cli, you need to set the -rpcwallet=<wallet_name> parameter - the url based selection is for applications using the RPC interface directly

so if i were to use it via my application i'd still have to have that in the bitcoin.conf?

The bitcoin folder and their wallets aren't located within the server directory

again how do I do it in the url when my bitcoin sevrer isn't located within my web server?


text:
Does the `HTLC fail` routed back to sender using same path if intermediate node does not have enough capacity?
In the Lightning Network, the intermediate hop between the sender and receiver checks for possible errors(like if it has enough balance). And if there is, it sends an HTLCFail message back to the sender.
I was wondering if the HTLCFail message is sent back to the sender via the path it comes from, or it's routed by some new random path as long as it can go back and let the sender know this path cannot route?

Payment relay (intermediate hop). H checks for possible errors (e.g., it checks whether it has enough
  balance to forward the payment). If there are errors, it sends an HTLCFail message back to S , failing
  the HTLC; otherwise, it sends an HTLCAdd message to R . (This step occurs multiple times in the general
  case of a payment going through multiple intermediate hops.)

The failure message must go along the same route it came, because any intermediate step does not know where the payment was originally sent from. Every hop only knows the previous and next hops in the sequence, and so the only option it has is to return the information to the previous hop on the route.

alright thanks a lot. I saw this and wasn't so sure so just wanna check. Thanks again.

i got one more question: since each hop knows the previous and next hops, would that mean the intermediate node needs to record every payment's information on this hop? wouldn't that create large overhead? or the hopping information is not stored on the node. Thanks a lot!

Some information must be kept around because it is necessary to keep commitment transactions for all past channel states (in case other party broadcasts an old state), and the commitment and associated htlcs require the payment hash. The other session information for each payment forwarding only needs to be held for the duration that the HTLC is in flight.


text:
How long does it take to transfer btc with 5 sats
I transferred 10 dollars to a gambling website and its been over a day and it still hasent reached its first confirmation, when will it actually hit it?
https://explorer.bitcoin.com/btc/tx/6d114e6f8d96f53a1aa8b9e8e6d66eeb4aedc4efa57d537a25f54bb7157f0ccb

This might take a month considering 5 sat/vb.