text:
Is there a mechanism to handle stale bitcoins?

Possible Duplicate:
Why doesn't Bitcoin return lost coins back into the block reward?
What could be the consequences of many bitcoins being lost out of circulation if people lose their wallets?

Okay, the first question has to do with stale bitcoins.  Say people lose their private keys.
Over time it just keeps building, and a large portion of the 21mm bitcoins are immobilized.
What happens?
The same scenario can occur for a different reason, say people start putting bitcoins in their
IRAs and there millions of bitcoins held immobile.  Also, how do I know that in 20 years they still will be good.  Maybe the network truncates the transaction log and my part falls off.

Most of this is covered here, here and here (see "linked questions" to the right for readable links). Should we close this as a duplicate?

@D.H. I vote to close this one.

@JOSEPH.  Voting to close.  Of the four questions you asked all have already been asked and answered.  Please search for existing questions before making a new question.  This ensures the Q&A remain useful to the larger community not just the original asker.

If coins are lost, they are gone forever. This only hurts the person who lost the coins... and in fact it makes the rest of the coins more scarce and thus more valuable long term.
Because Bitcoins are divisible down to eight (or more) decimal places, it really means there are 21,000,000 x 1,000,000 = 210,000,000,000,000 units (and this can be divided even further with changes to the code. In practice, this means that one can always have a "small enough" unit of Bitcoin to buy tiny items.
So if X number of Bitcoins are lost, the rest simply become more valuable, and unless a coffee costs less than .000000000000001 BTC or something, there will not even be a need to alter any code. If we were using those tiny units, a convenient name would be given to them and life would be fine and dandy.

It's 21,000,000 x 100,000,000 = 2,100,000,000,000,000.

Coins are never "deleted", there is a small chance that someone generating a key in the future will generate a conflict and recover those lost coins.
Bitcoins are infinitely divisible, so the network can run on a fraction of a Bitcoin just as well as on all of them. There is no problem of liquidity.
The problem with hoarding is the same as with any finite resource (like gold) - people hoard money, value of money goes up, people dump their hoarding, get rich, value goes down, cycle repeats.

There is a big difference with gold.  Gold is never destroyed, someone will eventually find gold coins hidden somewhere.

If you give gold to a chemist or a physicist with enough funds, they can technically turn it into any other element by fusion, fission and the like. If you start generating a lot of keypairs, eventually (although that can be decades away if you are an optimist) you will generate a conflict and be able to spend someone's coins. Probably you'd be more successful if you'd start digging for gold in your back yard with a shovel, although either way yields worse results than going to work and earning money to buy gold or Bitcoins.

Dude, could you please edit your post and remove my name from it?  Thank you much.

StackExchange doesn't allow anyone to edit posts.

In short: yes there is a mechanism, and that mechanism is called "leave them where they are".
So no worries on the IRA, and say good bye to the coins belonging to irretrievably lost private keys.

I don't even know where my private keys are.  The wallet software just has one key and I presume that is the public key.  Is the private key hidden somewhere in the program not accessible?

Accidents do not happen, they are caused. Private keys will not be lost if a proper backup strategy is used. The total bitcoins lost will probably be much less than you think.
It is generally agreed that the best course of action is to keep lost coins lost. The only way they can be found again is if and when it becomes feasible to break the current digital signature algorithm.
The network does not truncate unspent outputs, you can verify this by checking the source code. You need to have faith that the network will reject harmful changes such as starting to truncate. However, if a weakness in the DSA is found and a new DSA becomes standard, you may want to move your savings coins to a new address.

I think if and when governments start to crack down on bitcoins then many more will be lost.  Also there is a potential for large disasters, like earthquakes in Japan and terrorist bombings.  What if people find it convenient to print their bitcoins and use them like bills, that would increase the amount of loss coins.


text:
How does namecoin compare and contrast to bitcoin?

Possible Duplicate:
What are Namecoins?

It seems to me, a bitcoin newbie, that namecoin is something entirely different but has some similarities.   I would like to hear it from the bitcoin community what they think of namecoin and what it seeks to accomplish.

Helpful: http://bitcoin.stackexchange.com/questions/169/are-the-capabilities-of-namecoin-a-strict-superset-of-bitcoin

Also: http://bitcoin.stackexchange.com/questions/1487/what-are-namecoins

source: Stack Exchange

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

sort: votes


text:
Identifying sender
Is the sender's address the only way to identify the seller?
I don't see how this would work for a large websites that accept bitcoins. Since all of the transactions are visible, anyone can claim address x is theirs and that they sent the payment.
I guess the only way would be to generate a new address for each transaction? Seems messy and hard to keep track of things.
Also, I though I'd add another question since I mentioned large websites. Would it be possible to automatically notify the server when a payment arrives? I'm talking about something like paypal's IPN system. So that everything would be automated. If the person buys a subscription for example, then upon payment confirmation it gets activated automatically.

possible duplicate of How to findout the sender of a transaction

There is nothing messy or difficult to keep track of about generating a new address for each transaction. Generating an address is a very cheap operation and you can generate thousands of them in advance if you want. The way Bitcoin is designed, there is no different between using the same address for multiple transactions or using a new address for each transaction. It makes no difference to the system at all.
That said, I think the Bitcoin system should have permitted you to put an identifier in the transaction. 16-bits would have been sufficient.

Cannot you put some custom identifier data (that makes sense only to sender and recipient) into the script part of the transaction (if you really feel you need that)?

There is no need to do that: the only data that belongs in a transaction is what is necessary for the world to verify its integrity. In most cases, you are already communicating with the sender by other means (website, e-mail, IM, ...), so why not send the identification there? Sure we need infrastructure to make this user-friendly, but one can send a signed message "please accept bitcoin tx 012d34sf56a as payment for order 12345".

@PieterWuille: The problem with "please accept bitcoin tx X as payment for order Y" is that the transaction information is public. What happens if you receive one of those, ship the order, and then receive another one? The merchant pretty much has to give the buyer some information that the buyer incorporates in the transaction. Right now, that can only be the receiving account. But if you could put the order number in the transaction, you could re-use accounts more easily.

What do you mean by "then receive another", and why would it be a problem?

@PieterWuille: You receive a message saying that transaction X was payment for order Y. You ship the order. Then you receive another such message saying that transaction X was payment for order Z. What do you do? The transaction information is public, how do you securely map it to an order?

There's two options really: a) sign it using a private key the transaction was sent with (which was what i intended above, but that requires control of the private key, and is not necessarily possible in case of an e-wallet), b) my favorite: send the transaction to the merchant directly (no one else in the world cares about getting it accepted anyway).

@PieterWuille: I don't see how either way works. Either of those ways still has the problem that two people (or one person, sending twice) might send you the same transaction claiming it pays different orders. How does either method ensure a transaction maps to one and only one order? Putting the order ID in the transaction clearly does this. And using an account for only one order clearly does this. I don't see how your two methods do this.

Not sure why that is a problem; just only accept the first one. Either way it requires consent from the one actually creating the transaction; it's not something that can happen by accident.

let us continue this discussion in chat

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


text:
Making a read-only Linux SD card, where are the security loopholes? (offline key generation and signing)
I have already identified a way to make an SD card truly read-only on HackaDay.
So let's consider this situation:

A third party have used dd to transfer the Linux image to an SD card
The PERM_WRITE_PROTECT bit is set and can not be changed
There is a hash of the image that will be checked on booting from the card
The developer have signed the hash with PGP and this is clearly stated online

The purpose of this card is to be able to boot a computer you already own and to know that what was intended to boot is actually running. Could uEFI or BIOS in a computer be compromised?
Security should enable the user to:

Generate a paper wallet
Print the wallet with a USB connected printer
(Other actions needing high security precautions)

To do this with confidence, both the SD card and the code to generate the keys must be verified (hash and PGP signatures) by the user. What am I missing? Are there any loopholes in this combination of hardware and software?

To answer this question, you have to clearly articulate which elements you do and don't trust.  The Linux developers could have included a back door.  The BIOS could be malicious.  The printer could log all the pages it prints.  The USB cable could have a sniffer that logs all the bits going through it.  Et cetera.  Which of these possibilities concern you?

@nate-eldredge BIOS/UEFI would be my first concern, a "dumb" printer could be used (with no storage possibility). The last physical vulnerability that I take in to account is when the SD-card was written to by the third party. So sniffer USB cable is not included in my question. Niter is a hardware keylogger or any Tempest conserns included.

I have removed the three tags that you created for this question and added [tag:paper-wallet]. Please only add tags that are on-topic and will be useful in a broader scope on this SE.

authors: Иван Украинский


text:
How are transaction fees calculated in raw-transactions?
So, after understanding how to create and send raw transactions on the basis of 'How to send from many bitcoin addresses to one bitcoin address?', in practice I still struggle with transaction fees. For example, I do the following in order to calculate the size of an hex-encoded transaction:
hex_raw_transaction = createrawtransaction(...)
hex_raw_transaction = signrawtransaction(hex_raw_transaction)
byte[] size = HexStringToByteArray(hex_raw_transaction)
int transaction_size = size.Length

Is that a correct way to determinate the transaction size? (Regarding to https://en.bitcoin.it/wiki/Transaction_fees)?
Is it correct that the transaction fee is set by the unassigned amount in the outputs?
For example, if I have 1 BTC in one address and send the 0.65 BTC to a second address and 0.3495 BTC as change to the first
//The fee will be:
fee = 1 - (0.65 + 0.3495)  //= 0.0005 btc

is it correct that the fee will be 0.0005 BTC?

Here is a great answer on how to calculate the transaction size before sending. (Make sure to read the final edit.)
As for the fee, you've got it right: whatever amount from the inputs is NOT sent to other addresses, becomes the transaction fee for the miners.

Yes it exactly the same value size of transaction if we use bitcoind getrawtransaction command, e.g.
bitcoind getrawtransaction d9804de366aa4c2a01565c3a3c8aa2ea20baafc276dc875f80b9044841205333
return 15522 length of hex-string, so in real bytes it will be 7761 whcih is actual size of transaction


text:
How to retrieve the from and to wallet addresses of a transaction?
Given a transaction's inputs and outputs, I'd like to be able to extract the wallet address (or addresses) which sent the transaction, and also the address/addresses that will receive the transaction.

Which part / field of the input refers to the hash of the output?
And which part / field of the output refers to the address which will receive the output?

I'm using bitcoinj. I've tried looking at the scriptSig of inputs and scriptPubKey of the outputs, but it isn't making much sense to me.
E.g, for the genesis transaction: https://blockchain.info/tx/4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b?show_adv=true
The output's scriptPubKey is [04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f] CHECKSIG
But the receiver address is 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
How can I extract that the receiver address is that from that scriptPubKey?

Which part / field of the input refers to the hash of the output?

The outpoint contains a txid (32 bytes) and vout (4 bytes), which specify the output you're spending.
This is not the sending address!
What you do (when you're not dealing with a coinbase transaction) is that you look up the transaction with the txid, and look at the transaction output that corresponds to vout. So, for example, if vout was 3, you would look at the fourth output of the corresponding transaction. If vout was 0, you would look at the first output. The address that can spend that output is the sending address of the original transaction.
The genesis transaction is a coinbase transaction, so the txid is all zeroes, and the vout is all ones.

And which part / field of the output refers to the address which will receive the output?

It depends on the format of the output, but here are the general rules:

If it's P2PK, like here, run HASH160 on the first element of the scriptPubKey, then encode it as an address.
If it's P2PKH, take the third element of the scriptPubKey, and encode the pubkeyhash as an address.
If it's P2SH take the second element of the scriptPubKey, and encode it as an address with Address.fromP2SHHash.

I go into more detail about possible kinds of addresses here: Which bitcoin script forms should be detected when tracking wallet balance?

How can I extract that the receiver address is that from that scriptPubKey?

Do this:
import org.bitcoinj.core.*;
import org.bitcoinj.params.MainNetParams;

import org.spongycastle.crypto.digests.RIPEMD160Digest;

import java.nio.file.Files;
import java.io.File;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Test {
    public static void main(String[] args) throws Exception {
        byte[] b;
        NetworkParameters np = MainNetParams.get();
        Context.propagate(new Context(np));
        b = Files.readAllBytes(new File("genesis.bin").toPath());
        Transaction tx1 = new Transaction(np, b);
        System.out.println(tx1);
        byte[] pk = tx1.getOutput(0).getScriptPubKey().getPubKey();
        System.out.println(bytesToHex(pk));
        System.out.println(bytesToHex(hash160(pk)));
        Address a = new Address(np, hash160(pk));
        System.out.println(a);
    }
    static byte[] hash160(byte[] in) {
        MessageDigest d1;
        try {
            d1 = MessageDigest.getInstance("SHA-256");
        } catch(NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
        d1.update(in);
        byte[] digest = d1.digest();
        RIPEMD160Digest d2 = new RIPEMD160Digest();
        d2.update(digest, 0, 32);
        byte[] ret = new byte[20];
        d2.doFinal(ret, 0);
        return ret;
    }
    final protected static char[] hexArray = "0123456789abcdef".toCharArray();
    public static String bytesToHex(byte[] bytes) {
        char[] hexChars = new char[bytes.length * 2];
        for ( int j = 0; j < bytes.length; j++ ) {
            int v = bytes[j] & 0xFF;
            hexChars[j * 2] = hexArray[v >>> 4];
            hexChars[j * 2 + 1] = hexArray[v & 0x0F];
        }
        return new String(hexChars);
    }
}

(Note that I have a file in my current working directory named genesis.bin, which contains the raw bytes for the genesis transaction.)
And you get:
  4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
     == COINBASE TXN (scriptSig PUSHDATA(4)[ffff001d] PUSHDATA(1)[04] PUSHDATA(69)[5468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73])  (scriptPubKey PUSHDATA(65)[04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f] CHECKSIG)

04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f
62e907b15cbf27d5425399ebf6f0fb50ebb88f18
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Which is the address we were trying to get.

Thanks, very helpful. How do I know if an output is P2PK, P2PKH, or  P2SH? And, do these 3 formats cover all the possible formats that it can be in? Also, how would I know if its a mining fee without an address?  Lastly, to get the txid of inputs with Bitcoinj, would I use the input.getParentTransaction method?

I saw your answer at http://bitcoin.stackexchange.com/questions/35456/which-bitcoin-script-forms-should-be-detected-when-tracking-wallet-balance/35458 which answers my first question. Remaining questions: 1) I'm assuming that the sender address of multi-sig txns cannot be retrieved? 2) Do you happen to know the hashes of txns using P2PKH and P2SH so I can test my parsing of them? 3) How can I retrieve the txId and vout of inputs thru Bitcoinj?. If I get this working, I'll submit this as a PR to bitcoinj. Thanks.

Would it be better if I created a new question for each of these?

@ClickUpvote 1) That's possible. You might mean "which addresses owned this Bitcoin before" or "which addresses actually signed this." First can be answered by looking at prev scriptPubKey, second requires prev scriptPubKey and current scriptSig. 2) P2PKH/P2SH 3) tx.getInput(vin).getOutpoint() followed by getHash or getIndex. PR) Cool! It would be nice to see that in bitcoinj. PS) I would make separate questions. There's a 600 character limit on commen

Does input.getOutput.getHash refer to the txn id and getIndex refer to the vout of the output of that txn? P.S thanks a bunch, I've been trying for a few days to get answers to these qs, you're the first person who has been able to answer them. :)

Is it possible to download the binary data of those txns from blockchain.info or another method, without having to traverse the chain looking for it?

@ClickUpvote You should be able to request the webpage https://blockchain.info/tx/<txid here>?format=hex to get a hex encoded version. Other API's have something similar.

So e.g, https://blockchain.info/tx/1bc137186cba1c1e36aaa805bee2b964d827c53cc3b05883e14f820e7cee3083?format=hex , that can be saved as a .bin file and passed on to Transaction as in your example code? Or does anything further need to be done to the hex data?

@ClickUpvote It's got to be converted from hex to raw bytes. http://stackoverflow.com/questions/8890174/in-java-how-do-i-convert-a-hex-string-to-a-byte

The scriptPubKey contains the public key used to synthesize the public address.  Here are two pedantic approaches, not using bitcoinj, applying bx commands to synthesize the public address of interest above.
% echo 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f | bx sha256 | bx ripemd160 | bx base58check-encode

1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
% echo 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f | bx ec-to-address

1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

authors: Андрей Захарченко


text:
transaction "unconfirmed," no idea what the problem is, running updated bitcoin core
The transaction 0ee906dd3a240d3776d609853a7e855ed813b8a1e51328405145a8cffecbb804 has been unconfirmed for six hours. I have no idea what the problem, it just says "unconfirmed transaction!". Is there anything I can do? My bitcoin core was recently updated so i don't think it's a transaction fee problem.

There is currently a backlog of about 52,000 unconfirmed Bitcoin transactions.
The transaction 0ee906dd3a240d3776d609853a7e855ed813b8a1e51328405145a8cffecbb804 will be confirmed eventually.
At the very worst, the transaction will get dropped and the coins will still be in the sending address.

In order to prevent this from happening, increase your transaction fee to raise your transaction priority.  This will prioritize the transaction and miners will confirm it faster.


text:
dumpwallet output documentation & explanation?
Where do I find complete documentation on what the console command "dumpwallet" output means?
Sample of my testnet output:
# Wallet dump created by Bitcoin v0.21.0
# * Created on 2021-01-21T16:59:50Z
# * Best block at time of backup was 1905234 (00000000e26170d0f846a334a1bfdfebe8da906c5),
#   mined on 2021-01-21T17:05:05Z

# extended private masterkey: tpR2efnJMh85ufpQcYSTwrrKrYJ

cTdH4SbvTR 1970-01-01T00:00:01Z label= # addr=mnb8RSpTqvhLh8Q6,2MudYFE2awqc,tbvhpur8zf35ql3yx5h9nu
cRaKzuR9MCVwAxVa3aAZrVh15YbV 2019-08-26T01:19:00Z reserve=1 # addr=tb1q3qc52q hdkeypath=m/0'/0'/222'
cT2ozo5xcj6iCe4dTfywan3qJnib 2019-08-26T01:19:00Z hdseed=1 # addr=tb1qzqtu25qsue0a5pp3hg8lkftclf8ds
cNb2K9tUhQaeXiVz2Jt2Wq9DMLdf 2019-08-26T01:19:00Z reserve=1 # addr=tb14d7lx hdkeypath=m/0'/0'/117'

.....4040 lines
# End of dump

What's "hdkeypath"?
What's "reserve" ?
What's "hdseed"?
Why does "addr" sometimes have 1 address and sometimes 3 addresses?
Why does my dump have 4040 lines?
(for purposes of formatting & discretion, all addrs/keys are mangled)
This is the best I could find. It offers no detail about the output:
dumpwallet

AFAIK there isn't any documentation of dumpwallet's output. You need to read the source code to know. I suppose I can just document it here though.
The dumpwallet output contains comments. Comments are prefixed by a #. This can be found at the beginning of a line or in the middle. Anything on that line following the # is a comment and will not be parsed by importwallet. Comments are used to provide additional information to the user reading the dumpwallet output but prevent the importwallet parser from doing anything with the data in the comment.
The first 4 lines are just some extra information to the user to know which version created the dump and at what time. It includes the current clock time as well as the time and hash of the current best block.
For HD wallets, this is followed by the extended master private key.
After that, each line lists out an individual private key and some metadata about that private key. The private key will be encoded using the Wallet Import Format.
The private key will then be followed by a timestamp. This timestamp is in UTC time and is the time that the private key was created and added to the wallet.
Each private key will have one of the following metadata fields: label, hdseed, reserve, inactivehdseed, or `change.

label: This is a label assigned to one of the addresses for this private key. Since a single private key can have multiple addresses, and each of those addresses a different label, this just gets one of this labels. It's a holdover from when one private key corresponded to one address. All receiving addresses will have a label even if it does not have a label. For those addresses, the label is the empty string so you may see label= a lot.
hdseed: This private keys is the current active HD seed. You will always see this field as hdseed=1. The HD seed is a BIP 32 seed. Bitcoin Core stores this as a private key and it is therefore indistinguishable from other private keys. This HD seed is used to produce the extended master private key found earlier. It may also be used to derive many of the other private keys in this wallet. There should only be one key with hdseed=1.
reserve: This indicates that the private key is part of the keypool. You will always see this as reserve=1. The key has not been requested for use as a receiving address nor as a change address, it is in reserve in the keypool.
inactivehdseed: This private key was a HD seed previously used by the wallet but is no longer the currently active HD seed. You will always see this as inactivehdseed=1. It is the same meaning as the key with hdseed=1 except it is not currently active.
change: This key is no longer in the keypool and it's address is not a receiving address. The assumption is that such addresses are change addresses. So this key is marked as being change by having this metadata field. You will always see it as change=1.

Following the metadata, on the same line, will be a comment with some additional metadata that may be useful to the user but will not be parsed by importwallet. This will have 2 fields: addr and hdkeypath.

addr: This is a comma separate list of addresses that have been used for this private key. Since a single private key can have multiple addresses, you may see multiple addresses in this field.
hdkeypath: This is a string representing the BIP 32 derivation path for this private key. In cases where there is only one key marked as hdseed=1, you can derive this private key by using the extended master private key at the top of the file and then deriving from it the key with this derivation path. When there are multiple HD seeds in a wallet (i.e. when there are inactivehdseed=1 keys), it is not possible to know which seed this key was derived from without trying to derive from them all.

After each of the private keys is listed, you will see lines for scripts stored in the wallet. This is similar to how private keys are listed.
Each script is written out in hexadecimal. The script is then followed by a timestamp indicating the time that the script was added to the wallet. It will then be followed by script=1 to indicate that this line is for a script. Lastly there will be a comment containing an addr field. This address will be the P2SH address for this script.
At the end of the file is a comment End of dump to indicate the end of the wallet dump.

When you use dumpwallet, you should expect to see several thousand lines. This is because Bitcoin Core, by default, has a keypool of 1000 receiving keys and 1000 change keys. For a newly created wallet, there will be 2000 key lines.
If you have not imported any scripts, you should have the same number of key lines as script lines. This is because each key has a segwit script. This is an artifact of how the Bitcoin Core wallet supports segwit.
If you have imported any scripts such as multisig scripts or addresses which are not yours, then you will see those scripts in the script lines as well.

Andrew, under what circumstances will there be reserve=1 keys? Do they have a practical use today?

@DonnLee There will always be reserve=1 keys (except for descriptor wallets, but that's an entirely different thing). They are useful today and are still important.

reserve addresses: https://bitcoin.stackexchange.com/questions/96982/what-is-the-meaning-of-change-and-reserve-in-a-bitcoin-core-wallet-dump

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


text:
Bitcoin-Qt [11690]
I found this on my mac computer what is the meaning of this can you pls hep me to understand  I am new to this;
Process:               Bitcoin-Qt [11690]
Path:                  /Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt
Identifier:            Bitcoin-Qt
Version:               0.17.1 (0.17.1)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Bitcoin-Qt [11690]
User ID:               501

Date/Time:             2019-03-19 15:05:08.490 +0800
OS Version:            Mac OS X 10.14.3 (18D109)
Report Version:        12
Anonymous UUID:        03A66689-DA11-7464-D9A3-39528597A7F6

Sleep/Wake UUID:       BDBB57FB-33EB-47A7-A932-49A27856909C

Time Awake Since Boot: 290000 seconds
Time Since Wake:       50000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x00004934d67bb3c0
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [11690]

VM Regions Near 0x4934d67bb3c0:
    mapped file            0000000180f6c000-00000001825a0000 [ 22.2M] r--/rwx SM=COW  Object_id=eba21991
-->
    MALLOC_NANO            0000600000000000-0000600078000000 [  1.9G] rw-/rwx SM=PRV

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                 0x00007fff594d08bf objc_retain + 31
1   com.apple.coreservices.SharedFileList   0x00007fff2ecc3f18 -[SFLLoginItemList removeItem:error:] + 35
2   com.apple.coreservices.SharedFileList   0x00007fff2ecca3c7 LSSharedFileListItemRemove + 127
3   org.bitcoinfoundation.Bitcoin-Qt    0x0000000108f4a4d7 0x108f0b000 + 259287

About all one can tell from this log message is that the bitcoin-qt application crashed.  It doesn't contain details as to why.
One possible cause is that the blockchain files are corrupt, which could happen because of a previous crash or if the computer is turned off without closing the app properly.  You could fix this by reinstalling  the application (but make sure to save a copy of your wallet.dat file or you will lose all your coins).
It could also be a bug in the application.  If you can reproduce the crash, you can report it at https://bitcoin.org/en/bitcoin-core/contribute/issues

Thank you so much for the detailed answer. I appreciate.

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


text:
How do I find the exchange an address belongs to
How do I find the exchange that an address belongs to? I have an address that I have sent Bitcoin to but I forgot what exchange that address was for.

After you deposit it, normally it gets swept into a bigger wallet which I just google to find out. Also all the exchanges know each other's addresses so even if the big address doesn't appear in google, it's possible.

Do you have a source for “all the exchanges know each other's addresses”?

It is basically impossible to identify who (whether it is an exchange or someone else) owns an address unless they announce that they own the address. You will not be able to figure out what exchange the address that you have belongs to by just looking at the address alone.
You will have to look elsewhere, and knowing the address is not really important. Look through your emails and think of the exchanges where you have made an account on. Only through other data that you have (e.g. your emails, saved login info, etc.) can you figure out what exchanges you have used and thus potentially deposited coins to. The address that you have is irrelevant.

It's not impossible. You just have to look at other outputs claimed by the transactions that have claimed payments to that address. If you can match any of those to an exchange, you've got it.

That assumes that the exchange has moved the coins and moved them in a transaction with inputs that are known to belong to the exchange. If they did not (and there is no guarantee that they did) then that method will not work.

It doesn't assume anything. You assumed things by saying it's impossible. My answer, however, makes no assumptions whatsoever. (Notice the "not" and the "if"?)

The person was asking if there is a way. There is no "way".
Could you luck out? Sure.
Is there a set process?
No.

Although "luck" is technically possible; it is so highly improbable as to be of no practical use.  If you add to your answer showing the required process of luckily determining what exchange and address belongs to, that would help clarify things.

The address could be useful if the email confirmation included the address.

One can just try sending a formal request to all exchanges. It would be useful, for example, in law enforcing procedures.

Generally, it is difficult to impossible to find out whom an address belongs to. However, there are some sites that try to figure out whom addresses belong to by clustering transaction activity of well-known entities in the space. Since exchanges have a lot of transaction activity, it might actually be possible that your address turns up.
I can't vouch for accuracy or completeness of the data, but you might want to try to see whether the address is listed either on oxt.me or on walletexplorer.com to jog your memory.
H/T to user93863 who suggested walletexplorer.com first.

This is the answer!

Once a user knows one or more addresses from an exchange, they can identify sweep activities on that address which greatly expand the ability to cluster addresses under the control of a given exchange.  Coin analytics companies have tremendous amounts of data (given voluntarily, bought and scraped from web) which can also be used with heuristics to cluster addresses.


text:
What does this sentence (on ability to broadcast a valid transaction and transfer balance) mean?
Here is the article.
"The Bitcoin blockchain records every event throughout Bitcoin's history—new coins and evidence of transfers—back to 2009 when the network started," said Valkenburgh. "Every computer on the network also has to be running compatible software so that the nodes can see and validate transactions. So, if your software is not compatible or if you fail to meet or invalidate any of the consensus rules baked into the Bitcoin code base, then the network would ignore your transaction. That's all it is to have a Bitcoin: the ability to broadcast a valid transaction and transfer that balance."
What does the bold sentence mean?
a. If you have a Bitcoin, it means you have the mentioned ability;
b. Only if you have the mentioned ability can you own a Bitcoin.
Does it mean a or b or none of them?

It means both. The power to transfer your Bitcoin to another address is the same as owning a Bitcoin. You can transfer your Bitcoin if and only if you own it.

Got it. Thank you. I wanted to ask Bitcoin here means the software Bitcoin, rather than a unit of Bitcoin, right?

No. In this context, Bitcoin refers to a single unit of Bitcoin.


text:
How can I find the coinbase transactions where the bitcoins involved in a transaction were created?
I am exploring a transaction and if would like to know when was the money created, I guess I would end up with a lot of coinable transactions.
For a certain transaction I could explore the previous transactions successively until I found the coinbases. But I imagine this would be a very laborious job that could take a lot of resources. Just like blockchains.info trees ( https://blockchain.info/tree/59587897) but expanding the tree till the coinbase transactions
In the other hand I guess nodes when verifying a transaction do something very similar, don’t they?
How could I create this list of coinable transactions that original the bitcoins involved in a particular transaction?

If you have running bitcoin core, you can use JSON RPC and any programming language you want.

getrawtransaction <txid>
decoderawtransaction <hex>

Second call will return all inputs of transaction. If transaction has previous tx equal to 32 zeroes, it is coinbase transaction. You should recursively cycle through all parent transactions.
API calls list

That will probably take you hours or days to find all coinbases.

I already was exploring this idea but is slow as @pieter-wuille suggested I am exploring 20 inputs/s. It would take ages.
Isn't any faster alternative?

Nodes when verifying a transaction do something very similar, don’t they?

That is true, but there is one difference. When full nodes initialize, they go through each and every transaction in the blockchain since the genesis block. As they go through the transaction, they build up a set of all unspent transaction outputs (UTXOs). When a new transaction arrives,the inputs are checked against this UTXO set to ensure they have not been spent in the past. When verified, the inputs are removed and the new outputs are added to the UTXO set. So, the UTXO set does not contain a tree going back to the coinbase transaction, but rather only transaction outputs that have not yet been spent.

How could I create this list of coinable transactions that original the bitcoins involved in a particular transaction?

The coinbase transaction is the first transaction in any block. You could use JSON-RPC getblockhash and getblock to get block data. After that you can fetch the txid of the first transaction of every block. Then, you could use the getrawtransaction and decoderawtransaction calls to decode every coinbase transaction and get the data that you need like the block rewards, addresses that it paid to etc.

Coinbase transaction is the first transaction of a block.


text:
print websocket messages in a textfile
I am doing a PhD in economics and I am currently working on bitcoin. I am trying to understand how senders decide how much fee they include in transactions. Since in a couple decades miners will be rewarded mostly with fees, I think this is an important question. It would be great if I could have data on all the unconfirmed transactions. This would enable me to see, for each transaction, how much fee it includes given the available information, that is how many transactions are already in the mempool and how much fee do those include. Of course I can see those transactions on blockchain.info, for instance, but is there a way I could save them on a file?
Thanks to a very clear video on you tube I can receive the transactions on my browser's console log using blockchain.info's websocket but how can I print, let's say a couple hundred thousands of them, in a textfile?
Could anyone help me? Thank you very much!

Simple example, using Python 3 and the websocket-client library.
from websocket import create_connection

ws = create_connection("wss://ws.blockchain.info/inv")
ws.send("""{"op":"unconfirmed_sub"}""")
while True:
    tx = ws.recv()
    print("tx!")
    with open("bitcointx.json", "a") as f:
        f.write(tx + "\n####\n")


text:
Bitcoin did not get to reciever
I sent $50 worth of bitcoin to my cousins blockchain bitcoin address, it said sent and the bitcoin amount deducted from my wallet.  However, the bitcoin did not reflect in my cousin's wallet.  I checked the Transaction ID and it was there showing the transaction and amount sent. Till date my cousin did not receive the bitcoin.  What should I do to get back my bitcoin.

Hello eddychis, what wallet software did you use and did you check that your cousin's address matched the one in the transaction? We could take a look if you linked the transaction.

Possible duplicate of Uncomfirmed Transaction

Possible duplicate of Why is my transaction not getting confirmed and what can I do about it?


text:
How should I safely buy/sell a preorder for Bitcoin mining equipment?
Suppose I need to buy/sell a preorder for Bitcoin mining equipment.  What is the safest approach (for both the buyer and seller) to conduct this transaction?
Does it matter if this transaction is done over BTC vs Dollars?
I'm assuming an escrow is needed, but not sure where to find such an arbitrator.  If multisig transactions are used, I'd like to see how this would be set up.

When you say buying-selling preorders do you mean, eg if someone else pre-ordered a mining rig you would be buying and selling that contract?  Like futures trading?

If you believe in the long term value of bitcoin as a currency, I would advise purchasing in dollars... unless there is some difficulty with the seller?
Personally, I just purchased mine on Amazon. With your specific situation though, I would find others that have purchased from this seller and get their opinion.


text:
Techniques or proposais to require transactions to be included in a block?
As it stands now, a miner (or mining pool) can discriminate any transaction for any reason if they are running a custom version of code.
Suppose an evil and powerful mining pool decided to hash blocks, but not include any transactions even if a fee was included.  This would slow down the rate a block would be included in the chain.. effectively causing a DOS against certain transactions.
This is intended behavior to encourage transactions to include fees (or soon will be the behavior).  But suppose a pool operator (or powerful mining consortium) decide that they want to kill off Bitcoin and not include any transactions ... at all.
Question

What technical solutions are there to require blocks to have transactions?

Challenge

We don't want the attacker to only include transactions the evil mining pool themselves create, but also transactions that others create as well.
I don't want to encourage too many low-fee transactions in this model, thus de-incentivising mining activity

Is there any solution that addresses these goals in a fair and balanced way?

Such a consortium would be reducing the value of the Bitcoin system and thus reducing the total value of all Bitcoin mining. It's hard to imagine a scenario where someone with a significant investment in Bitcoin mining hardware has an incentive to reduce the total value of all Bitcoin mining.

It's not that hard to imagine for one person (extortion, paid sabotage, spite), but if it is a pool the other miners would jump ship when they come to realize what is happening. I don't think such an attack could be sustained unless the malevolent mining power is under control of one entity. Then though, I find it improbable for one person to have a sufficient share of the mining power to have a major impact.

If the attacker has minority hashrate, I don't think this is much of a problem. If he excludes all transactions in his blocks but doesn't try to orphan other blocks, the worst thing that can happen is a x2 increase in the average time until first confirmation (no effect on subsequent confirmations). This is fairly minor.
If the attacker has majority hashrate, he can orphan all other blocks and exclude all transactions, and then transactions will never be confirmed. This is a problem and the main variant of the >50% attack. Possible solutions include modifying the branch selection mechanism to prefer blocks with more high-priority transactions - meaning that even with majority hashrate, if you try to deny transaction you're not guaranteed to beat the honest branch.
Incidentally, if the attacker has >40% hashrate, there is a technique to amplify his hashrate and get more than his fair share of blocks. So if, say, he has 49% hashrate and used this technique, he can get close to 100% of blocks, significantly delaying tx confirmation.

I disagree with your premise "This would slow down the rate a block would be included in the chain".  Every other miner or pool has just as much a shot at discovering a block as the evil one.  Unless the evil one is so powerful that he is singlehandedly effecting the difficulty in a signficant way, his blank blocks will not prevent other miners from discovering normal blocks.
I think your question is simply a restatement of the "51%" problem.

Or rather a porportional problem... if the pool owns 25% of the hash, then the maximum detriment is 25%.  (etc)


text:
How to sweep private extended key from mycellium for bitcoin cash coins?
I have my coins stored in mycellium, but when I try to export my private key I get a private extended key. How can I import this into coinomi android wallet? I see there is a sweep option in conomi, but it doesnt state that it supports an extended private key. Do I have to extract my single private keys and import them one at a time into my coinomi android wallet? screenshots would be great!

I can't speak for the coinomi app importing an extended key, but if you need to extract the private keys from the extended key, you can use http://bip32.org/.
I haven't personally audited this site, but I have used it to browse my private keys associated with a Mycelium HD account. Once you have extracted your private extended key from Mycelium however, I'd recommend archiving that account and making a new one.
The keys can be seen by first entering in the entire extended private key, then choosing a custom derivation path. I've found my Mycelium private keys starting with the custom path m/0/0. From here, you can increment the last part of the path up to 7 before incrementing the middle part of the path.
For example:
m/0/0 ->
m/0/1 ->
m/0/2 ->
m/0/3 ->
m/0/4 ->
m/0/5 ->
m/0/7 ->
m/1/0 ->
m/1/1 ->
...
Edit: I have successfully used the Coinomi app to sweep my unspent outputs from the Mycelium app. I first entered the private extended key into the appropriate box on bip32.org, and I browsed through the custom derivation paths until I found the address that had the unspent output, which also displays the private key. Entering that private key into the Coinomi app allowed me to sweep the balance of Bitcoin Cash that was in those unspent outputs.

custom m/0/0  isnt matching any of my known addresses it seems. did you do this manually and guess to find the correct one? is there a way to search in mycelium for the derivation path?

I had to manually iterate through the m/0/0 -> m/0/7 etc in order to find the address with the unspent output. Starting with m/0/0 you should be able to find address matches for that particular HD account. Double check to make sure your private extended key is right.
You can also select the account from the accounts tab, hit the "Sign Message" menu option to view all your public addresses associated with the account.

i have over 40 public keys. does it always start at m/0/0 and increments up from there by m/0/1  ?

The account I used this tactic with had 12 keys, and I was able to find each used address starting with m/0/0, incrementing to m/0/7, at which point I had to find the rest starting at m/1/0 and my last key was found at m/1/3. I'm not certain but I would guess yours starts at m/0/0 and your 40th key would be at m/4/7 if the pattern keeps repeating.

For me the custom derivation key was m/0/14 then it went from m/1/0 to m/1/40 --- You will need to manually iterate through it to find matching public keys with another window open listing all the public address linked to the xpriv key. It took a good 1hr to do this.

How to transfer unspent Bitcoin Cash from Mycelium to Coinomi?
or: How to identify the internal and external addresses which hold unspent output and transfer/sweep the funds to another wallet?
or: How can i get hold of my Bitcoin Cash?
Be sure you know what you are doing with your private keys ;)
Recommendation: Transfer your BTC funds from Mycelium to another wallet you have control of (e.g. Coinomi) and wait for the confirmations before starting to move your Bitcoin Cash

Go to https://iancoleman.github.io/bip39/
Enter your 12 BIP39 Mnemonic words (or enter the extended private key)
(Default: Selected Derivation Path BIP44)
Use "External / Internal" Default which is: 0 (0=External) and scroll down to the first address of "Derived Addresses"
Hover over the private key to the right so the QR code shows up
Optional: Open second browser tab at http://blockdozer.com/insight/address/YOUR_ADDRESS where YOUR_ADDRESS is the address shown in the second column and display the BCC funds available - or enter the copied address in the search field
In your Coinomi BitcoinCash Wallet select .../Sweep wallet (... = upper right menu)
Scan private key QR code shown in 5)
Click "Next" to the lower right and wait for the funds to be retrieved (if there are some left at that address)
Continue with 5.) until your addresses have not been used (as seen in the blockdozer browser)
Scroll up on the BIP39 page and enter "External / Internal": 1 (internal - internal to Mycellium); If value = 1 in second loop go to 13.)
Continue with 5.) going back to first address shown
Wait for the transactions to be confirmed and the price to raise or sell or ShapeShift your new Bitcoin Cash to e.g. BTC

Please note: Presently Aug 14th, 2017 there is a bug in Coinomi related to scanning a Bitcoin Cash QR code. You should only copy/paste the Bitcoin Cash address into Coinomi and then you can select if it is a BTC or BCC address.
Additional background: coinomi.freshdesk.com/support/solutions/articles/29000013719-how-to-get-bitcoin-cash-from-many-wallet-software-services-with-coinomi

Ok I followed these instructions.  The first address to come up is my HD account.  The problem is that it has a zero balance.  I have two "other accounts" aka addresses, that contain my entire balance. I've seached through 500 "derived addresses and none of them match the two that contain the supposedly contain the BTC on my wallet. I'm stumped.  I also tried https://steemit.com/btc/@libert/step-by-step-guide-on-claiming-bitcoincash-from-mycellium-wallet-201783t112141477z without any luck

Where do you see these 2 other accounts/addresses with the balance in there? With the same 12 BIP39 Mnemonic words related to this wallet in which you see the 2 addresses you should be able to derive the addresses as per above

@hortstu I had the same issue. When you switch the "External/Internal" input from 0 to 1, it shows the missing addresses. I assume that one set is for receiving from others, while the other series is for internal transaction. This is actually the most common place for remaining funds, as any payment you make will put the remaining funds on an internal address.

authors: เจษรินทร์ ศิริมาก


text:
Storage exceeded in middle of synch
A friend gave me a few bitcoins a number of years ago. Yesterday, I read an article about bitcoin and it reminded me I had some. I went online to check the value and to possibly spend them. I tried to access my wallet and since I haven't checked in a long time, it is taking forever to synchronize with the network. I left it on all night and now my macbook's storage is full. It's a real problem for me, as I need to work and don't want to a lot of other stuff at the moment. How do I get out of this mess? I have no sophistication whatsoever. I can't program or do anything fancy. I regret this situation and would rather just delete the app but I think there's some real value there and don't want to screw up my wallet. What do I do??? Help!

Save the wallet.dat file; you can delete everything else.  You can import the wallet file later into another installation on a machine with more disk space, or into a different wallet application that doesn't need to download the entire block chain.

Thanks, Nate. I can't even find the wallet.dat or other bitcoin related files, that's how pathetic I am.

But indeed -- I found it. It was hidden in ~/Library/Application Support/Bitcoin. Sorry to bother you

You may enable pruned mode on your blockchain storage by setting the following line in your bitcoin.conf
# Reduce storage requirements by only storing most recent N MiB of block. This mode is incompatible with -txindex and -rescan. WARNING: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, greater than 550 = automatically prune blocks to stay under target size in MiB).
prune=10237
Bitcoin Core will automatically prune the blockchain storage back to the amount specified.
Regardless, always keep a secure up-to-date backup of your wallet.dat

Probably the safest thing is to move the wallet.dat file to a machine with more space. I wrote an answer to another question for how to do this on OSX.

The answer is in sync with Natan... Looks like you are on a Mac. At first: make a copy and save it. When you open bitcoin client with this wallet.dat file, even if it not sync'd, you can see your address. Type this address (it usually starts with a 1 and is about 30 chars long) into blockchain.info, to see if there are funds on this address. If so, it is good to later on download the blockchain, and free up your space now to continue to work. Later on you have two options: either extend your HDD space, to download the whole blockchain (which takes a lot of time, better to have an SDD and a decent Mac, older Macs with Duo or i5 will take several days...), or better approach try to extract the privkey, and load it into another wallet. But then you are already at a sophisticated level, and I am not sure if you are willing (to invest time) to go this route. So a bit up to you, how to invest your time :-)

Extracting the private keys is bad advice for somebody that states they are not experienced and worried about making mistakes. Much better to just move wallet.dat to a machine with more space.


text:
Why hasn't the Bitcoin client advanced to version 1.0?
Who would invest money in a currency, which is held together by some software, which is currently in version 0.3.24? It is like putting ones money in a bank, which is currently undergoing in a test phase.
What is the rationale behind the decision not to go to 1.0? Obviously the incentives to break the security and steal all the money are there and have been there long enough for it to be deemed secure. I cannot even judge from the homepage, whether the client is in alpha or beta stage.

No-one is forcing you to invest money in it. It is very much still in a testing phase.

@SeanChapman I know this question is critical, but the reason is that I would really like to see BitCoin make rapid progress. Criticism means that someone cares.

You can't rush perfection!

The software is definitely in beta at the moment. There are many things that need working out before version 1.0 can be declared, like the blockchain for instance - many works in progress. And they're about to completely change the GUI to QT so it certainly wouldn't make sense to declare v1 just before releasing something a lot closer to the actual v1. Patience :)

:) Ok. Sounds like overwhelming reasons!

Also worth pointing out that none of the developers are telling people to pour money into bitcoin. In some ways bitcoin's popularity came despite the current state of the software, not because of it. All the developers are very open about it being very rough around the edges at the moment.

Software version numbers (as well as standards of when to do the 1.0 release) are somewhat arbitrary:

Proprietary software developers often start at version 1 for the first release of a program and increment the major version number with each rewrite. This can mean that a program can reach version 3 within a few months of development, before it is considered stable or reliable.
In contrast to this, the free-software community tends to use version 1.0 as a major milestone, indicating that the software is "complete", that it has all major features, and is considered reliable enough for general release.

By the above standard for Free Software, the mainline Bitcoin client is not yet feature-complete.  Wallet encryption hasn't been enabled, scripting features aren't implemented, the GUI is still being overhauled, and the transaction fee mechanism is not finalized, to name a few things.

It's probably best to let the core developers answer this one...however, I'll offer a few educated guesses:

The user interface is still very technically oriented
It does not encrypt your wallet (thus leaving your coins highly exposed to theft if you don't take precautions to secure them)
It does not backup your wallet (not easily anyway), hence if you accidentally erase it and haven't taken steps to back it up yourself, you've lost your coins
It doesn't have more advanced features to prevent theft such as multi-factor transaction signing
It doesn't offer any easy ways of making hard copy, encrypted paper backups of the wallet

For the reasons above, the Bitcoin client really isn't well suited to the non tech savvy user and giving it a pre-1.0 version number will cause people like yourself to stop and ask why before using it.  I recommend that if you do use the bitcoin client that you educate yourself in these matters and don't try to handle a large amount of bitcoins until you're confident you know what your doing.

Because there is only one developer, Gavin Andersen who works part time on Bitcoin as a side project and he has inherited the code from the original developer, who is nowhere to be found.

I work on bitcoin core full-time.

And there are other people working on it.


text:
I cannot send bitcoins from my block chain wallet because I don't have the private key. Where is it located?
I didn't create a private key for my bitcoin address and am unable to do anything with these coins.  How do I resolve this issue?

Just to clarify, are you saying that you imported  "Watch Only" Bitcoin addresses into your Blockchain.info/wallet, but don't have the private key for it?

Are you using a client, or an eWallet?

@ThePiachu: I think she means she's using blockchain.info MyWallet.

How did you get this bitcoin address in the first place? What makes it yours?

@StephenGornick: Yes, I imported "Watch Only" on my address. Reason, Bitcoins didn't post to BlockChain.info/wallet.  Issue: slow servers, but resolved, available now.

@ThePiachu: using Blockchain.info/MyWallet.

With all that said, Issue:  didn't establish Private Key and cannot take Address off "Watch Only", or "Send" even to my new address without Private Key. Any suggestions.  I'm a newbie.

@DavidSchwartz: the bitcoins purchased thru money-gram. Being a newbie, I ignored warning of "watch list" and cannot send/spend w/out private key, which I didn't create in the blockchain.info/mywallet account.  I need to either create a private key, or I am completely misunderstanding the process.

@susan: Where did this bitcoin address come from in the first place? You describe it as "my bitcoin address". How did it become yours? Where did you get it from? If you imported it as "watch only", you must have already had it from somewhere, somehow.

In order to properly create a Bitcoin address, you need to create it from a private key. If you just start from the middle of address generation - say a public key or a result of a hash, you are not guaranteed to have a private key that can be associated with that address. In order to recover a private key that was never used to create an address would require you to brute force all the private keys, which at the moment is computationally impossible (might be more possible in 50+ years). This is in place to ensure that nobody can steal your coins.
If you are using Bitcoin honestly, however, you should find your private keys stored it wallet.dat in the Bitcoin data directory, or in case of using eWallets - online.

Address created in blockchain.info/mywallet.  I will follow thru on your suggestion.  Thank you.

@susan: Above you said you imported it in blockchain.info. Here you're saying you created it in blockchain.info. Did you create it and then later import it?

@DavidSchwartz: Sorry for the confusion.  I opened an acct. with blockchain.info/mywallet. Address auto created when acct established.  Once coins are in mywallet, another is auto created, therefore, my wallet has 2 addresses currently, one holding bitcoins which I placed under "watch list" and 0 bitcoins on the newest address. MyWallet creates this extra security measure.

I've made several mistakes regarding wallet: 1) no patience, servers slow that day in deposits 2) not understanding process of addresses changing in mywallet upon coin deposit, 3) putting address with "missing deposit" on "watch only" to find out where they went, which was to my account but much later typical due to server issue.

As far as I can tell, you can only add a watch-only address that you already have. I don't see any way to create a watch-only address or convert an existing address to watch-only. So I still can't quite tell what you did. I played with the interface on every screen and I can't find any way to convert an account from a regular account to a watch only account.

@DavidSchwartz: I converted my address to "watch only". The bitcoins finally showed up but without private key, I cannot un-watch or spend.

I've searched the user interface and I can't find any option to convert an address to "watch only". In any event, it sounds like you you never backed up the private key and don't have it anywhere. Sorry, without the private key, the coins are lost. I am still completely mystified how you could have done this though -- there doesn't seem to be any way to create an address without putting its private key in your wallet nor does there seem to be any way to remove a private key once it's there.

You haven't stated from where you obtained the Bitcoin address in the first place.
It didn't come from the same wallet in Blockchain.info/wallet because Blockchain.info/wallet won't let you watch one of your own addresses.
If the address is from your Bitcoin.org client (i.e., Bitcoin-Qt), then you simply spend from the Bitcoin.org client and not from Blockchain.info/wallet.
If the address is from another EWallet on Blockchain.info, simply log into the correct wallet and spend from that.
If the address is from an EWallet on some other service, e.g., on Mt. Gox, then you will need to go there to withdraw any funds that you've received.
Hopefully you can remember from which wallet or EWallet service you obtained the Bitcoin address from originally.

If you ended up creating a second EWallet on Blockchain.info/wallet and in that second EWallet is where you entered the watch-only address, then there are ways to regain access to the original EWallet, even if you didn't bookmark the url, enter an e-mail address, or a nickname even.

Thanks for this information ALL.  I must have started another wallet in trying to figure out the system.  Fortunately, it wasn't much money as I am testing out the processes.  Starting over :-)  This information helps greatly.  I will try to jog my memory.


text:
How does the architecture prevent someone taking over by running a several billion clients?
I'm new to bitcoin and was wondering: As far as I know, bitcoin relies that the majority of the users is to be trusted.
Why is it not a problem then if someone starts up billions of clients, eg. a data center owner? Seemingly a single entity could take over the whole network. What is the bitcoin feature that is the counter-measure here?

The general purpose computing equipment you would find in a data center isn't suitable for such a specialized application. You'd need to invest millions in a data center filled with hardware specifically designed for this task. And if you succeeded, you'd make those millions of dollars worth of equipment worthless.

The majority needs to be trusted, but not weighted by their number of software instances, but by either computational power or economic power, depending on the context.
The main technical assumption is that the majority of hashrate is not trying to attack the network. So an attacker would need to purchase and operate more hashrate than the rest of the network combined; this isn't easy.

You slightly misunderstood the concept of majority here. Bitcoin relies on the majority of trusted computational power. So it does not matter if there will be billions of small clients controlled by the same owner if they are not powerful enough.
The main idea in the beginning was that each client is running independently. So if there will be a lot of independent clients, then for any person who would try to harm the system by combining a lot of computational power (and thus manipulating the results) it would be really hard, because he would be outnumbered by a trusted majority.
But with the idea of mining pools a lot of things has changed. If you will look here: you will see that 3 major mining pools control more then 51% of hashrate.


text:
Obligatory transaction fee?
I'm fairly new to bitcoin and today I sent 1 satoshi to my own adress using the standard wallet, and I was surprised that I couldn't do it without paying a 0.005 BTC (I think, can't remember the exact value) transaction fee.
As far as I knew transaction fee's were supposed to be voluntary, when did this get added? Is there no way to transfer bitcoins for free anymore?

Transaction fees are voluntary but the client application is forcing the minimum transaction amount of .005.  It's been a long time since I've used the standard client.  .005 sounds correct.

Alright, is there any way to transfer coins between addresses without this fee?

I believe that there is an option in the settings to set the transaction fee.

@ColinDean, you know what, you might be right.  I think you can set something in a config file.  I think that still has a minimum value, though.

hustlerinc, I don't think so.  If you do your research, you could make RPC commands through bitcoind.  If you can build a raw transaction, you can build a transaction without any fees.


text:
Which trading plateform to make cavalry?
There are many companies offering crypto-currencies exchange service.
But many of them have a gap in their currency list. Some other have a strange complexity.
All wallets are not systematically stored in the same point making things complicated.
Is there a good list of companies (websites) offering a simple exchange service, optionally giving wallet storage and not requiring a PhD to use?
The goal is to make currency exchange relatively offend.
(after comparison, the only that makes the difference is Kraken)

I suggest you to read this writeup https://blockgeeks.com/guides/best-cryptocurrency-exchanges/
it presents well known platforms with their pro&cons e.g:
Coinbase
Backed by trusted investors and used by millions of customers globally, Coinbase is one of the most popular and well-known brokers and trading platforms in the world. The Coinbase platform makes it easy to securely buy, use, store and trade digital currency. Users can purchase bitcoins or Ether from Coinbase through a digital wallet available on Android & iPhone or through trading with other users on the company’s Global Digital Asset Exchange (GDAX) subsidiary. GDAX currently operates in the US, Europe, UK, Canada, Australia and Singapore. GDAX does not currently charge any transfer fees for moving funds between your Coinbase account and GDAX account. For now, the selection of tradable currencies will, however, depend on the country you live in. Check out the Coinbase FAQ and GDAX FAQ
Pros: Good reputation, security, reasonable fees, beginner friendly, stored currency is covered by Coinbase insurance.
Cons: Customer support, limited payment methods, limited countries supported, non-uniform rollout of services worldwide, GDAX suitable for technical traders only.
Kraken
Founded in 2011, Kraken is the largest Bitcoin exchange in euro volume and liquidity and is a partner in the first cryptocurrency bank. Kraken lets you buy and sell bitcoins and trade between bitcoins and euros, US Dollars, Canadian Dollars, British Pounds and Japanese Yen. It’s also possible to trade digital currencies other than Bitcoin like Ethereum, Monero, Ethereum Classic, Augur REP tokens, ICONOMI, Zcash, Litecoin, Dogecoin, Ripple and Stellar/Lumens. For more experienced users, Kraken offers margin trading and a host of other trading features. Kraken is a great choice for more experienced traders. Check out the Kraken FAQ
Pros: Good reputation, decent exchange rates, low transaction fees, minimal deposit fees, feature rich, great user support, secure, supported worldwide.
Cons: Limited payment methods, not suitable for beginners, unintuitive user interface.
The Ultimate Guide To The Best Cryptocurrency ExchangesSave
Cex.io
Cex.io provides a wide range of services for using bitcoin and other cryptocurrencies. The platform lets users easily trade fiat money with cryptocurrencies and conversely cryptocurrencies for fiat money. For those looking to trade bitcoins professionally, the platform offers personalized and user-friendly trading dashboards and margin trading. Alternatively, CEX also offers a brokerage service which provides novice traders an extremely simple way to buy bitcoin at prices that are more or less in line with the market rate. The Cex.io website is secure and intuitive and cryptocurrencies can be stored in safe cold storage. Check out the Cex.io FAQ
Pros: Good reputation, good mobile product, supports credit cards, beginner friendly, decent exchange rate, supported worldwide.
Cons: Average customer support, drawn out verification process, depositing is expensive.
The Ultimate Guide To The Best Cryptocurrency ExchangesSave
ShapeShift
ShapeShift is the leading exchange that supports a variety of cryptocurrencies including Bitcoin, Ethereum, Monero, Zcash, Dash, Dogecoin and many others. Shapeshift is great for those who want to make instant straightforward trades without signing up to an account or relying on a platform to hold their funds. ShapeShift does not allow users to purchase crypto’s with debit cards, credit cards or any other payment system. The platform has a no fiat policy and only allows for the exchange between bitcoin and the other supported cryptocurrencies. Visit the Shapeshift FAQ
Pros: Good reputation, beginner friendly, Dozens of Crypto’s available for exchange, fast, reasonable prices.
Cons: Average mobile app, no fiat currencies, limited payment options and tools.
Poloniex
Founded in 2014, Poloniex is one of the world’s leading cryptocurrency exchanges. The exchange offers a secure trading environment with more than 100 different Bitcoin cryptocurrency pairings and advanced tools and data analysis for advanced traders. As one of the most popular trading platforms with the highest trading volumes, users will always be able to close a trade position. Poloniex employs a volume-tiered, maker-taker fee schedule for all trades so fees are different depending on if you are the maker or the taker. For makers, fees range from 0 to 0.15%, depending on the amount traded.
For takers, fees range from 0.10 to 0.25%. There are no fees for withdrawals beyond the transaction fee required by the network. One of the unique tools on the Poloniex platform is the chat box which is constantly filled with user help and just about everything. Any user can write almost anything but inappropriate comments are eventually deleted by moderators. It can sometimes be hard to distinguish the good advice from the bad, but the Chatbox is a great tool that will keep you engaged.
Pros: fast account creation, feature rich, BTC lending, high volume trading, user-friendly, low trading fees, open API.
Cons: Slow customer service, no fiat support.


text:
tracking history of transactions in Lighting Network
I'm just a beginner in lighting network. Have some questions about transactions in LN when im doing the research

Transactions in LN are off-chain, so transactions couldn't be stored in main-chain, so how could you look-up the transactions history?
Payment channel is private for someone outside, and if there is no transaction history, how do i give the information to others to proof that I've just made a payment in LN.

Any helps, tks

Transactions in LN are off-chain, so transactions couldn't be stored in main-chain, so how could you look-up the transactions history?

You cannot view the transaction history of any node except your own. Transactions in LN are private and sent encrypted over an onion routing layer. It is up to the software client to keep track of payments if you want your own payment history.

Payment channel is private for someone outside, and if there is no transaction history, how do i give the information to others to proof that I've just made a payment in LN.

Every payment on LN uses a 256-bit random number, called a payment_preimage. The preimage is hashed using SHA256 to produce a payment_hash. The intended recipient of funds initally witholds the payment_preimage, but gives you the payment_hash and asks you to make the payment.
When you make the payment, it is made for a specific payment_hash. This is done with a Hashed Time-Locked Contract (HTLC), which is a conditional payment. The payment expires after a timeout, unless the intended recipient accepts the payment by surrendering the payment_preimage for that payment_hash. If the recipient does not accept the payment, they must fail the HTLC before the timeout, else their channel may be forcibly closed and they will not receive the payment.
Once the recipient has accepted a payment by sending the payment_preimage, it is trivial for you to prove that you have paid payment_hash, because anybody can perform the SHA256 on the preimage and assert that it matches payment_hash. The assumption here is that SHA256 is cryptographically secure and it is not possible to brute force a payment_preimage to produce an expected payment_hash.
By surrendering the payment_preimage to accept the payment, the recipient has provided proof that you have paid.
Note that this must assume that a preimage is never reused. Every payment must use a unique random preimage else it may be possible that funds are stolen.

tks Mark, any resource suggest for me, above info couldn't find in some documents I have.

But how to do this test in practice? Using some famous client like LND or c-lightning, for example?

Transactions in LN are off-chain, so transactions couldn't be stored in main-chain, so how could you look-up the transactions history?

You are correct, an outsider does not get to know the transaction history. When two parties (say A and B) set up a payments channel they lock the current state of the channel on the main chain. This involved sending A and B sending X BTC and Y BTC respectively to a multi-sig address controlled by private keys of A and B. This transaction is called the funding transaction. Then both the users sign a commitment transaction sending X BTC to A and Y BTC to B from the multi-sig address. Every transaction that follows in the channel (also called commitment transactions) revoke the prior state and enter into a new state. You can send multiple transactions each time revoking the previous state and entering into the new state. When the two parties finally agree to close the channel, they can broadcast the final state which sends the final value to A and B.

Payment channel is private for someone outside, and if there is no transaction history, how do i give the information to others to proof that I've just made a payment in LN.

As described above, every new commitment transaction undoes the previous state and enters into a new state. Payment channels involve provisions like signing asymmetric commitment transactions involving revocation keys and CHECKLOCKTIMEVERIFY so that one cannot cheat the other by broadcasting previous commitment transactions, if that one is favorable to that party. If that happens, it allows the wronged party to take the entire balance of the channel. In a unanimous closing of the channel, you broadcast the transaction signed by both parties sending the right amounts that are owed to both the participants of the channel. This transaction is called the settlement transaction.


text:
How do we know that the suprnova worker is producing value?
I followed this tutorial to attempt to mine bitcoin cash on https://bcc.suprnova.cc/.  It seems to be working.  My terminal prints out stuff like this:
[2017-11-11 14:47:51] Stratum requested work restart
[2017-11-11 14:47:51] thread 1: 85454192 hashes, 3397 khash/s
[2017-11-11 14:47:51] thread 4: 92140688 hashes, 3351 khash/s
[2017-11-11 14:47:51] thread 6: 80503816 hashes, 3464 khash/s
[2017-11-11 14:47:51] thread 3: 84560368 hashes, 3376 khash/s

But if I look at the Dashboard and scroll down to Worker Information it says No Active Workers.  So how do we know that https://bcc.suprnova.cc/ is actually giving us credit for running the worker?
There's also an earnings link in the side panel and after running the miner for a day, the earning table is showing all 0s.  So it appears that after one day of running the miner nothing has been accomplished.

You are mining so slowly that the mining pool thinks you are not mining.
You can't mine sha-256 coins with CPU. You are several hardware generations too late.
CPUs had to give up bitcoin mining in 2011 when GPUs took over completely. Then came FPGAs which made life hard on GPU miners. Finally in 2013 the ASICs arrived which made GPU and FPGA mining completely pointless. Now in 2017 this is old news and sha-256 mining has been ASIC-only for years.
Just like with BTC, BCH (BCC) is also mined with ASICs.
Why do people give up on old and inefficient ways of mining:

It would take several hundred years before you have earned the minimum amount to cash out from the pool. Not only is this tiny amount not worth 5 minutes of your time - you are not going to live long enough to cash it out.
If you lived for 1000 years and mined the whole time, earning 1 US dollar worth of BTC or BCH/BCC, you would have paid a million dollars in electricity to get there. How would it make sense to do so?

Back in 2009 some people would mine 50 bitcoins per day with the CPU of an old laptop. Unfortunately it is not 2009 anymore. Today you earn zero with CPU.

Shoot - I was going to setup my old samsung note phone to try to mine a few as well.  Any ideas on how to get back to 2009?

I'm sure there will be a time machine ICO soon. But I'm not sure if that's a sound investment. :P


text:
What happens if you send tether (USDT) to a bitcoin address?
I have both a GDAX and a Binance account. I chose to withdraw my tether and move them into GDAX into the bitcoin address. After about an hour of the transaction, it said it was complete with "10 confirmations"(the number of confirmations keep increasing). I have checked into my GDAX account however and it still shows no BTC or transaction history, whereas it shows that it is complete within Binance.
Is this transaction valid (will it work)?
If so, how much time does such a transaction normally take?

USDT is part of the omni layer on top of Bitcoin.
While the transaction will go through (since any omni transaction is a valid Bitcoin transaction), you will not be credited for the USDT as GDAX is a USD exchange. They don't support USDT, and hence won't be trying to detect omni transactions for it.
You should contact GDAX support about how to recover your USDT.

Where is the usdt then currently (which address)? Have I lost it as of now?

Where is the tether if is in neither gdax nor binance and the transaction show complete?

The USDT would technically be in your GDAX address. It's just that GDAX has no idea what USDT or the omni protocol is, so it doesn't know that. You can use https://omniexplorer.info/ to check the USDT balance.
Your only hope is that GDAX support is willing to make an omni transaction as an exception from the automated system to send your USDT to an exchange or wallet that actually supports it

Ok, I don't see a reason why they wouldn't be able to. Hopefully it works out. Gdax/coinbase are reputable and therefore would be willing to assist with this considering many other people probably did this too (let's hope).


text:
What exactly is the definition of a Bitcoin node?
This page claims there are about 11k nodes in the Bitcoin network. I wonder what exactly constitutes a "node" in the network. For example, if I connect to the network and do nothing, am I still considered in this 11k figure? Or do I have to have an "effect" on the network in some ways, e.g., broadcasting empty blocks or trying to mine honestly.
Another question is do mining pools, as a whole, count only as a single node in the network?
In general, what's the precise definition of a node in the context of Bitcoin network ?

A node is a computer that has a copy of the blockchain (or at least a part of it), and broadcasts and receives transactions and blocks from other nodes according to the bitcoin protocol.
The blockchain is more than 100GB, so most people use a lightweight client that connects to a service that connects to a node on the network. Clients are not considered nodes on the network.
A couple of specific examples of each type:

Bitcoin Core or Armory run full nodes on the network.
Mycelium or the Trezor Wallet are clients that connect to a server, not directly to the bitcoin network, and aren't included in the count.

The computers in a mining pool do not need to connect to the network so do not count as nodes (they are only solving a cryptographic problem and don't care about the transaction data). The mining pool will have at least one node that connects to the network to download and broadcast the transaction data, so the number of nodes in a pool depends on how many the maintainers of a specific pool decide to activate.

From bitcoin.it

Any computer that connects to the Bitcoin network is called a node.
  Nodes that fully enforce all of the rules of Bitcoin are called full
  nodes. Most nodes on the network are lightweight nodes instead of full
  nodes, but full nodes form the backbone of the network.

As long as you connected to bitcoin network so your computer will be considered as bitcoin node.
And for mining pool I'm sorry to have no information :(


text:
After receiving bitcoin, they were sent to an unknown address 16 minutes later
I received BTC payment from my friend by qr code scaning on date 31st July (1 day before 1st August HF).
https://www.blocktrail.com/BTC/tx/8710bdb6f1d34e882bab7fbbdb4b94266032672c54a042df88e25d1518ab40a8
The incoming transaction has shown on my wallet (Mycelium) as unconfirmed with another transaction says all BTC has sent out immediately to a address I never known before.
https://www.blocktrail.com/BTC/tx/176dfd5d7f28fafef60e071588bb464a6426382d8ef5315d57e5b5852c1e0e48) (as non standard transaction with version 2)
After I reload it says network error and the most of my transaction history disappeared from wallet till now.
This make all my BTC has stuck in address 1MDJk9xhPVyVH3RcXmhYBRL9bJrwgAbsN3 without move till date 4th November (nearly segwit2x) all BTC has sent to another address again.
This is huge amount of BTC for me, I tried so hard to find the answer what happen with my BTC but really has no idea. But I'm sure my wallet not compromised and my BTC still sit in that address without used.
I have 0.5 BTC and 0.5 BCH for reward if I can get it back. It's not so much but please help me...
I apologize for my poor English language skill, You can ask me for more information to understand clearly.

Sounds like your coins are gone! Are you the owner of 1ThothNC8w3mx4rGDtErxuTKegcUCX2ug ? I can see that your BTC immediately got sent away seconds after arriving your address. My guess is that either your computer/wallet is compromised or that vanity address is compromised.

What wallet are you using?

Mycelium both, There are many users have same issues, transaction history roll back or disappeared and lost BTC. My transaction history on Mycelium still show latest as 20th March and get error when I import this private key to bitcoin core.

I tried so hard to find the answer what happen with my BTC but really has no idea.

One possible explanation is that the BTC were stolen by someone who, at some time in the past, helped generate your private-keys and vanity-address or had access to your wallet and extracted your private keys or who otherwise compromised the security of your computer, perhaps using malware.


text:
How do I lookup the details of a transaction, given the transaction ID?
I transferred BTC from GDAX to Binance.  I have the transaction ID.  How do I find out the status of the transfer.  GDAX reports transfer complete.  Thanks.

Check https://blockexplorer.com/

I have this same question. https://www.blockonomics.co is pretty cool (in addition to blockexplorer and others mentioned) once we know the BTC transaction ID, but right now I only know my Gdax transfer ID, which doesn't seem to help me.

Here are other people having the same problem with GDAX in the past month saying that transactions can take hours or days to get confirmed in their destination: https://www.reddit.com/r/GDAX/comments/7c5q81/can_i_use_gdax_transfer_id_to_find_my_transaction/

I found the answer. If it helps you, please upvote and click the checkmark to accept it: https://bitcoin.stackexchange.com/a/66041/36024

I found where GDAX shows the transaction hash!

Visit https://www.gdax.com/accounts
Click a coin on the left (BTC, BCH, ETH, or LTC).
Instead of staying on the "History" tab (which is probably where you see Transfer ID for each transfer), click "Transfers" in the top right.
Then click each "withdraw" row to expand it, and you'll see its transaction hash.

For example, I'm able to find the hash of an LTC that I just transferred, and then I can browse to https://bchain.info/LTC/tx/4a857bc76d31c801dbc1aac33c4940cd11401f7f7401dfd6e05dfcf43af8867e and see that it has already been confirmed twice.

Correction, first go to "Accounts", then select your coin, then click the "Transfers" tab.

@bart Good point. Updated my answer.

Only show hash after transfer has been completed :(

Wow, I'm interested to look back on this answer of mine, and by now I don't even remember what gdax.com was, and it's now unavailable, as is bchain.info.

The GDAX transaction ID doesn't seem to be helpful in tracking unconfirmed transfers (the kind you most want to track). Instead, use the recipient address with blockchain.info.
Just pop the recipient BTC address (the one you transferred to) into the search on http://blockchain.info and you should see the transaction.

You can search for it on a publicly available blockchain explorer. Some examples:

https://blockchain.info/
https://blockexplorer.com/
https://chainflyer.bitflyer.jp/
https://live.blockcypher.com/
https://www.blocktrail.com/BTC

Gdax.com only seems to provide a hyphenated Transfer ID rather than a BTC transaction ID, so I don't think those sites help.

I found the answer: https://bitcoin.stackexchange.com/a/66041/36024


text:
How does bitcoin core generate a receiving address without using my private key?
I downloaded bitcoin core from github. Now I have imported the complete blockchain and am examining the bitcoin core interface. If I click on >File >>Receiving addresses I see that bitcoin core has already created a receiving address for me. I have not yet chosen a private key (as far as I know) so how can bitcoin core generate a receiving address? How is the receiving address created?

Bitcoin core automatically generates your private keys (or if it's an HD wallet, your seed) when you first use it, and stores them in a file called wallet.dat in your data directory. You don't choose private keys, software generates them for you cryptographically. For this reason, if you're using Bitcoin Core it's a good idea to encrypt your wallet (but don't lose the passphrase!) and backup your wallet.dat file.

When the wallet initializes, it will generate a master private key for the you as part of the initialization. All subsequently generated keypairs will be related to the master private key, this is called a 'Hierarchical Deterministic' Wallet (HD wallet).
An HD wallet is nice, because you only need to backup the seed phrase that generates your master private key, rather than backup every individual address.


text:
How do I delete the blockchain after uninstalling Bitcion Core?
I downloaded bitcoin core, and it "synced" the blockchain, taking up 163gig on my HD considerably slowing my comp. so I uninstalled bitcoin core, but yet still see to have 163gig of unwanted data slowing my computer. I operate Windows 10. HOW do I get rid of it. It seems to be in my users file, but mysteriously doesn't show up when trying to locate it?

You need to delete your data directory.
See the question Where is the data folder for Bitcoin-Qt? for where it should be installed by default on your system.
Make sure you backup wallet.dat first, if you've ever used any of the addresses in your wallet.


text:
bitcoincore additional questions
Following up from my previous question, I still have some questions left.
Does it really work if I turn off the internet before doing getnewaddress? Will it really give me something real and can get the private key while the  offline?
Because for example, bitaddress provides a fake address and private key key if I use it offline when it fails to send the private key to the website owner's database.
Do you think that Bitcoin Core will work offline ? If so will the info be real 100% and valid, or may find out i got fuc**d up after trying to use the address in years to get the btc i sent to it?
As i wish to keep it offline even before the first use, or better to create the getnewaddress and its private key while connected to the internet? Also if it is fine to do generate the address offline, how the blockchain will locate it when i send funds to it while it never been online before?
Also how can I import the address later on any other service? How does it know that the private key I wrote is the real private key of the address? Isn't it strange if there's no big database online for the addresses and private keys?

Your question contains many misconceptions.
Yes, it is perfectly fine and safe to generate private keys and their corresponding addresses completely offline and not connected to the internet. In fact, people recommend that you do this because it is safer than doing it online.
There is no central database (Bitcoin is decentralized) where you must register a private key and address. That is not how Bitcoin works, and there is no need to do this. You don't have to send your address or private key to someone else or register it with the blockchain. In fact, if your private key is sent to someone else, then that person can steal all of your Bitcoin.
If some site or software must be online to generate keys and it is sending the keys to the site owner, then DON'T USE THAT SITE. The owner is trying to scam you and steal your private keys, which means they can steal all of your Bitcoin.
Private keys can be safely generated offline because of mathematics. A private key is really just a very large number. The cryptography that Bitcoin uses defines a private key to be any integer between 0 and 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141, that's a lot of private keys. Any integer in that range is a valid private key. So Bitcoin Core and other key generation software will just generate a random number that is within that range. Because the range is so large, and because (in theory) good random number generators are being used, the probability that a private keys that you generate were also generated by someone else is so small that it is, for all intents and purposes, 0.
So any software where you can import that private key will recognize it as being valid and correct so long as the private key is within that range. From there, the public key can be computed, and from that, addresses.
You don't need to be online and register any addresses you create either. That is because the blockchain does not actually use addresses. It does not need to be able to find your address either. On a low level, the blockchain uses transaction outputs. When you create a transaction, it spends transaction outputs from other transactions, and creates new transaction outputs. These outputs are composed of two parts - the amount, and a spending condition.
Addresses are just a human readable way to represent the spending condition. When you send Bitcoin to an address, what you are actually doing is telling your wallet software what the spending condition for one of the outputs should be, so it will create a transaction with an output with the appropriate value and spending condition.
With most addresses (the kind that are associated to a private key), the address contains the hash of a public key. That private key for that public key is held by the person who gave you that address. When that person spends the Bitcoin you sent them, they consume the output you sent them and provide the public key and a digital signature. So the spending condition is that the spender must provide the public key whose hash matches the hash specified in the output, and a valid digital signature created using the private key corresponding to that public key.
So, addresses are not really identifiers or accounts that the blockchain needs to lookup, rather they are just a human readable way to specify the spending conditions for outputs. Thus there is no need to register addresses with anything. Furthermore, the blockchain doesn't even care what the spending conditions are. They could be completely invalid. The spending conditions are really just a blob of data and they are not checked in any way when a transaction is created. The spending conditions are only checked when the output is spent.

thank you very very very much for the answer, when i said to cash the money out, i meant that when its time to cash out for example i will integrate the Address and Private key to blockchain.com for example and spend from it, to make sure i dont make any syntax fault while trying to do it from the bitcoin-cli and lose my coins, for example like the guy who owned 9,000 BTC and spend 1 BTC, and forgot to put an address for the rest 8,999 BTC and he lost this huge amount.

now in my head
after having the bitcoincore wallet
1- encrypt wallet
2- create addresses
3- take the private key of the addresses
4- dumpwallet
5- backup wallet
destory the disk and remain only with the created addresses and the private keys of it. is that all what i'll need in the future to make sure i'll access the address and control the funds of it correctly from any wallets out of bitcoincore? based on the previous reply that starts with thank you very very very much.

Yes, you only need the private keys. You don't even need the addresses as they are derived directly from the private keys, but you should hold onto those anyways. All you need are the private keys to be able to spend the funds in the future.

thank you very much again for replying. And also thank you for fixing my English in the main topic i'll work hard to improve it, i wish you a happy day.


text:
Error: mandatory-script-verify-flag-failed
I have created a raw transaction from myElectrum wallet, but when I try to broadcast it I get this error:
mandatory-script-verify-flag-failed

Why is this happening?
The transaction is below:
01000000016e8e85990c3b55c2d0a309b4dbb58cf1ad1031875bd9787563c34e1e21747292010000006a47304402206b1a17596910f36633055f6562b86f203b04d328bd9d8aa972bfb28b43f88f69022000aca8f00b8224cc1b35f4f73830d9043b58bb313f3f2fa9307c1498d9e29951012103604b96f0d94b08201f4c915f258d722c182a499c3f3da0bdfd90ea073ba8b0feffffffff0320a10700000000001976a9143cc975a70ff7bc4e0a2be13f8e5f357f5d5d2ec88ac400d0300000000001976a914cfe7d631b90268c07c26f373ea9b08e091292a8788ac262bf400000000001976a914f390899608bc9246d5fd8554ad4212701111a33a88ac00000000

Your transaction?

if we can see how the tx looks like, then we maybe able to help, but without references, it is quite difficult :-) Also: which version of Electrum are you using?

01000000016e8e85990c3b55c2d0a309b4dbb58cf1ad1031875bd9787563c34e1e21747292010000006a47304402206b1a17596910f36633055f6562b86f203b04d328bd9d8aa972bfb28b43f88f69022000aca8f00b8224cc1b35f4f73830d9043b58bb313f3f2fa9307c1498d9e29951012103604b96f0d94b08201f4c915f258d722c182a499c3f3da0bdfd90ea073ba8b0feffffffff0320a10700000000001976a9143cc975a70ff7bc4e0a2be139f8e5f357f5d5d2ec88ac400d0300000000001976a914cfe7d631b90268c07c26f373ea9b08e091292a8788ac262bf400000000001976a914f390899608bc9246d5fd8554ad4212701111a33a88ac00000000

Here is the raw transaction I can't broadcast it..

what version of Electrum is used?


text:
bip44 address generation
I am writing hd wallet following bip44.
After each transaction, should I create a brand new change address each time?
Or can I use the same change address multiple times?
What is the recommended practice here?