text:
With Ripple, what is lsfDisallowXRP?
In the spec for the ledger format, there's a flag called "lsfDisallowXRP" in the account root entry. It says: "Indicates that this account does not want to receive XRP." But why wouldn't an account want to receive XRP, given that it's necessary for doing any transactions?

This was created specifically to resolve a problem Bitstamp was having. Though there is absolutely no reason to send XRP to Bitstamp, people were constantly doing that. Bitsamp had to either steal the XRP or refund it. Obviously, they wanted to refund it. But this would drain their hot wallet of XRP.
To resolve this, we're in the process of adding the flag you mentioned, "lsfDisallowXRP". If the flag is set, the client will not let you send XRP to the account that has set it. Bitstamp would then set this flag.
Bitstamp can still put XRP in the account to fund its transactions by simply ignoring the flag. We may also add a way to override the flag in the client, possibly by putting a special marker at the end of the address or possibly with a button.

By the way, I think the reason people are sending XRP to Bitstamp is that they think they can sell it there. I did it myself, and it bounced. Then I realized that Bitstamp only has a "Buy Ripples" option, no option to sell.

Send them to me instead.


text:
In Ripple, what is "Total XRP" in the ledger header?
In the spec for the ledger format there's a field called "Total XRP" in the header. Is this the total number of XRPs in circulation? Does this value get decremented with each transaction?
Can this value be incremented as well?

This is the total amount of XRP in the ledger. It is decremented with each transaction that pays a fee (which is all of them except for a few special transactions). There is no way it can be incremented.

source: Stack Exchange

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

sort: votes


text:
Is there a 'BTC Refund Department'?
I have been scammed 6 months ago.
Now someone is calling me from BTC REFUND DEPARTMENT. He said that I have under my name the bitcoins that have been scammed. But the way to take this amount is to synchronise my wallet with the address that the amount is under my name. The issue is that he is asking for 10% of the amount to be added in the wallet and send the new bitcoins to blockchain and then after 15 minutes all the funds will be in my wallet.
Has anyone had a similar experience? Is this true or is just another scammer?

Yes. This is  scam %. If they want to send you money, they could deduct the fees and send you the rest. If they ask for money to send you money, they won't send you money.

They not asking payment to them they asking payment after I receive the funds in my bank account 1%
The issue is that I got part of the order they ask and is been send it to blockchair I can see the transition are under my wallet address just I don’t know how to transfer it to my wallet

You will get fake money (apparently in your non-btc bank account) and send them real money (as bitcoin?), after which the fake money will vanish from your bank account and your bitcoins will be impossible to retrieve.

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

I have been scammed 6 months ago

Then criminals expect you to be gullible and foolish. You are a prime target for them. So they'll try new ways to trick you.

BTC REFUND DEPARTMENT

No such thing.
Note that Bitcoin is not centrally controlled by any organisation. It is a peer to peer currency designed to be usable for one person to send money to a second person without involving anyone else as a trusted intermediary.
Any business can use words like bitcoin or blockchain as part of their name. Having bitcoin in a business name does not mean you control bitcoin. Just as dollar.com has the word dollar as their name but are a car-rental business with no control over the US dollar. Nobody polices who may or may not use words like bitcoin or blockchain in websites or email addresses. Many criminals do.

synchronise my wallet with the address

They want to fool you with a watch-only address, where your wallet shows an amount of money that belongs to someone else not to you. Addresses are not secret. Anyone can add any bitcoin address to their wallet but that doesn't give you any control over money.
Bitcoin wallets do not actually contain money. Wallets contain a secret number called a private-key that a wallet can use to control money. Importing an address doesn't give your wallet this secret number.

the amount is under my name

That's not how bitcoin works.
Some businesses that sell bitcoin might ask buyers to set up a named account but that's outside the real Bitcoin system.

hi is asking 10% of the amount to be added

This is often called "advance fee fraud". Don't be tricked. There is never a need to pay any fee to release money. If there were, it could just be deducted from the amount being returned, you wouldn't have to pay it first. This is a favourite trick of confidence tricksters.

Is this true or is just another scammer

It's not true. It is just another scam.

See also answers to questions about

watch only addresses
non-spendable addresses
fraud (Bitcoin)
scams (Personal Finance)

Just a suggestion for the OP, it can be eye opening to read through the Scams tag on Personal Finance. I thought that I was pretty well prepared against scam tactics and have been able to readily identify or know something was fishy and go on to find out more about scam attempts against me, but I learned a lot about different scams people try by going through that tab and really effective ways to identify if something is a scam that I hadn't considered before. Keep yourself safe and informed, and remember, if your mind at any point asks "Is this a scam?", it probably is.

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


text:
Delegated Proof of Stake (DPOS) vs. Proof of stake?
What is the main difference between Delegated Proof of Stake (DPOS) vs. Proof of Stake? Is there any significant advantage for security? (since PoS in general suffers security problems.) And which DLTs / Blockchains use DPOS?
P.S. the link mentioned in THIS ANSWER about DPOS does not exist any more.

Important distinction of DPoS from PoS is that in DPoS, there is no minimum stakeholder token requirement to participate and instead of stakeholder tokens proportionately representing their ability to produce blocks, users cast votes proportional to their stake to select block producers.
The process for reaching consensus in a round can be broken down into the following basic steps.

Block producers are elected by the stakeholders in a round of voting.

Once the producers are selected, they are deterministically given a
round-robin rotation for a round of blocks equivalent to the number
of producers selected.

This creates a competitive market within the    round, ensuring
reliability.

Block producers validate and broadcast    blocks to the network.
Consensus is reached and the next round    begins.

For their services, block producers receive a reward. If they do not produce a block, then there is no reward and the reward is transferred to the next block producer if a successful block is produced. Producers do not have the ability to change transaction details, however, they could collude to prevent specific transactions from being included in blocks.
An important feature of DPoS consensus models is that the parameters of the system can be modified by the stakeholders through a voting process. These parameters include everything from transaction fees, block sizes, producer pay, and block intervals. Enabling dynamic changes of the parameters that define the model can facilitate a substantial degree of flexibility for platforms employing the DPoS model to fit the platform’s specific needs.
Advantage over POS
A distinct advantage that the DPoS model has over the traditional PoS model is the removal of the “Nothing at Stake” dilemma. This refers to the case where there is little to no cost for validators to validate on two competing chains. For validators, the strategy is the most profitable, but for the network it can lead to a double spend of a digital asset. DPoS mitigates against this due to the fact that stakeholders are using their stake to vote on block producers, not on blocks themselves. The longest chain is considered the canonical chain, so it is impossible for a subset of malicious producers to produce a fork that overtakes the main chain due to the number and order of producers being fixed before each round.

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


text:
Is the hdSeedid in Bitcoin Core 0.17 RPC the actual seed itself?
I'm trying to find out the seed for the HD wallet in the 0.17 release of Bitcoin Core. I used the getwalletinfo command in the RPC console which produced information which includes a string that it calls hdseedid, which curiously is the same as the string it calls hdmasterkeyid.
My question is - is that string the actual HD seed itself, and if not, how would I find/display it?
Any clarifications appreciated.

The hdseedid is the same as the hdmasterkeyid (the latter is retained for legacy reasons, it was renamed to hdseedid for better clarity). It is the HASH160 of the HD seed.
If you wish the retrieve the seed, unlock your wallet and run:
dumpwallet /some/filepath/wallet.txt

In the dumped wallet, you should find an xprv key, which is your master extended key. Note that Bitcoin Core does not support BIP39, and the xprv cannot be converted to seed words.


text:
BIP 113 - monotonic guarantee
BIP 113 mentions:

Existing consensus rules guarantee this value to monotonically advance, thereby removing the capability for miners to claim more transaction fees by lying about the timestamps of their block.

Can you please explain where this guarantee comes from?

The guarantee comes from the consensus rule that a block's timestamp must be greater than the median timestamp of the last 11 blocks. This median timestamp is known as the median time of the block. Because the median is used, and because timestamps of each block must be greater than their median time, the median time will always increase from block to block. This also means that the median time for a block is set prior to it being mined.

Block timestamps are allowed be to slightly off (up to 2 hours). This poses an issue for locktime transactions, since a miner could claim the block timestamp to be up to two hours in the future, and thus include lock time transactions before they are actually supposed to be mined.
By using the median time over the last 11 blocks, the miner's own choice of timestamp is irrelevant, since the validation is conducted against the median of the previous 11 blocks, which the current block's miner cannot control.


text:
Why dont' nodes change the block version number when the nonce overflows?
After computing 4 billion nonces, the miner is supposed to update the merkle root.
Why don't they choose a new nonce and assign it to the block version number and begin again?
It would save time and improve an ASIC.

Miners do do this, but not so simply. It is actually a recent controversial issue called ASICBoost. The version number is assigned different values as part of this algorithm.
It's a bit more complex than just using the version number as an extended nonce, though. Remember that SHA256 is actually multiple mathematical operations rolled into one name. I believe the way it works is due to the SHA256 algorithm's first few operations, which involve leftshifting bits from the rightmost side side of the blockheader. If you can keep the right side of the blockheader (the last 4 bytes of the merkle root, the nonce, and the timestamp) mostly constant, then it allows you to skip these first few computations of the SHA256 function (because you're inputting the same thing every time from these bits). To change the final hash value though, you have to be able to change the leftside bits, which includes the version number. So in that sense the version number becomes the thing you use to change block hashes almost entirely (with the left side of the merkle root working in the traditional way).
This apparently saves mining power by about 20%.

Block versions are modified as part of other use cases, such as BIP 9, which use specific bits in the block version to signal for specific proposed updates to the protocol. Incrementing the block version and treating it as a nonce would prevent this kind of use.
Moreover, using a version field as a source of randomness (not really, but similar enough when talking about nonces) is generally a bad idea - version fields serve an important role in helping other nodes on the network determine how to decode and process a block, or other entity within the blockchain. Turning this into an effectively random number for the sake of saving a handful of cycles would just be a plain bad design choice.
Recomputing the merkle tree by just modifying a single tx within is a relatively fast operation regardless, since you only have to recompute the nodes affected by that tx.

Moreover, incrementing the extraNonce and recomputing the Merkle root can be done by the miner controller while the ASIC itself is hashing, and queued up so that the ASIC can switch to the new header immediately when the nonce overflows.  So this really doesn't slow down mining at all.


text:
Is it possible to do a 3-of-5 OR 1 multi-sig for backup purposes?
I'd like to create a multi-sig wallet where I can freely create transactions, but I want to give keys to trusted friends/family + a safety deposit box so that if I hit my head and forget my password, or I die, then the trusted people can recover my coins.
Is this something Bitcoin currently supports or plans to support?

Yes, this is possible. You can construct a script such as:
OP_IF
    <key1>
    OP_CHECKSIG
OP_ELSE
    OP_3
    <key2>
    <key3>
    <key4>
    <key5>
    <key6>
    OP_5
    OP_CHECKMULTISIG
OP_ENDIF

This will allow key1 to freely spend the coins, but if a signature from key1 is not present it also allows any 3 of the keys2-6 to spend the coins.

Awesome! Are there any wallets that support creating a structure like that?

Not to myknowledge - this is fairly non-standard, so you would likely have to script something yourself

what does the OP_5 do here?

the OP_IF cant do anything because the stack is empty

You can try to miniscript compiler http://bitcoin.sipa.be/miniscript/ with the policy or(pk(K1),thresh(3,pk(K2),pk(K3),pk(K4),pk(K5),pk(K6))) to get a corresponding Script.
However, to the best of my knowledge there are no user-friendly wallets supporting this as of now. But there is work being done on trying to get Miniscript into bitcoin core that can allow signing for such complex scripts generically.
Disclaimer: I am one of the people working on Miniscript project.


text:
Is it possible to write a script, which can allow spend only own inputs except all of them?
Let's imagine:
We have just one BTC address.
Users send some coins to this shared address. And can spend only own inputs.
P.S. If someone can provide some example script for this I'll be very thankful.

What do you mean by "can spend only own inputs"?

Alice and Bob send coins to one address (to Carol). Alice send 5 BTC to Carol and Bob send 2 BTC to Carol. Is it possible to write a script, which allow Alice spend only 5BTC, not 7 BTC ?

Though you cannot do this with scripts, you could create a multi-sig payment channel between Alice and Bob for similar effect: Alice and Bob could co-fund the channel, so that there will be an initial state of Alice 5 BTC, Bob 2 BTC. Each person would only be able to spend their share of the BTC, but in this situation they would both need to spend it simultaneously.

No, it is not possible for a script to be able to determine who "owns" the input (as in whether the input was created by Alice or by Bob). Scripts cannot look at things like the txid of the input it belongs to, the index of the output the input spents, or any of the output scripts. There is no facility in Bitcoin to do that. So no, such a script is impossible to do in Bitcoin.


text:
Hardware Wallet Security if Computer App (MEW, Ledger, Trezor) is compromised
I have bought a Ledger and Trezor.
I don't want to use My Ether Wallet, it gets hacked! I just want to go from the exchange to the Trezor. But, I have about 15 ALT COINS and I'm reading and hearing I can't use the Trezor/Ledger for all of them?
Is there a better alternative? How are hardware wallets secured against MEW hacks?

Could you please edit the title of your question to summarize the main question?

But, I don't want to use MEW My Ether Wallet, it gets hacked!

The point of a hardware wallet is that even if the software or service you are using is compromised that your private keys are still safe. So even if MEW gets hacked, you can still use it and be sure that your private keys are still secure. The private keys never leave the Trezor or Ledger and in order to send any money anywhere, you need to confirm it on the device so your coins can't be stolen without you being aware of the transaction.

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


text:
Is there any blockchain explorer available to track the trades of cryptocurrency exchange?
I haven't seen any decentralized exchange that provides the information of trades and can track the record of transaction history and time.
I am looking forward to that exchange which can provide blockchain explorer. Because it is difficult to identify the trading volume without having the blockchain explorer.

Trades inside exchanges are not Bitcoin transactions; there is no equivalent action observable on the blockchain. Most exchanges do provide trade data, but it's published as just sequences of trades.

Trades on Bisq (a decentralized exchange) take place on-chain and are published here: https://bisq.network/markets/

I think many exchanges provide the history and time record of trades, yeah the question is there no completely decentralize exchange exist for now . Lets see can we have any decentralize exchange in future .


text:
"Needed Turnover" / "Missing Turnover" - How to get my money out?
Contact Information: contact@securitycrypto.info
General information support: info@securitycrypto.info
Support and online transaction search with full and detailed information: support@securitycrypto.info
Does anyone have dealings with these people?
I made a mistake when I copy and paste my wallet with 6+ bitcoins, now I am told I have to activate to wallet that has my coins in but it has come back and said there is a turnover 2.2 bitcoins with is almost 20 gran. I am being to put out the 20 gran and I would have my money out in 20 min.
I received the following message from them:

By default HASH with zero balance and zero turnover,
The verification of such a wallet requires by default  BTC 6.43137963
Please note!
That you may not have to verify the amount previously registered.
[registered amount - an amount involved in turnover transactions]
[unregistered amount - an amount that has not previously participated in turnover operations]
You can familiarize yourself with it by checking operations inside of your HASH.
We remind you, that the blockchain system is fully automatic and public open.
Therefore, it is not necessary to have an amount of  BTC 6.43137963
for verification of your HASH
Needed turnover: BTC 2.20968
When generated wallet attached to exchanger,
Balance of BTC 8.64105963 will be available to use and carry out any further transactions.
We remind you one more time,
That sum is already inside the wallet.
As soon as verification is completed,
You are going to be the only owner of these funds,
And can carry out further transactions.
Blockchain system is a fully automatic system and gives you a full guarantee and safety,
When you follow instructions and protocol.
Balance:          BTC 6.43137963
Missing turnover: BTC 2.20968
Please note!
After activation and verification, the amount of BTC 8.64105963 will be shown automatically.
When a wallet will be added to the exchanger you can carry out any transaction on your behalf.

The above is my email from  support@securitycrypto.info telling about the turnover.
Thank you for helping.
The 6 + bitcoins are in our name and all the security has been completed by the Blockchain. And I just had to copy and paste the wallet ID. Made a mistake and the money went to the wallet with the v at the end and I was sent a screenshot of the wallet with money.
Let us know if you have any additional questions.

What you describe is absolutely typical of what happens when someone inexperienced or relatively new to Bitcoin gets tricked by criminal confidence tricksters.
The victim is often contacted by someone offering to help them invest money in Bitcoin and earn large profits in a few days or weeks.
The victim sends money to be invested in Bitcoin, but the criminal may claim not to have received them. The criminal may blame the victim for using the wrong address and tell them it can be sorted out by creating a new wallet and paying in more money. The criminal guides the victim in creating new wallets in such a way that the criminal has the real control, not the victim.
Then the criminal extracts more money by claiming that extra fees are required. The criminal invents various reasons why the fees are required. throwing in words like turnover or miner or release is typical.
There are variations where someone gets confused by some Bitcoin problems and posts messages on social media asking for help. They then receive private messages (PMs, email etc) from criminals offering help. The criminals gain the confidence of the victim and go on to trick them out of more money.

How to get my money out?

Once you have given your money to criminal confidence tricksters there is no way you or anyone else can get your money back.
You can report the fraud to your local police. They are very unlikely to be able to help retrieve money but it is probably best that they know the extent of such crime.

securitycrypto.info Does anyone have dealings with these people?

The domain name securitycrypto.info was created last November and doesn't have a website. That doesn't make me feel they are trustworthy.
A quick web-search shows that email-address, support@securitycrypto.info, mentioned by other people being tricked out of money in the same way.
You are much better off getting help in a public forum (like this one) - don't reply to direct private messages offering help - they are almost all from criminals wanting to trick you.

I am told I have to activate to wallet that has my coins in

Lies, typical of criminal scammers and confidence-tricksters.

but it has come back and said there is a turnover 2.2 bitcoins with is almost 20 gran. I am being to put out the 20 gran and I would have my money out in 20 min.

Typical nonsense used by criminals to confuse and panic their victims.

See also

Why do I have to deposit BTC as missing turnover


text:
How transactions script work?
I am trying to learn Bitcoin in some technical details, but I don't really understand the process of locking and unlocking scripts. I know that for what they are using, but can someone explain me some technical details. For example: Firstly wallet encrypt this transaction with private key etc...
I would be very grateful for good explanation.

Perhaps take a look at https://learnmeabitcoin.com/beginners/transactions

You can think of a "locking script" as function definition, and the "unlocking script" as function arguments that will make the function evaluate to true.
The commonly used P2PKH address is really a little program attached to the UTXO which has a function definition like f_p2pkh(public_key, signature, sighash_flags). An UTXO keeps some BTC locked with that function. The spender then creates a transaction which references a particular instance of the function f_p2pkh and provides the 3 arguments public_key, signature, and sighash_flags.
Here the function definition hard-codes the public key hash so you can't sign with any key but must use the specific key defined as a constant in the function itself.
But what "message" does the signature sign? The function will call a native function (OP_CHECKSIG) which constructs a message from the transaction context it's being spent in using the instruction encoded in the "sighash_flag" argument. This lets the spender not just unlock the UTXO but also decide exactly where the unlocked BTC can move to (new outputs).
The signature "message" is constructed from the transaction body according to supported recipes, encoded by sighash flags. With P2PKH, the spender gets to choose the recipe - which allows for some flexibility in what outputs to require: SIGHASH_ALL, SIGHASH_NONE, SIGHASH_SINGLE, and also gives signer the option to allow others to add more inputs by using SIGHASH_ANYONECANPAY.
Each UTXO is like a little box that holds some BTC and locked with a smart lock, and our function definition is the lock's firmware, and the firmware can "see" other parts of the transaction. We spend by feeding the smart lock the information required to open, which then releases the BTC and moves it to some new boxes.


text:
Is timestamping needed for anything except difficulty adjustment
This question asks about the role of timestamping and this answer supports the assertion that the main role is block difficulty adjustment.
On the other hand, the whitepaper claims that ordering blocks/transactions is important. I don't really understand this, but I must be missing something.
It seems to me that PoW overwrites whatever timestamps there may be, and in effect determines what "time" is for the blockchain.
Question. What was the intended role of timestamping in the bitcoin whitepaper and is it still relevant?

It seems to me that PoW overwrites whatever timestamps there may be, and in effect determines what "time" is for the blockchain.

I think this is your confusion: arguably, timestamping is part of PoW. The only timestamps that exist in the Bitcoin protocol are those included in block headers by miners, and committed to by the proof of work. These provide the (very rough) timing information blocks carry. Transactions or blocks don't contain any timestamps besides these.
In more detail, every block consists of a header and list of transactions. That header contains the hash of the (Merkle root of) transactions, the hash of the previous block, a timestamp, a version number, a nonce, and the difficulty. There are two requirements for that timestamp to be valid:

The timestamp must be higher than the median of the 11 immediate ancestors of the block (violating this rule makes the block permanently invalid). Note however that this does mean that blocks can have a timestamp lower than their parent.
The timestamp must be no more than 2 hours in the future (violating this rule makes the block only temporarily unacceptable, but not invalid, because waiting some time will change it).

But, importantly, these rules are the only requirements, and miners are free to pick any timestamp between the lower bound set by the first rule, and the upper bound set by the second one. In practice, miners choose times that tend to be close to or at least around the current real-world time, because that maximizes the acceptability of the block and thus income. Together however, this only really means that the timestamps in blocks have an accuracy of roughly 1 hour.
That timestamp is used for two purposes:

The block difficulty adjustment rule uses the timestamps of the first and last block within every 2016-block retarget window to determine what difficulty factor to apply. If miners would set timestamps artificially low (permitted by the first rule above), they'd cut their own flesh, as that would drive up the block difficulty, reducing their income. (this rule isn't perfect however and could be exploited; look up the timewarp attack for more details).
Transactions can have a timelock that determines when the earliest time is that they can be included in a block. To make sure all nodes agree about which block that is, transaction timelocks are compared with the block's timestamp, and not with nodes' own local clocks.

I don't understand what you mean with "Note however that this does mean that blocks can have a timestamp lower than their parent". Reading https://github.com/bitcoin/bitcoin/blob/171f6f2699dc27e77843318be2fefdfcd9e589fb/src/validation.cpp#L3367, it seems to me that a block's timestamp must be greater than MPT (median of last 11 blocks). Is there another rule somewhere that compare's a block's timestamp to the one of the previous block?

@XavierNodet No, in that sentence I'm just trying to highlight that there is no rule against the timestamp of a block being below that timestamp of its parent.

"The timestamp must be no more than 2 hours in the future"
Just to clarify, does this check use the node's system clock?

It uses the verifying node's local clock, yes, so it is subjective (which is why it can't be an actual consensus rule causing violating blocks to be considered invalid; it's just a temporary local acceptance policy).

I’m not sure how I managed to misread this. Sorry about the noise…


text:
When will the public key of an address used in the network?
On block explorer there are some address with public key available, and some without.
(e.g. this one has public key:
http://blockexplorer.com/address/1HBheYzvX7NDtcwVrMS7gxReNRVezYS7w2 ,
and this one doesn't:
http://blockexplorer.com/address/1111111111111111111114oLvT2)
Why is that?
Is it because one has money sent out and one doesn't?
If I understand correctly then the public key is included in the transaction out of an address, is that right?

The 1111111111111111111114oLvT2 hasn't been spent yet whereas 1HBheYzvX7NDtcwVrMS7gxReNRVezYS7w2 has.
To spend, the public key is part of the INPUT's ScriptSig:

http://en.bitcoin.it/wiki/Transactions#Explanation

So until there is a spend transaction, the public key isn't known to the network, just the Bitcoin address.
Related: Why is it impossible to derive public key from address?

(Those two links are the same...)
In short, there are two common ways to send money:

Include the public key.  The sender will need to prove that he has the matching private key.
Include a hash of the public key.  The sender will need to provide the public key matching that hash and also the the proof of owning the private key.

Most people use the second way because the hash of a public key (the address) is shorter.

I edited the link. I don't see why the second way is shorter, how do one prove he own the private key without giving out the public key? Can you give a reference to this?

@hyh It's not about adding less data to the blockchain. It's about shortening bitcoin addresses.


text:
What standard is used for the ECDSA to verify transactions?
Bitcoin used Elliptic Curve Digital Signature Algorithm. (see here). I'm wondering what standard is actually used for this Algorithm: which curve? which prime? Can anybody give me a reference? (Wiki gives this, is this the standard that the ECDSA in Bitcoin?) Anywhere I can find an update on this?
Edit: A bunch of curves are given in page 87 of this. Is bitcoin using one of these?

I just found the answer from https://en.bitcoin.it/wiki/Protocol_specification#Signatures:

For ECDSA the secp256k1 curve from http://www.secg.org/collateral/sec2_final.pdf is used.

i.e. the curve is

y^2 = x^3 - 7

and the prime

p = 2^256 - 2^32 - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1.

See here for more information.


text:
Why doesn't the Bitcoin-qt client ask for the Wallet passphrase upon startup?
I've just encrypted my wallet.dat file using the "Settings -> Encrypt Wallet" menu option.
I then closed the client and re-opened it.
I was expecting to be prompted to put in the wallet password once I reopened the client.
I was asked for no password. I don't understand, what is the point of my having set up a wallet password if I can just use it without unlocking?

When you encrypt the wallet, only the private keys are actually being encrypted. You will be prompted to enter your encryption passphrase when the private keys are needed.
Public keys in the keypool, transaction information, and other metadata remain unencrypted because they are either public information or have no effect on the security of your Bitcoin. This means that you will be able to get new addresses (they come from precomputed public keys in the keypool) and receive transactions. It is only when you try to spend any of your Bitcoin or when the keypool runs out that you will need to enter your passphrase.

It is actually safer to prompt for the passphrase when needed because then the actually important things that are encrypted (i.e. the private keys) are unencrypted in memory for as little time as possible. This reduces the risk of them being exposed.

so I'll be asked for them when, for instance, I make transactions?

I updated my answer. You will need the passphrase when you try to send Bitcoin or when the keypool runs out.


text:
Sending Bitcoins with Armory doesn't work
I have a few Bitcoins that I manage with Armory. It shows the correct amount of money in my wallet under the correct address.
I now want to send the Bitcoins to somebody else. When I open my wallet and select the address with the Bitcoins and click on "Send Bitcoins," all that happens is my that my wallet window closes and I am back in Armory's main menu.
Is that a common problem? What should I do?

I'm trying to follow along with my own copy of Armory, but I'm not sure what you're doing. Do you mind posting a screenshot of the button that you're clicking on? You can black out sensitive information if you want.


text:
How does the ECDSA verification algorithm work during transaction?
I understand the basic concept ECDSA where if Bob wants to sign a message it generates a random number n, multiply it with the secp256k1, r = the x value , s = (H(x)dr)*n^-1 mod q. Also the verification is done by P=u1(G)+u2(P), where G is the generation point, and P as the public key of Bob.
I went through the transaction page of wiki. My understanding is that ECDSA takes place somewhere in the scriptSig/scriptPubKey section.
If Bob wants to spend the unspent transaction output, Bob will need to create a signature script that references to previous transactions, also provide his full public key, which will then be hashed to match previous transactions as the receiver, Bob will also need to generate a signature to prove that public key is originated from his public key.
It leaves me with a lot of questions such as the Transaction Verification steps:OP_CHECKSIG
where I'm guessing most of the steps are trying to match the hash, and finally at step 10 it
performs the ECDSA verification.
Does it still follow the basic concept computing u1, u2 and utilizing the full public key provided by Bob trying to match the r value at the end? Or is it doing something totally different? I can understand why pubKeyStr and sigStr is required for the ECDSA verification, but it also takes in sha256^2, which i guess is double hashing, with the (verifThisStr). I do not understand where that came from at all.
What would be substituted into the hashed message  H(x) when computing s? And does Bob just randomly pick a variable just to generate the signature when it was asked for claiming the unspent transaction?

Let us take "pizza transaction"
https://blockchain.info/tx/cca7507897abc89628f450e8b1e0c6fca4ec3f7b34cccf55f3f531c659ff4d79
01000000018dd4f5fbd5e980fc02f35c6ce145935b11e284605bf599a13c6d415db55d07a1000000008b4830450221009908144ca6539e09512b9295c8a27050d478fbb96f8addbc3d075544dc41328702201aa528be2b907d316d2da068dd9eb1e23243d97e444d59290d2fddf25269ee0e0141042e930f39ba62c6534ee98ed20ca98959d34aa9e057cda01cfd422c6bab3667b76426529382c23f42b9b08d7832d4fee1d6b437a8526e59667ce9c4e9dcebcabbffffffff0200719a81860000001976a914df1bd49a6c9e34dfa8631f2c54cf39986027501b88ac009f0a5362000000434104cd5e9726e6afeae357b1806be25a4c3d3811775835d235417ea746b7db9eeab33cf01674b944c64561ce3388fa1abd0fa88b06c44ce81e2234aa70fe578d455dac00000000

// decoded by https://blockchain.info/decode-tx
{
   "lock_time":0,
   "size":300,
   "inputs":[
      {
         "prev_out":{
            "index":0,
            "hash":"a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d"
         },
         "script":"4830450221009908144ca6539e09512b9295c8a27050d478fbb96f8addbc3d075544dc41328702201aa528be2b907d316d2da068dd9eb1e23243d97e444d59290d2fddf25269ee0e0141042e930f39ba62c6534ee98ed20ca98959d34aa9e057cda01cfd422c6bab3667b76426529382c23f42b9b08d7832d4fee1d6b437a8526e59667ce9c4e9dcebcabb"
      }
   ],
   "version":1,
   "vin_sz":1,
   "hash":"cca7507897abc89628f450e8b1e0c6fca4ec3f7b34cccf55f3f531c659ff4d79",
   "vout_sz":2,
   "out":[
      {
         "script_string":"OP_DUP OP_HASH160 df1bd49a6c9e34dfa8631f2c54cf39986027501b OP_EQUALVERIFY OP_CHECKSIG",
         "address":"1MLh2UVHgonJY4ZtsakoXtkcXDJ2EPU6RY",
         "value":577700000000,
         "script":"76a914df1bd49a6c9e34dfa8631f2c54cf39986027501b88ac"
      },
      {
         "script_string":"04cd5e9726e6afeae357b1806be25a4c3d3811775835d235417ea746b7db9eeab33cf01674b944c64561ce3388fa1abd0fa88b06c44ce81e2234aa70fe578d455d OP_CHECKSIG",
         "address":"13TETb2WMr58mexBaNq1jmXV1J7Abk2tE2",
         "value":422300000000,
         "script":"4104cd5e9726e6afeae357b1806be25a4c3d3811775835d235417ea746b7db9eeab33cf01674b944c64561ce3388fa1abd0fa88b06c44ce81e2234aa70fe578d455dac"
      }
   ]
}

Look and decode at the input=0 script:
48  // push next 0x48 bytes
30450221009908144ca6539e09512b9295c8a27050d478fbb96f8addbc3d075544dc41328702201aa528be2b907d316d2da068dd9eb1e23243d97e444d59290d2fddf25269ee0e01
41  // push next 0x41 bytes
042e930f39ba62c6534ee98ed20ca98959d34aa9e057cda01cfd422c6bab3667b76426529382c23f42b9b08d7832d4fee1d6b437a8526e59667ce9c4e9dcebcabb

First push is signature concatenated with hashtype=01 (SIGHASH_ALL)
Second push is public key for address 17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ
How do we check - is this transaction valid? Is it correctly signed?
1) Remove input script from transaction. We should remove bytes (do not forget about script len)
8b4830450221009908144ca6539e09512b9295c8a27050d478fbb96f8addbc3d
075544dc41328702201aa528be2b907d316d2da068dd9eb1e23243d97e444d59
290d2fddf25269ee0e0141042e930f39ba62c6534ee98ed20ca98959d34aa9e0
57cda01cfd422c6bab3667b76426529382c23f42b9b08d7832d4fee1d6b437a8
526e59667ce9c4e9dcebcabb

2) Replace it with the funding script to 17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ
OP_DUP OP_HASH160 46af3fb481837fadbb421727f9959c2d32a36829 OP_EQUALVERIFY OP_CHECKSIG
1976a91446af3fb481837fadbb421727f9959c2d32a3682988ac

(Do not forget about script length again!)
3) Append SIGHASH_ALL as 32-bit low-endian value. The result will be
01000000018dd4f5fbd5e980fc02f35c6ce145935b11e284605bf599a13c6d41
5db55d07a1000000001976a91446af3fb481837fadbb421727f9959c2d32a368
2988acffffffff0200719a81860000001976a914df1bd49a6c9e34dfa8631f2c
54cf39986027501b88ac009f0a5362000000434104cd5e9726e6afeae357b180
6be25a4c3d3811775835d235417ea746b7db9eeab33cf01674b944c64561ce33
88fa1abd0fa88b06c44ce81e2234aa70fe578d455dac0000000001000000

4) Hash it twice by SHA256. The digest will be
692678553d1b85ccf87d4d4443095f276cdf600f2bb7dd44f6effbd7458fd4c2
5) OK, we have now three items:

a) public key 042e930f39ba62c6[...cut...]6e59667ce9c4e9dcebcabb
b) signature 304502210099081[...cut...]d59290d2fddf25269ee0e
c) digest 692678553d1b85ccf87d4d4443095f276cdf600f2bb7dd44f6effbd7458fd4c2

Pass these values to standard ECDSA verify method and you will receive the result: true or false. Here is a small piece of my quick-and-dirty check whith hardcoded values:
const QByteArray xx ( QByteArray::fromHex ( "01000000018dd4f5fbd5e980fc02f35c6ce145935b11e284605bf599a13c6d41"
                                            "5db55d07a1000000001976a91446af3fb481837fadbb421727f9959c2d32a368"
                                            "2988acffffffff0200719a81860000001976a914df1bd49a6c9e34dfa8631f2c"
                                            "54cf39986027501b88ac009f0a5362000000434104cd5e9726e6afeae357b180"
                                            "6be25a4c3d3811775835d235417ea746b7db9eeab33cf01674b944c64561ce33"
                                            "88fa1abd0fa88b06c44ce81e2234aa70fe578d455dac0000000001000000" ) );
const MyKey32 digest ( xx.constData ( ), xx.size ( ) ); // construct object of sha256 (sha256 ( xx ) )
_trace ( digest.toString ( ) );                         // print result
const QByteArray pubkey ( QByteArray::fromHex ( "042e930f39ba62c6534ee98ed20ca98959d34aa9e057cda01cfd422c6bab3667b76426529382c23f42b9b08d7832d4fee1d6b437a8526e59667ce9c4e9dcebcabb" ) );
const QByteArray signature ( QByteArray::fromHex ( "30450221009908144ca6539e09512b9295c8a27050d478fbb96f8addbc3d075544dc41328702201aa528be2b907d316d2da068dd9eb1e23243d97e444d59290d2fddf25269ee0e" ) );
_trace ( QString ( "verify=%1" ).arg ( digest.verify ( pubkey, signature ) ) );

The output is
"692678553d1b85ccf87d4d4443095f276cdf600f2bb7dd44f6effbd7458fd4c2"
"verify=1"

The brief run through is very useful , there are a few more minor questions regarding to it. I might be still confused, but I'll try to make sense of it .After the input script removal (Step1) , Replace with funding scrip(Step2) Append SIGHASH_ALL(Step3), which is the new transaction. According to the other answer , for the signiture s= (H(x)dr)n^-1 mod q,where H(x) is everything in raw tx , I'd assume that is exactly like the digest(?) So the Signature (304502...ee0e)is generated by using the digest (692678...d4c2) ,tempkey(random)and the private key ?

If so , I see that your ECDSA varification only takes in 2 inputs , which is pubkey and signiture. Out put was the digest. Since the basic concept utilizes u1, and u2. It was matching u1(G)+u2(B) , which B= pulic key , G= generation point , u1 = H(x)s^-1 , u2 = rds-1n, where the cancellation occurs leaves n*G's x-coordinate = r = varify. But since our key.verify doesn't include the digest, is it using a different method ? by regenerating the digest with the publickey and signature?

I have my own lib. Class MyKey32 is a class for performing some actions. So, the last line can be written as "digest.verify ( pubkey, signature )" where digest - is 32-byte object

So the Signature (304502...ee0e)is generated by using the digest (692678...d4c2) ,tempkey(random)and the private key?<<< Yes! The owner of private key created in 2010 the same array of bytes, calculated digest (the same as mine, or to be correct: mine is the same as his) and created signature with privkey and digest. For creating signature he need privkey and digest. For verifying signature we need pubkey and digest.

Question is does it still follow the basic concept computing u1,u2 and utilizing the full public key provided by Bob trying to match the r value at the end ?

Yes, that's the basic idea, why would you think it was any different? There's a slightly complicated way that the hash that needs to be signed is calculated, but once the hash is calculated it's just straight ECDSA treating the hash as a 256 bit integer.

it also takes in sha256^2 , which i guess is double hashing , with the (verifThisStr) which i do not understand where that came from at all

Yeah, sha256^2(x) is just defined as sha256(sha256(x)). I'm not sure what you are trying to reference "verifThisStr", but if it's the value that has to be verified with the ECDSA, then you are just talking about the result of the double hash, treated as an integer.

Also if it still follows the basic concept , what would be substituted into the hashed message H(x) when computing s ?

The parts of the transaction that has to be double hashed and then signed depends on the SigHashType (https://bitcoin.org/en/developer-guide#signature-hash-types). For standard SIGHASH_ALL, it includes everything in the raw tx except for the scriptSigs, since you can't sign your own signature.

And does Bob just randomly pick a variable just to generate the signature when it was asked for claiming the unspent transaction ?

Yes, there is a random number chosen when making a signature, so ECDSA signatures are non-deterministic.

It should be noted that firstly, the random number k used to generate R should be ephemeral -- never repeated, else risk exposing your master private key. Secondly, it is highly recommended to not generate k with a random-number generator (RNG). Industry best practice is to use a deterministic-random process seeded with the transaction data itself. Then you won't risk reusing k due to an erroneously seeded RNG. See RFC 6979.


text:
How do I use mSIGNA without the standard Bitcoin client?
Which IP do I have to fill in in mSIGNA to connect to the Bitcoin Network without using the BitcoinQt/bitcoind application?
Is it possible to use mSIGNA and BitcoinQt even if the syncing process is not finished yet?

Yes there is a way, you need a way to connect to someone running BitcoinQT and who has made their node public. BitcoinQT runs as a node, but to make it discoverable to any but other BitcoinQT wallet users you have to go a step further.
So you need a list of such BitcoinQT "servers", and I found one earlier and in searching for that list of open Bitcoin-QT "servers" someone had published I found this.
If I manage to find it again, I am trying to solve my problem with sending from mSIGNA, I will post a link and more complete answer here.

A list of nodes can be found here: https://blockchain.info/connected-nodes

If the list at this link is empty... what does that mean? No bitcoins anymore... ;-)

mSIGNA can connect to any bitcoin node that is publicly available online.  There is a list of nodes that can currently be reached online from Bitnodes.  The IP address of any public node can be specified by following the instruction from the mSIGNA Getting Started Guide is excerpted below:

If you  would   prefer  to  connect to  a   remote  bitcoin node,   you can change
  the IP  address and port    under   Network->Settings…(File->Preferences
  …   on  Mac).
NOTE:  mSIGNA™ only    connects    via the peer-to-peer    protocol    and does not    require any special RPC access  to  other   nodes.

I think there's no way to connect without Bitcoin-Qt as Getting Started Tutorial states:

By    default,    mSIGNA™ will    attempt to  connect to  a   bitcoin node
  running   on  localhost   (i.e.   a   local   running instance    of  Bitcoin-Qt).    If you
  have  Bitcoin-Qt  running on  your    computer,   leave   this    setting alone.  If
  you   would   prefer  to  connect to  a   remote  bitcoin node,   you can change
  the   IP  address and port    under   Network->Settings… (File->Preferences
  … on  Mac).


text:
How do I spend Bitcoins from a specific address?
What's happening when I use importprivkey? Are the coins merged to my existing private key or is the new key added to my wallet?
I want to import a private key, receive funds on it, and send the same coins using this key, not the others present in my wallet, is it possible with RPC commands? (for my website, I want the user to be able to see where his money is going by tracking the blockchain).

When you use importprivkey, the new private key is added to your wallet, giving you the ability to send coins received by a corresponding Bitcoin address. Your "balance" will also reflect this, including the coins accessible by this key in the total balance.
Bitcoind low level API gives you a pretty fine-grained control over your coins. Since there is no notion of a "source address" in the Bitcoin protocol, you have to specify the exact transaction and its output that you want to spend. Instead of using the common high-level RPC like sendtoaddress, you need to manually create a raw transaction, which comes in a few steps:

Prepare the transaction via createrawtransaction command, specifying outputs that you want to spend,
Sign the transaction using your imported private key via signrawtransaction,
Send it onto network using sendrawtransaction.

Be careful when using this API as Bitcoind does not protect you from making fatal mistakes, rendering your coins unspendable. Make sure you test your code on the testnet thoroughly before going live.

Yes, you can send from specific address using RPC. For sure you can send money from specific address using raw transactions.I haven't used bitcoind for a while, but I hope they might already have added CoinControl.

A good way to think of it is when you import a key to your wallet all of its inputs are added to the "input pool" as i like to call it. When a sendtoaddress or sendmany command is initiated it will pull what it thinks are the best inputs to make that transaction from the "input pool". Keys can be added/removed from accounts at any time taking their inputs with them. (although a rescan is required and done by default which takes some time)
This is the way its designed to work. But if you want to customize it to work with you it is possible. Just always be cautious of modifying and know what your doing. Mistakes with bitcoin transaction are irreversible and can be quite costly. You have a few options.
Accounts are usefull for this. A wallet can have multiple accounts. Think of accounts as a way to group keys together. You could make a new account for each user then use the sendfrom command to initiate all withdrawals from the wallet.
bitcoind sendfrom "fromaccount" "tobitcoinaddress" "amount" [minconf=1]
Where "fromaccount" is the account you want to send from. "tobitcoinaddress" is the destination. "amount" is the amount you want to send and [minconf=1] will not allow it to spend any input with less than 1 confirmation or any value you specify.
This will send only from the account you specify. Each account can have as many addresses as you like or just one.
Just be aware accounts should never be used for balance tracking. Only for groupings of keys. And if you ever use the sendto or sendmany commands they will pull the inputs from all accounts to make the withdrawal


text:
Why do we trust that the person who got a chance to add block will add a valid transaction block?
I read about blockchain in many websites but didn't understand what actually blockchain offers the proof of work.
A transaction will be broadcasted to the every node in the network and then someone will get a chance to add a new block to the existing ledger. How can we trust that on the person who adds the block to ledger is valid i.e he can add invalid transaction and append to the ledger?
He can calculate the hash of existing ledger and invalid transaction and can append to the existing ledger? And what do the miners? By calculating nonce what they will do?  I didn't understand how the update to ledger is happening.

Short answer: Every honest full node knows all the rules for determining whether or not a block is valid and ignores all invalid blocks entirely.

Miners don't calculate nonces, they calculate cryptographic hashes using nonces as one of the inputs.
A cryptographic hash is a function that takes as input some arbitrary data and produces as output a unique string.[1]  They always produce the same output string for the same input data.  Here's an example using the sha256 hash function (the basis for the function used in Bitcoin):
$ echo foo | sha256sum
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c  -
$ echo foo | sha256sum
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c  -
$ echo bar | sha256sum
7d865e959b2466918c9863afca942d0fb89d7c9ac0c99bafc3749504ded97730  -

In the above, "foo" and "bar" are the input and the strings starting with b5bb and 7d86 are the output.
What miners attempt to do is find a hash output that has a certain number of zeros in a certain location (we usually call this the start or front of the hash[2]).  To do this they start with the data they want to add to the ledger and then increment a nonce (or otherwise adjust the block) until they get the desired value.
For example, let's say we want to add a transaction of "Alice pays Bob 10 BTC" to the ledger and the number of zeros we want at the start of the hash is just 1.  We start by doing this:
$ echo "Alice pays Bob 10 BTC | nonce: 0" | sha256sum
39a946f968d6986b2d560bbb0d63af04578352f02f48c1bfd71e535cd1148a6f  -

As you can see, our first nonce of "0" didn't produce a hash starting with 0.  So we try again:
$ echo "Alice pays Bob 10 BTC | nonce: 1" | sha256sum
dce8dff1c536cdb43861e4ea1bc843e6f110e82768cfcca656d8c5f53cc7fc1d  -

Again, we don't get the desired result.  So we keep trying over and over until we do get the desired result:
$ echo "Alice pays Bob 10 BTC | nonce: 18" | sha256sum
005b8307be5a9447be13ba6f026e9d3b695bfd5dc6ce633ac928de8cd8634a1f  -

So we had to do the work of generating a hash 19 times before finding a hash starting with the number zero.  This is called proof of work.
Now the person who found this proof of work can share all of the data---both the transaction and the nonce---to other people, and those people can verify that the input data of "Alice pays Bob 10 BTC | nonce: 18" does equal the a hash with one zero worth of proof of work.
One zero worth of proof of work isn't much (it's 4 bits or odds of 1:15), but real miners deal with much greater amounts and producing all of the work requires consuming a large amount of electricity.  Normally miners are rewarded for consuming that electricity by receiving a reward for protecting transactions with proof of work---but they only receive the reward if the transactions they protect are valid.[3]  Otherwise any proof of work they generate is wasted, meaning the electricity they use is wasted and they'll be less profitable than other miners who protect valid transactions.
For example, in the above example, if Alice didn't have 10 BTC to give to Bob, then that transaction would be invalid and so it wouldn't matter that the hash of the data starts with a zero---users who verify every transaction using what's called a "full node" will simply ignore that transaction and its proof of work.
So in short, what prevents a miner from adding an invalid transaction to the ledger is a combination of users who reject invalid transactions with their full nodes and an economic incentive paid to miners who mine valid transactions.
[1] Hash functions don't always work like this, but that's the ideal.
[2] But that's because Bitcoin displays hashes weirdly.  To any other tool, it'd be the end or back of the hash.
[3] Technically, they only receive the reward if other people think their transactions are valid.  Currently, there are a lot of Bitcoin users who verify every transaction, so it's not possible to sneak in an invalid transaction.  In other cryptocurrencies or a sad future where Bitcoin becomes less secure, that may not be the case

What I didn't understand is only one person get a chance to add a new block to the chain right then he can add invalid transaction to append this to chain?after add new block it will be broadcasted to whole network then how other people validate the new block. will they calculate the hash and check with it or how?

As the answer explains, hash functions "always produce the same output string for the same input data."  So if a miner sends a different set of transactions than the set he used to generate the hash, the hash will change and will no longer have the correct minimum number of leading zeros.  For example, if I change the above "Alice pays Bob 10 BTC | nonce: 18" to Alice paying Charlie 10 BTC, I get a hash starting with aa0371, which no full verification node would accept.

So every full node will again do proof of work to check whether difficulty is acheived by comparing hash having leading zeros?Am I correct?

I'm not sure about your terminology.  Doing a single hash is a little bit of "work."  Doing a lot of hashes to find one with many leading zeros is a lot of work, and because finding it is an unpredictable (random) process, it's proof of all the hashes (work) you did before.  Someone can check that hash is valid by doing just that one last hash, so they aren't redoing the proof of work---they're just checking the proof of work is valid.

Thank you sir.... I got it ... So, if a person did a proof of work by calculating nonce so that others will use that nonce to check whether it is valid or not....

Sorry ... Last one doubt if the proof of work is valid then which hash they will append to the blockchain ...the hash which is having zeros or the hash they try to make it have leading zeros.


text:
Can't sign a transaction correctly
The problem was that I tried to sign inputs and add outputs and other info into transaction.
The last result hexRawTx :

01000000019843f83b2c42de1585cdc3b689a10a2960d016d5887f1ecd50bc8e040bbe94cc000000006b483045022100f9559234c189df36b99ffea94ecec650c1a483cdc02a976759d4bd7347a82ca9022009278f760db1dabf666ea0fcab55b8a1c6f20b27f8b442738b1d51165d91fd3e8121027e912293da7fecdffe57a49a726649d547a6b0fb2a5420047515d6373d251296ffffffff02102700000000000017a914e211863c0e582b5df44f6e1aa0eef0eb9ddcc9078760590100000000001976a914ad7252447111e2300c77aa406339b4e38d08cf4988ac00000000

Detect this tx, the fee is always zero, and input without address(https://live.blockcypher.com/btc/decodetx/)
 transaction.addOutput(coin , Address.fromBase58(MainNetParams.get(),toAddress));
transaction.addOutput(coinInput,Address.fromBase58(MainNetParams.get(),fromAddress));
for(int k=0;k<unSpentNum;k++){
TransactionInput transactionInput=new TransactionInput(MainNetParams.get(),
         transaction,newBigInteger(unSpent.get(k).getScript(),16).toByteArray(),
                   new TransactionOutPoint(MainNetParams.get(), 0, Sha256Hash.wrap(unSpent.get(k).getTx_hash())));
           transaction.addInput(transactionInput);

}
String hexRawTx = SignTool.verifyAndSignTransaction(transaction, 0, ecKey, null, false,MainNetParams.get());

(unSpentNum) get from https://blockchain.info/unspent?active=3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r

Which output are you trying to spend? I can't find txid cc94be0b048ebc50cd1e7f88d516d060290aa189b6c3cd8515de422c3bf84398 on a block explorer

Thank you for your help，I am spending the second here. fromAddress:1Gp6rNgRjUVFuoC6dZvvpUaCidfzJEVbAW ,  toAddress: 3NJMdWarysk9woSUkzAV18AapbxsA4qd7p ,   Does the problem occur in the  transaction.addInput() ？

https://blockchain.info/unspent?active=1Gp6rNgRjUVFuoC6dZvvpUaCidfzJEVbAW

The problem has been solved, the parameter problem


text:
Trying to create a bitcoin based webapp in python which takes BTC deposits. How would I use pybitcointools to implement this?
Trying to create a bitcoin based webapp in python which takes BTC deposits (New to Bitcoin in general, but want to get involved).
Although I would preferably want to use a different address for each deposit, (I read the docs and found out how this could be done, but still slightly confused), I would want to allow for users to deposit back into their own wallets. Though I think I got withdrawals figured out.
I tried to understand the (Now unsupported docs) but decided to come here for help because I was still confused. How would I use pybitcointools to

Generate an BTC Address. (New address for each user). I believe I could do the below for each user. So this would generate a unique address upon the creation of each user for them to deposit to.
my_private_key = sha256('I guess whatever I please')
my_public_key = privtopub(my_private_key)
my_address = pubtoaddr(my_public_key)

Accept a Deposit into this Address.
Return the BTC value of this address.
When the time comes, send the balance of this address to the users own address.

You're mostly on the right track.
The ideal way to build a user deposit system is to simply have a one to many user->address mapping.
By default, when a user deposits BTC to an address, you automatically generate a new address for them. However, you don't delete the previous address, or the fact that it is linked to that user.
This way, even if a user sends BTC to an older address, you are able to receive it for them.
Additionally, how you process withdrawals depends on what kind of system you are building. If it is simply a straightforward wallet system, then the process you described of sending the BTC out when the user asks from the user's address will be fine.
If you are building a platform where the user exchanges BTC for goods, services, or other coins, and then makes withdrawals based on their remaining balance, you may want to consider a hot/cold wallet system.
In such a system, when users deposit coins, you provide no guarantee that the same coins will be used to process their withdrawals. You either use all users' coins to process each others withdrawals, or you move them into a handful of addresses, and process all withdrawals from their.


text:
Where can I report bitcoin scammers?
The following bitcoin addresses are involved in FRAUD...
[snip]
Where can I report bitcoin scammers?

What would reporting their addresses accomplish? They could just generate new ones.

report fraud/scam bitcoin addresses via http://bitcoinwhoswho.com/address/THE_BITCOIN_ADDRESS You need to register first. Note that BTC addresses are linked to BTC wallets which are linked to people. Does reporting this way actually DO anything? Dunno.

In general bitcoin means: "if you don't own the keys, you don't own the coins" (for example web wallets or exchanges) and "if you hand over the keys (have them stolen) or sign a transaction to the wrong destination (buy a cheap iPhone from Nigeria) then you just learned a lesson the hard way".
Having said that, Bitcoin does offer some unique protection methods like multisignature and wallet backups.
Depending on the situation and the kind of fraud, you might be able to contact your local law enforcement or FBI or equivalent.

Report fraud to your local police.
If you know how to find the Internet Service Provider (ISP) of a website, you can report the website to their ISP.
Remember that Bitcoin is like cash. No supervisor is in charge of your cash payments, there is no central authority. When someone tricks you out of cash, you don't report them to the banknote printer or coin mint, you report them to police.


text:
Do I need to keep updating my wallet address in faucets?
I notice that my wallet address keeps changing and I am wondering two things:

Why does the address dynamically change?
Do I need to update the wallet address in the faucets I use in order to receive the satoshis?

It will be a pain if I have to constantly update my wallet address in the faucets.

You're using a HD Wallet which specifically avoids reused addresses. You can of course reuse an address, so putting the same address into faucets is probably the only way to spend the low value input.
So, yes, reuse the address

@Wizard Actually, re-using the same address does not help with spending low value inputs. They're still separate inputs. In practice OP would still of course keep using the same address for convenience reasons.

@BrianSimms If possible, try to make the payments as large as you trust the faucet. Miniscule paymets will cost you more in fees than they're worth (also when you spend the money!). But if you can save up for a few weeks (or months) before doing one payout, it might be worth it.

@Jannes whoops, you're absolutely right


text:
Segwit after downgrading bitcoin core
I would like to know what will happen if I downgrade my node (currently version 25.0) to version 12.0. What are the consequences for the segwit wallet management? Are segwit transactions still relayed? Are the witnesses always saved? Can my node still start another node?
Thank you in advance for your answers.

if I downgrade my node to version 12.0. ...

As you know, Bitcoin core v12.0 did not support Segwit.

Are segwit transactions still relayed?

Nodes supporting Segwit will prune out witness data when relaying transactions to non-Segwit nodes. Those non-Segwit nodes only use the pre-Segwit network serialisation.

Are the witnesses always saved?

Non-Segwit nodes do not ever see Segwit data, such as the witness data, and so do not save it.

Can my node still start another node?

Consequently, non-Segwit nodes are not sufficient to start up Segwit nodes.


text:
Does Bitcoin provide other features a side from transfers?
Does Bitcoin provide other features a side from transfers ?

Of course. Besides transactions, it allows smart contracts and many other features.

Bitcoin is fundamentally a system of digital cash that doesn't need trusted third parties. As such its core purpose is the transfer of money from one person to another (without any need for a trusted intermediary).
There are both simple and complex forms of transaction such as multisignature transactions but these are just variations of transfers of money.
Obviously there are a lot of ancilliary functions that are needed to support this, the creation of private-keys, network protocols that allow nodes to replicate the transaction journal ("blockchain") and so on. But this is just infrastructure. Of little interest in itself.
It is true that people have been inspired to do other things that are based on the idea of a replicated immutable record created and maintained in a decentralised way in a peer to peer network. But these are not Bitcoin. Bitcoin's blockchain is not intended to be used for these other purposes and it is generally detrimental to Bitcoin to do so.
Of course there can be no prohibition on third parties offering additional features that may be Bitcoin related in some way. Examples might include speculative trading against other currencies, distributed exchanges, interest bearing investment etc. But these features don't seem to me to be fundamentally provided by Bitcoin itself.
To me its a bit like asking what features are offered by a $5 bill (banknote). Could we say it offers the feature of lighting your cigar, keeping a diary, creating origami figures? Those features are not what it is intended for.
Other than transfer what features does the dollar as a currency offer? That takes you into standard discussion of the meaning of a currency as a medium of exchange, as a store of value and so on. These also apply to currencies like Bitcoin but I suspect these sorts of features may not be what you are asking about.


text:
How do I create a shopping cart that accepts Bitcoin?
I need to start a website to sell and buy goods with Bitcoin. Then I need to know how to add an shopping cart system for it. Are there any CMS plugins or modules for Joomla, Drupal, or another? Or can you tell me how to add a shopping cart system for a PHP based website without any modules?

Do you mean Bitcoin (BTC/XBT) or BlackCoin (BC)?

I have no experience with it, but a quick Google (bitcoin shopping cart interface) yielded a pretty good (I think) list of open-source interfaces, which should be usefull. It is from BitPay

The list of related questions (look to the right ---->) contains several that look relevant.

I have same needs, and i found Stripe that accepts bitcoins payment similar like paypal do, then i planned too to use CMSs and i found a solid plugin for opencart on GitHub.
Simply googling i found alot of results, the bitcoin shopping cart plugins are around .. :D
I Also Found interesting bitcoinpay.com,
I can use Api to accept Bitcoin and send to a bitcoin address
...
 even if i not understood if i can operate as Anonymous or i have to link a bank account.
(Obviously i wannot)
The most for all is to find a way to collect bitcoins without to be forced to link a  Bank account.
Tms

-1 This answer would be much more useful if it linked the mentioned search results and explained how Stripe and BitcoinPay address the question of the asker.


text:
Give bitcoin to user in web game
I want to make maze game. I have the idea to 'leave' bitcoins in some rooms and players can pickup it like a penny from the street. And question is how to do it?

You need to be more specific. What part are you having trouble with? What have you tried? Creating a web-game is a broad topic.

In a normal video game, in order to transfer an amount between two quantities, you can simply declare it in code.
var amountHeldByCharacter = ??;
var amountInJar = ??;
//Change amounts
amountHeldByCharacter = amountHeldByCharacter + amountInJar;
amountInJar = amountInJar - amountInJar;

In the game, however, the bitcoin will have to come from actual bitcoin addresses, so you'll have to have some function within your code,(call it PAY) that connects externally to the blockchain and transfers bitcoin from the game to a the user's address.
var gameAddress = "<some address connected to the game>";
var userAddress = "<some address provided by the user>";
var amountInJar = ??;
//Change amounts -- PAY(fromAddress, toAddress, amount);
PAY(gameAddress, userAddress, amountInJar);
amountInJar = amountInJar - amountInJar;

How to implement the PAY function is the hard part, but that seems to answer the essence of your question.

I believe the best solution will to use in-game currency (in fact many MMO games have such), that can be withdrawn to bitcoins, just like online casinos are cashing out their chips.


text:
I can't find my bitcoin address and my bitcoin core is out of sync by 3 years
Hey guys I am a newbie at Bitcoin just recently found out about it.
I downloaded Bitcoin core; I encrypted the wallet; I created a backup folder, but it is out of sync by 3 years 4 weeks and i can't seem to find my Bitcoin address due to it. How do I find my Bitcoin address if it is out sync?

When you say it is out of sync, what are you referring to?

well when i open the program it say my wallet is out of sync and on the bottom left corner it states that it is trying to synchronize with network and the last block generated was 2 years and 21 weeks ago... i don't quite understand it that well to be honest lol.

Go to the top left, click File then receiving or sending addresses. There, you can create new adresses and look at your current addresses.

What it means by "out of sync" is that when you download the Satoshi (original) wallet, you download the entire "Blockchain," or every transaction in Bitcoin history. This is the reason why Bitcoin is decentralized - everyone has a copy of every transaction ever. By it saying "2 years" it means it has 2 years left of transactions to download (all the transactions that happened in the past two years). Even though I'm not sure why your Bitcoin address isn't showing (might be intended?), it's not really a good idea to use Bitcoin until the 25GB blockchain is downloaded, but you can get a wallet that doesn't download it called Multibit.

oh I see... is there anyway to speed up the process or should i just use multibit until the 25gb blockchain is fully downloaded? oh and i managed to find the bitcoin address but i am still unsure on how to create a new address...

@D3on3 Only faster internet can speed up a Blockchain download.

@D3on3 Nevermind, see http://bitcoin.stackexchange.com/a/4474/21114 for help with speeding it up.

ahh man that's a drag. i know I have asked many questions but how exactly do you create new bitcoin addresses?

Go to file then go to receiving addresses your receiving address is generate there if you click new you will have a new receiving address don't use the same receiving address for every receiving transaction use a different one per receiving transaction people will hack your wallet.


text:
How much space does armory and the latest version of Bitcoin-Qt take up, together?
It seems like Armory and Bitcoin Core are taking up 78GB so far, and it's not even done downloading.  How much more space will I need?  Is it possible to get rid of some of the data after it is all done?   So far the Building Databases step has taken up the most GB.  I'm using it on Ubuntu.

In total, it's about 61GB for me right now. In general, it should be about twice the size of the blockchain (which is always growing).
There can be some intermediate files (e.g. bootstrap.dat, 21GB currently; or Armory's similar torrent) involved that increase how much space you need during initial setup.
These can be deleted when you're done using them. (In the case of bootstrap.dat, that's when Bitcoin Core finishes loading data from disk; it's not deleted automatically, you'd delete it manually.)

So can I delete bootstrap.dat before I add all my wallets, or will that mess up the scanning transaction phase?

And is there a complete list of all the unnecessary files somewhere?

@RootFAIL You don't need it around when you add wallets or rescan transactions. https://en.bitcoin.it/wiki/Data_directory has a list of files/folders that should be in the data directory, but be cautious about deleting things, just in case. Anything that looks like a bootstrap.dat file or log file can be deleted.


text:
What's the purpose of running Armory through Tor?
What's the purpose of running Armory through Tor?  Is it only useful once you get to the point where you start sending Bitcoins?

Armory (in online mode) uses a full node.  Full nodes relay transactions for other programs on the Bitcoin network, so by running Armory on Tor, you help other people send their transactions with possibly-improved privacy.
Sending your own transactions through Tor with Armory can help prevent anyone from associating your IP address with your transaction, possibly improving your privacy.

Note: Tor and Armory must both be used properly to achieve improved privacy.

Is it ethical to do this?  I know Tor doesn't want you to attempt to run Bittorrent over Tor because it can't handle the load, wouldn't running Armory anonymously also pose similar problems?  https://blog.torproject.org/blog/bittorrent-over-tor-isnt-good-idea

I mean if everyone did this would it slow down Tor browser?

@RootFail: the slow down wasn't the main reason though. By design, Torrent protocol leaks your IP Address, this isn't bug it's what makes it work. If you are using Torrent over Tor, you get neither Torrent's efficient distribution network nor Tor's privacy, and you're hurting both networks.

I haven't heard of complaints from Tor administrators. Let's say there are 1,000 Tor Bitcoin full nodes collectively relaying 1 MB of transactions per block plus the blocks themselves at 1 MB.  If we further say every node is a hidden service so 6 hops (IIRC) are needed, that's 1000 * (2 * 1MB) * 6 = 12 GB of transfer about every 10 minutes---or about 20 KB/s per Bitcoin-enabled Tor node.  If all those nodes are hidden services, they're all doing relay---and I suspect most Tor relays have an upload speed faster than 20 KB/s, so the Bitcoin nodes in this worst-case example are net contributors.

@RootFAIL Actually the Tor team have actively welcomed Bitcoin traffic. (source: Bitcoin development mailing list) It will do the Tor network good by bringing more users and more variety of data.


text:
My Bitcoin wallet is out of sync after connecting for the first time
It's 4 years out of date. I have tried using a different network. Same thing. Don't know what to do but would appreciate help.

P.S. Please don't pad out your question. The minimum character limit is there for a reason: questions that are under it usually don't provide enough details, and have been asked before.

The official Bitcoin software has to download the details of every single address, transaction and confirmation block to be synchronised. If you've just installed it then it's going to take you 1-5 days to download that data depending on your Internet and computer speed (just leave it running on your computer).
There are other options to avoid this but as a rule of thumb it's more secure to use a "full client" such as the official software. Once it has sync'd every time you use it after that it will only need to sync the data since it last sync'd so is much, much quicker.


text:
Can I do a replay attack to spend my testnet bitcoin on the mainnet?
I think it would be possible to create a legitimate seeming transaction on the Bitcoin testnet that the Bitcoin mainnet would accept.
I've read a bit about the ETC replay attacks, and it seems like it would be impossible, since there was never any hard fork to create testnet.
https://medium.com/@timonrapp/how-to-deal-with-the-ethereum-replay-attack-3fd44074a6d8
But I'm not sure about this. Has anyone successfully done it?
Do you know a good reason why it 100% would not work?

The answer is no, you can't, because the two chains don't share a common history.
Internally, transactions don't spend "from" an address. Instead, they refer to a specific output created by an earlier transaction which they consume.
In order for a replay attack to work, that same transaction whose outputs are being spent must exist on both chains. This is only possible when the two chains share a common history, and the earlier transaction either occurred before the fork (so it exists on both sides), or it itself was already a replay.
As soon as a transaction's history is not identical - meaning it consists of the same transactions leading up all the same to the same coinbase outputs that created the coins - they cannot be replayed, as the txids of the inputs will not exist in both chains.

I think it would be possible to create a legitimate seeming
  transaction on the Bitcoin testnet that the Bitcoin mainnet would
  accept.

no

// ,   soul + wit


text:
Scripts within Scripts
I have read the following:
https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki
https://darkwallet.is/bip16-17
However, I would like to know, can one specify a pay-to-script hash that includes another pay-to-script hash?
E.G.
Script for payer:
DUP HASH160  EQUALVERIFY CHECKSIG
scriptA:
DUP HASH160  EQUALVERIFY CHECKSIG
Can one include a CHECKSIG operation for another script inside a script referred to by a pay-to-script hash?
I'm probably not communicating this clearly, but I would basically like to know whether I can "daisy-chain" pay-to-script hashes together.
Let me know if I should add more examples, or what changes I should make to this.

As @amaclin said - no, but perhaps if you say why'd you need that, someone might propose an alternate solution. E.g. it's possible to daisychain a set of transactions...

No.
BIP-16 says that client executes script and if it matches P2SH - removes top item from the stack and executes it as script. That's all. No inner loops and checks.

authors: Сергей Харлов


text:
What is TimeKoin?
I just found this (on BitcoinTalk). TimeKoin seems to be an attempt at a cryptocurrency. There is a whitepaper and an about page, and I've skimmed through them, but I haven't been able to answer these simple questions:

What problem is it trying to solve (that Bitcoin doesn't already solve)?
How does it work? What is the difference/similarity in implementation from Bitcoin?

From the "Final Summary" part of the whitepaper: The strength of this system is that vast amounts of CPU power are not required to maintain it. Could this be the main motivation for this coin?

Reading the whitepaper, it lists its features as:

Being decentralised
Disclosing of all information on balances and allowin everyone to check for fraud
Decentralised money creating with difficulty adjustment, but apparently it can be done "without requiring massive amounts of CPU speed" (although some parts of the whitepaper appear to contradict this)
Each transaction is secured with 1,536 bit OpenSSL RSA encryption, private keys will be used to decrypt them
Money is created by participating in the network, rather than performing the calculations (no exact explanation was given how this would prevent abuse)

In general, it appear to be an attempt at creating a Bitcoin-like currency that is to be not-computationally intensive no matter the size of the network. Other than that it appears to replace digital signature algorithms with encryption algorithms and doesn't appear to do much else.
As there is no real explanation of how will the system try fighting off abuse (say in a form of a botnet), or how exactly the reward system works without relying on computational power, I would currently label it as something that needs to get its facts straight and present them to be scrutinised. If I were to make a guess from the vague description I read, the system probably won't be as secure as Bitcoin. I'm guessing it tries to make all peers equal and reward them equally, which will probably never suffice.

"as something that needs to get its facts straight and present them to be scrutinised" --> this translates as "scam" to me.

@Lohoris It has a potential of being a scam, but it can also be just a mistake on their part or an omission. I'd reserve the word "scam" for something that is actively working to steal people's money, while this still has some semblance of good intentions.

If you play with people's money and you are so stupid you don't do it properly, you are still scamming them to me. The fact that you are stupid instead of plain evil is no justification...

I don't get the RSA part. How would you secure transactions with RSA encryption?

Another Point

Less Decimals (reduces database size)
Money is created by participating in the network, rather than performing the calculations (no exact explanation was given how this would prevent abuse)

I will clarify your point.
You will still need to do some basic calculations to encrypt new coins.  It is basically nothing.
Yes, you gain timekoins by participating in the network.  But, generation rate is based on uptime.  Once, you get elected to be allowed to generate you will only be able to generate one timekoin every 5 minutes (cycle).  After one week of you will be able to generate 2 coins every cycle.  After two weeks you will be able to generate 3 coins per cycle.  Timekoin rewards people who have higher uptime.
If you are offline for two hours you will be deleted from the logs and you'll have to get elected again.
Protection against botnet

Lots of people will want to get elected at same time
they'll have to wait
After that wait they'll produce at a slow rate.
Most bots will not be online for 1 week+ straight.

So essentially you pay per static IP they own?

Timekoin is not trying to solve anything related to bitcoin. It is a different way to use digital online encrypted currency. The website has technical documents to read, but the concepts and implementations can not be easily summarized into a few sentences.
Transactions and Currency creation are two separate process. So transactions can be processed like clockwork every 5 minutes. Currency creation is created in slow, gradually growing amounts. Unlike bitcoin, where currency creation stalls transaction recording and vast amounts of electricity are needed to have peers compete against each other in a lottery fashion.

Similarity to Bitcoin:
A. Uses open p2p network to replicate transactions
B. Decentralized database of history transactions
C. Public viewable by anyone
Difference to Bitcoin:
A. Uses 1536 bit transaction encryption vs 256 bit for bitcoin
B. Transactions are protected by both RSA encryption and SHA hashing in a design modeled after naturally occurring quantum entanglement.
C. Transactions do not depend on currency creation, the network can function without any currency being created as long as currency exist to spend
D. Currency creation is a shared process among all server operators that participate, so there is no spending CPU/Electricity to fight over who creates currency.
E. Currency creation can dynamically expand and contract as the network needs the currency and is not limited to who can afford the most processing power.
F. Software is just an implementation of a concept, so anyone can create any kind of application or device to interface with the Timekoin network as long as it follows the rules of the network.
G. There is no cost to transactions, no micro fees, no decimal point transactions, everything is whole numbers.
H. The Timekoin concept for digital encrypted currency is very easy to understand, so easy that many people over-think it.
I. Built from the ground up with security as the guiding factor for both transactions and network health.
I could go on about the difference, but the website has a lot more to offer in this regard. http://timekoin.org/

But then Timekoin rewards those with the most IP addresses.  This is perhaps worse than BitCoin.  Large organizations who have massive IP address allocations get the most coin.  I assume this is IPv4 because if it was IPv6 then the problem would be much worse.


text:
When purchasing an item through BitPay, how do their exchange rates compare with the market exchange rates?
BitPay allows merchants to price their products in USD, and receive USD when a customer pays using Bitcoin. The exchange rate used at the time of purchase is calculated somehow by BitPay, but their website doesn't indicate how it's calculated.
If at the time of purchase BitPay immediately sold an equivalent number of bitcoins on, say, MtGox then the exchange rate used should be pretty close to the highest Bid price at that point in time.
Many people must have purchased items through BitPay. I'm interested in knowing what exchange rates were available on MtGox (or other exchanges) within a few minutes of the time of purchase, and what exchange rate was provided by BitPay. Can anyone provide an example of this?

Their website does have the methodology by which the exchange rates are calculated.

Thanks! I had no idea it was documented. This will do nicely as the answer.

Bit Pay's exchange rates are between 5 & 10% lower than the MT Gox quoted market rates. This is not made clear on their website. They advertise a rate of 1% flat which is misleading.

Mt. Gox has been having Cash Flow problems: People can't get their dollars out of the exchange, therefore Dollars on the exchange are worth less and buy less bitcoins. Because of that some other parties have moved to other sources for their spot price.


text:
Are there any properties of cryptocurrency that can help prevent accumulation of wealth by a few individuals?
Over time there seems to be a trend towards consolidation of wealth to a small number of individuals in human society.
Are there cryptocurrencies with any properties that could help prevent that happening?
Or, are there any properties a cryptocurrency could have that would achieve that aim?
Some years ago, there was a cryptocurrency called Freicoin that had built in demurrage, where the value of currency held by an individual would decrease over time. I understand this was intended to encourage spending rather than saving.
Possibly the concept of demurrage is a valid one even if the Freicoin cryptocurrency project was essentially unsuccessful in remaining viable. I suspect that due to the nature of demurrage, it may require people to choose to use the currency because they thought it was good for society rather than as a way to earn wealth with little work.
To be clear, I'm not asking this question to raise a discussion, I'm asking it to learn out about any discussions that have occurred or concepts that have already been considered.

Related, but still quite different: https://bitcoin.stackexchange.com/questions/37910/does-there-exist-any-cryptocurrency-that-doesnt-tend-to-centralization


text:
How to check if an address is valid in Bitcoin Cash?
A lot of users seem to be mistakenly sending Bitcoin Cash to Bitcoin addresses and vice versa. I understand Bitcoin Cash doesn't support SegWit and that if Bitcoin Cash is sent to a SegWit Bitcoin address then the Bitcoin Cash is not currently recoverable.
How can I check if a particular address is valid on Bitcoin Cash?

I'm voting to close this question as off-topic because it is not about bitcoin.

@Anonymous, despite the name of the site, it is ok to ask questions about other cryptocurrencies (except Ethereum and Monero, since they have their own sites). Check the site Tour page.

I’d like that rule to change due to substantially low quality questions, such as this one.

@Anonymous that's something to argue in Meta, rather than going against the site description and trying to change questions to suit your personal opinion. Note that this question has had more upvotes than downvotes, so it appears others are finding it useful.

I’m sure everything will be fine.

You can't. Most segwit addresses are actually p2sh addresses that are wrapped around segwit. As it is impossible to determine what the redeem script of a p2sh will look like there is no way of telling them apart. In summary: If an address starts with a 3 it is impossible to know if its segwit, multisig or something else. If an address starts with a 1 it is safe to send to it, the private key to access the funds will be the same on both chains.

How about if you have the private key? Does that make a difference?

Yes, that does make a difference. If you have the private key you can generate a so called p2sh-p2wpkh address and compare with the address in question. If they are the same, this is a segwit address. If not it is either a p2sh that has been wrapped around a p2pkh which you can check for by generating the p2sh for your private key, or it is a multisig which you can only check if you know all involved keys, or it is some non-standard script which you have no way of checking.


text:
I have my 12 word bip39 phrase but not in the right order
I have my 12 word phrase, but when i enter it in a wallet, it brings up an empty wallet, so i think i probably wrote it down in the wrong order. What can i do to recover my wallet?

Which wallet are you using?

brd wallet and blockchain

Did you manage to recover? There are tools that can try all possible permutations of 12-word seed phrases and find the one leading to a particular account.

I suspect that the words are in the right order, since BIP39 includes a checksum word - If they were out of order, it is unlikely that the wallet would have accepted them to even attempt a recovery.
It is more likely that the two wallets you used were using different derivation paths and/or address types.
A seed phrase can lead to many different addresses, such as regular addresses, P2SH-P2PKH addresses, and native segwit P2PKH addresses. Many wallets these days support multiple types of addresses, and you would need to point the wallet to the correct derivation path when restoring a seed.
Moreover, wallets such as electrum default to their own seed semantics, and must be told to use BIP39 explicitly, which can also lead to different addresses being derived.
Your best bet would be to look up the original wallet and see what type of addresses it was deriving, and the derivation path. Then, use another wallet that allows you to restore the same path and address type.

I have the address, so what can i do?

A helpful resource to find a wallet's derivation path is https://walletsrecovery.org/ - could be useful to add that into your last paragraph.


text:
how to create web wallet for bitcoin
I want to create a web wallet for bitcoin in which anyone can create their account and do the transactions but my node allow me to create one desktop wallet only. so i am not getting how this webwallet will work for multiple users.

Bitcoin core does not support multiple users with separate addresses in a single wallet.
Neither does it provide for running a wallet service to other people.

Although, it could be used for one but, your backend and not Bitcoin Core will have to handle the details of user balances and transactions between users.


text:
How to specify the right input and output to be signed for SIGHASH_SINGLE
For my understand, when building a new TX, need to produce a new scriptSig for the TX; and need add a sigHash code at the end of the TX. If the sighash type is SIGHASH_SINGLE, for a TX with multiple input and output, how to specify the right input and output to sign.

A signature is applied to the input being signed by default, so you don't really pick the input.
You have two options:
SIGHASH_SINGLE - All inputs are signed, and a single output with the same vout index as your vin index is signed. That is to say, if you have a tx with 5 inputs, out of which your input is the second one, and 4 outputs, all five inputs and the second output will be signed.
SIGHASH_SINGLE | SIGHASH_ANYONECANPAY - This will only sign your input and the corresponding output, instead of signing all the inputs. Essentially, in the above example, input 2 and output 2 will be signed.

Thanks! In my case, I have 1 input and 5 output, so the SIGHASH_SINGLE will sign the only input, and which output, Vout0 or Vout1 or Vout2? Why?

From your answer, my understand is that the only new signed vout' index depended on the index of pre vout, is that right. So, if the pre vout's index is 4, the signature will only include the vout 4 for output. Is my understand right?

It will only sign vout 0, since, you have only one input, which will be at vin0.

Thanks again. one more question, in your example, why the second output is selected from the four output, not others? my understand is the Sighash code is put at the end of the whole TX message for the whole TX not for a single input. I think maybe  there is something wrong with my understand.

Each input is signed individually, and the sighash can be different for each input. I wrote a blog post some time ago on how multi-sighash transactions can be useful, if you are interested in that


text:
Question about Merkle path verification
I think I understand Merkle verification, but I just want to make sure. Consider this following picture where all the blue nodes were sent to me

My question : if the document that I want to verify is the one that hashes to HL, I still need to have HK in my storage right ? Because otherwise I can't compute the Root, to compare it with the real root.

Merkle trees in general are useful in the context of a prover-verifier model.
A prover Peggy wants to prove to verifier Victor that a merkle root R, which Victor knows ahead of time, commits to a tree which includes a specific leaf L.
To do so, Peggy would send the element L well as the Merkle proof (or branch) containing all hashing partners L is combined with to produce R. In your example diagram, that proof consists of Hk, Hij, Hmnop, and Habcdefgh. Victor uses these elements to recompute R from it, and compare it with his pre-existing knowledge of R.
So to answer your question: certainly something has to keep Hk (or the elements that has to it, so it can be recomputed), but it doesn't need to the same party as the one that does the verification. If there is only one party involved, there is nothing to prove.


text:
listunspent rpc/cli command doesn't seem to list unspent unconfirmed transactions for watch-only addresses
I am unable to list unspent unconfirmed transactions for watch-only addresses. Once the transaction gets at least 1 confirmation it gets included in the returned result.
This is the command I am running (split into multiple lines for easier comments):
bitcoin-cli
   -rpcwallet=*** # redacted wallet name
   listunspent 0 # minconf
   99999 # maxconf
   [] # addresses - empty seems to mean all
   true # include_unsafe

Documentation of include_unsafe:

Whether this output is considered safe to spend. Unconfirmed transactions from outside keys are considered unsafe and are not eligible for spending by fundrawtransaction and sendtoaddress.

This statement makes me think that this is an actual bug. It's worth noting that for addresses generated by wallet (not watchonly) unconfirmed transactions are showing just fine...

So...
Seems like listunspent is actually working fine. However, importmulti doesn't seem to scan mempool for transactions.


text:
What if I don't send back the remaining satoshis to myself?
I'm trying to send a tx request to bitcoin node to make a transaction. All tutorials send back the remaining satoshis to themselves. What if I don't do that and don't send remaining satoshis to myself?

Transactions require that the amount sent in outputs does not exceed the amount consumed by the inputs. The difference between the two is implicitly the transaction's fee, which can be claimed by the miner that accepts the transaction into a block.
Thus, if you construct a transaction which consumes more than you want to send, but don't explicitly add an output to make those coins actually go back to you, you're burning them as transaction fee.

but i have to give some fees to the miner right? how much is enough if yes?

Here is the state of the mempool with respect to fees, you must figure out how many bytes your transaction is and include the appropriate fee based on this and your desired speed. https://jochen-hoenicke.de/queue/#BTC,6m,weight


text:
Why has Intersango stopped accepting UK bank transfers?
http://www.reddit.com/r/Bitcoin/comments/ztjcf/intersango_no_longer_accepting_uk_bank_transfers/

I hadn't been on the site in a while, but last night I sent £30 to
  Intersango, only to find out today that they no longer accept
  transfers. Have opened a ticket with them but am a bit worried that my
  money will be lost in the ether!

Was the a formal announcement? Do they expect bank transfers to resume?
What's the deal?

In the UK, banks are free to discontinue providing a banking relationship with certain customers.  Metro Bank chose to do so with Intersango.  They now have no bank in the UK, and there is very little trading on their BTC/GBP market since the August 30th action as there are no methods for moving GBPs in or out..
There have been no mentions that I've seen of this being resolved anytime soon.

http://bitcointalk.org/index.php?topic=63877.msg1122824#msg1122824

For updates, see Intersango's status page.

Thanks. Followup on Quora: http://www.quora.com/Bitcoin/Why-are-various-institutions-choosing-not-to-work-with-Bitcoin-businesses