Can I recover my Bitcoins bought in 2009? I am a complete novice to the whole Bitcoin thing.  Can someone advise me please? I bought Bitcoin in 2009 when it was first launched. I  had downloaded the wallet(been told it was a Bitcoin qt wallet)to my desktop back then but no longer have the computer now. I do not remember the 12 word phrase, but I do remember the email address and the password. The email service provider shutdown in 2017, so I can’t access the original email. I only did one transaction and that was to buy Bitcoin. My questions are...
Would the transactions be recorded in present day Blockchain? Or are there many different Bitcoin Blockchains at present or just one Bitcoin Blockchain?
Can I recover the Wallet ID just by knowing the email address and password?
Are my Bitcoins lost forever?
I am getting lots of people telling me different things, so confused at the moment. Any help would be greatly appreciated. Many thanks

I had downloaded the wallet(been told it was a Bitcoin qt wallet)to my desktop back then but no longer have the computer now.

If you do not have the computer, you will need the wallet file or a backup of it.
As Pieter mentioned in a comment above, the software would have originally just been called 'Bitcoin' at that time.

I do not remember the 12 word phrase,

Mnemonic seed phrase backups for bitcoin keys did not exist in 2009

but I do remember the email address and the password.

The bitcoin software does not have anywhere that you would register an email address. Perhaps you were using a bitcoin wallet service of some sort? (though none existed in 2009, the earliest examples would likely be in 2010-11)

Would the transactions be recorded in present day Blockchain?

Yes, all transactions are stored in the chain for all time. If you owned coins and did not spend them, then they will still reside at the address you last sent them to. The only way to move them from there is to sign a valid transaction with the private key for that address.

Or are there many different Bitcoin Blockchains at present or just one Bitcoin Blockchain?

There is only one Bitcoin (BTC).

Can I recover the Wallet ID just by knowing the email address and password?

If it was a self-hosted wallet, then no. If you used a wallet service that is still around, then you will need to contact them to hopefully recover your account.

Are my Bitcoins lost forever?

If you cannot recover the wallet (private keys), then yes. They will unfortunately remain forever locked.
Your best bet is to very carefully check over any hard drives / old storage mediums you may have, as well as email addresses, or any other places online you may have stored your data. You could also look for physical backups of your keys ("paper wallets"), which would likely just be a printed sheet of paper with private and public keys listed for said address.
Best of luck!


How to resynchronize all blocks using `bitcoin-cli`? Sometimes, I need to resynchronize all blocks using bitcoin core, but I want to do that through bitcoin-cli. I found a command called -rescan that may resolve my question on this site, but as I searched the api list of bitcoin on the official site for
-rescan, I couldn't find it out, therefore, I want to make it sure.

-rescan is for your wallet. It will check for missing transactions on startup. If you want to resynchronize all blocks then I think you want to use -reindex which will rebuild chain state and block index from the blk*.dat files on disk. Of course, these are command line parameters.

You can probably use verifychain on bitcoin-cli. Type bitcoin-cli help verifychain for information.


how is the value of crypto coin decided Can any one help me with required information how a newly created coin value is assigned ? and how does the rate fluctuations occur

The market decides. If people can obtain the coin easily themselves then they will mine it rather than buying it on an exchange.

But the coin needs a use, function, purpose or reason for people to have the coin.

Basic supply and demand. If people do not buy the coin at a high price then the price gets lowered to see where people might consider buying it.

Crypto coins generators realized this and tried to tweak the parameters on the coins so that rewards are high at the start, a fast rising difficulty make the coin look rare and highly sought after, in reality the coin has just been pumped ready to dump


Why does Ripple use Blockchain technology in the first place? This is what I understand Ripple's use-case with banks.

You and I announce to a trusted third party that $10 million of my money should now be considered yours. This third party isn't a middleman who holds debt,  - it simply keeps track of IOUs and regularly announces to all parties who owes who how much. The ACH system in the US (a.k.a. "Direct Deposit") works this way.

So, for the most part, bank's don't actually send money to each other at all - they just keep track of who owes who how much. Actually settling those debts, if it happens at all, has to happen outside of the systems above.

Ripple, as I understand it, basically a distributed public ledger of IOUs. (And those IOU's can themselves be traded as currency, when they're written by a trusted party.)

But why ripple uses Blockchain technology. Here doesn't Ripple acts as a middle-man? Why not to use central DB's? What is the difference of Ripple from a company that creates network of banks but rely it's technology on Oracle DB and related API's for example? Also who are the miners and nodes of the Ripple's use case with banks?

Thanks.
Firat

This is a very good question. The simple answer is marketing. Technically, a standard database would have been much more efficient in achieving the same. However, there would have been even less reason to invent a token (XRP), you couldn't have found them on coinmarketcap, and they couldn't call it blockchain. So no billions for the founders.


Why are transactions taking so much longer in the last few days (2017-10-29) I noticed that in recent blocks there has been lots of transactions that has been waiting for as many as 3 days.

For example, just randomly picking a block 492200, which was produced on 2017-10-29 12:04:50, there are transactions that date back to 2017-10-26 17:32:41

However, when I looked at blocks just two weeks ago, there weren't any transaction that were waiting for so long. Again randomly picking an example block 490200, produced on 2017-10-16 20:54:59, the earliest transaction in that block I could find was sent out on 2017-10-16 13:02:04.

So what has happened to the block chain in the past two weeks (except for the Bitcoin Gold fork, but I don't see how that relates to this)?

Note: I am not asking about how to solve unconfirmed transactions. I am just simply curious what is causing this to happen as block times and network hash power doesn't seem to have changed much.

Another example: Transaction is stuck and unspent 2days+

So what has happened to the block chain

Some miners moved their hashpower to Bictoin Cash blockchain because it was more profitable for a while. https://cash.coin.dance/blocks

This resulted less hash power on bitcoin main chain and larger intervals between blocks.


How to accept bitcoin and giving each user a unique address amd automatic withdrawal I want to create a website when users on singing up will get a unique address and after getting my websites service,they can withdrawal the money also automatically.
Is that bitcoin integration free ? Plz help i am noobie to this.

You could use online providers such as:

https://www.blockchain.com/api
https://www.blockcypher.com/dev/

Or install Bitcoin Core to run a full node and use RPC APIs


why is double-spend not an issue for payment channels? Micropayment Channels (MPC) cannot be used currently because of transaction malleability, I hear.

AFAIK, people saying that have in mind that the refund & payment tx, which have as input the deposit tx (Dtx), could be invalid if the deposit's hash was changed. I m fine with this.

What I don't understand: if the attacker manages to modify Dtx' hash before it made it to the blockchain, I believe (s)he can equally manage to double spend the btcs supposed to go to Dtx. Thus, double spend seems as much a threat as malleability. Yet no one discusses it, so I suppose something is wrong with this reasoning. What?

Is the following correct:

whenever malleability attacks are possible, then so is double-spend attack.
?

Thanks

Great question. In order to understand how it works, you have to understand that opening a micro-payment channel (MPC) requires a commitment before you get started. That is, both parties have to show proof that they can't double-spend these transactions before they get started.

How is this possible? SCRIPT, of course. A transaction (2-of-2 output) that's dependent on other transactions is signed first, which opens up the MPC, and then, and only then, do both parties release the transactions that would make this other transaction valid. At that point, the funds are committed to the channel and cannot be double-spent since it's locked in a 2-of-2 output, which must be signed by both parties, hence eliminating the possibility of a double-spend.

A more thorough explanation can be found here.


Who do I send money to if I want to create an OP_RETURN transaction I simply want to store one small string in the blockchain. That's it. I am reading here a step by step guide but there is little in terms of explanation beyond the code snippets. What I would like to know is if essentially the problem is this...

There are two parties: me and someone else. I need to somehow get that "someone else's" address, and can figure out the rest from there.

But the main problem is, I don't have any "someone else" I would like to send the money to (or even need to send money to). I simply want to place something in the blockchain.

How are people doing this in their tutorials? Who are they sending the money to? Are they just creating a "dummy transaction" against a "dummy address" of some sort, and then getting a refund of the money? That way it seems the data would still be in the blockchain, but then no money would be spent (other than a potential processing tax fee).

If so, how do I do that? Am I supposed to setup two bitcoin networks, and send data from one to the other? That is, create a transaction of sending money from one to the other? Or perhaps even easier (though not possible?), I can get two addresses from my bitcoin node, and then send money from one of those addresses to another. Is that possible?

Nothing prevents you to send bitcoins to one of your own addresses. I guess I'd just create a new address on my node with bitcoin-cli getnewaddress, and then create a transaction with 2 outputs :

one to the address I just got with my whole input amount (minus mining fees)
another to a "dummy" address (can be one you generated with the same method, you can't spend it anyway!) with OP_RETURN + [your_data], and of course 0 as amount

As for the exact way to do this, the post you linked too seems like it could work, but I never tested it myself. The idea is to create the transaction first with the createrawtransaction method from bitcoin-cli, and then modify a piece of the data with yours.

As I said I never did that, I highly suggest you try it out on testnet first, there are many things that could just go wrong.


Trying to import a private key into bitcoind I am in a special situation where I need to import my private key credentials and basically restore a wallet to bitcoind. bitcoind is running and I do have an rpc user/pass and server=1 in the bitcoind.conf, but no matter what I do, when I try and import the key I get the following error.
There is no password nor encryption on the wallet.

root@coined:/home#  bitcoind importprivkey "5JxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxHjdCia9dt7" "root"
error: {"code":-4,"message":"Error adding key to wallet"}

Without anything in the log, it's difficult to day. But here are a few suggestions what could try to find out the cause of the error:

Do you have write permission on the wallet.dat file in your .bitcoin directory?
Is the wallet locked with a passphrase? Then you need to unlock it (would probably give another error message but worth asking).
Did you set the disablewallet option either in command line or configuration file?
Is your wallet possibly locked due to a -reindex operation?


How do I verify an address with GPG and Sign a bitcoin txid with a sending key as proof I sent bitcoin? I was looking at donating Bitcoin to the Free Software Foundation and took a look at their PGP signed message here.
However, I have three questions regarding the signed message.

1.) While I was reading the message I saw the text below saying to "verify each address, line and signature." How would one go about verifying these?

The following lines containing each address, owner and date are signed
by their respective private keys, suggesting that they are valid,
controlled by the FSF and this GPG message signer attests that they
are to be used for donations. Please use each client software to
verify each address, line and signature.

1PC9aZC4hNX2rmmrt7uHTfYAS3hRbph4UN donate@fsf.org 20130802
pG+OoJaENOBvY2rPqB8s8Vssmb+/aw7SgE/2TLtZVmtVO8be5eYBXt4CTqbQo0YzcN97eGz8Fv8GpaqhdV2NgrfI=

2.) If I were to send some bitcoins to the Free Software Foundation and would like for them to know they came from me, I would have to provide some sort of proof. The following excerpt from the message says how to do this; however, I still do not quite understand how to execute this:

Request Receipt of Donation
===========================

If you would like for us to know who the contribution came from, and
to be able to acknowledge receipt of your donation, then please email
<donate@fsf.org> with your name, mailing address, and contribution
info including your txid. Signing your txid with one of the sending
keys as visible in the block explorer is optional but it can serve as
proof that your contribution really came from you.

We are a 501(c)(3) charity.

I know that the txid is a unique id of the transaction and hash, but how what would a "sending key" be? How would I then proceed to sign the txid with the sending key?

3.) I used Gpg4win to verify the whole message by importing John Sullivan's GPG public key from here and clicking the "Verify" button. But how does this work and what purpose does the PGP signature at the bottom of the message serve?

1.) While I was reading the message I saw the text below saying to "verify each address, line and signature." How would one go about verifying these?

Your Bitcoin wallet software should have an option to verify a message. For example, in Bitcoin Core, you go to File > Verify Message and a dialog appears where you can enter the address, message and signature. In whatever verify message window, enter the address, message (the line containing the address, email, and date), and signature (the line after the address). Then click "Verify". The software will then check whether the signature verifies.

If the signature does verify, this means that the owner of the private key for that address actually made the statement that is the message AND that the message was not tampered with in any way.

  2.) If I were to send some bitcoins to the Free Software Foundation and would like for them to know they came from me, I would have to provide some sort of proof. The following excerpt from the message says how to do this; however, I still do not quite understand how to execute this:

When you send Bitcoin to someone, your transaction will "send from" some addresses (it doesn't actually send from any addresses, that's now how Bitcoin work). If you look at the transaction details in a block explorer, you will see something labeled as the inputs and a list of addresses. Those addresses are what are referred to on the website as "sending keys". Those addresses should all be from your wallet.

So what you should do is get the transaction ID of the transaction, find an address that is listed as one of the inputs of the transaction, and then use your wallet software to sign a message (the txid) with that address. You then email that message, the address you signed it with, and the signature, to the FSF. Your signed message can be more than just the txid, it can have any text that you want so you can include things like your name, mailing address, and contribution info.

  3.) I used Gpg4win to verify the whole message by importing John Sullivan's GPG public key from here and clicking the "Verify" button. But how does this work and what purpose does the PGP signature at the bottom of the message serve?

The PGP signature does two things: it proves that the owner ofthe PGP key (John Sullivan) actually made that statement (or at least knows of its existence) and it verifies that the statement itself was not tampered with.

This verification, combined with verifying the address and it's signature earlier, prove that John Sullivan has control over those addresses (because he provided a signature with those addresses and he signed both the addresses and their signatures with his own PGP key). Thus if you send Bitcoin to that address, John will receive the Bitcoin.

For more and better info on what a signature means, I suggest you read the wikipedia page on Digital Signatures.


How to get BIP34Hash and nMinimumChainWork? I'm interested in the technical question of how you got BIP34Hash and nMinimumChainWork.

The changes were introduced here:

nMinimumChainWork: https://github.com/bitcoin/bitcoin/commit/ad20cddce2097c6561202777fccd257deb1a9810

BIP34Hash and BIP34Height: https://github.com/bitcoin/bitcoin/commit/33c90cf197223fb95f858db80d090d570d70498a

The BIP 34 hash is the block hash at which BIP 34 was fully activated and all blocks less than version 2 were rejected as invalid.

nMinimumChainWork is a value that is updated at every release. It is retrieved from the getblockchaininfo RPC of a node that is up at the time of release. nMinimumChainWork is updated at the same time as assumevalid. It is calculated by summing the work done in each block which is calculated by doing 2^256/(target+1)


Can I mine with CGMiner or BfgMiner with both an AMD and NVidia GPU on the same MOBO? I cannot find any good articles or webpages on this, is it possible to run CGMiner with both an AMD and a NVidia graphics card installed? I think I can remember reading something way back that said you shouldn't but can. Does anyone know any concrete information on it?

Yes, it´s possible.

But, there are some things that you shound know:

1) Minning Bitcoin with GPU is almost dead, you should have read about other crypto coins. Specifically "scrypt" based ones.

2) Nvidia are not power efficient for mining... would be better if you just sell the nvidia and buy a amd with the same price. Unless you want to use your nvidia for gamming, video editing... dunno... just not for mining.

3) CGMiner = AMD ; CUDAminer = Nvidia ... diferentes programs. don´t no if they work well together... if it does, them you are good to go :-)

hope i had help you.


How do I mine VoteCoin? First I am not trying to open a bank but I have a core i3 3210 @ 3.20 GHz and a gt 210(pretty bad).I know I am late at mining so I thought of alt coins,like people who invested in bitcoin first, now they would have returned with a greater result.I bet you gotta agree with me like some more coins Monero,Zcash,Etherium,Dash.
These coins were also worth nothing as the time went by, they are crushing the crypto currency mining.My computer can't mine any of these.
No one one knows what another coin can get in the market.I looked up on coinsmarketcap recently added coins and found Votecoin which is at is acceptable state (November 2017).All I wanted it to mine some VOT(votecoins) but I really can't get it to work most of the miners are for CUDA 7.5 or 8.0.Although I cannot even get a cpu miner.It uses Equihash algorithm, would be fine for my old system at lease 2 -5 coins a day right now.just think as I think if getting 150 VOT(votecoins) with my current rig and after months or even 1 - 2 years like bitcoin it at least be the worth of 25$.But in this meantime if I mine Monero or Dash I won't be near the revenue I will in an investment like this.People with mining rig's and good Cards get instant results but what about the people who don't have equipment's but can mine and wait for a great revenue
Plz someone just help me out, it will go a long way down.I am at a point now to lose all the hope I got as a crypto currency enthusiast, neither of the software recognizes my GPU but for VOT which is currently 2 cents per coin.All I want is a satisfaction I have some coins in my wallet at his point.Even getting 1 really 1 coin in 10 hrs is enough for my satisfaction now.
Please even a cpu miner is accepted for me.
more specifically,

How do I mine Votecoins using my Cpu Even

or if you the answer of this

How do I mine Vote coin with my GPU
Cpu Miner for equihash algorithm

I do not want any answers like it is not profitable.At this stage I am not looking to profit but to satisfy my heart.

First show what Algorithm it is built on. Second look where you can see Mining Pools for it (Google can help). Third download Mining Tool.

Pro tip: Mining with CPU is less rentable than with GPU and it makes no sensen anymore.


What forums or websites have an active bitcoin section? Which websites have active bitcoin communities with discussion that is going on?

Bitcoin Talk is currently the most active.

The bitcoin reddit also has a fair amount of traffic and discussion.

After that, it falls off pretty significantly.

Talk Gold has some discussion, so does bitcoin.org.uk.

bitcoinforums.net and other forums are sparse. (See link to wiki in Chris Acheson's post for a list of all current forums)

There are of course often discussions about blog posts or news items on tech related blogs like Slashdot, Ars Technica, Wired, etc. The same is true of some sites dedicated to online gambling, and some Tor forums dedicated to the Silk Road and similar projects.

There have also been some longer threads that are especially useful for miners at the Overclockers Forum


Mining bitcoin using cudaminer? I have started mining using an nvidia gtx 670m GPU. I have compiled cudaminer and started mining on the slush pool. However, during mining I always get results similar to:

accepted: 0/X (0.00%), xx.xx khash/s (booo)
accepted: 0/X (0.00%), xx.xx khash/s (booo)
accepted: 0/X (0.00%), xx.xx khash/s (booo)

where X is an increasing counter and xx.xx is the hash rate(usually between 75.00 and 100.00 khash/s). Is this related to networking, more specifically port forwarding? I am asking because the bitcoin-qt client managed to synchronize with the network.

That means your results are being rejected. Most probably becouse someone else's found them before. Mining bitcoins at 100KH/s is useless, at 280GH/s 0.06BTC are mined daily so....


Convert plaintext script into hex-encoded script in python I'm creating a program (for an altcoin I'm developing) that should make it easy to create OP_RETURN transactions. Currently I'm having some trouble with actually creating the script pythonically (I can do it by hand but no idea how to program it).

As an example, the program takes an OP_RETURN script (eg. 6a4c0a0102030405060708090a) and creates a transaction with that script, by itself. However, currently you need to input the actual hex script instead of the string you want to send to the blockchain.

My question is - what's the best way to take a string/int and convert it into a transaction-friendly hex-encoded script? For example:

String: OP_RETURN 12345678910
Output: 6a4c0a0102030405060708090a

Thanks a bunch to anyone who helps. I'll you all some bitcoin if you manage to find a good solution.

I'm reading the specification. Your hex string has to start with 6a [OP_RETURN opcode] followed by 4c [OP_PUSHDATA1] followed by a one-byte number indicating the size (in bytes) of the following data. You have 10 bytes, so this 0a. Then come your actual data, and here I think you made a mistake. In any case, 0102030405060708090a (in your by-hand example) is neither the hex encoding of the string "12345678910" nor of the integer 12345678910. Look at this python snippets:

>>> from binascii import hexlify
>>> hex(12345678910)
'0x2dfdc1c3e'

>>> hexlify("12345678910".encode()).decode()
'3132333435363738393130'

So I guess you need to clarify what your data represent and how you want it encoded...


Why hash witness script instead of pubkey script in signature? When a segwit input is signed, the signature will commit to the witness script (or a p2pkh-like script in case of p2wpkh). This is specified in BIP143:

  For P2WPKH witness program, the scriptCode is 0x1976a914{20-byte-pubkey-hash}88ac.
  For P2WSH witness program,

  if the witnessScript does not contain any OP_CODESEPARATOR, the scriptCode is the witnessScript serialized as scripts inside CTxOut.
  if the witnessScript contains any OP_CODESEPARATOR, the scriptCode is the witnessScript but removing everything up to and including the last executed OP_CODESEPARATOR before the signature checking opcode being executed, serialized as scripts inside CTxOut. (The exact semantics is demonstrated in the examples below)

What's the rationale behind this? Why doesn't the hash commit to the pubkey script as in legacy (p2pkh and p2sh) payments? This difference complicates signing/verification code a bit, so I suppose there must be some good reason for it.

Maybe my question should be: Why does the hash commit to any script at all for segwit inputs? In legacy signatures, putting scriptPubkey in scriptSig for the current input is a (complicated, see below) way to avoid signature reuse between inputs. But in segwit, this is accomplished with the outpoint part of the hashing algorithm. So couldn't we just skip the scriptCode part?

It seems to me that there is another reason for why we hash the scriptPubkey for legacy signatures and the witness script for segwit signatures, since there are simpler ways to avoid signature reuse:

Legacy: We could just have added a dummy byte somewhere in the current input
Segwit: Current input's outpoint already solves the problem.

I'm just guessing, but by having the transaction commit to the scriptCode, we ensure that the signer knows what script they're signing for.  A hardware wallet, for example, can only be certain that outpoint 1234...cdef:0 pays a particular script if we give it the transaction that created that outpoint (so that it can hash that transaction, verify the txid, extract the scriptPubKey, and compare that to a provided witnessScript).  Because a transaction (without witness data) can be up to almost a megabyte in size and a spending transaction can refer to thousands of previous transactions, we create a situation where low-resource devices such as hardware wallets have a hard time verifying what they're signing.

By contrast, with BIP143, we need only tell the wallet each of the scriptCodes it's supposed to sign for.  BIP141 allows these to be up to 10,000 bytes, which is just 1/100th the maximum size of a transaction.  The wallet can examine these scriptCodes, ensure they agree with what the wallet expects, and commit to them in its signature knowing that if the person sending them the scriptCode lied about the actual scriptCode, the signature will be invalid.

This is the same reason the BIP143 signature format commits to the value of each input.  Before it had to process previous transactions in order to get their output amounts; now it just accepts whatever data it receives and signs it knowing that, if someone lied to it about the amount, the signature will be invalid.


bcoin daemon killed over and over again [BCOIN] I am setting up a full bitcoin node using BCOIN.

I spinned up a VPS on Google Cloud. Specs: 2 CPUs and 7.5 GB of RAM. 500gb of standard storage. OS: Linux ubuntu.

As I start the daemon, things go well at first. Then, I receive less and less blocks and after 10-15 minutes the daemon gets killed.

I even tried to beef up my VPS with 4 CPU and 15 GB of RAM. I also added a SWAP file. Same resault: deamon dead after 10 minutes.

I checked resource consumpion and it seems that there is plenty of spare RAM and CPU. So the VPS set up is not a problem.

Can anyone help me to solve this problem ? Thanks :-)

At this time, bcoin requires nodejs version 10.0 or greater.


Can't we use all the mining/processing power to calculate useful stuff? When computers are mining now, they're actually trying to break nonsense codes. Can't all that processing power be used to do better things with like
gridrepublic etc.?

Yeah it could be it's just not the type of proof of work algorithm that was used. Some crypto-coins have since been implemented that are somewhat useful, such as Primecoin.


Is there an online wallet service that will allow me to access an rpc server? Let's say I have an online eCommerce solution running with a plugin that is designed to connect to a bitcoin daemon running on the same server, but I am too cheap to hire a vps or dedicated server, so instead I want to use an e-wallet service. Is there one operating that will give me a server address, username and password?

It isn't free, but:
 - http://www.microthosting.com/bitcoin-servers.html

http://en.bitcoin.it/wiki/BitCoinD_Cloud_Hosting


Public Key in Use Verification This may be a bad question, but I am just getting started and you have to start somewhere.
I have seen it discussed that generating the same public key as someone else is theoretically possible but has such a low probability that we don’t need to think about what would happen if this event occurred. I am content with this.
But, if I go and create a public key tomorrow (which I understand to be a completely offline thing) it seems that it could be simple to at least check and see if that public key has ever been used in a transaction before. I believe I have read that nodes keep a list of public keys with unspent Bitcoin for quick verification in processing transactions, this could theoretically be used for the check I describe. This would make me feel more certain that at that time I do indeed have a public key distinct from all other public keys (the only possibility being that someone might have that same public key, but has never received Bitcoin).
So I understand the probability is horrendously low, I’m not concerned about it actually happening, I just want to understand in a theoretical since but if that check would be simple enough to to perform as a just in case. Is such a check possible?

You have pretty much answered your own question.
Yes, such a check would be possible, but it would have a cost (need a database lookup, at least). That cost isn't worth it, because the risk of actually finding an address that has been created by someone else before is so utterly mindbogglingly small - it just won't ever happen.
Furthermore, even if such a check would be done, it would have severe limitations:

Only full nodes (which have access to their own unspent coin list) could do it directly; other wallets would need to query another service, which is inherently a privacy risk.
Hardware wallets are obviously unable to do this at all, as by definition they cannot access the internet.
Even on full nodes, generally no by-address index exists of the unspent coins list; only a list optimized for access by created-by-txid. Since it's an unspent coins list, it cannot account for addresses that were used in the past but don't currently have any coins assigned to them.
Even ignoring all that, such a check can only account for addresses that have actually been used. There are probably far more addresses created (and thus someone already has the key for) than have ever been sent to.


ECDSA x,y coordinate validity verification doesn't seem to work The ECDSA algorithm, secp256k1 for Bitcoin allegedly uses the equation

y ^ 2 = x ^ 3 + 7 mod P

to determine the validity of an alleged point upon the elliptical curve.  Utilizing
http://web2.0calc.com/

When verifying public key 1 which has the following qualities:

x = 55066263022277343669578718895168534326250603453777594175500187360389116729240

y = 32670510020758816978083085130507043184471273380659243275938904335757337482424

I applied x ^ 3, then added 7, then mod P on that webpage.  Then I square rooted it and got

180964706334543048141953325634608696715.426683454595872

Which is not y.  How am I doing this wrong?  My results suggests that this point is not a valid point on the curve, but everyone knows it is.  Obviously I'm the one who's wrong.

EDIT:  I'd like to further clarify the question.  My question is, how does one actually determine (as an example) the Y value while only having the X value.  Bitcoin does it, the "Bitcoin Address Utility" also does it.  When someone has a compressed key (which only contains the x coordinate) they are able to get the y coordinate as well.  Utilizing the aforementioned webpage calculator does not work and others are saying its "modular root".  Anyone have Python 2.7.7 code which would do this or have a relatively simple way of explaining how to accomplish this whole thing?  Thanks.

The plain text format of this equation only makes sense when you understand the theory behind it.  y ^ 2 = x ^ 3 + 7 mod P means "do all math in this equation using the finite number field with definition P".  It might better be written (y^2 = x^3 +7) mod p.

To keep the math simple, lets simply subtract one side from the other to see if that evaluates to zero.  This lets us avoid roots. Here's code using the Python interactive shell, e.g. python from a command prompt):

>>> x = 55066263022277343669578718895168534326250603453777594175500187360389116729240
>>> y = 32670510020758816978083085130507043184471273380659243275938904335757337482424
>>> p = 115792089237316195423570985008687907853269984665640564039457584007908834671663
>>> (x**3 + 7 - y**2) % p
0


Is it safe to store bitcoins on p2sh (no multisig)? I've just generated p2sh btc address and look in the output script:

HASH160 PUSHDATA(20)[e5c32bdc7f7fb1e6ae7aa1baf42a429803054d2c] EQUALVERIFY

while normal (legacy btc address) transaction has signature check

DUP HASH160 PUSHDATA(20)[e5c32bdc7f7fb1e6ae7aa1baf42a429803054d2c]
EQUALVERIFY CHECKSIG

Is it safe to store bitcoins in this address with this scriptsig ?

Or it use a same key for the signature check?
If yes, what a reason to check the signature ?

Thanks

Is it safe to store bitcoins in this address with this scriptsig ?

That is actually the scriptPubkey, and it is only safe if you use a safe redeemScript.

A P2SH script is a Pay-to-Script-Hash script, meaning when you spend the coins, you must provide the script (and the hash must match), but this script you provide, called the redeemScript must also succeed when it is executed, and can be any valid script.

Typically this is a script similar (if not exactly the same) as the one you provided, which is a P2PKH or Pay-to-Public-Key-Hash. Thus, it also requires a signature, so if you use a P2SH(P2PKH) it is still just as secure as using a P2PKH because of the signature requirement in the P2PKH, you just have to also provide the redeemScript.


How can I split my bitcoin wallet? Let's say I have 10 bitcoins. I won't be using 8 of them any time soon. How can I put the 8 in a separate "offline" wallet not related to the bitcoin client?

This would be a good security measure. If the bitcoin client is ever compromised, only the remaining 2 bitcoins would be at risk.

It seems rather reckless to have all of one's savings in the same wallet.

Go to your Bitcoin data directory
Backup your wallet.dat to a safe location
Move your wallet.dat away from the data directory
Start Bitcoin. It will create new wallet.dat
Get an address from the new wallet, save it in notepad
Encrypt the wallet with some passphrase you will remember for a long time
Turn Bitcoin off
Go back to your Bitcoin data directory
Take the new wallet.dat and store it somewhere safe
Move your old wallet.dat file back into the data directory
Run Bitcoin again.
Send 8 Bitcoins to the address you saved in notepad

Now you have two wallet files - one with 2 bitcoins for your normal use, one with 8 bitcoins for keeping them safe. Just make sure not to lose either of the two wallets, or you'll lose your coins.

Keep your wallet.dats backed up and don't run duplicates at the same time.


How is the current hashing power of the entire network measured in real time? Does hash power refers to mining nodes only ?

We don't know how many nodes there are on the Bitcoin network, correct?
How do we count them?

Would we need to know [2] in order to figure out what the actual hashing power of the network is?

What are the units of hashing power?

Does hash power refers to mining nodes only?

Exactly. Other nodes just make sure everything's OK, or they don't relay it.

We don't know how many nodes there are on the bitcoin network, correct? How do we count them?

We can only count public nodes, but still, there are nonlistening nodes, nodes on the same IP, etc. So it not 100% accurate.

Would we need to know [2] in order to figure out what the actual hashing power of the network is?

Nope. We can calculate the total hashpower in two ways:

Visit each pool's website and add the hashing power. This method requires trust. On the contrary, it's accurate in practice.

Make an estimation using the network difficulty and the time between blocks. It's not very accurate.

What are the units of hashing power?

1: Hash/second: H/s <--- Not even Hand-scale
1000000: Megahash/second: MH/s
1000000000: Gigahash/second: GH/s
1000000000000: Terahash/second: TH/s <---ASIC-scale
1000000000000000: Petahash/second: PH/s
1000000000000000000: Exahash/second: EH/s <---World-scale


sent bit coin cash to coin base by mistake hey guys i sent 300$ of bit coin cash to my coin base account coin base does not support bit coin cash but i can see that the transaction went threw and was verified  more than 41 times. the address it was sent to was generated by my coin base account so im not worried about someone else having my money i was wondering if there was some way to get that bitcoin cash out of there some how i cant see it on coin base because they only have bit coin but i know the address.

thank you
Rachel

You'll need to contact Coinbase to get your bch back, the coins are in a bch address controlled by coinbase.


getnewaddress with importmulti I have a question about how the bitcoin core wallet works with descriptors.
I am creating a wallet using the createwallet method and passing in a name (all other args are default).
I then import addresses into Bitcoin Core using importmulti and wsh(sortedmulti(2,[abc123ef/48h/0h/0h/2h]xpubyadayada.../0/*, [abc345ef/48h/0h/0h/2h]xpubyadaya1da.../0/*, [abc567ef/48h/0h/0h/2h]xpubyadaya2da.../0/*))#checksum
When I run deriveaddresses with wsh(sortedmulti(2,[abc123ef/48h/0h/0h/2h]xpubyadayada.../0/*, [abc345ef/48h/0h/0h/2h]xpubyadaya1da.../0/*, [abc567ef/48h/0h/0h/2h]xpubyadaya2da.../0/*))#checksum I get the expected addresses as an output but when I run the getnewaddress command after running importmulti, I get an address but not any of the addresses that were output from deriveaddresses.
I then noticed there is a disable_private_keys option when creating the wallet, so I've setup a new wallet using that flag.
I go through the setup process again with keypool=true when importing multi but when I run getnewaddress I get "Error: This wallet has no available keys". The importmulti call returns success: true, and I get Already have script 522103b403e66... in my logs when I try running the command twice.
Does getnewaddress not work with descriptors? Or am I setting up the wallet incorrectly? I see there is an argument blank to pass in when creating a wallet but when I try that and import I get Error: This wallet has no available keys too.
I would expect getnewaddress to output the first address returned from deriveaddresses on a fresh wallet. Have I overlooked something in the documentation?
I looked at these docs too and I think I've followed them exactly:
https://gist.github.com/achow101/a9cf757d45df56753fae9d65db4d6e1d
Using importmulti with internal set to true does not add any change keys. What am I doing wrong?
Import multisig change addresses into Bitcoin Core using "importmulti" + descriptor
What is the best way to create a wallet with a blank keypool then add keys to it?
Thanks!

getnewaddress on non-descriptor wallets does not work for non-single key things. Ad descriptor wallets have not yet been released, you are not using a descriptor wallet. When you use importmulti to import a descriptor, it does not actually import the descriptor. Rather it uses the descriptor to construct a bunch of keys and scripts and imports them into the wallet. However this does not mean that those scripts will be accessible with getnewaddress. They are just in the wallet as being watched.
You aren't doing anything wrong, getnewaddress just doesn't work like that for non-descriptor wallets.
If you make a descriptor wallet (using one of the 0.21.0 release candidates, or a build of the master branch), then getnewaddress will work as you expect it to.


Is There a Safe Way to Decentralize or Spread Ownership of a Company Using Bitcoin or Altcoins? We are starting a social enterprise that is focusing on home oriented products and services - starting with real estate brokerage services. The profits from this organization will be used to battle homelessness. http://domogo.co/presskit (note the press kit just happens to explain the detail discussed here, its not meant as a link towards self promotion.)

One of our goals is to either decentralize ownership or spread ownership far enough that a few owners or shareholders can't later hijack the organization's purpose once it is producing revenue. At the same time however, we must maintain management structure so that we can compete against standard brands.

Our goal isn't decentralization in and of itself, our goal is to make the organization as trustworthy as possible and try to keep it as free from corruption as is possible. We would be pleased to be proven wrong but it seems at this stage  there isn't a safe way to fully decentralize, however, it also seems that there might be ways to achieve varying degrees of our basic goal.

We do branding, marketing and business development and are quite clueless when it comes to Bitcoin, however, from our research it seems it may be possible to create color coins that could be tied to physical shares of the company. We could then distribute those coins to micro impact investors or individuals who have some skill set to add towards a collective operations board.

We would then want to tie voting on the "board" to the holding of a coin. Just for discussion let's say we spread out 100,000 shares to 100,000 people which would mean 100,000 possible board votes. Obviously we would need some mechanism in place to force voting or one would lose their coin/share...or something that would achieve the same purpose.

My questions are:

Is there a way to limit total possible holdings of the coin/share to say 1. I.e. the wallet couldn't hold more than 1 coin with the purpose of an individual only being able to hold 1 share of stock. Basically, we wouldn't want any single individual to be able to buy up or trade their way towards board control.
Is this too far fetched with current cryptocurrency technology or perhaps too cost prohibitive to create? (we don't have a massive budget)
Does anyone have an alternative solution to the same basic premise?

We are looking at more traditional solutions as well but feel this could be an interesting solutions that could effectively make ownership of a share as easy as downloading a wallet. This could be key as we would like for our beneficiaries to take on larger and larger control of the company as time went on. I.e. it needs to be just as easy for someone in rural India to own a share as for someone in London.

We are open to ideas and are obviously not experts in the matter, we would just like to find the most economical and safe approach to ensuring a few owners or shareholders couldn't turn Domogo into a profit for profit's sake corporation with a side effect of making it easy for those without birth certificates or similar paperwork to have access to the board.

Any Ideas?

Its a small thing we know, but if you leave your twitter handle the we'll send out a "thanks" to each responder.

@project_domogo is ours

Use multisig wallets for funds.

Use a SP (Service Provider) as a separate entity to handle your smart contracts.

Use Bitcoin and the Blockchain to act.


Hash rate for litecoind is way below the one I get for bitcoind, is this normal? I'm running bitcoind on an Ubuntu EC2 image in the Amazon cloud; on another identical image I'm running litecoind. I compiled both of these on the bitcoind instance. According to the getmininginfo command, my hashes per second for litecoind ranges around 300, while for bitcoind it is over 300000; 3 orders of magnitude greater. Is this normal, or have I botched something?

Mining in Litecoin uses a significantly different algorithmic pattern which takes substantially longer to complete a "round".

Litecoin uses scrypt while Bitcoin uses SHA256. Usually devices are measured in Khash/Mhash for Litecoin and Mhash/Ghash for Bitcoin.

The initial concept behind this is that it would be GPU proof so everyone could use their PC. GPUs can still perform substantially well.


How many transaction and btc have been cancelled? How many btc have been transferred in orphan blocks, but then never included in any later block? How many btc have been transferred in zero-confirmation transactions that have never been included in the blockchain? How could one find this info?

This would be an upper bound on the amount of fraud done by reversing transactions.

The first is an upper bound on the amount of fraud against people who wait for 1 confirmation, and the second is an upper bound against people who don't wait for any confirmation.

How many btc have been transferred in orphan blocks, but then never
  included in any later block?

This is not a statistic that's normally published by anybody, as far as I can tell.

  How many btc have been transferred in zero-confirmation transactions that have never been included in the blockchain? How could one find this info?

The data necessary to do this analysis is out there, though it's really hard to know if it's complete.

Blockchain.info has a list of orphaned blocks back to March of 2014. It's hard to prove whether this list is complete since orphaned blocks don't propagate well (hence their being orphaned). But given these 400 or so orphaned blocks, you can grab all the transaction hashes, see how many of these transaction hashes can not be found in other blocks and that should set an upper bound for possible fraud activity.

You'll also have to see if the transactions that spend certain inputs in the orphaned blocks end up going to the same outputs but have a different signature and thus a different transaction hash. You should eliminate those as well.

Finally, you'll have a set of possible fraudulent activity for the past 11 months or so. Not perfect, but given that very few have any incentive to keep orphaned blocks around, this is a good a method as any.


What does MAX_SIGOPS stand for? I am looking at BIP 109.
It said, "The existing MAX_SIGOPS limit of 20,000 signature operations per block shall be retained, but only ECDSA verifications actually performed to validate the block shall be counted."
What do MAX_SIGOPS and signature operations stand for?

Signatures are how all bitcoins are proven to be able to be spent by the owner of an address. If you receive bitcoins to an address, that address will generally correspond to at least one (maybe more in a multi-signature address) ECDSA private key, which is used when you spend those bitcoins later. But for other nodes to verify signatures to make sure all transactions are valid, that takes work, so there is a limit of how many of these signature operations a block can contain. That makes sure a block doesn't put too much workload on nodes verifying it. That limit is the MAX_SIGOPS.


How can I determine the address from a private key? From the steps in the wiki, take this example private key:
0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

When I import this into Electrum, I find these values:
Address:
1GAehh7TsJAHuUAeKZcXf5CnwuGuGgyX2S

Public Key:
04d0de0aaeaefad02b8bdc8a01a1b8b11c696bd3d66a2c5f10780d95b7df42645cd85228a6fb29940e858e7e55842ae2bd115d1ed7cc0e82d934e929c97648cb0a

How can I determine the address from the key (without using Electrum)?
I understand that the derivation route is private key -> public key -> address, so I've found a way to generate the public key in Java using BitcoinJ:
BigInteger privkey = new BigInteger("0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D", 16);
byte[] bytes = org.bitcoinj.core.ECKey.publicKeyFromPrivate(privkey, false);
String publickey = new BigInteger(1, bytes).toString(16);
while(publickey.length() < 130){
    publickey = "0" + publickey;
}
Log.d("public",publickey);

It gives the correct public key as shown above, so I just need to find a way to get the address.
I don't know much about different address formats, but my goal is to use the address to check the balance using some public API like blockchain.com. I guess this is the P2PKH-type address.
I tried this:
NetworkParameters params = MainNetParams.get();
ECKey key = ECKey.fromPrivate(privkey);
String address = LegacyAddress.fromKey(params, key).toString();
Log.d("address",address);

Which gives me this address:
1LoVGDgRs9hTfTNJNuXKSpywcbdvwRXpmK

But the address is different.

Both "1LoVG.." and the other one are valid legacy (1...) addresses made using the same private key. They are different since one of them uses the compressed public key (you might want to look this up) while 1GAehh7 uses the uncompressed public key. Always use the same compress-format for an address, and it's advisable to create new addresses in compressed format since it saves bytes and transaction fees.
To make the uncompressed-public-keyed address (compressed is the default in BitcoinJ):
ECKey key = ECKey.fromPrivate(privkey);
key = key.decompress();
String address = LegacyAddress.fromKey(params, key).toString();


noob - set up a wallet with centos 7 Hi so I used the following bash script to set up bitcoin on my centos server https://gist.github.com/cdodd/f485b72aed8c2a6440a6141cd1ba8273?signup=true

however i don't know how to get a wallet or create a wallet and everytime i try I get the following error, their is no config file and I am not sure where one is meant to be located. could someone please help point me in the right direction to install bitcoin correctly and create my own wallet.

Thanks

./bitcoin-cli -testnet getwalletinfo
error: Could not locate RPC credentials. No authentication cookie could be found, and RPC password is not se
t.  See -rpcpassword and -stdinrpcpass.  Configuration file: (/root/.bitcoin/bitcoin.conf)

I don't have CentOS, but running on SuSE Linux, which is quite similiar.

At first, let me say, it is not recommended to run bitcoin daemon with root privileges. You may want to create a user to run bitcoin.

After install with the script, you should have three files (well, symbolic links) in /usr/bin, one is bitcoin-cli, the other we need bitcoind. With the new user you would open a terminal window, and see if you can start the daemon (bitcoind). It would normally create a bitcoin.conf file in the directory ".bitcoin" in the users home directory. In this file you can set the rpcuser and rpcpassword, that you will then use with bitcoin-cli.

If daemon does not start, is there any logfile from the system or in the ~/.bitcoin directory of the user?


Why is using a simple SHA1 in a scriptPubKey to emulate a "password" a security problem? I'm independently working my way through an excellent online course on bitcoin, made available from Stanford.  (https://crypto.stanford.edu/cs251).

One of the problems in the homework challenges the student to create a scripSig that redeems an output locked with a simple SHA1 equality check:

  Alice is on a backpacking trip and is worried about her devices containing
  private keys getting stolen. So she would like to store her bitcoins in such a way that they can
  be redeemed via knowledge of only a password. Accordingly, she stores them in the following
  ScriptPubKey address:

  OP_SHA1
  <0xeb271cbcc2340d0b0e6212903e29f22e578ff69b>
  OP_EQUAL

  a. Write a ScriptSig script that will successfully redeem this transaction. [Hint: it should
  only be one line long.]

While I understand why this is a terrible way to go about storing your coins, I can't come up with a 1 line scriptSig to redeem the funds without knowing the pre-image.

Granted any relaying node could just redirect the transaction output to themselves, after you give up the pre-image, but that doesn't seem to be what is being asked.

A simple Google search for eb271cbcc2340d0b0e6212903e29f22e578ff69b will reveal the preimage to you.


Digital Signature and private/public key I am new to Bitcoin and Blockchain and I am writing a thesis for my university about this topic.

I have a general question about digital signatures, which are needed to verify a transaction.

As far as I understood, for having a digital signature, one need to have a public verification key and a secret key.

Is the secret key equal to the private key which is needed to spend transactions.

Analog: Is the public verification key the same as the public key whose hash is the bitcoin adress ?

Thank you in advance.

Is the secret key equal to the private key which is needed to spend transactions.

Yes

  Analog: Is the public verification key the same as the public key whose hash is the bitcoin adress ?

Yes, also correct. You’re on the right track :)


What happens when bitcoin drops and i add more money to my wallet If i have $1000 worth of bitcoin with the current price of bitcoin at $7000, then later on bitcoin dropa to $6500, normally i know ths money in my wallet will drop. But my question is what will happen if i add more money in my wallet then later bitcoin goes back to $7000, will i have more than $1000?

I have been wondering for a while and yet haven't come up with a clear explanation.

This really is just a math problem more than a bitcoin question, but it’s simple enough so here is your answer:

  If i have $1000 worth of bitcoin with the current price of bitcoin at $7000

($1000)/($7000/BTC) = 0.14285714 BTC

This is the amount of bitcoin you would own. Changes in the dollar value of a bitcoin will not affect how much Bitcoin you own, it will only affect the dollar value of what you own.

  then later on bitcoin drops to $6500, (...)  what will happen if i add more money in my wallet then later bitcoin goes back to $7000, will i have more than $1000?

Yes.

To illustrate: let’s say you buy just $1 worth of bitcoin when the price is $6500/BTC:

($1)/($6500/BTC) = 0.00015384 BTC

Now add that to your original BTC balance:

0.14285714 BTC + 0.00015384 BTC = 0.14301098 BTC

Now, at a price of $7000/BTC:

(0.14301099 BTC)*($7000/BTC) = $1001.08


What exaclty does owning cryptocurrency mean? Assuming owning mean individual custody of valuable asset, does owning cryptocurrency mean owning the tokens/coins? Does it mean owning a private key and owning a record in the "public ledger" and owning the software code associated with the particular cryptocurrency?

Ownership is a difficult concept and, in some contexts, irrelevant.
The answer you get from a lawyer or tax-adviser may differ from the one you get from a software developer.
Knowledge of a number gives you the power to spend money denominated in Bitcoin. Anyone else who knows that number has the same power. The Bitcoin network doesn't care who knew it first. It doesn't adjudicate ownership between multiple people who know a number.
I'm not sure you can own a number. If I know 12 do I own the number 12? Does that mean other people can't legally use 12 without my permission?. If I know that 12 is the number that opens a combination lock to a safe in my office is that a different sort of knowledge that confers ownership of 12 in some context?  Does it confer ownership of the contents of the safe? Or is the legal ownership of the contents of the safe determined completely independently of knowledge of the combination? These are legal and philosophical questions. I think it may be best to avoid worrying about ownership and concentrate on keeping private keys secure.


a problem of my bitcoin-core My BTC wallet was bitcoin core ver. 0.12.1

After sending my BTC to another address, and waiting for two days status was 0 confirmation, maybe be because the transaction fee was not enough,

So I found a solution from google, -salvagewallet, then it seemed to work

But today I try to send my BTC again, after I insert my pass-phrase, a window show up which says

assertion failed program:C:\........bitcore-qt.exe file:wallet/crypter.cpp,line 190 expression: false

if click ignore button, it says pass-phrase incorrect.

if click retry,  it says runtime error.

don't know how to solve this problem

Try to reload your bitcoin node by reinstalling, backup your wallet.dat to be sure you got that safe!

You can just uninstall the wallet without emptieng your data folder first, safes you some downloading. After that delete all files in the data directory except: blocks folder and wallet.dat.

Install bitcoin qt again and make sure you pick the right data directory again. Opening of the wallet will take a while due to checking of the blockchain and building the chainstate.

Probably your error is nog gone.


Is there any way to replace "move"? The "move" command can't use because the account system is gone. So, Is there any way to manage my coins, address, wallet with no fee like "move"? Pleas let me know. :(

Yes, use separate wallets.
Bitcoin Core now supports loading multiple wallets simultaneously.
This isn't an exact replacement; you can't transfer between those wallets at zero cost. But on the other hand, the coins are actually physically separated, rather than being virtual bean counters within one wallet.


Bitcoin Speed: 7 Transactions Per Second? I read somewhere that Bitcoin can only handle 7 transactions per second. This works out to 604,800 transactions per day. Visa currently processes about 1,700 transactions per second (and can handle vastly higher amounts than this). This means that the Bitcoin system can handle less than 1/200 of Visa's current processing output.

Is this correct? I find it hard to believe that so many people would buy into a system that's so inefficient / unscalable.

Also, if my assumption is correct, suppose there are (on avg) 700 transactions per second during a given 10 min period (i.e, 70 times the max output rate) does this mean we will need to wait 70 * 10 min for all those transactions to be confirmed? If yes, why can't some evil actor overwhelm (i.e, postpone) the system by submitting thousands of tiny transactions to the network?

Thanks in advance

I read somewhere that Bitcoin can only handle 7 transactions per second.

That's roughly correct - only about 7 transactions per second can be confirmed using legacy transactions.  With the recent adoption of segregated witness, it could be closer to 30 transactions per second.

  I find it hard to believe that so many people would buy into a system that's so inefficient / unscalable.

Some people might have confidence that a better solution will eventually be found.  The protocol can be changed with community consensus.  Others might find that it is good enough for what they need in the short term (a particular transaction, day trading, etc) and not care what happens in the long term.

  Also, if my assumption is correct, suppose there are (on avg) 700 transactions per second during a given 10 min period (i.e, 70 times the max output rate) does this mean we will need to wait 70 * 10 min for all those transactions to be confirmed? If yes, why can't some evil actor overwhelm (i.e, postpone) the system by submitting thousands of tiny transactions to the network?

Transactions are not first-come-first-served.  Miners can decide which transactions will be confirmed, and usually this is done by prioritizing them by  highest fee.  So if the attacker doesn't include competitive fees in those transactions, they will simply never get confirmed and there is no issue.  If he does, then the attack is potentially quite expensive for him.  And even in that case, honest users who really need their transactions confirmed can simply offer an even higher fee.


How can importprivkey compromise wallet security when importing a publicly known private key? A question was asked on reddit over here which I gave a reply: https://www.reddit.com/r/Bitcoin/comments/3khrvm/how_do_i_use_private_keys_to_receive_bitcoin/

However, luke-jr replies with:

  Don't do this. You compromise your wallet's security to import a private key that others know.

without further elaboration. Can someone explain what he's talking about?

If Eve gives you a private key that contains Bitcoins in exchange for a pile of gold coins, she still has a copy of the private key, and can take the Bitcoins back, leaving her with both the gold coins and the Bitcoins.

Instead, tell Eve to send Bitcoins to your address.


antminer u3 what can they mine? noob alert I'm very new to the mining world and I was wondering if they mine other currencies such as Ethereum and Dubai coin?

You can only mine altcoins that use the SHA 256 algo.

BTCitcoin(Its funny to write about bitcoin bcoz everyone know this)
21Coin (21)
Peercoin (PPC)
Namecoin (NMC)
Unobtanium (UNO)
Deutsche eMark (DEM)
Betacoin (BET)
Bytecoin (BTE)
Joulecoin (XJO)

10.Devcoin (DVC)

11.Ixcoin (IXC)

12.Terracoin (TRC)

13.Battlecoin (BCX)

14.Takeicoin (TAK)

15.PetroDollar (P$)

16.PremineCoin (PMC) {Premined, Mine only tx Fees}

17.Benjamins (BEN)

18.Globe (GLB)

19.Unicoin (UNIC)

20.Snowcoin (SNC)

see https://bitcointalk.org/index.php?topic=482002.0


Where is the safest place to trade? Open account? Wallet? I know nothing of bitcoin and would really appreciate any help and suggestions.

Depending on the country you are in there are various ways to buy bitcoin. My default recommendation for US buyers is to use Coinbase.com or check out localbitcoins.com for a face to face trade.


Import private key on multiple computers I decided to make some custom addresses for personal use and I have two computers running bitcoin clients. I imported the private key of the wallet I generated to the wrong computer and then I imported it to the correct computer. So now I have two wallets with the same public address in them. Questions are:

What happens when I receive a payment?
Will it take itself out of either wallet?
Is there anything I can do to fix this?
Thanks

Incoming payments will show up in both wallets.

If you spend any of the balance, the other wallet may show a 0 balance because the "change" will only go to the wallet you sent from. The other wallet won't know about the new "change" address.

The safest thing to do is to transfer all the funds to a new address.


Lost BCH before it came out I had around 20 BTC on my blockchain.info when bitcoin-cash forked and so after the fork I exported my seed and pasted it into electro-cash in order to receive my BCH (done it before and it worked) but when i synced it I was greeted by zero balance with a ton of transactions from 2016/09 to 2017/07 so there is no history after the fork nor the BCH

I think the issue is electron cash which uses a different seed format to other wallets. First, to be safe, move your BTC from it's current wallet to a new wallet,

Then put that seed you tried to put in to Electron Cash in to a different wallet like 'Bitcoin.com wallet


Can I attach a photograph to a bitcoin? Let's say I'm a photographer, and I want to sell my photograph as if it were fine art, so there's a limited edition print, or even just one which has been signed by me and can be thought of as genuine.

Now, I know that there will be copies of the picture itself, because there's always easy ways, but how can I attach my photograph to a bitcoin or a portion of a bitcoin and thereby add value to the bitcoin and value to my phtotographs?

I  know colour coins are in the works, but lets turn it around. A bitcoin has no substance right? But what if instead of a wallet with a number inside, you could have a stack of bitcoins each with different pictures attached? It would be like a personal art gallery, cover flow with money.

Any ideas on this?

So you are asking if it is possible to store a huge chunk of data in an tx output what worth 100000000 satoshi, right? Yes, it is possible but you have to pay really big fee to store your picture in the blockchain on millions of computers.


Lowest numbered Bitcoin hash? I was thinking about which bitcoin block has the lowest numbered hash. What I mean by a hash as a number is that. For example, the number "1" has a lower hash than "2" in SHA256. Their values are 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b and d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35. Which bitcoin block, as of me asking, has the lowest number?
To be clear, I mean by "lowest number" as the smallest hexadecimal hash. An example of a number would be block #651520 which is numbered 0000000000000000000d1f8cf49fe57d034214693cd7f7678abec20427355c82. Interestingly, the lower the number, the more work tends to be required to generate it.
I kind of like this question because the Bitcoin network is basically an extremely large SHA256 brute force machine. This hash would likely be from after the all time high in 2017 in price.


Can a competitive miner be crafted at home? Ive been wondering, is it possible to make a good custom Bitcoin miner? AntMiners aren't worth it anymore, and I can't find a miner that is. Can I build a miner myself that will be worth it? If so, what do I need to custom make a miner? What are some basic Bitcoin miner components. How much will it cost approximately? Is there anything else I need to know if i'm going to build a miner? There was some confusion, I don't mean I want to print my own pieces and make my own miner completely from scratch, I want to buy pieces online and make a miner, can I do this somehow?

No, the ASIC chips used in miners are impossible to craft at home, and to my knowledge no competitive chips are for sale as component parts.

Development of new ASIC chips has progressed to a level where it costs millions to create a new template and you need state of the art (<16nm) production to produce them. It is not economic to do this at home.


No path found when connected to the same node I'm trying to understand how the lightning network works in practice, so I figured I'd just use some Electrum wallets on testnet.
So here's what I did:

set up two wallets
funded them with some tBTC
opened a channel to the same node on both

My goal? Send a small amount of BTC via LN. Except... I think I don't understand some fundamentals, or perhaps the error is misleading, since an attempt to transfer a small amount between my two wallets results in a "No path found" error.
It might be that I picked a "weak" node to open a channel with? Like, if I were to use LN on mainnet, is it this hit-or-miss if payments go through? Because opening a channel, ultimately, isn't free (it might be on testnet, but you know)...

When you open a channel, the complete channel balance starts out on the side of the opening party, you. So, by opening two channels, both channels had the complete balance on your side. This leaves no balance on the side of the counterparty to assign to you.
To explain graphically, think of a channel as a string of beads. I use [U] for you, and [C] for the counterparty:
A new channel has all the balance on one side:
[U] 000------ [C]

When you send funds to your channel partner, part of the balance in the channel is assigned to the partner:
[U] 00------0 [C]

To make a multi-hop payment to [R], you trade balance in your channel for balance in another channel of the counterparty:
[U] 000------ [C] 000------ [R]
               ⇒
[U] 00------0 [C] 00------0 [R]

This leaves the same total balance for the forwarding node, just shifted from one channel to another (plus a fee you might have paid for the forwarding).
In your case your two channels looked like this:
[U] 000------ [C] ------000 [U]

The forwarding party had no balance in either channel, so it could not facilitate the multi-hop payment. You will need to spend some of your balance, find someone to open a channel to you, purchase in-bound liquidity, or loop-out some balance to generate some in-bound liquidity before you can receive a payment.


Is atomic swaps available for someone reasonably techical right now? I keep my coins in a trezor and ledger. For the upcoming hard-fork, I would like to keep the coins with private keys.

However, I think there is a big risk in the upcoming bitcoin fork that is not priced in. Therefore I plan to sell my bitcoins for ethereum maybe 24h before the fork. Are there any tools and/or markets for doing this right now with atomic swaps or is it more like a technical prototype?

Atomic swaps can be performed, yes, they aren't just a theoretical thing. For example here is a tool on GitHub for creating atomic swap transactions between Decred, Bitcoin Core, Litecoin and a couple of other coins: https://github.com/decred/atomicswap

But I do not know of any exchanges or markets which support doing atomic swaps, you would probably have to manually find someone who is willing to sell ETH for BTC and do an atomic swap with you at an agreed price. LocalBitcoins might be a starting place to look, I'm unsure.

Hope that helps though


How to change donation address of p2pool I am working on the fork of p2pool to a new coin, and it seems that the donation script in the original could only accept BTC, etc.
How to change this script to a new address? It looks like something below:

DONATION_SCRIPT = '51210241b8aba0994f320a8b438c627dbf31fbdd7dc722dd8418d829d67a9c6e4fd69021036fbd9d0a34a569f10b0431c8aeecf74ad796b99838b7272ef35ded130a794f9b52ae'.decode('hex')

I dig for a while, and could see that DONATION_SCRIPT[2:35] is pubkey of donation address, but what's the rest of them?
Any comments will be appreciated, thanks a lot.

It is a multisignature 2-of-2 address.

I have annotated the script:

scriptPubKey length: 51
Push the following 33 bytes onto the stack: 21
Compressed public key: 0241b8aba0994f320a8b438c627dbf31fbdd7dc722dd8418d829d67a9c6e4fd690
Push the following 33 bytes onto the stack: 21
Compressed public key: 036fbd9d0a34a569f10b0431c8aeecf74ad796b99838b7272ef35ded130a794f9b
OP_2: 52
OP_CHECKMULTISIG: ae

If you change DONATION_SCRIPT[2:35] to your own compressed public key, and DONATION_SCRIPT[36:69] to another compressed public key, that should work.


'Create a new receiving address' is greyed out, why? on the new wallet I created the button for 'create new receiving address' is greyed out. I've tried looking for answers over several places but most the guides and posts are outdated.
Also the wallet says its encrypted and locked, and on 0.20.1 There does not seem to be an unlock button under 'File' or 'Settings'. I did try to make a send txn where it asked the passphrase to unlock, but given there's no bitcoin in the wallet it failed, but I tried this to see if I could unlock the wallet.
Please help, the default wallet and a new wallet I created (without a passphrase) have no issues on generating a new receiving address, however this encrypted one, I can't click the button to generate a new receiving address, and I can't understand why. I've also enabled 'coin control features'.
Help,

This issue is reported in https://github.com/bitcoin-core/gui/issues/105 and fixed in https://github.com/bitcoin/bitcoin/pull/20230


Bitcoin Core - autogen.sh failing on Mac I'm working on installing Bitcoin Core for the mac. I've cloned the repo and installed the dependencies via brew. I'm trying to run autogen.sh but it is failing:

$ ./autogen.sh
/usr/local/bin/glibtoolize: line 406: /usr/local/Library/ENV/4.3/sed: No such file or directory
/usr/local/bin/glibtoolize: line 2513: /usr/local/Library/ENV/4.3/sed: No such file or directory
/usr/local/bin/glibtoolize: line 2513: /usr/local/Library/ENV/4.3/sed: No such file or directory
/usr/local/bin/glibtoolize: line 3601: /usr/local/Library/ENV/4.3/sed: No such file or directory
/usr/local/bin/glibtoolize: line 3845: /usr/local/Library/ENV/4.3/sed: No such file or directory
/usr/local/bin/glibtoolize: line 861: /usr/local/Library/ENV/4.3/sed: No such file or directory
: putting auxiliary files in '.'.
: copying file './ltmain.sh'
/usr/local/bin/glibtoolize: line 3771: /usr/local/Library/ENV/4.3/sed: No such file or directory
configure.ac:45: error: required file 'build-aux/ltmain.sh' not found
autoreconf: automake failed with exit status: 1

I'm not sure what is failing. brew doctor is clean. glibtoolize and sed can both be found. There is no .../Library/ENV directory, so I'm not sure why that isn't automatically getting created.

Any help would be greatly appreciated.

Mac 10.12.6
Bitcoin (7b57bc9) - v0.15.1

This happens because /usr/local/bin/glibtoolize: is pointing to the wrong directory

line  49 : ${SED="/usr/local/Library/ENV/4.3/sed"}

This was changed when homebrew decided to move their paths. See this stackoverflow post

What worked for me was

brew reinstall libtool


What are recourse or non-recourse transactions? This may not be a Bitcoin-specific question, but I still think it's better to ask it here.

I've seen discussions about accepting unconfirmed transactions, that it should not be done because of double-spend risks and such, but they also say that it's risky in non-recourse transactions.

So, what exactly is a non-recourse transaction? Is it related to whether the address is trustful? Or does it mean anything else?

Recourse is a term used in general terms to refer to things being made right.

If I kick a ball and the ball breaks my neighbor's window, my neighbor can insist that I make things right -- such as paying for the replacement cost.  If I don't, there are a number of approaches that can help make it so that I'll make things right, including posting a note on the mailbox sharing with my neighbors my action and response.  So in that scenario, my neighbor has some degree of recourse and I'll likely make things right.

When a person borrows money to buy titled property and there is a lienholder, the ability to foreclose / repossess the property is among the methods of recourse available to the lender.

When I order an item from someone on eBay and instead of my item arriving I get only an empty box, I can simply contact my credit card company to file a dispute and have the charges reversed.  That is my recourse.

With Bitcoin transactions, once they have confirmed it can be presumed they will never be reversed.  If in the example above with eBay, but instead where you had paid with bitcoins, there is little recourse available to you.  eBay might let you enter a negative in the seller's history, but they won't be able to reverse your payment.

So when accepting bitcoins for payment after seeing the transaction's status with 0/unconfirmed there is no guarantee yet that you'll receive the funds.   If you hand over cash to someone who you don't know, there's little you can do if the payment transaction to you gets double spent and your transaction never confirms.  Even if you know who the person is, there's likely very little you can do to get the bitcoins you were expecting from the transaction that never confirmed.  So that's why 0/unconfirmed transactions carry risk -- as they are not guaranteed and bitcoin offers no recourse if you do get scammed.

If you use an escrow party, at least then the recourse to scamming is the possibility that the escrow will not deliver the funds to the scammer.  Escrow provides some level of recourse for transactions where little existed.


How do I obtain exponential moving averages using the MtGox API? To calculate EMAs, do I need to be recording all of the data coming through MtGox's websocket firehose and manually calculating it myself, or are there static calls I can make to the HTTP API to obtain these figures on demand? How can I obtain an EMA for historical data before I begin recording websocket-streamed data?

Found an answer almost straight away - the answer is to get the data from the BitcoinCharts.com API, rather than MtGox - http://bitcoincharts.com/about/markets-api/

Further info here: Bitcoin Charts API Data


How does one monitor all bitcoin address that hold more than a certain amount and detect movement from cold storage? Is there a service or site where one can monitor all large bitcoin hodler addresses to detect movement? And as seen below with the mt.gox trustee moving coins from his cold storage. How does one find out when a mass exodus of cold storage movement happens?

There are sites that monitor the blockchain and aggregate the data. E.g. https://bitinfocharts.com/top-100-richest-bitcoin-addresses.html


Difference between Monero, Dash and Zcash I'm curious to understand what  the main differences between Monero, DASH and to-be released Zcash are. I would also like to know what is the main improvement in Zcash, when compared to Dash and Monero.

Monero - A cryptocurrency that uses ring signatures, a type of cryptography that enables untraceable transactions.  It is extremely unlikely that a transaction can be traced to a particular user. Monero is based on the CryptoNote protocol and possesses significant algorithmic differences relating to blockchain obfuscation

DASH - rebranded from "Darkcoin" to "Dash" on March 25, 2015. Dashcoin is an anonymous cryptocurrency and the first automatically mutating cryptocurrency created with CryptoNote technology. It offers instant transactions (InstantSend), private transactions (PrivateSend) and token fungibility.

ZCash - is said to offer total payment confidentiality while still maintaining a decentralized network that runs on public blockchain.  Zcash transactions hide the sender, receiver, and transaction value.  One must have the correct view key in order to see a transaction. This cryptocurrency uses zk-SNARK, which allows a network to have a secure ledger of transactions without making the parties and amounts transferred public.


No accepted shares on cgminer (sync issue ?) I don't really understand how cgminer works.
I try to mine using cgminer + cgwatcher on a BtcGuild pool but even after 1 hour mining I don't have any accepted or share block. What I don't understand is how cgminer sync with the current blockchain data??? Blockchain data is about 11Go. Should I find blk0001.DAT file in cgminer folder or Roaming folder?
Is it possible to keep miner tool (on a USB key) and keep data on the same USB key.

Thanx

CGMiner does not need to sync with the blockchain, the pool does. The pool keeps a copy of the blockchain and only sends you the block that is currently being mined. If you don't see any share on BTCGuild's website, you should check that your miner's username and password are correct (they can be different from your main username and password). If you see shares, but they are constantly rejected, then you have a connection problem between you and the pool server. If this is the case, try changing to another pool.


Input of a transaction If i want to send 0.2 bitcoin to Bob, will my transaction (in the input field) contain the list of all my previous transactions (both the ones in which i received bitcoins and the ones in which i sent bitcoins) ?

Probably no.

Bitcoin transactions work by consuming transaction outputs and creating new transaction outputs. Your wallet will look at what outputs it has available to spend (i.e. your received coins) and choose enough outputs to cover the amount that you want to send plus the transaction fee. If you have sent Bitcoin before, then not all of the outputs that  you have received will be eligible for selection because some of them have already been spent. Your wallet will also choose enough outputs, not all of them, unless all of them are needed to be enough.

So in general, your transaction does not contain a list of all of your previous transactions. The only case where it might is if your wallet decides it needs all available transaction outputs to cover the amount you are sending. And even then, if you have sent Bitcoin before, then some will not be part of the inputs list as they would already be spent.


Stopping 21 bitcoin computer miner So I've read this article about how to start mining, and I've started mining, now how do I stop mining? the article seemed to neglected that part..

There is no 21 command for that. You need to: sudo minerd --stop


How often forks occur? How often do forks occur in the block chain? I'm interested in the small, one block forks that happen when two miners create a block at the similar time.

Blocks are orphaned once in a while, roughly every few hundred blocks:

http://blockchain.info/orphaned-blocks

There used to be a blockexplorer-provided list of chain reorganizations which can occur upon such events (might become available again someday):

http://blockexplorer.com/q/reorglog

These chain reorgs used to happen a few times per month.


What is the role of bitcoin wallets? I'm trying to get involved in bitcoins, but first it seems I need further clarification on the concepts involved in bitcoins.

First let me clarify what I know (at least what I believe to be correct): miners race to solve mathematical problems, and whoever (or whatever pool) manages to solve the most complex block at a given time is awarded the bitcoins to their wallet address.

Now, what I want to know is, what exactly makes a wallet wallet? Other than providing an address, what does it do? A pair of cryptographic keys make up a wallet, which I understand, is used to transact the bitcoins associated with an address; but is that all? Other than safeguarding the private key, is there anything else to mind about a wallet, i.e. does it record anything else?

I did not find anything explanatory aside from the key-pair mention on the Wikipedia article, and I do not have enough technical expertise to go through the bitcoin protocol to understand the concepts. Please help me with understanding wallets.

A wallet is merely a collection of pairs of private/public keys. Every normal Bitcoin address is just a hash of a public key. The corresponding private key is needed to sign transactions that spend coins from the address.

So wallet security really is all about protecting your private keys - making sure you have access to them, and nobody else does. There are several ways to do this. A basic client software manages a wallet file for you and uses the keys within to sign transactions.

There are more advanced address that correspond to multisig or other scripts.

Re mining - almost true, instead of the miner finding the most complex block winning, every miner finding a sufficiently difficult block is rewarded. What is considered "sufficiently difficult" changes periodically.


MITM attack in hosted wallets i have a question: in the web wallets(hosted wallets)when user want to make a transaction and send the information to the wallet server , can a one change the information(man in the middle attack)?

Depending on the nature of the implementation, yes.

If you are considering hosted wallets such as exchanges, then yes - an MITM that is able to bypass SSL protections, a fairly common implementation on many corporate and organizational networks, will trivially be able to change data.

Certain wallets work around this by either storing the private keys locally and signing information retrieved from a remote server (such as metamask, or ledger live), which might still be susceptible to an MITM on the information being retrieved, or by using a local secret to sign requests to the remote server, which prevents in flight modification without detection.

Wallets further work around that by using systems such as the SPV protocol to both retrieve and verify data prior to signing it.


How to create a physical/paper backup for bitcoin-core wallet? I am using bitcoin-core for my offline storage.
In electrum I can do a paper backup by writing down the mnemonics.
bitcoin-core seems to be using a different mechanism to generate the wallet.
What I am thinking now is that I can do a paper backup for each private key of the receiving addresses generated in the bitcoin-core wallet. So if I generated 100 addresses and transferred some BTC to all of them, I need to backup all the 100 addresses.
Is this the only way to do a paper backup for bitcoin-core wallet? If this is the only way. I think I should just generate 1-2 addresses only so it is easier to back up, and never forget to always put the change addresses back to those 1-2 addresses.

if I generated 100 addresses and transferred some BTC to all of them, I need to backup all the 100 addresses.

Bitcoin core is an HD wallet. So you should only need to backup the extended master private key shown at the top of dumpwallet.

# Wallet dump created by Bitcoin v0.21.0
# * Created on 2021-05-05T17:57:09Z
# * Best block at time of backup was 627544 (000000000000000000045a465b959072a715f47047141108ef14db64e2ee9049),
#   mined on 2020-04-25T08:34:02Z

# extended private masterkey:
xprv1x23XxXX456X7XXXXxxXx8Xxx9XxXxXxX01234X5xxX6XxX7xXxxXXXXxXxxXxx8X9Xx0XX1XxxX2XXx3x45xx6xxxXXXxxxxX7XXXxx8XX

etc
Obviously you should practice recovery from this , and check the recovered balance, on a different computer, before relying on it. At least check that the generated subsidiary keys/addresses are the same.
It may be easier to recreate the wallet from an extended master private key (xprv) by using wallet software like Electrum, which has some support for this. Bitcoin core expects you to backup the wallet.data file rather than write down a number on paper.

Related

How to restore Bitcoin Core HD wallet private keys by master key?
How do I retrieve my backed up wallet to Bitcoin Core?


Is Bitcoin a fiat currency? I often encounter articles where we talk about bitcoin being a fiat currency. What is a fiat money and what is it that bitcoin as to be considered a fiat money.

Fiat money is money that derives its value from government regulation or law. The term fiat currency is used when the fiat money is used as the main currency of the country. The term derives from the Latin fiat ("let it be done", "it shall be").


How to watch for the transactions over blockchain via nodejs? I am using this bitcore npm package.
https://bitcore.io/api/lib

And i want to monitor all the transactions over the blockchain, and read the input address, output address and amount associated with that transaction.

But i am unable to find the javascript method to invoke to accomplish this.
Even i am not able to find a example for this.

I am looking for as short as something like

var someLib = require('some-bitcore-lib')

someLib.on('block-recieved', function(){
   // print everything
   console.log(arguments);
   // do something else;
})

Any help?
Where can i find that some-bitcore-lib or how can i create that in nodejs?

Consider using bcoin.js which is in pure JS. It fires events when a transaction takes place. Quite simply you can do:

node.on("tx", (tx) => {
   console.log(tx.outputs, tx.inputs)
})

Note that, in bitcoin, each transaction can have multiple outputs and inputs, so these are arrays of inputs and outputs. You can obtain the total output amount by summing across all output amounts. Additionally, in this case you wouldn't concern yourself with blocks - just transactions.


Can I use uncompressed public keys in Bitcoin Cash transactions? It have read that Bitcoin Cash uses BIP 143 to generate the signatures and that BIP 143 does not accept uncompressed public keys. Does that mean that you cannot send a Bitcoin Cash transaction using an uncompressed public key?

  As a default policy, only compressed public keys are accepted in P2WPKH and P2WSH. Each public key passed to a sigop inside version 0 witness program must be a compressed key: the first byte MUST be either 0x02 or 0x03, and the size MUST be 33 bytes. Transactions that break this rule will not be relayed or mined by default.
  Since this policy is preparation for a future softfork proposal, to avoid potential future funds loss, users MUST NOT use uncompressed keys in version 0 witness programs.
  BIP 143

Bitcoin Cash only uses the Signature hashing algorithm from BIP 143. Everything else that pertains to witness programs is unrelated to Bitcoin Cash.

This means that you can use uncompressed public keys with Bitcoin Cash.


Is it possible that two miners mine blocks with different headers because they include different transactions Ok, it's a yes or no question: miners can include different transactions in a block, so does that mean that they search for different nonces

Yes, different miners will almost certainly always search for different nonces. Besides including different transactions from the network, they will also almost certainly send the proceeds from the coinbase transaction to different accounts. There are many other places where the block can also be different.


Sudden GH/s drop in BFL Miner So basically I have a BLF non-Jalapeno variety 50Gh/s miner. I run cgminer and have recently been mining from ozcoin after eclipsemc was hit with a recent DDoS.
Normally, I have been clocking at around 46.xxG-50.xxG/50.xx-51.xxGh/s. Last night I noticed a bunch of incoherent errors pop up on my terminal window. About 5-8 lines long. The miner would stall out, it dropped to around 18.xxG/19.xxGh/s stuttered around that level for a few minutes then slowly climbed back up to the rather disappointing 36.xxG-39.xxG/37.xx-39.xxGh/s I have been seeing ever since.
I've poked around looking for reason for this, and maybe haven't poked hard enough, but I am at a loss. Any ideas on what is happening?

Both BFL hardware and software are quite unstable, and depend on the starting temperature of the BFL hardware.

What you can do is: stop the mining software, power off the BFL miner, and stick the BFL miner in the freezer for 5-10 minutes (or longer, say 1-2 hours) so that it can cool down.

When I got my 50GH/s, it could only run at around 25GH/s. Eventually, I found out that it is temperature sensitive. I have, once in a while, powered it down, put it in the freezer, and then powered it back up.

I get pretty impressive results that way. From an original of 8 out of 16 chips working, I now get 15 out of 16 chips working.


How does proof-of-stake "mining" work? I know and understand the concept of proof-of-stake. Instead of requiring users to do a certain amount of power-intensive hashing "work", it requires you to own a certain stake of the currency in order for you to mine new coins.

But how does the actual mining process work? In PoW mining, people "find" blocks by generating a hash that fulfills a certain condition. How can one mine a PoS block? Is a miner required? Or does just anyone holding coins get their share after a certain amount of time?

In Peercoin specifically, is PoW and PoS mining done independently or do they interfere or influence one another?

In Nextcoin, proof of stake is used.  So the "mining" process there is just about holding coins and leaving your computer on.  It doesn't involve powerful CPUs.

Each block (every 60 seconds), a random Nextcoin is selected to be the next "miner".  There are 1 billion coins so the odds of a single wallet being selected is the number of Nxt in that wallet divided by 1 billion.  (Also, it's possible to calculate and agree on who that node is so the transactions need only be sent to that particular wallet.)

If a node with the selected wallet is running, it will collect the transactions, make a block, and send it to the rest of the network and collect the fees.  If the computer is turned off, however, then the entire network will have to select a different nextcoin to make the transaction.  This time, the unresponsive wallet will be ignored.  The network would suffer in that the time to make a block is decreased, but the thought is that people wouldn't leave their computers off if they have a lot of NXT because they're missing out on all the fees that they could have collected.

If you only have a few NXT, you can leave your computer off: You probably wouldn't have collected much fees anyway.  But, your odds of being selected were low so it probably won't decrease transaction times much.


What is an explanation of the P2SH voting in layman's terms? Reading this question and looking in the bitcointalk forums at the related discussion, there seems to be some kind of miner vote being done on whether a change will be implemented in the bitcoin protocol.

It seems to discuss the adding of a function which could allow clients to have restrictions on receiving coins. (Is this it? If so, it would answer Q1. below)

The following things were beyond my understanding though, or difficult to find:

An explanation in laymens terms of what the potential change achieved
Why the change is desirable
When the voting is taking place
What the vote is actually for (is it just yes/no, or are there more options?)

Note that this question addresses the question of which mining pools are voting yay or nay, though it doesn't seem to have an answer yet.

If this is done as part of the work of the bitcoin.org developers, I found it a bit strange that nothing seemed to be mentioned on the bitcoin.org site about it (I checked the news and the FAQ). I suppose that it is more of a miner issue though...

The answers to your questions, in order:

The fee paid for a transaction is determined by the size of a transaction.  Currently, if you want to do fancy things with bitcoins, you need to put a script in the transaction that sends them -- each output includes a script giving the conditions under which it may be used as an input.  OP_EVAL, p2sh and CHV (check-hash-verify) all provide ways of putting the script in the transaction that receives the coins.
This lets you have coins sent to you and do arbitrarily complicated things with them without imposing a fee burden on the sender.  The coins are yours once they're sent, but you'll have to pay the fee the next time you try to do anything with them (no free lunch here...).  The most important use-case here is to have wallets from which you can spend coins only by using two different devices (for example, both your laptop and your cellphone).  Even if both devices are "virus infested" it's highly unlikely that any single malicious entity has compromised both of your devices.  The hope is that this will put an end to the rash of coin thefts, or at least make it much harder for botnet operators to steal coins from the people who own the machines they've taken over.
The voting takes place during the blocks found during the seven days preceding 01-Feb-2012.  No timezone was specified.
The original vote was "yes/abstain".  Gavin put code into the "master" branch of the bitcoin client that would cause anybody who upgraded to the latest version to automatically vote "yes".  This angered some people, who added a new option for a "no" vote.  However, what really matters is whether or not 50+X% vote "yes" -- an "abstain" counts as a "no" vote for the purposes that matter.  If a minority of the hashpower were to enable p2sh a single malicious user could cause a permanent blockchain split, so it's important that this not be enabled until we are dead certain that a comfortable majority of the hashpower is on board.

Most of the controversy is over how quickly this proposal was put together and rushed through the approval process.  The general idea, and the predecessor (OP_EVAL) have been around for a while, but this latest incarnation is very new.

Also, at the moment the mining code in the bitcoin client has a funny concept of a "standard" transaction which is not part of the bitcoin protocol at all -- it's just a gentleman's convention by which some (but not all) mining pools voluntarily choose to omit transactions that use advanced bitcoin features -- if you want to use those advanced features you have to wait longer since there's only one big pool (and several small ones) that will take them (once mined into the chain, however, all clients respect these transactions -- it's just a question of getting them into the chain).  The p2sh specification forces the "standardness" concept to become part of the protocol -- miners will be forced to use transaction templates whether they want to or not.  Many consider this to be infringing on the miners' jurisdiction.  Others consider it an affront to aesthetics and an invitation to headaches in the future.


Bitcoin core syncing at 60% since December 13 and barely moving I am using a macOS Sierra version 10.12.6. my wallet has been syncing since December 13, 2017 and is still at 60% and hardly advancing. Is this normal? Is there anything I can do to speed it up?

I've downloaded the blockchain many times (don't ask why).  Maybe a week or so, just depends, I didn't keep track of the time frame at that point.  If your network is slow, or your computer is slow (when verifying blocks), or if you're going through a VPN that slows you down, all those things could impact your download.


Can the Bitcoin script make a Google search? This very interesting CCN Money article states

  a script uses a data input such as a regular Google search to monitor
  real-world events that would automatically trigger disbursements or
  other actions

This part of the article suggests that the Bitcoin script could monitor external events, such as the result of a Google search, to trigger transfers. Can the Bitcoin script really do that?

Bitcoin scripts are intentionally very limited, and can only access data inherent to the transaction (not even the blockchain it is in), in order to guarantee consistency (a script's validity cannot change over time).

However, there do exist ways to integrate external state into Bitcoin, through the use of oracles. See this wiki page for more information about those.


Resource on cryptocurrency exponents/significant digits/decimal places? I'm looking for a comprehensive list, or library, that lists a wide range of cryptocurrencies and there exponents/significant digits/decimals - ie "8 for BTC, 18 for ETH, ..."

Information regarding the precision of cryptocurrencies can be found in their respective developer documentation. For Bitcoin, the precision is measured in Satoshis (1/100,000,000 of a Bitcoin) and is the smallest unit of measurement. For Ethereum, the precision is measured in Wei (1/100,000,000,000 of an Ether). For ERC20 tokens on the Ethereum network, the decimal precision is specified by the token and varies.