Have there been reports of botnets mining Bitcoin / crypto-currencies? Is the threat of Botnets using massive amounts of CPUs/GPUs to mine Bitcoin, or some CPU-friendly coin, purely theoretical at this point? Or have there been reports of this actually happening?

I know of trojans stealing Bitcoin wallets, this is not related to my question.

First report about mining botnet was made at the end of June, and it evolved rapidly from CPU to GPU mining. But there is no consensus about what kind of harm it will do to Bitcoin, because from the bitcoin network point of view, infected computers run legitimate mining that supports network operation.

17 Jun 2011 - Symantec suggested that it would be profitable to
run CPU mining botnet.
28 Jun 2011 - Kaspersky Lab's expert Alex Gostev made first
report about simple CPU mining botnet found in the wild.
2 Aug 2011  - F-Secure reported about discovery of advanced CPU
mining botnet controlled via twitter.
11 Aug 2011 - Symantec discovered first GPU mining botnet called
Trojan.Badminer.

It has been happening for months.
In fact botnet software is now smart enough to identify the best option to mine on and use that - cpu or gpu.


Tool to build a relational db from .dat block files No need to elaborate too much. I'd like to build a real SQL db starting from the directory blocks. Is there any tool out there? I work on a mac and I'd prefer something cross OS if possible.

parsing blockchain blk**.dat files - is very simple task. you can traverse all blocks from the begninning and put the data in your sql-database


Hourly price notifications on Linux I'm running Debian & Ubuntu and I've been using this script running in a terminal for a while but I find I easily get obsessed with the price. Instead I'd rather get, say hourly, desktop notifications.

Is there a simple way to do this?

Assuming your script is called btce_ticker.sh, the following line would do it:

while true; do btce_ticker.sh; sleep 3600; done

The sleep 3600 sleeps for an hour before looping around and running the script again.

I modified the script and used notify-send to get what I wanted. I run the lightweight notification daemon xfce4-notifyd but most desktop environments (Gnome, KDE, Xfce) should have one preinstalled (for example Gnome's notification-daemon).

It depends on the jq command, so make sure you install it first using your package manager.

Here's the script:

#!/bin/sh
# Requires jq

# Remember to chmod +x!
#
# Add the following cron-job (using "crontab -e") to run at hourly intervals:
#     0 * * * * export DISPLAY=:0.0 && /bin/bash <SCRIPT_PATH_GOES_HERE> > /dev/null 2>&1
# Change <SCRIPT_PATH_GOES_HERE> to the appropriate name

BTCE_PRICE="$(curl -s https://btc-e.com/api/2/btc_usd/ticker | jq '.ticker.last')"
MTGOX_PRICE="$(curl -s http://data.mtgox.com/api/2/BTCUSD/money/ticker_fast | jq '.data.last.display' | cut -d "\"" -f 2)"

notify-send "MtGox:     $MTGOX_PRICE
BTC-e:      \$$BTCE_PRICE"

Also available here

In order to run it on hourly intervals add the following line to your crontab using crontab -e:

0 * * * * export DISPLAY=:0.0 && /bin/bash <SCRIPT_PATH_GOES_HERE> > /dev/null 2>&1


Will bitcoins be devalued by competing digital currencies? Bitcoin is becoming more recognizable and trusted. But as it's popularity increases, the supply isn't going to change significantly because the supply is fixed to the internal mining algorithm. This is good because it removes the inflationary effect on the currency. Or does it?

Couldn't I just start a new "bitcoin" on a new network, and call it "bitcoins", and therefore double the amount of bitcoins in existence?

That example seems trite, but it gets to a worry I have, that the limited total number of possible bitcoins may be rendered worthless because it is open source and you can just create a secondary bitcoin network to create more bitcoins.

Is this an actual hazard to the value and future growth of the currency? Why, or why not?

You could easily create a bitcoin2, bitcoin3, ... you could create an infinite number of bitcoin currencies having different parametric spaces. These would live in separate mathematical spaces however, so you wouldn't for example be able to create bitcoins in bitcoin2 that affect bitcoins in the original bitcoin: it would be a completely separate system.

But we don't need to be so theoretical about this; there are many alternative digital currencies already in existence:

https://en.bitcoin.it/wiki/Category:Digital_currencies

I would also add other forms of popular credit such as paypal credit, and the new Amazon coin that is coming out to that list.

These can co-exist and there is no problem in this.

I think as a challenger of bitcoin however, it would be difficult, as bitcoin is the most established and most popular digital currency so far. People tend to invest in what is already the most popular, so you get a compounding effect due to this. But this isn't to say that something like something like Amazon coin couldn't eclipse bitcoin for popular use.

Note that these currencies also vary in anonymity and liquidity, which will also affect how popular they become.

But I think in summary I have to say that nobody can predict the future for this kind of thing, so we'll just have to wait and see.

Just a couple of days ago I made a blog post, and about half of it was dealing with this question: http://www.economicsofbitcoin.com/2013/03/the-classification-future-of-bitcoin.html

EDIT: basically, since a new network is not compatible (just see the recent block size hardfork debate) it is a question of network effect. If the network effect is strong, competitors will have it more difficult to take away market share from bitcoin, and have to present a compelling reason to switch. Economists tend towards the position that money has a strong network effect. In a cryptocurrency world, a competitor would have to spend a lot of money on the infrastructure, such as software libraries, documentation, PR, merchant integration, and provide liquidity on the exchanges. Probably also on lawyers.

An analogy that I often use are languages or the IP (protocol). It also is easy to create a new incompatible standard for these, just the idea that one day you wake up suddenly everyone uses something else is implausible. IPv6 has existed for 20 years now, and still hasn't replaced IPv4, because there is so much infrastructure that's not compatible and people don't want to spend money on replacing them. That's not to say that a switch cannot occur, just that it takes time and resources. I expect that eventually, IPv6 (or its successor) will replace IPv4. The IPv6 share of network traffic has been rising.

Eventually, Bitcoin may also be replaced by some other alternative that people find better. So far, that doesn't seem to be happening. The only alternative that seems to have a shot at all so far seems to be Ethereum.

For a reference, look at https://coinmarketcap.com, where hundreds of competitors to Bitcoin fail to gain non-negigible market share.


Help------ -dumpprivkey gives key connected to different address So I bought my first bitcoin yesterday and I generated my first address which is the one I used to receive the bitcoins. Now since I am still trying to sync, I have no idea if I received these coins as I cannot access the address using the directory. I checked blockchain and it says the address received the money but I can only view it as a spectator as Bitcoin Core is giving me the wrong private key. When i bounce between commands it always comes back to this random address that it has now added to my list of receiving address'. I find this very odd as the address that received the money is part of the address' connected to my wallet, but its as if the first address was overridden or something. Do you guys think there is any hope? Any insight is much appreciated thanks

You can install a lightweight wallet to your phone, this will work much faster than since it doesn't need to download the full blockchain and verify it.
Then you can import the private key and you will be able to use your bitcoins.

Some options:

electrum.org
exodus.io
Mycelium
GreenAddress

Not all of them support all operating systems but together they cover Windows, Mac, Linux, Android and iOS.


Are there standardized ways of generating wallets from passphrases? Brainwallet is a well-known tool that lets you generate an address from a passphrase. I think Brainwallet just performs a single SHA256 hash on the passphrase to get the 256-bit private key of the address.

Is there a BIP-standard formulated for this calculation?

Now that HD wallets are making there way to become mainstream, I think it is useful to have a standard to generate an HD wallet from a passphrase. Electrum and CarbonWallet seem to already have implemented HD wallet generation from passphrase and they are using 100,000 rounds of SHA256, which sounds already a much safer process than a single round.

The original BIP0032 that defines HD wallets doesn't define a way to generate them from passphrases (and it shouldn't), so maybe it is a good idea to make a separate BIP for this purpose if it does not already exists.

I want to be able to switch between wallet apps just taking my master key with me. Or for HD wallets, f.e. use a different wallet for watching (using the public root key) than for signing.

Yes, BIP39 is one such way.

Electrum has a different, mutually incompatible way.

Actually it's not the form of the private key that is important, it is the fact that the public key is derived from the private key.

Technically speaking the private key can be anything as long as the public key can be used to confirm that your private key was used to sign the transaction (or any other thing like a contract or a message). This is the purpose of the public key.

The way in which the public key is created from the private key is standardised, and that's all that matters from a bitcoin cryptography point of view.

From a security point of view, however, you need to be careful about how you decide your private key.

Starting with a private key that is easily crackable, like a song lyric or common phrase in any language is very dangerous. It can be cracked by simply from a rainbow table. Now imagine that you take that same rainbow table and hash every value, and then create public keys for each of your hashes... you still get the same result - very easy to discover the private key.

There are ways to improve this security of this...


How can I pass Multiple addresses in Move command I have to pass multiple addresses in move command but I am not able to pass as it is not accepting more than one wallet address Is there is any another way to move the balance to multiple addresses.

You can't pass multiple addresses to Move commands, also move will be removed in a later version of Bitcoin Core.

Please consider using sendtoaddress instead


Need help with a .conf file to run a lighting node? This is my configuration file and i followed all of the instructions for the program but it always gives me the error message about something missing. I don't even know what programming language .conf files are written in. if someone can give me some guidance that would be much appreciated.

eclair.chain=mainnet
eclair.bitcoind.rpcport=8332
eclair.bitcoind.rpcuser=foo
eclair.bitcoind.rpcpassword=bar
eclair.server.port=9735
eclair.node-alias=<myalias>
eclair.node-color=00ff00
eclair.bitcoind.zmq="tcp://127.0.0.1:29000"

I got this code from https://medium.com/@crypto_coffee/how-to-set-up-a-bitcoin-lightning-node-b54733fbcb7f.

eclair.chain=mainnet
eclair.node-alias=”node-alias”
eclair.bitcoind.rpcport=8332
eclair.bitcoind.rpcuser=username
eclair.bitcoind.rpcpassword=password
eclair.bitcoind.zmq=”tcp://127.0.0.1:29000"
eclair.server.public-ips = [“xxx.xxx.xx.x”]
eclair.node-color=”ffffff"

Just replace the generic text with your computer's info.

Not sure about the eclair implementation, but in LND when running the node it looks for lnd.conf which is stored in ~/.lnd by default.


Armory paper backup without private keys Do I need to install Armory on a computer to move my BTC out of an armory wallet?

Yes. To move BTC OUT of the wallet you need to access the wallet and issue the send command (type in password if you set one) to send coins to another address.

You can send coins to your paper backed up address without having that wallet online, even if you created the wallet offline and it never touched the internet once.

This is a security design to keep your coins as safe as possible. Otherwise anybody else could just move your coins.

If you lost your keys or passwords then the coins are lost, even if you know the address.

which keys are you talking about. There are no keys private or public in bitArmory. It is impossible to get private keys ,unless someone else knows how


What are "bitcoin days destroyed"? The concept of bitcoin days destroyed has been proposed as a measure of bitcoin volume. However, I don't think the bitcoin wiki really explains the idea very well.

What is the purpose or advantage of knowing this statistical value?

The idea of "bitcoin days destroyed" came about because it was realised that total transaction volume per day might be an inappropriate measure of the level of economic activity in Bitcoin.  After all, someone could be sending the same money back and forth between their own addresses repeatedly.  If you sent the same 50 btc back and forth 20 times, it would look like 1000 btc worth of activity, while in fact it represents almost nothing in terms of real transaction volume.

With "bitcoin days destroyed", the idea is instead to give more weight to coins which haven't been spent in a while.  To do this, you multiply the amount of each transaction by the number of days since those coins were last spent.  So, 1 bitcoin that hasn't been spent in 100 days (1 bitcoin * 100 days) counts as much as 100 bitcoins that were just spent yesterday (100 bitcoins * 1 day).  Because you can think of these "bitcoin days" as building up over time until a transaction actually occurs, the actual measure is called "bitcoin days destroyed".  This is believed to give a better indication of how much real economic activity is occurring on the bitcoin network.

So how well does it work?  Well, it's still not perfect, because the other day I moved some coins out of a wallet they've been in for several months without spending them or giving them away.  And some genuine businesses have very rapid turnover in bitcoins, so they're not being measured well by this method.  But it does do a good job of filtering out the "noise" of bitcoins that are just "bouncing around" without really going anywhere.  The graph of overall bitcoin days destroyed is believed to show that the genuine level of activity in the Bitcoin economy is continually increasing--it's not just one person experimenting by rapidly sending the same coins back and forth, flooding the network with meaningless chatter.  Looks pretty good, hey?

Image from the Bitcoin wiki.  The above graph is in percentage of bitcoin days destroyed and a little out of date--for a regularly updated version in bitcoin days destroyed check out Bitcoin Days Destroyed - Active Chart instead!

Bitcoin Days destroyed cannot show exactly how many bitcoins are in dormant. An interesting related measurement is called Dormant Bitcoin Chart, which shows the dormancy of all bitcoins.


How do i can track all my own transactions in ripple.Whether any user is submitting or withdrawing ripple Thanks in advance.

I have one fixed address on ripple and user will be submitting and withdrawing ripple currency in my site.

I need to track all the transaction happening with all my users.

Please tell me the better way to handle such problem.

There is an API https://ripple.com/build/data-api-v2/#get-transactions which will give all the transaction in the descending order.

But I am unable to track transaction which is occurring to my users only.

Thanks

If you want to use an api, then there are few methods you could use as:

Get Account Transaction History

Get Account Payments

Get Transaction By Account And Sequence

Also, you could use Ripple accounts explorer to check your account history with user interface.


How will bitcoin survive if everyone is hoarding? It is the question since I first heard about bitcoin, ethereum and then many others. Most tokens or crypto currencies, usually offer a utility on their respective platforms. Bitcoin is to distrupt traditional payment networks. But if everbody holds bitcoin for speculative reasons and never makes transactions with it, then how can it become a payment network? In that case, how can we suggest that bitcoin has an intrinsic value at all? Same holds for ethereum and many ethereum based utility tokens. For example, insurex claims to decentralize insurance industry and people hold their token in hope for the network will indeed grow. But then if they dont use the tokens for insurance transactions how could it happen? Finally, if everybody holds ETH for speculative reasons and not develop decentralized platforms, how could it become of the new internet?

The evidence suggests that there indeed quite a number of Bitcoin transaction, both people buying and selling. We can only speculate what they are buying and selling but there is a significant number of transactions.

bitinfocharts.com can show us the graphs for the number of transactions per day and the median value of those BTC transactions here - approximately 230,000 transactions yesterday with a median value of US$1,001 - that is a lot of money moving hands.

It is true that there are some who hoard, but not all.

When someone hoard, they will not hoard forever. There will be a time to come when people will take profit, in which the market readjust itself.

So long there is demand for bitcoin the market is upward; or otherwise.

This is why there are so many coins out there https://www.coingecko.com/en/ the market demand is there to speculate future growth. And there are huge number of people holding coins keeping the energy to the price we know now

$10,000 per bitcoin that is still wild https://www.coingecko.com/en/price_charts/bitcoin/usd


Bitcoin will not open instead I see: error loading blkindex.dat I have downloaded it onto my windows pc 3 separate times and each time it goes to start the program it shows the bitcoin wallet "loading addresses", then it's "loading block index" then my computer makes a noise and I receive this: error loading blkindex.dat. I click OK and it disappears with no options on how to fix.

I'm not very computer savvy. Please help.

Close the client, go to C:\Users\(Your Username)\AppData\Roaming\Bitcoin and delete everything in the folder except for wallet.dat - do not delete wallet.dat under any circumstances (and empty your Recycle Bin), then restart the client. Somehow your block index file became corrupted.

I just had to delete blkindex.dat. It's a little painful since you have to re-download that ~2GB file, but it worked for me.


Using ASIC for password cracking - mad concept? All ASIC for Bitcoin do a double SHA256 hash on an arbitrary string. But maybe they might be used for pen testing :-)

Lets assume we have single SHA256 hash we want to crack. We also have an ASIC that does double SHA256. Well if we compare results computed by double SHA256 to passwords that generated SHA256 hash we will get nothing. But what if we do single SHA256 on SHA256 hash that we got on start using CPU, and then try to find SHA(SHA256(x))? If we find goodX it would be our password.

Would modifying firmware, or just mining proxy that feeds miner with work do the job?

It will not help even if passwords were hashed with DSHA256. This link explains why. https://rya.nc/asic-cracking.html

Basically the ASIC loads the header into its memory and increments the nonce until the hash of the header is lower than the the specified target.

Therefore you cannot use this to brute force a password seeing as the logic is incompatible.

Double SHA1 is very much in use in SQL password hashing. It is known as the 'MySQL 4.1+' hash type. How about hardware mods on an asic chip to perform double-sha1 decrypt instead of double-sha2-256?


addnode in bitcoin.conf doesn't work (Regtest mode) I'm trying to make to nodes on the same computer communicate.
I set up two bitcoin folder with two bitcoin.conf files.
bitcoin.conf in the second node is the following:

rpcuser=bitcoinrpc
rpcpassword=roiroiroiroiroi
addnode=127.0.0.1:18444

while in the first node is just I've just set the rpcuser and rpcpasswords

Now I start the nodes with the following command

First node
./bitcoin/src/bitcoind -regtest

Second node ./bitcoin/src/bitcoind  -regtest -rpcport=5444 -port=18888 -datadir=/Users/tommaso/.bitcoin/

But they don't connect to each other.

Only if a run the command ./bitcoin/src/bitcoin-cli  -regtest -rpcport=5444 -datadir=/Users/tommaso/.bitcoin/ addnode "127.0.0.1:18444" "onetry"
 they finally connect

Why does addnode=127.0.0.1:18444 in bitcoin.conf doesn't work?

well im late but i can tell.

it works, use following string

addnode IP:8333 add   but the Port you dont need to show, because everyone uses the same port, because thats the one he set as open on his router. the rpc port must only defined once at startupt. in addnode dont use it, because you could be bound on an IP too via the bind= command, then the server dont know what to do.


What's the best way to integrate bitcoin API's into a wordpress site? I'm fairly new to coding, I understand the philosophy but I'm lacking practical application. Does anyone know any practical guides that will help me? I've completed most codeacademy courses.

You can integrate Shapeshift plugin in your website. Build something like this. That's a good way to start with. You can see an example here http://radelcorp.in/shp

I would refer you to the following for more details and i hope you will get answer there,

https://www.tipsandtricks-hq.com/how-to-accept-bitcoin-on-your-wordpress-site-6814


How can I get the list of all bitcoin transactions? I am currently thinking of doing a research project on Bitcoins. I want to download the list of all transactions of bitcoins. I was wondering what are the ways to do this? I believe I can scrape, but is there a better and faster way to do this?

The list of all transactions is the blockchain. The fastest way to get the blockchain is to run a full node which will download the blockchain for you and provide ways for you to access the data stored within the blockchain.

You can use Bitcoin Core and enable the transaction index so that you can get all transaction information. The transaction index is enabled by adding txindex=1 to your bitcoin.conf file.

Download the bitcoin core bootstrap.dat

Most downloads are compressed to save on download time.

Update:
Here's the torrents.
https://getbitcoinblockchain.com/


Ripple's validation of transactions / Ripple white paper? Is there a ripple white paper or some safe source to understand how the transactions are validated and made in the ripple network?
VS Bitcoin, XRP is not mined, so how is the agreement reached? (I understand that there is some kind of prioritisation of transactions and the first one agreed gets validated to avoid double-spending, but how does that work if it is not via mining?)
Is there some complete explanation to how Ripple works? Not the oversimplified stuff, but something that actually explains the whole process?

Thank you!

Is there a ripple white paper or some safe source to understand how the transactions are validated and made in the ripple network?

Yes. See consensus process and reaching consensus articles.

  VS Bitcoin, XRP is not mined, so how is the agreement reached? (I understand that there is some kind of prioritisation of transactions and the first one agreed gets validated to avoid double-spending, but how does that work if it is not via mining?)

Through consensus between validators (masternodes). They agree on which transaction goes first and sign the new ledger (block). This answer provides some additional details.

  Is there some complete explanation to how Ripple works? Not the oversimplified stuff, but something that actually explains the whole process?

The links above provides a good explanation.


Is it possible to execute a CLTV transaction in bitoin core 0.11 console? The title says it all. How can one perform a op_checklocktimeverify transaction using bitcoin core? I've searched around and I've found a few repo's on github but nothing about how to do it in the console. I was thinking it would be something that you would just tack onto the end of a raw tx like this:

createrawtransaction '[{"txid":"","vout":}]' '{"receive_address":0.02}' '{"op_checklocktimeverify":desired_block_height}'

OP_CHECKTIMELOCKVERIFY is implemented as of Bitcoin Core 0.11.2.

This release supports a soft fork to enable CLTV (BIP 65).  CLTV is part of version 4 blocks.  Once 951 blocks are mined with version 4 blocks, then the soft fork is complete on only version 4 blocks are valid from this point on.

You will need to construct the CLTV transaction using other software.  Here is an example that requires bitcore (NodeJS):

https://github.com/mruddy/bip65-demos

OP_CHECKTIMELOCKVERIFYis not currently implemented in Bitcoin Core and thus can not be used.


What is the secure, self-hosted wallet to redeem BTG (Bitcoin Gold)? Hacking and being hacked is not cool

I'm looking for a decent solution to redeem BTG.

Ideally self-hosted and open source.

I have 12 words seed phrase, BIP39, deterministic derivation path, etc...

Related: Claiming my BTG from my BTC private key

They suggest using offline version of https://www.bitaddress.org/ to extrac the private key and then https://medium.com/@coinomi/collecting-your-free-bitcoin-gold-btg-coins-da937d4255d1

Relevant / irrelevant detail: after the snapshot took place, I've sent some BTC to another address. I believe I should still own the corresponding amount of BTG.

For security reasons I'll first transfer my current BTC to a new SegWit address I'm holding, and only then start experimenting with BTG.

Related: BTG wallet or exchange with BIP39 seed import

Your recommendation with regards to BTG is greatly appreciated.

Research: https://play.google.com/store/apps/details?id=btg.org.freewallet.app

(surely it's not only me who has ponders this question)

Ideally self-hosted and open source.

State of the blockchain, crypto, whole ecosystem - early days - no ideal solutions - skilled developers are in extremely high demand and (to be honest) I didn't expect to find such tool.

With that said - first I moved actual BTC to another address.

Then - using the seed I was able to follow instructions here: https://coinsutra.com/claim-bitcoin-gold-btg/ (very good write up, THANKS)

In essence:

install Coinomi app (currently Android only)
restore wallet
put your phrase (don't tick BIP39)
add BTC (optionally, I first added BTC so that I could easily verify that balance is recognised)
add BTG - advanced - M/44H/0H/0H (important, defaults are not smart)
profit

I happened to keep BTC at blockchain.info (not anymore) so I had access to the 12 words seed - that was easy. There is a number of questions about claiming BTG from other type of the wallets - my first thought are leading towards bounty-smart-contract-fication - put some money in the pot and hire developers - so that whales can get their 5% dividend without risking much.

In my case - I enjoy playing, educating, experimenting. It was time well spent - I believe so.

MCCCS, I may add electrum gold, which is an electrum for BTG instead of btc,

You can find it here at https://electrumgold.org/

Of course you need to prove you are the owner of the wallet either by seed or by private keys


Why does Electrum's SPV require proprietary servers? What does an Electrum server do that a regular Core full node doesn't do? If the wallet downloads block headers and verifies transactions using SPV and bloom filters, why does it require special servers at all?

Quoted directly from the source:

  One security advantage of Electrum is that servers are authenticated
  using SSL; this provides protection against MITM attacks, which is a
  problem for thin clients, including bloom filter clients. However,
  this advantage comes at the cost of  privacy, because the main
  Electrum server you use knowns which addresses you are using; bloom
  filter clients have more privacy although the default setting in other
  clients is to favor speed at the expense of privacy.

EDIT2: Please don't downvote, I've edited my answer 10 minutes later.

EDIT: https://bitcoin.stackexchange.com/a/16630/11112

  Electrum is not peer-to-peer (P2P). It only connects to electrum-specific servers to broadcast your transactions and to receive transactions.

I'm not an expert and I didn't inspect network traffic or anything.

My understanding is that in this context "remote servers" === "full nodes"

Might be worth opening an issue - https://github.com/spesmilo/electrum/issues - to verify at the source and clarify the wording.


Blockchain.info not actual? I'm really new to Bitcoining. I've made my own wallet at blockchain.info, and then I decided to get some "free" bitcoins by watchings ads or something. This worked. At leas when i login at Microwallet.org with the Adress I have from Blockchain.
On Microwallet there's displayed my account balance of xxx Bitcoin. But on Blockchain.info (logged in with the same address, of course), my Account balance is 0.

Why?

Lorenz,
Blockchain.info is one of the,  if not the most "actual"  bitcoin wallets you can get.  It's streaming and constantly revised data plotting is also the industry standard,  although it is incomplete.

Most of the spoofy little faucets you find Will in fact earn you some mbtc,  or micro bitcoin,  however,  just because they have deposited into a wallet of their own creation and their own design,  this does not obligate them in any way to connect with the blockchain.info main chain.

This is because mostly you get what you pay for,  and you work for what you're paid. So,  watching videos and doing this or that is all well and stupid,  and it also has nothing to do with earning money. . 00000001 is called a satoshi,  after bitcoins pseudonymous creator.  You will be lucky to have as many as just a handful of these doing what you're describing and also successfully redeeming them by TRANSFERING THEM to legitimate wallet service like a blockchain.info.


Can new types of transactions be included the current block chain? I was putting an answer for this question together when I realised my idea would require a new type of transaction to be invented and included in blocks.

Then I wondered how that could work. There are many mining rigs out there which would have no way of validating my transaction type.

Even if some miners do recognise my transaction and even included it in a winning block, all the other miners would not accept that winning block and instead continue mining on the previous block.

What would happen if we wanted to devlop Bitcoin this way? Would we instead have to establish Bitcoin2 with a new block chain?

Miners will accept block with transactions they don't understand, so long as the transactions don't attempt to create Bitcoins out of thin air. They won't include transactions they can't validate in their own mined blocks though.

There is active effort at the top levels of the Bitcoin developers to get new transaction types into the client. M-of-N transactions (transactions that require a set of signatures), for example, are close to obtaining a consensus.

Actually if you jump into Bitcoin as being an implementation of Blockchain, and new transactions leading to a Blockchain 2 is possible which is actually known as a fork (can be soft or hard fork).

The case which you are telling about is Soft fork as in case of Bitcoin network, which literally creates a new branch of transactions on a running chain and the point from where the new branch emerges accept the new kind of transactions being made. But they cannot bypass the basic fact of creating bitcoin out of thin air.

When a hardfork occurs, it renders the new transaction being seen as useless and Infact can be taken as a new coin/blockchain/alternate coin.


Are any hashes (Tx or block) actually stored in the blockchain? ...or is each client responsible for storing hashes for blocks and transactions in their own database? So when I send a transaction, I indicate the prev_out by its hash, and I just assume everyone on the network will know what that hash means, even though it's not specifically, literally IN the blockchain?

Is blockexplorer.com doing me a favor by listing the hash for this raw Tx? Or is that hash actually sent by the original transaction-sender?
http://blockexplorer.com/rawtx/85dce726e04af12eaaa716d00c753e2b7d6eb83a04c2c20e1b71a63d9512f03a

No. Hashes are computed upon receipt of the Tx message, and stored in a database outside the blockchain by the client/node.

http://www.reddit.com/r/Bitcoin/comments/1sqa1q/techincal_do_transaction_messages_between_nodes/

Yes.

If you're running an official bitcoin client, you more than likely have a copy of the entire blockchain downloaded to your computer.

The blockchain contains everything required to validate a transaction - no third party data sources are ever used by the core bitcoin network.

You can find the input transaction (included in block 205061) which your example (included in block 273061) references in the raw blockchain at http://blockexplorer.com/rawblock/000000000000026190ebd9560f94b8d0534c6cd6fd585bf6fdb54610e6b676c3 (Ctrl+F for 9332ffc1da5dfdaef8b82b10a49224ff4bef6468491622968c517deb9f96889c)


Unable to recovery old btc address Yesterday someone transfer by accident some btc to my old address not used since 6 months. I knew i deleted all this, but last spent hour I was able to find my walltet. So I installed bitcoin core, few months before it looked different but ok, and replaced my walltet.dat , then when I launch it, it says : scanning, and then it starts but there is no any receiving address, can I somehow restore it ?

Unless you have your private key, you will not be able to access that address.


How can P2Pool charge a fee? P2Pool is an open source peer to peer mining pool. It currently charges a fee of 0.5%.

Is it possible to just fork P2Pool protocol and eliminate the fee? Has this been done? If so, how can P2Pool still retain users when a cheaper alternative remains? If this hasn't been done yet, why not?

Since November 17, 2011 no fee is charged.  Instead an optional donation of 0.5% is sent to the author of P2Pool to support future development.

If you don't want to donate to the author you can run P2Pool like this:

python2 run_p2pool.py --give-author 0.0 [USERNAME] [PASSWORD]

The 0.0 is a percentage of your earnings and can be set to whatever percentage you like.

P2Pool has a unique design due to its proprietary p2p protocol. However, it is inevitably just another pool. Its decentralized block creation feature was originally released by BitPenny using a Bitcoin-like protocol, and is now also supported by pools running on Eligius's Eloipool poolserver. Just as with all pools, however, P2Pool does have a centralized point-of-control calling the shots. On the other hand, just like with any pool,  someone can always fork it and make their own pool.


How do I spend a paper wallet into my coinbase.com account using the Android Coinbase app and the paper wallet QR code? I created a paper wallet using bitaddress.org and spent bitcoins into it using the Coinbase mobile (Android App). I then noticed that the paper wallet cut off part of the private key during printing! They don't leave anough room for the entire private key. I need to get those bitcoins back out of that wallet/address using only the QR code. I can't figure out how to use the Coinbase mobile app to do that. It apparently can send to a QR code, but not receive from one.

I found another Android app called "Bitcoin Wallet" that let me "sweep" the paper wallet into another address. Everything is fine.

Well, if the private key was lost, then the whole wallet is lost forever, as no one can calculate the private key using part of it or using the public key.
The bitcoin address you sent using coinbase is just a hash from the public key, so no use.
But if your paper wallet provider generates the private key using the parent key, probably you can ask for their support, but there is little hope.


How to prevent ASIC mining for my new altcoin? I want to create an altcoin that is a clone of Bitcoin. I want the mining to be ASIC resistant.
Are there any steps which I should include in my altcoin's mining algorithm to prevent ASIC mining?
Do I need to implement a completely new algorithm for mining?

Are there any steps which I should include in my altcoin's mining algorithm to prevent ASIC mining?

That's not really what you should be asking. You should be asking, "Can someone design an ASIC which is more effective at mining my altcoin than a general purpose CPU?" At sufficient scale, that is always possible.

However, you don't really care if someone can invest $1 trillion and get an ASIC that is 1% better than a CPU. If your attacker had that much money, they'd crush you no matter what. You care whether they can invest a reasonable amount of money and create something significantly more efficient. (Either in power consumption per hash, or capital cost per hash.)

Also, you want some other properties:

It must be reasonably fast to verify. (But doing so can weaken the algorithm, see Why did Litecoin choose the scrypt factors that they did? for an example.)
Switching chain tips must not cause a miner to lose a lot of progress. (Otherwise, miners have an incentive to ignore new blocks if they almost have a block of their own.)
Someone who modifies the block header must have to redo all of the work. (Otherwise, mining provides no protection.)
Mining speed must scale linearly with computing resources. In other words, you shouldn't be able to double the number of computers you have and quadruple your mining speed.

I don't know of an algorithm that satisfies these five properties, but the problem hasn't been proven impossible.

  What about EquiHash Algorithm?

Look at these two criticisms of EquiHash:

http://www.openwall.com/articles/Zcash-Equihash-Analysis
https://petertodd.org/2016/cypherpunk-desert-bus-zcash-trusted-setup-ceremony#equihash-proof-of-work

There are probably algorithmic improvements still available in EquiHash, and there is almost certainly a hardware speedup available.

(There is also an unverified claim that someone has created an FPGA Equihash miner.)

  Do I need to implement a completely new algorithm for mining?

You're unlikely to do much better than the attempts above.

The best way to change algorithm,if someone decides to kill your coin can dump a lot of hashrate in order to increase the diff and then abandon,that means the 51% attack is not the only problem,I suggest you to use cryptonote https://cryptonote.org/inside/


Why did repeated "R" values occur in Bitcoin transactions before? Please explain why earlier the repeated values of "R" occurred in Bitcoin transactions.

For example, this transaction has a repetition of the value "R":
https://www.blockchain.com/btc/tx/19d66411a5aa716a04b37197c11c93c9446a54694a2d2302093d8b0a93ed5d83

If you look at RawTX:
https://btc.com/19d66411a5aa716a04b37197c11c93c9446a54694a2d2302093d8b0a93ed5d83.rawhex

repeat value "R":

R = cabc3692f1f7ba75a8572dc5d270b35bcc00650534f6e5ecd6338e55355454d5

What was the reason for this? Explain the reason for this error?

The R value is the result of EC point multiplication between the k value (known as the nonce) and the secp256k1 curve's generator point. It is effectively the public key for k. The only way that an R value can repeat is if k is also the same. Given that k is a 256 bit number and is supposed to be chosen completely randomly, k should not repeat unless the random number generator is broken.

Considering that k is generated at signing time and should be random, we can conclude that whoever chose k for those transactions has a faulty random number generator which is either outputting a fixed value or a small value which increases the probability of k being repeated. There is no good reason for this to happen, so this error comes from either a faulty RNG or a completely misunderstanding of how ECDSA works.

Because r only depends on the random number k (in addition to curve parameters) and reusing k, as long as the private keys are different, is OK.

Further reading: https://www.maximintegrated.com/en/app-notes/index.mvp/id/5767


Should I leave the Bitcoin client open? Some people recommended that I leave my Bitcoin client open because it helps the network.

Apart from the security implications, why should I do this? I thought that miners were the ones responsible for validating transactions and including them in the blockchain. What role does the Bitcoin client play in the network?

I would add two points to those already mentioned: First, if you cannot accept inbound connections (because you are behind NAT or have specifically disabled them) you won't really be helping the network. Second, if you are running any version earlier than 0.3.24, you could actually be harming the network, due to a bug in those versions.

For some reason that isn't well-understood, the Bitcoin peer-to-peer network is consistently short of available inbound connection slots. This makes it more difficult for newly-started clients to establish a resilient connection to the Bitcoin network. If you can accept inbound connections, leaving your client running helps reduce this problem.

Turning your client off gives it a chance to fall behind the network. The client is so bad at downloading the block chain from other clients, that if you fall more than few days behind, you'll have to download a copy of the block chain from the nightly archive in order to catch up.


How safe it is that a single San Francisco company controls the canonical location of Bitcoin code? The single most-trusted canonical source of Bitcoin client is https://github.com/bitcoin/bitcoin

This URL is controlled by a single US company GitHub Inc., headquartered in San Francisco, United States. The US government (nor any other government) is probably not a friend of Bitcoin, and they could theoretically threat the CEOs of GitHub Inc. with an arrest, unless they implement some kind of backdoor into the Bitcoin code, which could be downloaded by a large number of people before it would get noticed.

If and how is the Bitcoin network protected from being poisoned and destroyed this way?

You should learn more about the way the git scm system works. First, it is distributed so that everyone has a complete copy of the entire codebase; second, every commit is checksummed, so that if github wanted to (or was forced to) underhandedly change code, it would be detected by everyone.

It does not matter where code is situated. Github may be used just for first time.

Your question is about developers. Anybody who can commit to master branch, can inject malicious code. It will be a little mistake in math, parser, network stack.

It also may be a group of coders, they will try to hide this injection with mass commit to code, with preposition to improve bad places, e.g. improve db size( v0.7 -> v0.8 ).

Behind them may stay a great government's structure, like NSA or FBI, CIA.

Such injection was in OpenBSD project early. One of the developers collaborated with FBI.

Only God know what kind of mistakes(backdoors) contain mass commit by Microsoft to Linux kernel(v3.0).

My 10 cents of paranoia.


Matching pushpool difficulty with stratum's I have a new question for you.

I have setup the stratum mining proxy, and all is working fine. (Actually found our first block recently!)
However, I have pushpool running as well, and some of my users still use it based on preference.

How can I be assured that people that use stratum isn't getting more shares than those who's using pushpool? Is there a way to set the difficulty on stratum?
As of now i set the difficulty manually in pushpool's config file, with rpc.target.bits

Help is appriciated!

This is how you change the difficulty in Stratum:

go to mining/subscription.py

change

self.connection_ref().rpc('mining.set_difficulty', [16,], is_notification=True)

to

self.connection_ref().rpc('mining.set_difficulty', [32,], is_notification=True)

That will set the difficulty to 32 - or change to whatever value you want.


Why isn't Bitcoin private by default? Bitcoin is not fungible...so why haven't the Bitcoin core devs upgraded the protocol to make it private by default?

They are trying to add new features that would help with privacy! There is an upgrade proposal known as Taproot that would come with features to enable additional transaction privacy in Bitcoin.
Note, however, that major changes like this to Bitcoin are much more difficult than they are in smaller altcoins, simply because a significant amount of infrastructure must be updated, and getting so many different people and organizations to agree to a major update is challenging, although necessary to avoid a fork in the network. Also, there is an effort to keep updates backwards compatible with existing infrastructure, which limits the extent to which major changes like this are possible.

Except for the technical and organizational challenges others have mentioned in their answers, I would like to add there is also a delicate matter of how Law Enforcement agencies such as police or various governmental tax agencies look at the ability to transfer and store amounts of money in untraceable private accounts - just look at the current leading private-coin - Monero, trading Monero was removed from several big online markets and it's value fell, I guess Bitcoin community would fear loss of value after seeing what happened to Monero.
Private-coin such as Monero is a double-edged sword for government. Corporations, who generally try to maintain good connections to governments (and in turn, governments, unofficially protect interests of important national corporations), traditionally evade paying tax and resort to Cayman Islands banks, private Swiss-bank accounts etc.
So in future it is likely bug business might be interested in keeping their money in private-coin, on the other hand, LE is worried about organized crime and terrorist groups hiding their finances behind private-coin.
Currently, future of private-coins is a subject to some speculation and uncertainty, and I don't think Bitcoin wants to take that path.


Where to find help understanding Bitcoin's source code in C++? I am looking to understand the Bitcoin C++ source code on GitHub. The Python one is simpler, but even that is too complicated for a beginner. Could someone guide me to some good resources on the actual implementation and its details? The actual C++ techniques used seem to be quite complicated.

I am not aware of an extensively commented version of the Bitcoin sourcecode, but you could check out the Bitcoin Developer Reference and you can read online the book Mastering Bitcoin by Andreas M. Antonopoulos, which covers Bitcoin's technical aspects extensively. There is also Princeton's Free Online Bitcoin course, which goes into details on some technical aspects, which might in turn help you understand the sourcecode better.

Besides that, try searching Bitcoin.SE for specific questions, there are a few here that have been asked about already, if you can't find something, feel free to ask a new question here.

Mastering Bitcoin by Andreas Antonopoulos is definitely a good start. It's available for free.


When does the Ardor - NXT to Ignis snapshot occur and which exchanges support the snapshot? I heard the Ignis snapshot is going to occur sometime in the summer of 2017. When is the exact date? And how many coins do you get for holding your NXT for Ignis? And which exchanges are on board with issuing the Ignis tokens?

No set date for release yet but with in the next few months. 1NXT will get you 0.5IGNIS.


How much will transaction fees eventually be? Some people keep evangelizing that Bitcoin transaction fees are much lower than in PayPal or with credit cards.

However, once nearly all 21 million bitcoins have been mined, the network will still have to be secured.

But "miners" can then no longer be rewarded by newly minted bitcoins. They will have to be rewarded by transaction fees.

I read that the market will find the equilibrium how much these transaction fees will be.

Are there any estimates or more concrete calculations about that? Is it even possible to foresee, as the "degree of network security" is a rather nebulous incentive for most (casual) users? Will they thus be enforced by the software? Will these fees better be absolute or relative to the amount of a single transfer?

I read that the market will find the equilibrium how much these transaction fees will be.

It will not.  This is perhaps the biggest flaw in Bitcoin at the moment: once mining rewards end there is no direct linkage between the amount of hashpower needed to secure the network and the incentive to mine.

True, there is a limit on the blocksize, so if the transaction volume in a block window (approximately 10 minutes) exceeds the block size you can expect a miniature "auction" where transactions fight for space in the block by bidding up the minimum transaction fee needed to get in.  However this isn't really a closed-loop adjustment: the maximum blocksize is an arbitrarily chosen number, and there's no reason to believe the maximum blocksize is small enough to ensure that transaction fees are high enough to incent enough miners to mine to keep the system secure.  Unlike the difficulty and the USD/BTC exchange rate it does not respond to market activity.  It also has the negative side effect of capping the worldwide Bitcoin transaction throughput since other parts of the protocol rely on the assumption that blocks are created -- in the long run -- no more than once every ten minutes.

Compare this to the current situation with mining rewards: the more valuable a bitcoin is the more incentive there is for somebody to try to overwhelm the "good guys" by gaining 50%+1 hashpower.  However, the more valuable a bitcoin is the more miners will mine!  It isn't perfect, but the important point is that the demand for security increases the incentive to mine.  Note that although the difficulty will go up, that simply ensures that the reward granted every ten minutes is an approximately constant number of BTC -- the number of terahashes/sec fighting over that amount of BTC is free to respond to changes in their changing value (as measured in terms of all other goods in the world, including other currencies).

As the mining reward is reduced this "direct coupling" between the network's need for security and the incentive to mine becomes progressively more diluted.

I worry a lot about what will happen to Bitcoin once we decouple those two forces.  I think the developers ought to at least come up with a story on how this will be solved so people can start testing it.

The long-term miners 'fee' for validating transactions might eventually come to be interpreted as some sort of interest rate.

Traditionally the interest rate is defined as the opportunity cost of holding on to currency. Right now, there is a benefit to holding on to a bitcoin, but come the day when they are few and far between mined, and more and more 'validated' that validation will be the opportunity cost of not discovering a new bitcoin, and thus some sort of interest rate (i.e. not having a bitcoin).


Why can't I spend my bitcoins when they have been fully confirmed? I've used bitcoins for quite a while, but about a year ago I decided to dump having a thin client on my machine, and I've just kept my coins in various exchanges.

Yesterday, however, I wanted to check out the current state of the bitcoin client and I was a bit surprised to see that on Bitcoin.org, you now have three options.  That's good!

I downloaded the Multi-bit and installed it on my Mac.  I generated a payment address and I sent myself about .45 BTC.  After about an hour, I saw that it was confirmed.  I also set my mining pool account to send my payments to this new wallet, so I get a bit-cent sent to it every 12-16 hours (yeah, I'm not getting much, but I enjoy the free money.)

After a day, I now have a few transactions on this wallet.  My confirmed balance is around .5 BTC.  I just sent 2, .02 btc transactions.  Right after sending these two transactions, I tried to send a third for .06, Multi-bit gave me a message stating:

  There are not enough funds in your wallet to send .06 BTC. The
  transaction fee is set at .0001 BTC. Note that you can only spend
  confirmed transactions.

I don't understand.  My confirmed balance is currently around .43 BTC.  These coins have been confirmed for at least 12 hours, yet I'm getting this message telling me my balance was too low?

Has something changed within the Bitcoin protocol in the last year that I'm not aware of or is this a known bug in the Multi-bit client.  My biggest worry is that if and when I decide to move my coins from this wallet to an e-wallet, the thin-client is going to give me this same message when I try to make a big withdrawal because of this bug.  What is going on?

I don't use MultiBit, but just checked its source code to see what the message you quoted means.

It turns out that the message is shown when the amount you're asking to send plus fees is less than the "available balance", which is defined as:

  Balance that can be safely used to create new spends. This is all confirmed unspent outputs minus the ones spent by pending transactions, but not including the outputs of those pending transactions.

The source code also says:

  Consider a real-world example: you buy a snack costing $5 but you only have a $10 bill. At the start you have $10 viewed from every possible angle. After you order the snack you hand over your $10 bill. From the perspective of your wallet you have zero dollars (AVAILABLE). But you know in a few seconds the shopkeeper will give you back $5 change so most people in practice would say they have $5 (ESTIMATED).

So my guess would be that your balance includes some unconfirmed change from your previous transaction(s), and that simply waiting for that change to confirm will solve your problem.

In other words MultiBit doesn't allow you to spend the $5 change until you have it back from the shopkeeper.  Note that the Satoshi client does allow you to spend unconfirmed change outputs.

nah... its defective programming, i have 10 bitcoin, say, fully confirmed 347 times last week, I spend 1 satoshi and the entire contents of the wallet are locked up until that spend is confirmed..  explain that any way you want it isnt going to cause the code to rewrite itself..
beta = beta


How do you make bitcoins bought from a exchange anonymous? Contrary to what most people think, bitcoin is not 100% anonymous. It is pseudonym.

Now, let us say you bought bitcoins from a exchange. The exchange has your government issued ID. Then you send your bitcoins to a offline wallet.

Now, the blockchain has a record of the exchange sending you bitcoins to your wallet, and the exchange has a record of what offline wallet is linked to you.

How do you effectively separate this link?

My theory is that you can send your bitcoins from your offline wallet to a bitcoin casino site, then withdraw your balance to another wallet.

Would that remove all the links to your bitcoins from your ID/make it impossible to trace back to you?

You should do some mixing transactions in between, I would recommend Wasabi Wallet or JoinMarket. They are both decentralized solutions, where you don't risk loosing your funds, like it is with centralized tumbling services.

You cannot, just go into cash market, you wanna buy in cash and sell in cash, anything bank related and ID related is traceable, read the privacy policy they all report your records per request.


How to suggest to our church that they should accept Bitcoin payments? A little bit of context: I send 10% of my profit (the tithe) to a church. Along with the tithe I send money for different projects.

I guess they can be considered donations.
This church is a non-profit organization.

Recently I started to get profit in Bitcoin (weekly, I'm paid in Bitcoins for the work I do). It's not a small amount. Now, obviously, the next idea that came in mind was: how do I send the tithe now?

Since this non-profit does accept other currencies (such as EUR, USD etc) I think it would be a good reason to accept Bitcoin too. Currently it doesn't and I didn't talked to them about this.

I'm beginner in understanding Bitcoin, but I know the basics. Most of them are non-technical people and I believe it will be very hard for them to understand how this works. I have to admit I had a lot of questions I had to find answers for as well.

What would be the reasons I should present them to support my plan: sending Bitcoins to this non-profit?

Some things I have in mind:

There are quite a few shops that do accept Bitcoins in our country.
It's not controlled by the state or any organization (personally I find this pretty huge, for obvious reasons)
Some other people send to this non-profit even things that are not money (e.g. they work with bees and they get a lot of honey, they can choose to send 10% to the church). I think this is a thing that will help them realize a little bit that Bitcoin is a value as well.
Since they accept other currencies, why won't they accept Bitcoins too?
Related to the previous one: if I'd convert my Bitcoins in other currencies (e.g. EUR), since the Bitcoin value is still changing quickly it won't be a stable thing for both parts

Are these good enough to start with? What others points should I present? Given the context, how can I explain them in simple words how this would help?

From my understanding, they will simply have to create a wallet and share an address with the world.

My best approach would be to show them coinbase.com or xcoins.io or gemini.com and show them how its similar to a bank account. They can log in and check their balance or withdraw to a bank account directly from their wallet.

Tell them that Bitcoin + Coinbase is less costly compared to PayPal: With Coinbase the church can create its own donation button for its website and accept up to $1 million in transactions with no fees (and only 1% after that, compared to PayPal's 2.9% + 30¢/transact. fees). Of course if they accept Bitcoin without any intermediary like Coinbase, there wouldn't even be a 1% fee, either.

Really they're probably not going to know what your talking about unless you visualize it for them. For example in my xcoins.io account it shows my Bitcoin in a dollar amount too so they could see that and not get confused if you know what I mean.

If you or they would like I will walk them through all of the steps they need to get started or they/you can go to my website to get started for yourself, by going HERE You may also want to suggest they get a debit card through bitpay.com then the can load their bitcoins on there and use as needed (like a regular debit card)


Bitcoin Mining with Poweredge Servers? From a previous business, I have 5 Dell Poweredge 2850 Servers, each with 2 Intel Xeon 3.4 Ghz processors. I also have 2 2950's, a huge 7150, and few other smaller 1 U Dell servers. All but 2 of those machines are just sitting there in the rack and not even turned on right now. I have seen CPU miners and know that these are not optimal, but have considering making 5 mining servers out of the 2850's to just see what happens. My power bill increases around $400 a month when running all of these servers/switches/UPS/Firewall/etc. (more in the summer than winter of course). I have all the infrastructure and hardware to setup these machines, but I can't seem to find any data on potential earnings with Xeon processors to see if it would be worth my time or the extra power to build miners out of these machines. I understand that with the difficulty going up the earning will continue to decrease, but if anyone could provide some rough potential numbers or suggestions for further research, it would be appreciated.

If you could get recent GPUs (Radeon HD 6850 or newer) for very, very cheap, you might be able to make a couple of Bitcoin per month. It may not be worth it, depending your electricity costs.

Use these tools to help guide you to an informed decision:

P3 Kill A Watt power meter, to find your actual power consumption
Mining hardware comparison, to find a GPU that will work in your system and plug its hashrate into...
Mining profitability calculator, to calculate what your break even or profit point will be.

vanitygen is probably your best bet given the equipment that you already have.

I would try running SCRYPT based miners. I have 3 poweredge servers to set up and thats my take for now.


If I backup my wallet.dat once, am I forever safe? I have a dogecoin (though should be similar to bitcoin/altcoins) wallet and I encrypted and backed up my wallet.dat file to a few different places (different cloud providers).

Now, assuming I never create a completely new wallet, do I ever need to update the wallet.dat file that I have backed up?

TL;DR: If you have a frequent recurring backup you are safe, otherwise use a deterministic wallet.

No, you are not safe in that scenario.
Let me rephrase that, you are not safe if you really want to use your the coins from your addresses.

Wallet.dat file stores all public and private keys of your current addresses but standard client generates a new address every time you generate some change spending your money and those addresses will not be saved in your distributed copies.
Also if you generate a new address manually it will not be in your backups.
So if you recover the file from a backup those "change" addresses will be lost and you will not be able to use that coins.

Well that is not really true :D indeed to leverage this kind of problems with recent backups standard client (and probably doge client) pre-generates a bunch of addresses (100) in a qeue and when it needs a new one (used for change or when you ask for it) it just take the first one and add one to the end of the qeue.

So while it is not really safe to store a backup forever if you backup frequently you will have no problem recovering all your coins when you recover a backup.

Another option is using a deterministic wallet, it is a system that given a unique passphrase, file, code or whatever will generate always the same addresses with their private keys, so as long as you save or memorize the seed you can recover everything.
bitcoin-qt (and dogecoin-qt) does not support this but clients like Armory and other online wallets do.

Your question is pretty confusing, I cannot figure out whether you are asking in context to security or you are asking about the network synchronization if its the later one then the wallet has nothing to do with the network synchronization its the blkindex files which synchronize with the network. Do not keep your wallet with cloud servers there is a high risk of being hacked keep your wallet in a safe place may be a computer which is not often used.


Supposedly 'Satoshi' was found in Australia… is there any way to verify this? So far I can't tell what's true about all this.  It also seems like it'd be easy for someone to claim to be the pseudonymous creator of Bitcoin.  I've only seen information about this from main stream sources.  Does anyone know anything beyond the current main-stream narrative?

If someone purporting to be 'Satoshi Nakamoto' wanted to prove it, he/she could do so by signing a message using one of the same signing keys that 'Satoshi Nakamoto' used to sign one of his early messages during the release of bitcoin.  Or, he/she could announce that they will make a bitcoin payment from an address believed to belong to 'Satoshi Nakamoto' to some other address, then actually do so.

I'm literally just reading the Gizmodo piece as well. This piece is based off of a month long investigation where they've done some really good journalistic reporting. Highly recommended.


Recover Old Bitcoin Wallet (Currently getting a Segfault) I have a bit of bitcoin lingering in an old bitcoin wallet (circa 2011). I just restored it from a backup but I can't seem to load it into bitcoin-qt.

If I launch the app, shut it down, the copy in my old wallet.dat file and re-open, it shows a zero balance.

If, instead, I shut it down, copy over the entirety of my old .bitcoin folder, and then re-open, I get an immediate segfault. How screwed am I?

You may find the following post relevant:

Wallet.dat (<0.4.0) format: retrieving Bitcoin, possible security concerns

This post details some of the steps you may need to perform to import the wallet into a current client, the biggest time consumer will be waiting for the full blockchain to sync with the current network.

This guy used some tricks way above my basic pay grade but, maybe something will help you

Good Luck ,

https://medium.com/@simonvc/i-found-an-old-bitcoin-wallet-1aeb2f32387a


When building bitcoind from source, how to specify stable build? I managed to build bitcoind on arch linux after downloading the source from github, but after running bitcoind getinfo command, I am told:

  "errors" : "This is a pre-release test build - use at your own risk -
  do not use for mining or merchant applications"

How can I remove that message and use a stable build, instead of the pre-release one I downloaded?

I assume I have to do something with the information found here: https://github.com/bitcoin/bitcoin/tags

If you got the source via git, you can checkout on the latest stable release tag, currently v0.8.1 using the git command git checkout v0.8.1.

When you did not setup git, you can simply download the source from that tag version from the webpage you suggested using either the .zip or .tar.gz link underneath the tag name. vX.X.X releases are stable ones, while the vX.X.XrcX releases are release candidates, meaning that they can still contain a few bugs.

The full procedure:

Open a terminal and clone the github repository

git clone https://github.com/bitcoin/bitcoin

then get the latest stable version, right now the command is:

git fetch
git checkout 0.11

then build bitcoin-core as ususal (install the required lib dependencies, ./autogen.sh, ./configure, make, make install)

The current development version is 11.99, you can build multiple version of bitcoin, for example a development version and a stable version to test beta features and to see if the private keys / blockchain / backups are easily loaded on the dev version, this is the json output of the getinfo bitcoin-cli command/function that lets you check the version numbers:

version:         11.9900
protocolversion:  7.0011
walletversion:    6.0000

this means we are running 0.11.99 (it means the future 0.12)

protocol version is 7.00.11

wallet version is 6

extra infos:

the current versions are also stored in JSON on the bitcoin blockchain: 91b37d9429a7e660a6b2c3352e39335e81884493dfbfbffa479b8068194e921d (transaction hash)

https://chain.so/tx/BTC/91b37d9429a7e660a6b2c3352e39335e81884493dfbfbffa479b8068194e921d see the message field on sochain or blockchain.info https://blockchain.info/tx/91b37d9429a7e660a6b2c3352e39335e81884493dfbfbffa479b8068194e921d


Specific namecoin address in merged mining I want to do merged mining with P2Pool, and I want any generated namecoins to go to a specific namecoin address in my wallet. I haven't seen a way to configure this in P2Pool or namecoind, and Google's turned up no hits. It seems as though it's either too obvious for anybody to mention in any guides, or like I'm the only one who wants to do this. If the latter, then why does nobody want this and why should I not do this?

with p2pool at least for the coins are 'merged' mining you cannot reconfigure them to go to any other account except for the default account of that wallet.  However  you may be able to work around this in one of the following ways depending on your coding ability.
Monitor P2Pool logs and trigger script
Watch the p2pool logs and when a block is found trigger a script.
This can be achieved using swatch (linux tool for watching logs files) and looking for merged blocks that appear in /path/to/p2pool/data/bitcoin/log  (cant find the example merged block right now will edit later to include)  so in this instance what you would do is use this command:  swatch -t /path/to/p2pool/data/bitcoin/log  and create a ~/.swatchrc in your home directory with something like this:
watchfor /SHARE|BLOCK/
    exec echo "P2Pool Event:\n\n$_\n" | python ~/pyPushBullet/pushbullet_cmd.py 6xxxxxxxxxxxxxxxxxxxxxxxx60993c note xxxxxx"P2Pool Notification" "$_"

Im using push bullet to send notifications on share and block notifications.  however in your case you would want to craft a script to check the block itself for merged outputs.
Wallet Notify
Most Crypto Clients now let you configure an action for
  -blocknotify=<cmd>     Execute command when the best block changes (%s in cmd is replaced by block hash)
  -walletnotify=<cmd>    Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)
  -alertnotify=<cmd>     Execute command when a relevant alert is received (%s in cmd is replaced by message)

Courtesy Off The Bitcoin Wiki
again in the same vein as the first optin you could  create a script that is triggered on wallet notify for the Nnamecoin wallet and move the coins from the default addreaa to you chosen address.

Probally just goes to default NMC address


Start cgminer only on the second card HOW? I have two video cards. My main card is a nvidia 650ti and my second is an AMD R9 280x. My monitor is connected to the nvidia and I use it for normal things. I want to start cgminer only on my second card - the AMD R9 280x. I tried with cgminer -d1 but it says:

ADL found less devices than opencl!
There is possibly more than one display attached to a GPU
Use the gpu map feature to reliably map OpenCL to ADL
WARNING: Number of OpenCL and ADL devices did not match!
Hardware monitoring may NOT match up with devices!

I saw that there is this command:

--gpu-map <arg> - Map OpenCL to ADL device order manually, paired CSV (e.g. 1:0,2:1 maps OpenCL 1 to ADL 0, 2 to 1)

I have tried it but I don't know exactly what arguments to use and it does not work.

How can I use the command to start cgminer only for my second card?

to maps gpus i use this script:

cgminer -n option

Timeout /t 3600

Make it a .bat file and put it in the same folder as you cgminer, then you can tell witch gpu that is 0,1,2...

but you have to turn off power saving in windows to prevent you 280x form sleep, if you don't have a dummy-plug or an screen put to that device.

I used this guide for all start up information's: http://www.cryptobadger.com/build-your-own-litecoin-mining-rig/

Regards

EDIT: and when you use the -d command remember to have a space before the number.

Use the -d switch on cgminer, this allows you to specify which card(s) to use.


Effect on economy if Bitcoin was widely adopted What would the effects be on the world economy if several million people around the world would utilize the Bitcoin currency for their daily transactions? Would you expect the GDP to grow faster or slower and why?

I am interested in this, because the first thing I want to get straight is whether I would contribute something positive if I supported the project.

GDP would accelerate because of less transactional friction.

I am not an economist, but one negative impact I can see bitcoin having if it took over an entire economy is that it would make the digital divide worse.  There are still people out there who don't have computers or cell phones.  Paying for things is easy for this group of people is still easy while there is still physical cash - but if there were only digital cash?

Short of a government handout giving away free cell phones with bitcoin wallets to these people, I can't imagine this would be good for the poor and homeless people.


Why is my Electron Cash not detecting any servers? I am using Elecron Cash 2.9.4, and I opened the wallet by using the seed of my old (BTC) Electrum Wallet. I intended to get BCH.

I had a similar issue. The solution is easy.

Choose the "Server" tab, then randomly right click on a server and choose "Use this as server"

To make sure it works properly, please choose one of these: https://github.com/fyookball/electrum/blob/b32f10a/lib/network.py#L54-L58

I've reported the bug to Electron Cash' developer. Thank you for noticing it!

Try to update your Electron wallet in playstore. Be sure you're connected and have strong enough data or signal. Be sure it's not counterfeit, Lmo!!


Is it normal not to see my sending/receiving addresses while the bitcoin client is syncing? I am using bitcoin core on windows 7, it takes forever to sync and during this time I cannot see any sending/receiving addresses in my interface, I only see "balances" (empty), "recent transactions" (also empty).

Will addresses show up only after it is done syncing ?
a bit off-topic: Is it safe to just copy/paste the wallet.dat around or is it any risk if the sync is at a certain state while I copy/paste the wallet to/from the bitcoin data folder ?

1)

No.

Receiving addresses are not shown because they are intended to be used only for a single payment. The practice of reusing addresses weakens your privacy, but also that of others in the system who you interact with.

It is possible to see the receive addresses that were created in the past, but you need to explicitly check the address reuse box in the receive payment tab.

2)

You can move the wallet.dat file when Bitcoin Core is not running. You can also copy to make a backup, but realize that the backup will need to be recreated every 100 incoming payments (this will change in 0.13, where a backup will be permanently valid). Do not actually use copies of a wallet from multiple locations at once.

Will addresses show up only after it is done syncing?

Probably. I suggest you to enter your address to blockchain.info, if you see an incoming payment there, it will mean that after the syncing is done or while syncing, the payment will come 100%.

  a bit off-topic: Is it safe to just copy/paste the wallet.dat around or is it any risk if the sync is at a certain state while I copy/paste the wallet to/from the bitcoin data folder ?

No, you there won't be any problem, but be careful, if anyone finds your wallet.dat they may steal your Bitcoins.


How does Open Transactions solve the double spend problem? OT is based on digital cash. From the article:

  To tackle the double spending problem, the payee has to verify the
  coin with the bank at the point of sale in each of the transactions.
  This verification of the legitimacy of the coin requires extra
  bandwidth and is a potential bottleneck of the system especially when
  the traffic is high. The real time verification also means there is a
  need for the synchronization between bank servers.

This is not clear to me. Does the bank know who owns each coin? What exactly does the bank verify? If I try to send the same coin to both Alice and Bob, where exactly would this fail? What knowledge do any of the parties (Alice, Bob, the Bank) gain during this transaction?

When I withdraw 10 clams, my client software generates a random ID:  lkjsdfoiu

It then chooses a random blinding factor, which it keeps secret.

It then blinds the random ID using the blinding factor along with the server's 10-clam public minting key, producing (say): 897345jh

This random, and now blinded, ID is then sent to the OT server along with my withdrawal request.

Once the server verifies that it has successfully withdrawn 10 clams from my account, it uses its 10-clam private minting key to sign the blinded ID:  897345jh SIGNED: Server.

The server returns this to me. My client unblinds it using its secret blinding factor along with the server's 10-clam public minting key:  lkjsdfoiu SIGNED: Server.

When you ask, "Ah-ha-ha, but how can the server's signature still verify, when the ID has changed from 897345jh back to lkjsdfoiu again?" (since it was unblinded) ==> The answer is, that is the whole point of blind signatures. They still work, even after they are unblinded. That is the whole magic of digital cash. (I encourage you to Google "homomorphic encryption" to learn more about the applications for this concept.)

At this point:
1. My client now has a random ID with a valid server signature on it.
2. The server has no idea what that ID is, since the ID was blinded when it was signed.
3. Therefore I and I alone am the only person who knows that ID.
4. When I give the token to Bob who redeems it at the server, the server can see that the token is good (since it has a valid signature.) The server also knows that it's worth 10 clams, since only the 10-clam public key can verify that signature. But the server has no idea where it came from.

Once the server redeems the token for Bob, it records the token's ID (lkjsdfoiu) in a spent token database. This way, if the token is ever redeemed twice, the server can see that it is no good, because it has already been used.

OT expires and rotates cash tokens and mints, in order to allow the server operator to erase its spent token database every few months. Otherwise, the server operator would be forced to store a growing database forever, which is not feasible for a server operator.

newsflash: OpenTransactions doesn't have a double spend problem, thus there is nothing to solve.

'double spend' is a problem for P2P decentralized systems not client server systems.  Open Transactions is a client-server system.

Guys: look around you.  Do you see any serious adults gathered here?  That's because FellowTraveller is a joke.  It seems as though in his response above he is actually taking credit for Chaumian e-cash?  Not only did he not invent it, he didn't even implement it. https://github.com/benlaurie/lucre

  "One of the core challenges of designing a digital currency involves
  something called the double-spending problem. If a digital dollar is
  just information, free from the corporeal strictures of paper and
  metal, what's to prevent people from copying and pasting it as easily
  as a chunk of text, "spending" it as many times as they want? The
  conventional answer involved using a central clearing house to keep a
  real-time ledger of all transactions. The ledger prevents fraud, but
  it also requires a trusted third party to administer it."

Open Transactions adheres to this traditional 'central clearing house' model.  To say that Open Transactions solved the problem of double spending is just absurd.  It's like saying an automobile has 'solved' the problem airplanes have of getting off the ground.  Much of these misconceptions are due entirely to FellowTravellers 'creative' use of language, complete absence of any legitimate peer review of his claims, and total lack of any actual users.

http://www.wired.co.uk/magazine/archive/2012/01/features/the-rise-and-fall-of-bitcoin

so one could say that Open Transactions is neither:

1) community generated

2) 'just works'

3) makes sense


Bitcoin core How do I get the transaction fee while using sendtoaddress I have a bitcoin core running on testnet, so for suppose I have a wallet balance of 1BTC and I have to send it to an addressx, so how can I know the amount of transaction fee so that I can subtract it from the sending amount.

bitcoin-cli sendtoaddress x 1

This will return an error stating that

error code: -4
error message:
Error: This transaction requires a transaction fee of at least 0.00000488

How can I know it beforehand the fee required for a transaction?

I think you want estimatesmartfee or estimatefee it takes one argument which is the confirmation target in blocks.  You can also select from Economical or Conservative fee modes which may affect the suggested fee rate.

As the bitcoin-cli help sendtoaddress states:

  subtractfeefromamount    (boolean, optional, default=false) The fee will be deducted from the amount being sent.

So you can change your call to:

bitcoin-cli sendtoaddress x 1 "" "" true

So that the fee is deducted from the amount to send


What are main advantages of Bitcoin over Monero? In the world of full spectrum surveillance, since some time it has become more than evident that Bitcoin isn’t that anonymous at all. All transactions can be traced on the blockchain. There is a certain probability that this data can be handed over to big brother governments upon request, and your commercial connections with certain people, products or online services -- would be easily revealed.

Some of the bitcoin blockchain monitoring companies do deanonymize bitcoin users and their commercial activities.

So, what would be the main advantage of Bitcoin over Monero?

So, what would be the main advantage of Bitcoin over Monero?

Bitcoin is more scalable. Monero inherently requires every full node to maintain an ever-growing database of spent outputs, and is many times slower to validate transactions for. Bitcoin uses a UTXO set whose size is proportional to the number of coins currently in circulation, not its history. Longer term, I believe this means Monero's technology wouldn't be able to sustain the amount of usage Bitcoin sees without seriously hurting its decentralized properties.
Bitcoin has a larger ecosystem. Currencies - especially worldwide currencies - show a strong network effect: nobody wants a currency that nobody wants/uses. In the long term, I expect that this will result in just one or a few cryptocurrencies, and Bitcoin has a much better change being one of those.
Bitcoin is less of an experiment. Monero has planned hard forks twice a year, determined by a rather centralized group of developers. This allows them to evolve much faster, but also means it's hard to consider it a decentralized currency (AFAIK even their developers will say this). For example, a government would likely have far less difficulty to force certain changes into Monero than in Bitcoin due to an ecosystem that is just much less eager to follow one group.
Bitcoin has more hashpower. Bitcoin is less vulnerable to a 51% attack than any other (decentralized) cryptocurrency.

In general, I see Monero as a research project to experiment with better privacy technology, not as a currency in its own right. However, that does not mean the  technology being developed there can't benefit Bitcoin or its users.
Bitcoin absolutely needs better privacy. And I believe it will get it too - partially due to better technology, and partially due to better practices.

Bitcoin is naturally slow to adopt changes, but improvements are continuously being worked on (search for things like MAST, TumbleBit, Layer-2 payments, Taproot, signature aggregation, scriptless scripts, confidential transactions, ...). Do I expect Bitcoin to one day have better privacy than what is possible with Monero's technology today? Probably. Do I expect Bitcoin to have better privacy than what is possible with research technology at the time? Probably not. And that is fine.

No personally identifiable information is stored on the Bitcoin blockchain. It is true that there are some speculative methods that may identify the originating IP of a Bitcoin transaction but, those use an educated guess method and are unreliable - particularly if a node connects to the Bitcoin network using Tor then the educated guess method is unusable in determining the originating IP.

In a broad sense, the issue of privacy is universal. If you purchase goods or services online you must ordinarily provide a name and often a delivery address. If you purchase in store this may not be necessary. If the merchant shares the information that they have about a transaction (or is forced to hand it over to a government) then with payment details the details can be mapped to a set of utxo's on the blockchain which funded your purchase transaction, and any change address. This is terrible for privacy.

As I understand it this situation is improved with Monero by the use of stealth addresses, nonetheless, the details that are retained can still be handed over.

For myself, I see the privacy concerns of Bitcoin as a non-issue - just use Tor. You cannot avoid informing a merchant of information necessary to complete a purchase. Pieter Wuille has a more academic view and states:

  Tor does not hide account linkage or amounts. Without very proactive measures anyone you interact with can probably make a reasonable guess how much money is in your wallet (by distinguishing change from payments), what software you are using, and with further analyses what sites you interact with. All of these are terrible properties for a currency, threatening its fungibility. Note that privacy is always optional - even when using stealth addresses or confidential transactions, you can prove to anyone what your balance or transactions are. It just becomes opt-in rather than opt-out. – Pieter Wuille

Whilst I can appreciate how such linkages are mapped, it is beyond my comprehension how such linkages are useful if Tor is utilised since without an originating IP it seems speculative to link further transactions over those immediately attached to a particular transaction into the available information set, I do not think it is useful, nonetheless, I will take Pieter at his word.

This answer has been edited in view of the discussion by Pieter Wuille in the comments.


error: Authorization failed: Incorrect rpcuser or rpcpassword After installing bitcoin on CentOS/AWS, an error occurs when connecting with cli.

$ bitcoind -daemon -conf=/.bitcoin/bitcoin.conf
Bitcoin server starting
$ bitcoin-cli getbalance
error: Authorization failed: Incorrect rpcuser or rpcpassword

The following is bitcoin.conf.

mainnet = 1
txindex = 1
server = 1
rest = 1
rpcuser = a
rpcpassword = a
rpcport = 8332

In case you changed your /etc/systemd/system/bitcoind.service make sure you run
 sudo systemctl stop bitcoind
 sudo systemctl daemon-reload
 sudo systemctl start bitcoind

to apply the changes.


What incentive is there for a miner to not cancel his own 'real' txs It is said that a Bitcoin miner attacker with enough CPU power to outrun the entire network is better off mining honest bitcoins - which is not correct since by creating a false block chain the attacker already wins the coinbase on the way, just like he would if he behave honestly.

Actually, an honest miner has all the incentive to defraud by adding to his block transactions that cancel his own 'real' transactions.

Or am I missing something?

EDIT- and maybe an answer

Let me give an example, lets say Alice owns a very big pool (big pools had known to create up to 6 blocks in a row), also Alice buys something from Bob for 1 bitcoins every 10 minutes.

Alice could try to do double spending of each of her payments (by passing the same bitcoins to herself) and use the second transactions in the block she is mining.

Note that this is all completely legit.

If the pool solves the proof-of-work, then her 'real' txs will be canceled - Bob can wait 10 minutes to see if the transaction gets confirmed or not, but it might not be enough in the case that there was a fork.

Conclusion:

A owner of a big pool can try to create doublespends but he will win his btc back only in rare occasions when:

there was a fork
Bob didn't check the fork, and didn't wait enough time (e.g. 1 hour) to see if the transaction was confirmed
The good that Alice bought is not associated with any physical address (so that Bob cannot find Alice and claim for his money).

It is a short term gain only, as bitcoin would very quickly lose its value as people realize that holding one's wealth in bitcoin has become a bad idea. Behaving honestly gets you income until such a time your hashing power decreases.

Its not that easy to create a false blockchain. When a miner mines a block it has to be verified by the bitcoin network, before accepting it. (Proof of work)

He will be able to create a false blockchain if he controls 51% of the total network.

The bitcoin network is several times faster than the all the super computers combined. More details in this link. So its not that easy to control 51% of the total network.


Buying selling of cryptocurrency. Where does the coin come from and where does it go? I am a novice trying to understand selling and buying of crypto currency. I could not find it on google so asking, please do not be harsh.

Say, I have an account with coinbase and want to buy bitcoins or other cryptocurrency, how does/where from an exchange gets those coin to sell to me? and If I want to sell my coins whom does the exchange sell it to.

Is there an article on how this trade work on the internet?

I am a novice trying to understand selling and buying of crypto currency. I could not find it on google so asking, please do not be harsh.

No worries, we all start out here.

  Say, I have an account with coinbase and want to buy bitcoins or other cryptocurrency, how does/where from an exchange gets those coin to sell to me?

They already have a good stock of Bitcoins ready to sell you.

  and If I want to sell my coins whom does the exchange sell it to.

It is different for some exchanges. Some will buy them directly from you to get stock of them, and others will put them up for other users to buy, and the exchange will act as a middleman.

  Is there an article on how this trade work on the internet?

Yes, a simple search should provide you with many resources.

Hope this helped!

The very, very first coins are minted and created through the process of mining. Then it's a series of transactions that move them around.

There are TONS of articles and books out there. You probably want to research a little before asking here.


Bitcoin adress security questions I am trying to understand Bitcoin addresses, but it does not seem to be easy at all.

As far as I know, a transaction uses one or more addresses as input and one or more addresses as output. Is this correct?

As I understand it a Bitcoin address is a hash of your public key. So it is not completely collision resistant. So how do you prove, that you are the owner of a Bitcoin address?

Also, since everybody can make an address from your public key and the recipient of a transaction does not have to sign the transaction, how do you make sure no one can send you bitcoins without your consent? (I don't really know if this is a problem to be honest.)

Transactions use at least one input and one output. The exception being the Coinbase transaction which creates new money and doesn't have an input.

While multiple public keys hash to the same address, there are still 2^160 distinct addresses possible. Therefore the chance that two people generate a private key that resolves to the same address is negligible.

You cannot stop anyone from sending you bitcoins. Receiving bitcoins is entirely passive. The only way to refuse a transaction is by returning it to the sender.

Bitcoin address are unique to each person..u missed any btc while transfering?

what is the point in making a option like u said to restrict anonymous funding? (i have no problem in receiving bitcoins :) ) Everybody free to receive the amount as in bank account..

*Can you make sure no one can send amount to your bank account without your consent? NO, but bank account is safe na???


What keeps a dominant Bitcoin client vendor with the majority of the market share from unilaterally changing the protocol? I've been asking this in the comments, but I'll be more direct.

If a third-party Bitcoin client, say "iBitcoin" (for example), becomes the dominant client by acquiring most of the market share, what would keep the vendor from unilaterally changing the Bitcoin protocol to their own advantage?

The question

Consider the following:

iBitcoin gains 75% market share because, well, it's so awesome
At some point the vendor decides to change the rules so that it starts mining its own branch on the blockchain, but with a block creation fee that's significantly higher and can be adjusted at will. (See rules below)
iBitcoin users don't care because they are still able to exchange bitcoins back and forth with users of other clients, nor do users of other clients care. It's all hunky-dory in Bitcoin land. (See rules below)

Here are the rules that iBitcoin follows:

The iBitcoin branch is a copy of the main branch, block for block, with the exception that a second coinbase transaction is included paying out to the iBitcoin vendor's address. All coins in the iBitcoin branch can now trace their origin back to either the main coinbase or the secondary coinbase. Let's call these extra coins "new bitcoins" (BTC2). The main branch won't accept transactions from these coins, but that's OK.
Proof-of-work is eliminated in favor of the vendor's digital signature. Block signing happens on a central server.
To keep things simple, a transaction can include as its inputs either bitcoins (BTC) or "new bitcoins" (BTC2) but not both

Now the UI shows new bitcoins separately so that the user knows that these new bitcoins can't be paid to someone who uses a different client (like the Satoshi client), but they can be paid to another iBitcoin user. In other words, iBitcoin users accept payments in BTC or BTC2, others accept only BTC. The two currencies trade separately on the exchanges.

Thanks to the network effect, almost everyone eventually switches over to iBitcoin (or a compatible client). Gresham's law says BTC eventually becomes an item to be hoarded, just like gold, whereas BTC2 is used for day-to-day commerce, just like the dollar.

Please explain flaws in my design of iBitcoin and why it won't work.

Are we in trouble?

What keeps this from happening? As it see it: nothing. It's going to happen eventually. I call it the "embrace and extend" attack.

If this indeed works (and that's my question), then the vendor doesn't even need 75% market share to begin with. It could start with 5% market share and a scheme for giving out 100 BTC2 for every new sign-up, along with a referral scheme so that users have an incentive to bring in more users. Since BTC2 is pretty much created out of thin air, the rewards could be increased until a significant adoption rate has been achieved. Rewards could also be in BTC instead of BTC2, or even in US dollars for that matter. Achieving adoption is no big deal.

Also note that "BTC2" is the red herring here. It's not about creating an alternate currency, it's about creating an alternate blockchain that is controlled by the vendor. Hash power is overrated; if you control the clients, you own the game.

Back to the question: What keeps this from happening?

If the answer is that the Bitcoin community would never accept such a thing, well, sure, I'm sure the "World Wide Web" community said the same back when Microsoft was still working on Internet Explorer 1.0. I wonder how things would have turned out had the US Department of Justice not stepped in.

If the answer is that a Bitcoin client that deviates from the rules of the Bitcoin protocol is not really a Bitcoin client, again, that's like saying a web browser that does not render HTML as per the rules set out by the W3C is not really a web browser. It's technically correct, but it doesn't mean anything. For all practical purposes the version of Bitcoin that has the majority of the market share is the "real Bitcoin."

So I hope that I'm wrong and that there is in fact a defense built into the protocol.

What you are describing there is a client that is a hybrid of Bitcoin and something else.

For instance there is nothing to stop you starting ManishCoin and writing a ManishBitcoinSuperClient. If you can get enough people to believe in ManishCoin then it becomes a useful currency.

This would amount to a Trojan. The only difference between the "attack" you're describing and a legitimate version upgrade is whether people are aware of the changes they've agreed to, and that depends on how closely the behaviour and code are being scrutinized by the community and whether the distribution chain is trustworthy. This probably has a lot to do with why nontechnical people tend to distrust cryptocurrency and what's built on it.