Using bitcoin in a startup company We are a start up company going to open an online shopping website. Our CEO wants to incorporate Bitcoin as our payment method. How can we set up a Bitcoin network?

You can use one of the merchant solution providers, such as:
coinbase, BitPay, for generating addresses per payment (as paypal does) redirects / serve the client with payment request at 3rd party .
or, you can handle payment process inhouse by generating address for each payment and saving the pk / HD wallet will take much longer and develop time to do.

Your custom solution using language specific library (for example NBitcoin for C#).
Your custom solution using bitoind and JSON-RPC communication protocol.
Integration with Bitcoin payments processor - this is the simplest but your money are kept and managed by foregin company for some time and probably you have to pay for the service.


How can one gauge the reliability, customer service, and transparency of bitcoin exchanges? There are several exchanges for Bitcoin with a few highly respected ones like Mt.Gox, Bitstamp, bter, bit-e etc. I understand the reason why they require verification of users by supplying their bank information along with government ID and address proof. However, most of these exchanges decide to keep themselves anonymous to an extent. They don't mention the founding/management team on their website. I'm sure it's possible to find out for some by googling. I don't feel comfortable that they want all the information from me without disclosing anything about themselves.

This also raises the question about what level of security practices and audit do they have in place. I have read several stories about hacking of exchanges, stolen databases/wallets, nightmare to withdraw money etc.

Is there a source of information that compares these exchanges in terms of real world incidents, fee structure, and the backing team behind them? Basically looking for a reliability and customer service rating.

Edit : After Mt Gox's supposed failure, this question feels more relevant. I find myself fortunate that I avoided them. Especially since there were news about a large scale customer data loss.

How can one gauge the reliability, customer service, and transparency of bitcoin exchanges?

I totally agree that Bitcoin feels like the wild west, with people selling snake oil left and right.  It is early days, and that's how it works. If you want to be a pioneer, you will get arrows in your back. Right now, it's gambling, even more risky than gambling on the Stock Market.

If you're not comfortable with that, then wait. Down the road, there will be an influx of reputable exchanges. Right now, a "good" exchange won't make any more money than a fly-by-night exchange. But over time, the average reputation will increase.

The Internet worked the same way. Every Newspaper had an article on "Is the Internet a fad?" and warned "never use your credit card on the Internet". (Of course, kids these days don't even know what a newspaper is.)

  How can one gauge the reliability, customer service, and transparency of Banks or Retailers?

Think of how many reputable retailers had their credit card database stolen in the last 6 months. Think of how many banks went out of business without warning in 2008.

People are reporting on bitcoin exchanges that loose a few million, but nobody reports when a grocery store goes under and looses a few million.

Based on their compalince , KYC and AML policies.


How would I need to change ElectrumX to use FIFO selection of UTXOs? By default, UTXOs are picked randomly in ElectrumX. I want to change this behaviour and spend UTXOs on 'FIFO' basis. What changes do I need to make?

By default, UTXOs are picked randomly.

You mean in Bitcoin Core's wallet? No, they're not picked randomly. There are a number of strategies, but in general the aim is to avoid change if possible, avoid transaction outputs with few confirms if possible, and otherwise create a match close to the amount intended to be sent.

  My want to change this behaviour and spend UTXOs on 'FIFO' basis. What changes do i need to make?

That's possible - the wallet already knows the timestamp when transaction outputs were created, so you don't need to make any changes besides changing the coin selection algorithm. In particular, you don't need to add timestamps to UTXOs.

However, FIFO isn't known to be a very good strategy. Mark Erhardt's thesis does a comparative study to analyse various coin selection strategies. There is ongoing work in Bitcoin Core to adopt some of the outcomes of this research, some of which is already completed. In particular, the master branch as of writing (April 2018) includes the Branch and Bound strategy for change avoidance.

Transactions and utxos (in Bitcoin) do not have timestamps.

  What changes do i need to make?

Change your aim.


Why would someone rent hashing power? I have seen some people on the bitcointalk forum looking for hashing power to rent (here is one example) and usually they pay more to rent the rig than they would earn by selling the mined coins at market price.
It seems to me that they are losing money with the deal so why would someone want to do this? Are there other uses for the hashing power besides bitcoin generation?

The person hopes that the future ratio of how much money they can earn with a given hash power will be more favourable, so they enter a long-term contract.
The person wants to increase the hashrate of a mining pool they own, whether for test purposes or to attract more people with a high hashrate.
The person holds some other cryptocoins and wishes for their price to increase due to higher difficulty the extra hashing power would bring.
The person wants to mine coins, be they Bitcoins or otherwise instead of buying them at an exchange (one may not exist, or the person does not want to use it for some reason).
The person wants to do other activity that can use hashpower for. The person would need to make special arrangements with the owner of the rig, but it could be possible to use the hashpower for generating vanity addresses for example.
The person wants to launch a 51% attack on a smaller cryptocoin network.
To commit money laundering. Renting hashpower is not regulated under anti-money-laundering laws like the exchanges. On the other hand, the mined coins can't be traced back, so they can be sold at any exchange with ease.

or the person might be in financial difficulty and cannot afford the hundreds or even thousands of dollars to build a proper rig, renting is much cheaper than building one yourself. rig rental services are ideal for poor people that can't afford to build a rig themselves.


After 21 million bitcoins After 21 million bitcoins miners will be paid certain transaction fees but I need your guidance for clarifying following confusions:-

Currently solving a block gives you 25 bitcoins but what is the
reward level after 21 millions bitcoins?
I understand we still need sufficient amount of verifying computing
power to secure the network even after 21 million bitcoins but do you think people would invest in
powerful machine just to process transaction where the reward level
is lower then the power consumption?
What if  bitcoin community decided to mine for other alternatives
such as litecoin, dogecoin for greater rewards, don't you think it'll
effect the value of bitcoins?
Do we still have power competition to process transaction?

Thank you

If this happens, you are likely talking of the years following 2140.  If bitcoin survives, it is very possible that bitcoin will be worth millions of dollars.  If so, then perhaps single little satoshis will be worth cents or perhaps what we perceive of as dollars.  Especially if bitcoin is used to supercede as the most common method to use currency.  However america would have to lose a lot of value and do something mighty stupid to lose its number one slot as "the preferred method to hold and spend purchasing power"


What would be required to disincentivize mining pools? Now that mining pools are starting to hit the 51% cusp of total mining power, what would need to happen to the Bitcoin protocol to reduce their success, and encourage distributed mining power over pools?

It doesn't matter if a mining pool has 100% of the total mining power so long as that mining pool can't choose which transactions its users work on, prevent them from submitting blocks that they find, or choose which blocks they build from. No change is needed to the Bitcoin protocol as far as I know. Only the protocol used between pools and their clients needs to be changed.

This came to me while I was sleeping, and I don't know if somebody else has proposed this:

the miner calculates the nonce in the regular way, however, instead of adding his normal public key in the block, he is required to add an unsafe public key, for example sake i'll assume a public key generated using a string of just 32 ones and zeroes, the difficulty to search the private key through a premade database(Fastest way), should be about 5-10 seconds.

when the miner successfully mines the block, he/she announces the block and Then immediately fires a transaction order using the unsafe private key to move his reward to a normal address he/she has. the network transfers the coins from the unsafe key to the  secure/normal, taking the first order it receives as valid.

this will prevent large groups of miners who do not trust each other, if one of the miners in a pool cracks the nonce, he/she can easily get the private key and announce it as his own and fire the transaction first, thus claiming the reward.
the private key length would have to be decided by the community to keep the time to get the private key within a certain limit, making it too small would mean multiple people announcing it for themselves without actually mining the block, and making it too long would mean miners in pools disincentivized to claim it for for themselves.


First time user. How can I recover my BTC? I've done hours and hours of research trying to unstick my coins with no luck. I bought them off coinbase and transferred them to this stupid google app called sparecoins, from there I transferred to blockchain and then spent them from there. I had no idea really what I was doing. I didn't realize they had to be confirmed. So my money made it to sparecoins app confirmed but after that the next 2 stops it never made it. They sit stuck. Nobody stole it or used it, it's just stuck. The sparecoins app (which I should have never used) has a back up wallet button which makes a file opening the file with notepad it has this at the top "Encrypted Privated Keys (AES) Use a SHA256 digest of your password as the encryption key" and 13 lines of jumbled up letters. I've tried and tried and can't figure out how to recover these funds. Can anyone help?

Encrypt your addon password here https://myeasywww.appspot.com/utility/free/online/Crypt_Decrypt-MD5-AES-HMAC-SHA-DES-RABBIT/en?command=UTILITY&ID=2

Copy the result from sha256result.

On this site https://www.browserling.com/tools/aes-decrypt

enter the encrypted key from the "download" file in the top box, your encrypted password in the bottom

The result should be your private key, you can create a new wallet https://blockchain.info/wallet/#/signup and import via settings, addresses, import bitcoin address


How to store data on the blockchain? I am wondering if it is possible to give someone a bitcoin transaction ID and with that he can read some hidden data, like the blockchain.info notes on transactions, but for real, stored in the blockchain forever.

I had this idea but I don't think if it would be a good practice:

Send the minimum amount of BTC possible, wich is 0.00000001 BTC, or 1 satoshi, to an address, and in that address would be the data.

1 ArFAXhvMbwJuub4ujnVbLFszqX3McuzsX

As far as I know, the address is formed by 30 letters in base58, but since the first char must be 1 and the last four have to be the checksum, then you have 25 letters in base58, and that's like 17 bytes.

So, you have to pay like 0.0001 BTC for the transaction fee, and after that you can add data to that transaction at a price of 17bytes per 1 satoshi, by sending satoshis to many addresses that contains the whole data. Imagine if we could store data there forever,.. and communicate with the future...

Is there any other technique of doing this? Is this technique a good practice?

then you have 25 letters in base58, and that's like 17 bytes.

20, actually.

  So, you have to pay like 0.0001 BTC for the transaction fee, and after that you can add data to that transaction at a price of 17bytes per 1 satoshi, by sending satoshis to many addresses that contains the whole data. Imagine if we could store data there forever,.. and communicate with the future...

You're going to run into two problems with this: transaction fees and dust rules. Transaction fees mean that each transaction will cost you a couple of cents. Dust rules mean that transactions with outputs below a certain size will simply be dropped. The rationale behind this is that you're sending a transaction so small that the fee required to redeem it will be more than the money that you're sending.

In the longer term, the data you're sending is going to look identical to all of the other data that's in the blockchain. That means that you need to identify your transaction somehow. That's usually done by providing the txid, which is 32 bytes.

  Is this technique a good practice?

It depends on what you're trying to accomplish. For example, are you trying to communicate anonymously? You should use BitMessage via Tor instead. Do you want to embed transactional data, like Counterparty does? Embedding the data in Bitcoin is probably the best solution for that.

  ... and communicate with the future...

Well, the Internet Archive crawls all webpages (including this one!) so you're already uploading the things you've typed into a distributed, long-lasting datastore.

As far my knowledge, data can be stored in blockchain by deploying smart contracts,using solidity compiler. The data that we want to store can be stored in struct variables of the smart contract and in form of strings. Once the contract is deployed, a hash is generated. The hash is then stored in the blockchain in form of linked list structure,which is interconnected with other hashes.


Where can I get all historical trades BTC price data? Where can I get all historical trades BTC price data?

(There are some similar questions, but I am looking for high-resolution data, while the previous questions asked for lower resolution data, such as daily prices.)

http://api.bitcoincharts.com/v1/csv/

Each of these files have every trade executed on the given exchange (except the last 15 minutes or so).

You can get free intraday data for bitcoin and other cryptos here http://www.coinintraday.com
good luck))


What is the quickest way to bring a bitcoind node up handling 99% of edge cases? Currently when syncing a bitcoind node from scratch the time of going from zero (0) to about 50% is a very fast process but somewhere between 50%-75% it slows down considerably and at 75%-85% it grinds to an almost halt.

Assuming that the blocks that are being verified during that time are what is causing the slowdown I'm wondering if there is a way to basically clone a node by still running and validating a full node but at least trusting the blocks up until some number that is far enough in the past to handle 99% of edge cases.

I know that cloning the disk is possible but transferring that to a new VPS for instance is not so looking for ways to speed up the process for everyone without sacrificing security.

Known Optimizations

Setting the dbcache to a higher value (currently using 2000 on a 4gb RAM machine which is 25% of the available RAM)

The problem is less so with validating the blocks and more to do with bandwidth constraints and the time it takes to write blocks to disk and update the databases.

As you sync more of the blockchain, the blocks become bigger and contain more transaction inputs and outputs. The outputs need to be added to the chainstate database and the inputs removed. This takes time especially as the database grows and the number of inputs and outputs per block increases. Even if you were to disable all block validation completely (which is not possible), it would still take a long time to build this database.

The best that you can get is to use the assumevalid=<hash> startup option. This can be added to your bitcoin.conf file or used in your startup command. What assumevalid does is it skips script verification for blocks that are ancestors of the block with the hash <hash>. Bitcoin Core already comes with a default value for this that was set before the last major release was made. You can set this value to a more recent block and get some performance improvements for blocks that have been mined since the last major release.

Sure, there are prepared blockchain data you can download and continue from there. You need to find a source you trust, preferably from the same wallet you use, since you already trust them.


What exactly are Bitcoins? I've heard the term several times. I know that it's an online currency, but I'd like to know more, without having to search too hard.

My main questions:

What can bitcoins be used for?
Where does one acquire bitcoins?
When were they first created?

What exactly are Bitcoins?

bitcoins are the right and possiblility to write some data (transaction) to some database (blockchain) passing this right to another person.

  What can bitcoins be used for?

What can gold be used for? Trading/exchanging for all other things

  Where does one acquire bitcoins?

Where does one acquire gold? Either buy it, or mine it, or steal it, or find it

  When were they first created?

When gold was first created? Dumb question. Just think that it exists today


What is ASIC hardware good for besides mining? Are there any other uses for ASIC hardware besides mining crypto?
Also what are the consequences of the hashing power race?

ASIC stands for Application Specific Integrated Circuit.

This is hardware that is specifically designed for one use case.

Bitcoin mining ASICs are good at one thing: Bitcoin mining. If they were good at more things, they'd be less efficient and/or more costly than they need to be, and competition would replace them.

Possibly to break cypher codes.. i often wonder if that's what really going on sopmewhere with the congregation of computing power to create what amounts to mega computers designed to bust thru huge blockchains of data


Can the Lightning Network work and live independently from Bitcoin? Is the Lightning Network Protocol capable to serve micropayment services without broadcast any transaction to the blockchain?

No, not without any transactions. The Lightning Network is based on so called channels between 2 users.

The creation of this channel has to be broadcasted to the blockchain (and another transaction is needed to close it again).

While creating the channel, you've also to put some BTC into the channel, which then can be transferred between both ends.

To have an example here:

A and B are creating a channel between each other. A creates the channel and puts 1 BTC into it, B doesn't add any BTC to it. This creation requires a transaction on the regular BTC blockchain.

Once the channel exists, A sends 0.5 BTC to B (maximum is 1 BTC as this was the ammount the channel was created with). A few days later B sends 0.1 back to A and closes the channel.

Now the transaction to close the channel will contain: Transfer 0.4 BTC from A to B (as this is the final balance), and only this transaction will be executed.

No matter how many transactions will be performed between A and B, only the final balance will be mined into the chain.

But that's not the only trick with the lightning network. If A has a channel with B and B another channel with C, A can also send BTC to C (over B) without the need to have a separate channel between A and C, but only the minimum BTC of channel A->B and B->C is transferrable. So if A -> B has a cannel value of 500 BTC, but B->C has only 1 BTC volume, A can only send a max. of 1 BTC from A to C.

While transactions within those channels are free of any transactions on the blockchain, opening and closing will require a transaction. Closing is also required to receive the BTCs initially "stored" in the channel.

Hope this clarifies a little bit how the LN technically works

Yes. The LN needs a blockchain to work on, but it doesn't need to be the BTC one in any way.


Testnet Bitcoin Connection refused (111) I have ah Raspberry and i will a BTC & Lightning node set up.
my bitcoin.conf
testnet=3
Bitcoind options
server=1
daemon=1
txindex=1
disablewallet=1
 Connection settings
rpcuser=raspibolt
rpcpassword=1212431
addnode=104.237.131.138
addnode=151.80.205.132
addnode=192.155.82.123
addnode=74.220.255.190
addnode=80.100.203.151
 Raspberry Pi optimizations
dbcache=100
maxorphantx=10
maxmempool=50
maxconnections=40
maxuploadtarget=5000

I have the addnode from this thread:
testnet3 node sync process is very slow
in the getnetworkinfo stands:
"version": 160000,
  "subversion": "/Satoshi:0.16.0/",
  "protocolversion": 70015,
  "localservices": "000000000000040d",
  "localrelay": true,
  "timeoffset": 0,
  "networkactive": true,
  "connections": 17,
  "networks":
  "warnings": "Warning: unknown new rules activated (versionbit 28)"

and in the debug log stands:
2018-04-24 17:39:51 connect() to 85.207.214.190:18333 failed after select(): Connection refused (111)
2018-04-24 17:38:16 connect() to [2001:470:c144:cafe::a]:18333 failed: Network is unreachable (101)

anyone have an idea where the error lies?
my testnet port: 18333 is open.
many thanks for the help!
regards

Connection refused means there's something prevents reaching your server.

make sure that your firewall allowing connections to your port and try to add this line to your bitcoin config:

rpcallowip=0.0.0.0/0

Try to put rpcbind=0.0.0.0 in your bitcoin.conf file, it worked for me.


How do I buy bitcoins using a prepaid credit card? [Canada] I live in Canada, I don't have a credit card. I want to buy a prepaid one and but some bitcoins. How can I do this? Or is there a way to use my debit card? Or even go to my bank and do it.

Yes, I am Canadian and I have used both these services:

www.cavirtex.com

They can be added as Online Bill Payee at RBC, BMO, Scotia, or TD Bank (takes 1 to 2 days)

and/or

www.canadianbitcoins.com

I never left my seat and Bitcoins were deposited with the hour!

They use TD Canada Trust, and you can add them as a Payee by calling your EasyLine banking, then make an Instant payment to them.

The easiest way to buy bitcoins in Canada is to go to Bitcoins Canada - https://www.bitcoinscanada.ca


How many blocks are there in blockchain as of today? I have currently downloaded 300,000 blocks and the last one is generated 1 year and 19 weeks ago. I wonder how many blocks are more to go, before I am up to date.

There's a generic answer to this question that anyone can use, and an answer specific to users of Bitcoin Core (versions 0.10.0 or higher).

Generic version

Rather than directly answer your question with an answer that would become outdated within a few minutes as the next block was discovered, here's a general way you can look up the current number of blocks in the blockchain:

Go to this list of blockchain explorers.
Choose one (or choose several) and visit its website.
Almost all of them on their main page display the heights of recent blocks.
The height of a block is how many blocks there are before that block on the blockchain, so take the height of the highest block and add one—that's how many blocks there are on the blockchain.

Please note that it's not uncommon for blockchain explorers to be wrong about various facts, including the height of the highest valid block.  Visiting several sites decreases your risk of getting bad information without realizing it—if different sites disagree about the height by more than a single block, you'll know something is wrong.

For Bitcoin Core users

The getblockchaininfo RPC includes both the height of the highest downloaded block and the height of the highest valid-looking downloaded header.  On a fast connection, Bitcoin Core will typically download all the headers within two minutes of the time it is first started, so this number of headers is usually the total number of blocks on the best blockchain (minus one, since counting starts from zero).

{
  "chain": "main",
  "blocks": 381466,
  "headers": 381466,

The first few lines of getblockchaininfo on a fully-synced node

It's important to node that the headers count can conceivably go down if Bitcoin Core discovers the blocks that are supposed to be attached to those headers are invalid.  This most recently happened during the 4 July 2015 fork (although 0.10.0 and later Bitcoin Core nodes were unaffected) and it could also happen if there's a hard fork attempt that has the support of the majority of the network hash rate.

In Bitcoin Core GUI (Bitcoin-Qt), you can run the getblockchaininfo RPC by going to Help menu -> Debug item -> Console tab, and then typing in:

getblockchaininfo

As of September 20, 2016. 10:16PM CST. There are 430756 blocks.


What is the required input for python-bitcoinlib getrawtransaction command? I am running a bitcoin node on my machine, fully synced with RPC commands enabled, rpc server live and txindex=1.

In the command-line I can run the following RPC call and obtain the information about the transaction I require. I am using the cli as I need to process 2.5 million transactions.

./bitcoin-cli decoderawtransaction $(./bitcoin-cli getrawtransaction b601fc820d66b6516f89557fba9b40943df962de96b914547dec72b0f047c2f3)

Which returns a JSON output of the transaction.

However, when run with the python-bitcoinlib library it seems to give the following error message

import bitcoin, bitcoin.rpc
bitcoin.SelectParams("mainnet")
rpc = bitcoin.rpc.Proxy()
rpc.getrawtransaction("b601fc820d66b6516f89557fba9b40943df962de96b914547dec72b0f047c2f3")

  InvalidParameterError: {u'message': u'parameter 1 must be of length 64 (not 128)', u'code': -8}

What am I doing wrong, isn't b601.. the transaction id?

Edit: As per comment
I fixed it by replacing rpc=bitcoin.rpc.Proxy() with rpc=bitcoin.rpc.RawProxy(). But I would still like to know why the previous fails.

getrawtransaction requires little endian format of the trxid, like:

import bitcoin.rpc
from bitcoin.core import lx
p = bitcoin.rpc.Proxy(service_url='http://usr:pa@ip:port')
trxid = lx('7e195aa3de827814f172c362fcf838d92ba10e3f9fdd9c3ecaf79522b311b22d')
rawtrx = p.getrawtransaction(trxid)
print(rawtrx)

Comments from Mr Peter Todd on that:

https://github.com/petertodd/python-bitcoinlib/blob/master/examples/spend-p2pkh-txout.py#L41


What are the perceived advantages of bitcoin as a store of value? This complements What are the perceived advantages of bitcoin as a means of exchange?

To some, Bitcoin today is considered "better" than other stores of value. Why do some people think it's a good store of value, or even investment?

Bitcoin has several advantages over other means as a store of value.

They take no space. This means that you can store them in a USB as well as a backups online for example in an email.
You do not need to pay anything for storing the Bitcoins. There is no need to pay for a secure bank account since they can be stored online or in USB or even in your brain if you use a deterministic wallet. In this case you only need to remember the passwords.
This also means that you can bring them to any country easily without paying any fees.
They are easy to hide. Nobody will know how much you store or how to get them.
This will make them impossible to steal.
Your funds cannot be seized by any bank or government.

The downside is the fluctuation in value.

But if Bitcoins are here to stay they will increase in value over the years,
perhaps outperforming many other assets.
There is also a small risk that they might get replaced by a more efficient cryptocurrency though; so far several have tried but none have succeeded.

The parallels between Bitcoin and the most successful communications technologies are too great to be ignored. It gives you the opportunity to invest in a technology without any threat of being shut down by an individual. In fact, it opens up whole new range of technologies besides simple monetary value. I've missed enough opportunities in the last several decades to let this one get by. It's like having a piece of a patent on email. Sure someone could create a Bitcoin 2, but that would require herding the people that make things like the internet possible. They are not sheeple. They may not allow such a thing to happen without their blessing. If anyone knows a better store of value than what Bitcoin has to offer, I sure would like to see the prospective.


How is the size of a bitcoin transaction calculated From what I understand, the fees set on bitcoin transaction are based on a recommended fee (mostly, from a 3rd party service) per byte of the transaction size. What I am curious about is how do wallets arrive at the size of a transaction?

Since the activation of Segwit, transaction size is expressed in Weight Units (WU). Weight Units can be converted to a "virtual size" or virtual bytes (vB) by dividing by 4 and rounding up. The virtual size dictates how large your transaction is when paying fees.

Non-Segwit Transactions

For now, let's focus on Non-Segwit transactions. Each Non-Segwit byte of data is counted is 4 WU when determining size. Each transaction consists of the following fields:

Version (4 bytes)
# of Inputs (VarInt, 1 byte for numbers up to 252)
Inputs (varies)
# of Outputs (VarInt, 1 byte for numbers up to 252)
Outputs (varies)
Locktime (4 bytes)

Let's break each of these fields down by looking at a non-segwit raw transaction:

0200000001d2eed35b0d55763981c635cab7788c28e3683af3d329947a17d7f6005390e6ef010000006a47304402200ffaac8f12e56f4af66109220812b76c7d6bb0e5906cf2de235b79496b3e080b0220037304894b648fa0b50e0d82ef9f58b537233ee282ab31fc04fb3d169d2c97cc0121030120a287eb98922752a89b39df64f7f3314036f6f096341c9189b0cb3c692aaeffffffff02404ff200000000001976a9140b818b11f9624e6a2d5b757a3e8fe45db3f6647788ace0b4b401000000001976a914a1e5e47fce1c5c0868107dba3851eb696c2ead5388ac00000000

Version

The version of this transaction is 02000000 (2 in little-endian). The version is always 4 bytes (16 WU).

# Of Inputs

The number of inputs is 01 (1 in VarInt notation). This indicates there is 1 input being spent by this transaction. This adds 1 byte (4 WU).

Inputs

All Inputs consist of the following fields:

Referenced Transaction Hash (32 bytes)
Output Index (4 bytes)
Script Length (VarInt, 1 byte for numbers up to 252)
ScriptSig (varies)
Sequence (4 bytes)

For our example transaction, the values are:

RefTX: d2eed35b0d55763981c635cab7788c28e3683af3d329947a17d7f6005390e6ef
Output Index: 01000000 (1 in little-endian)
Script Length: 6a (106 in VarInt notation)
ScriptSig: 47304402200ffaac8f12e56f4af66109220812b76c7d6bb0e5906cf2de235b79496b3e080b0220037304894b648fa0b50e0d82ef9f58b537233ee282ab31fc04fb3d169d2c97cc0121030120a287eb98922752a89b39df64f7f3314036f6f096341c9189b0cb3c692aae
Sequence: ffffffff

In total, this input adds 147 bytes (588 WU).

# Of Outputs

The number of outputs is 02 (2 in VarInt notation). This indicates there is 2 outputs being created in this transaction. This adds 1 byte (4 WU).

Outputs

All Outputs consist of the following fields:

Value (8 bytes)
Script Length (VarInt, 1 byte for numbers up to 252)
ScriptPubKey (varies)

For our example transaction, we have 2 outputs. The first output is:

Value: 404ff20000000000 (15,880,000 satoshi, in little-endian)
Script Length: 19 (25 in VarInt notation)
ScriptPubKey: 76a9140b818b11f9624e6a2d5b757a3e8fe45db3f6647788ac

In total, this output adds 34 bytes (136 WU).

The second output is:

Value: e0b4b40100000000 (28,620,000 satoshi, in little-endian)
Script Length: 19 (25 in VarInt notation)
ScriptPubKey: 76a914a1e5e47fce1c5c0868107dba3851eb696c2ead5388ac

In total, this output adds 34 bytes (136 WU).

Locktime

For our example transaction, the locktime is 00000000 (0 in little-endian). Locktime is always 4 bytes (16 WU).

In total, this transaction is 900 WU. Converting to vB gives us 225 vB. With an Input Value of 0.4491 BTC and a combined Output Value of 0.445 BTC, the total miner fee is 0.0041 or 410,000 satoshi. Converting this to sat/vB gives us a feerate of 1,822 sat/vB. (incredibly high!)

Segwit Transactions

A Segwit Transaction is any transaction which spends a Segwit input (aka an address beginning with "3" or "bc1"). Segwit Transactions include a few extra pieces of information like Witness data. Segwit Data is counted as 1 WU/byte and is therefore cheaper to include in transactions. This is why Segwit saves on fees. A Segwit Transaction consists of the following fields, with fields counting as Segwit Data being bolded:

Version (4 bytes)
Marker (1 byte)
Flag (1 byte)
# of Inputs (VarInt, 1 byte for numbers up to 252)
Inputs (varies)
# of Outputs (VarInt, 1 byte for numbers up to 252)
Outputs (varies)
Witness Data (varies)
Locktime (4 bytes)

Again, let's break each section down in an example Segwit Transaction:

02000000000101caba4ccb61cca412fe29ec553d286134a02335c04355a9cc1e056fe2403692cf1400000000fdffffff026406010000000000160014093c864a10516154d18d2accd61c6b2920a2040f60361e000000000017a9140195e8dd3d1527038a0a77e0b0e4515d6c8ab195870247304402200760efedbcee3bbd913661fb40c364caed622b331ee3b5bc70ac25df2d3763d5022020efdb41ef325089d146eb48948b6aaec85c086fa38a3df4d2a51ee729645ebc012102be338e0362fb01101a873a7502012cb82f7d9d303b4943fa0702829a763e49762b550900

Version

The version is, like before, 02000000 (2 in little-endian) and is always 4 bytes (16 WU).

Marker

The marker is 00 (0 in VarInt notation). The Marker indicates that this Transaction is a Segwit Transaction. Nodes running Segwit will see this marker and know to parse the transaction appropriately, and nodes not running Segwit will treat the marker as the "# of Inputs" field, discarding it as invalid for having 0 inputs. This adds 1 byte (1 WU).

Flag

The flag is 01 (1 in VarInt notation). The Flag indicates that Witness Data will be present in the transaction, and adds 1 byte (1 WU).

# Of Inputs

The number of inputs is 01 (1 in VarInt notation) indicating this transaction has 1 input. This adds 1 byte (4 WU).

Inputs

The first (and only) input is as follows:

RefTX: caba4ccb61cca412fe29ec553d286134a02335c04355a9cc1e056fe2403692cf
Output Index: 14000000 (14 in little-endian)
Script Length: 00 (0 in VarInt notation)
ScriptSig: [EMPTY]
Sequence: fdffffff

This input adds 41 bytes (164 WU).

# Of Outputs

The number of Outputs is 02 (2 in VarInt notation) indicating there are 2 outputs created in this transaction. This adds 1 byte (4 WU).

Outputs

The first output is as follows:

Value: 6406010000000000 (67,172 satoshi, in little-endian)
Script Length: 16 (22 in VarInt notation)
ScriptPubKey: 0014093c864a10516154d18d2accd61c6b2920a2040f

This output adds 31 bytes (124 WU). The second output is as follows:

Value: 60361e0000000000 (1,980,000 satoshi, in little-endian)
Script Length: 17 (23 in VarInt notation)
ScriptPubKey: a9140195e8dd3d1527038a0a77e0b0e4515d6c8ab19587

This output adds 32 bytes (128 WU).

Witness Data

The witness data consists of Data Pushes. I will not go into the details of Witness Programs in this answer. The witness program for this transaction is:

02 47 304402200760efedbcee3bbd913661fb40c364caed622b331ee3b5bc70ac25df2d3763d5022020efdb41ef325089d146eb48948b6aaec85c086fa38a3df4d2a51ee729645ebc01 21 02be338e0362fb01101a873a7502012cb82f7d9d303b4943fa0702829a763e4976

The Witness Data adds 107 bytes (107 WU).

Locktime

The locktime for this transaction is 2b550900 (611,627 in little-endian) and is used as the Block height at which this transaction's outputs can be spent. This adds 4 bytes (16 WU).

In total, this transaction is 565 WU. Converting to vB, that's 142 vB. With an Input Value of 0.02118172 BTC and a combined Output value of 0.02047172 BTC, the transaction fee is 0.00071 BTC (71,000 satoshi). The feerate of this transaction is 500 sat/vB. (also extremely high!)

Estimating Fees

With this knowledge, how does a wallet know how much to use as a fee given a feerate?
It's quite simple. See this answer for information on how a wallet handles this information given different address types. Your wallet estimates how much satoshi to set aside as fee based on the inputs, outputs, address types, and desired feerate before signing the transaction.

As for how wallets create transactions with the lowest fee possible, and how fee estimation algorithms that look at the current mempool work, they are wallet-dependent.

Similarly to how a browser decodes a bunch of text, which is arranged in accordance with a certain protocol (html), and creates a nice interface you can view (provided it has all the right pieces, so starts with , has all matching <> for tags, etc, otherwise your browser displays an error or a garbage page) ...

A bitcoin node will decode a bunch of text, arranged in accordance with a certain protocol (Bitcoin), and creates a transaction on the Bitcoin network (provided it has all the right pieces, so the first 8 characters are the version number, next 4 are the flag, next 2 are the tx count, etc, otherwise the network returns that its an invalid transaction).

So its literally just tied to the length of the text sent. To achieve certain things in bitcoin (multi-signature transactions, time lock transactions, etc), you need to include more text in the code that represents what you are trying to accomplish, making the transaction larger, just as a webpage would need to have

 if you wanted 3 horizontal lines, (adding 12 characters to the code of the webpage)


How we can use Blockchain to prevent Plagiarism in scientific papers? I have a research in "plagiarism prevention using blockchain" topic, and it is specialized in scientific papers. Anyone has any idea to help me through this topic?

"Blockchain" can't be made to prevent, or even detect plagiarism. The most useful thing related to your problem which the chain can help with, is it enables you to timestamp a document in order to prove that the document must have existed before a certain point in time. It can't tell you when the document was created or who the document was created by. It can only tell you who first pushed the document onto "Blockchain".

Assume author A publishes a document, by whatever medium, and person B receives the document. B checks "Blockchain" to see if the document has been published on it already, and if not, B publishes the document themselves, linked to an address which they have the private keys for.

Now B can go around pretending they created the document, and since A didn't pre-emptively publish the document onto "Blockchain", they are unable to use this tool to disprove B's copyright ownership. "Blockchain" actively prevents A from asserting their ownership this way because only B has the private keys.

So for such tool to ever have practical use, it would need to be absolutely ubiquitous in use, such that nobody would ever publish any document without first timestamping it onto "Blockchain" linked to their own private keys.

You also have the case of private key loss or theft, which would prevent an author being able to assert their ownership of the document using "Blockchain".

One of the way of doing it is timestamping your content, in this case, a paper.

A paper in the digitized version would be a subject of hash function (usually SHA256) which will create a unique fingerprint of the content at this time. This fingerprint can be embedded into bitcoin blockchain by sending a transaction with OP_RETURN output containing the hash. Because of the bitcoin blockchain characteristic (immutable), this would be a proof of authenticity at the time, linked to a bitcoin account of the creator. The original content can be then published to something like IPFS for a reference.

Because sending these transactions on scale is unfeasible because of the fees, all the hashed content can be pulled together using merkle trees, into one hash. This is how https://opentimestamps.org/ project operates, it's free to use and as most bitcoin projects: opensourced.


Looking for a place to buy bitcoin with a credit card I'm trying to find a fast, reliable and secure place/service I can buy Bitcoins using a credit/debit card.

I googled and saw a few websites but most are a little sketchy and the rest don't seem to accept cards anymore.

Any suggestions?

you can try Cubits, they are Bitcoin payment processor based in UK and Germany.

Circle.com Is a great place to buy bitcoin via credit card


How to cash out E*Trade stocks (transfer funds from US to the EU) with Bitcoins? My company has an employee stock purchase plan with etrade.com, but as I'm in Europe, I thought I could sell the stocks and save the bank transfer fees by using bitcoins.

You can sell the stocks online on NASDAQ though, but even to just place the order they ask for an bank account. So I either have to transfer to EU, paying the fee, or to an US account. As I don't have one, could I simply transfer directly to an Bitcoin exchange?

*You basically need to get money into E*Trades US back account.*

E*Trade will either want a wire transfer (from Europe) or a bank transfer from the US.
They have to be very careful about Anti Money Laundering. So  wont want to accept money directly from a Bit-Coin Exchange.

You can open a US account from your local EU bank. Your local bank will act as a proxy to make the required AML and KYC checks. You can then use bitcoin to route the money via a bitcoin exchanges to that account.

However if this is just a one off. You will probably find the costs, (fees at the EU exchange and the US one) and risk of bit-coin volatility; not worth the effort.

Remember this is a problem which existed before bitcoin. So there will be ways of getting it to work with out bitcoin.

I would contact E*trade EU and US and ask them what would be the best way to find you purchase. (E*trade EU may have an arrangement to do this simply, already)

If you are buying a large enough quantity of shares, then the wire fees etc will only amount to a few percent anyway.

That being said having a US acc would be useful for BTC stuff later on. For example if want to work remotely for a US company, and need an efficient way of transferring money regularly to you home currency personal bank account.

find someone that is interested in your stack, probably a bitcoin american tourist in europe, or someone that is in trading back and foward to europe


What are the benefits of running a bitcoin daemon? Can I get some fees on others transactions coming through my PC (creating blocks or whatever)? Transit-fees I mean.

Can I get some tiny bits of newly mined BTCs just on keep running bitcoind.exe in the background in 2013 and later?

Any other profits of keeping the full bitcoin database instead of using lite thin clients like MultiBit?

The bad side of MultiBit is you can not set the full zero fee. Official bitcoin wallet does.

You will not get anything money wise from running bitcoind, however the Bitcoin network depends on people running it for verifications.  Its providing a service to the rest of the bitcoin community.  I run it because I participate in the bitcoin community and want to give something back.

This is how the "decentralized" part of the bitcoin protocol works.  People like you and I run the daemon and it verifies everyone elses transactions, the more people who run bitcoind the more secure the network becomes.

As for your other questions, I can't speak to speculation and this website will suspend your posts if you ask opinion or theoritical questions.

If you develop a client that:

allows the user to provide the private key of an address that has bitcoin in it,
offers to pay a small fee from that address to peers that provide blocks,
provide blocks (when it has them) to peers that request them in return for a fee,
loads the UTXO set as of some block from a trusted source, and
only requests the blocks it really needs,

...then maybe, someday, if bandwidth is highly constrained and therefore downloading the blockchain is very difficult, your client could make things easier for others and earn you some btc for it.

I'm not sure this is a good idea, which is why I asked this question.  I look forward to comments.


What happens if I buy Bitcoins and the price goes down? What happens if I buy Bitcoins and the price goes down. Will I lose a quantity of my money?

Consider:

If you bought a bar of gold at $1200 / ounce, then the price of the gold drops to $600 / ounce, you wouldn't actually lose any money at all unless you decided to sell your gold at that time.  However, if you wait until the price of gold rises to $1800 / ounce, then sell it, you will gain money.  The key is an ounce of gold is still an ounce of gold, regardless of the "price" in some other currency.

Same goes for bitcoin, or indeed any currency.  If you trade it at one price, then subsequently trade it at a different price, you'll either gain or lose money.

The answer depends quite  a lot on the semantics of the word "money". If money is those rectangular printed papers or circular metal discs made by the Federal Reserve in the United States of America as well as many other institutions in other nations then the answer is NO. You gave away (traded) some of those items when you bought the bitcoins. But a lowering of bitcoin value after that trade does not further diminish the amount of papers and discs you have.
But I would rather use the definition of money used by wikipedia:

Money is any item or verifiable record that is generally accepted as
payment for goods and services and repayment of debts in a particular
country or socio-economic context. The main functions of money are distinguished as: a medium of exchange; a unit of account; a store of value; and, sometimes, a standard of deferred payment.Any item or verifiable record that fulfills these functions can be considered as money.

The papers and discs fit that definition so no money loss there. But, what else fits that definition?
BITCOINS
Before they got lowered in price you could go to Newegg and purchase a certain ammount of items. What happens if you go to Newegg after they got lowered in price?

If the answer is "I can buy the same" then no, you did not lose a quantity of your money.
If the answer is "I can buy less for the same ammount of bitcoins than I could before the lowering" then yes, you did lose a quantity of your money. They are diminished as a medium of exchange, now you can exchange those bitcoins for less than you could before.


Why does Antpool mine so many empty blocks? AntPool, the largest mining pool mines a lot of empty blocks (quick stat over the last 100 blocks they mined at time of writing shows 20% <10kB).

While I understand that sometimes it is useful to mine an empty block when one has not had time yet to validate all transactions in the previous block. This validation should be very quick compared to the average 10min block time (validating a full block of like 2000 transactions should not take more than a few seconds on a modern PC, no?).
So, why the hell is Antpool mining so many empty blocks???

Just to compare, the same stat for the 2nd largest pool, F2Pool, gives only 4% blocks <100kB and 0% <10kB.

EDIT: I pulled out some more stats over the last 500 transactions as of 16/12/2006 11:25 CET
- 18 blocks < 5kB (3.6%)
- AntPool mined 98 blocks, out of which 16 < 5kB (16.3%) covering almost 90% of empty blocks
- Empty blocks came on average 6.6min after the last block so yes faster than the overall average 10mins but still plenty of time to include transactions
- Only 16% of these 18 were very quick empty blocks <1min

This article gives a nice summary of potential causes and solutions to empty blocks mining: https://bitcoinmagazine.com/articles/decline-empty-blocks-has-increased-bitcoins-transaction-capacity/.
AntPools may just be late at implementing the solutions...

Bitcoin's miners are behaving irresponsibly - signaling crappy "power-grab" versions that move more control to them.  Gaming the system with empty blocks.   Basically screwing with the protocol.

Maybe Bitcoin's premise: that you can use game theory to get a distributed group of people to behave responsibly - is falling apart.


Forks to be aware of other than Bitcoin Cash and Bitcoin Gold? I have now taken care of the Bitcoin Cash and Bitcoin Gold that I was given "for free" when the hard forks took place, and sent them to other wallets.

Before getting rid of [*] my old Electrum wallet containing all the relevant keys and wallet seed, I wanted to ask the question:

  Are there forks other than Bitcoin Cash and Bitcoin Gold I should be aware of that might carry some value?

I guess I can safely assume that SegWit2x will never happen, at least not at the block that was originally planned?

[*] Not exactly getting rid of it, but just take comfort in the fact that I can calmly forget the password, erase that wallet file by mistake etc etc.

Current forks that I successfully sold on exchanges and got free BTC:

Bitcoin Cash
Bitcoin Gold
Super Bitcoin
Bitcore
Bitcoin Diamond

A few more forks that I wasn't able to sell yet:

Segwit2x
Lightning Bitcoin
United Bitcoin
Bitcoin God

There have been a few other forks besides the two you mentioned. BitcoinRed, for example. We just know gold and cash because they are recent and BTC is hot news right now, which is exactly the reason they have increased in value.

If you keep an eye on forums like this you are likely to become aware of potential upcoming forks well before they are scheduled to occur. I know the end goal for the guys over at ViaBTC is to launch Via-bitcoin, and their founders and values seem pretty solid.


Can anamurminers.com be trusted? I'm thinking about ordering two 63 GH/s Bitcoin miner's from Anamurminers.com Also see: http://anamurminers.com/asic-miner. Can this company be trusted? They say they can ship two to the UK straight away.

There's no way this is legitimate.

Domain is less than a month old
All product photos can be found elsewhere on the web. http://www.stss.ru/products/workstations/tesla/RX240T8.2.html http://www.fractal-design.com/?view=product&prod=94
Address/phone number/name on Contact Us page differs from address/phone number/name on WHOIS record.
They say their miner connects over USB. However, they don't have any drivers for it on their website, or say what OS it works with.
They said that they're too busy to take a video, or post an non stock-photo image, but they would in a week. They said that 10 days ago.
They claimed that they designed, wrote, sourced, soldered, and tested the whole thing, front to back, in 3 weeks. Then somebody on bitcointalk pointed that out, and now it took them 3 months! Still implausible, though. Unless you're willing to pay insane markups, your shortest turnaround time on an ASIC is around 6 months, and that's if you already have your design done.
They offer local pickup (in the Czech Republic)
This gem:

  Due to Czech law, we MUST, give you back your money even after 14 days, if you are not satisfied with the product.

I doubt that.

So yeah. Scam. I'm guessing that Antonio Barreto is the brains of the operation, and Anamur Silif is the fall guy.

seems like they are also discussed here:
http://bitcointalk.org/index.php?topic=233346.0


How to prove to my landlord that bitcoin came from my wallet? Let's say I'm paying my monthly rent using bitcoin. I'm going to set up a script to send 5 bitcoin from my wallet to my landlord's address every month. I will not be able to tell beforehand which addresses the bitcoins will come from, nor does my landlord want to verify signatures on many addresses.

How can I prove that 5 bitcoin is leaving my wallet every month and going into my landlord's account?

One way might be to have the landlord generate a different address for each tenant. So you pay your landlord using address A, and your neighbour pays using address B, and the landlord can tell who the payment came from by the destination address.

That doesn't prove that the payment came from your wallet of course, but this allows somebody else to make the rent payment on your behalf (and the landlord wouldn't know the difference).

Well, the answer to this question is in the following steps:

Once you have completed the transaction of the bitcoin, visit the transaction page of the application/wallet/page and search for the “Sign a message” function.
Note: you will be getting this function only if you have the private key.

You have to make sure that you know and noted the “FROM” address.
Now you have to insert that FROM address in the message field.
Make sure the address you are inserting is the correct one (you should not make any changes in that).
Enter the message for the verification of the payment and then hit the “sign message” button.
The signature will be generated and this will be a unique one for the address and the message. Copy all those – address, message, and the signature and send it to the vendor.
Once they will receive the information, they can verify it with the help of the “verify message” function of the bitcoin.
Once you have done all this you have the proof of the payment has been made by you for a particular purpose.
Read More How to sign a message with bitcoin address


What if Zcash Company turns evil? The "Company Values" section at the Zcash website states:

  we are not the controllers or the power-holders, and do not control
  the mining or distribution of Zcash. Every user of Zcash contributes
  to its decentralization, helping to protect it against failure and
  corruption.

but the zcash Security Information page reads that:

  If we are sufficiently hacked, or if we collectively turn evil, the above resources will not be sufficient to protect you. Luckily, the Zcash network is growing into a larger and more resilient community beyond Electric Coin Company itself. If you suspect that the company has been compromised, please also check other community resources unrelated to Electric Coin Company.

This is slightly confusing to me. I would have thought that the distributed / decentralised nature of it offers enough protection against anyone turning evil. What is the level of control that the Zcash have over the currency?

Zcash the currency requires the generation of parameters that must then be securely destroyed. If this data is not securely destroyed by Zcash the company they could undermine the currency, by being able to create new money. For a more thorough discussion, see also the Zcash blog post on the problem and one by Greg Slepak discussing the potential risks.

The process for securely generating these parameters has been described, and for the security assumptions to hold requires at least one of the parties involved to be honest. More information is provided in the Q&A section of a recent talk by Eran Trommer.

However, in the event that the parameter generation process was compromised this will be hard to detect, since the design of the network pretty much ensures that this would be kept secret as long as the currency is not sufficiently devalued to make it obvious that actually it was devalued. Such an attack can still not compromise the privacy of the users, but can create currency at will.

The decentralized and distributed nature does prevent evilness to a certain extent.  However, there is always a possibility of a 51% attack - The ability of someone controlling a majority of network hash rate to revise transaction history and prevent new transactions from confirming.


Is there a Bitcoin price alert application that can use data from BitcoinCharts.com? Is there a Bitcoin price alert application that can use data from BitcoinCharts.com?  Something like a windows desktop alert is what I have in mind.

I need this as I am trying to monitor prices of different exchanges such as localbitcoins.

If not then I may write a quick application for it and post it here.

Thanks

The wiki maintains a list of currently available software tools.

I don't see anything on there per-se but it might be an included feature in one of the pc tools.

But I say go ahead and write one if you have the time and desire.  It's nice to have options even if that feature already exists somewhere. I'm mostly Mac desktop guy these days so I'm a fan of multi-platform tools when possible. But that's tough to do for the kind of thing you're taking about. But if you open-source it there's always room for someone to port it or expand upon it!

You can try this bitcoin price alert service. It isn't tied specifically to bitcoincharts, but it supports some of the bigger exchanges and can send notifications through text or e-mail.


Do testnet networks require the same main network fee? As in the title, I'm wondering if testnet networks always require the same fee.

I know the coins aren't worth any thing, so it doesn't matter if I have to pay the fee or not, but I'm just curious.

I would say so. I can't find any code that make fees lower or optional for testnet users.

However, it's substantially easier to send a free transaction.

inline bool AllowFree(double dPriority)
{
    // Large (in bytes) low-priority (new, small-coin) transactions
    // need a fee.
    return dPriority > COIN * 144 / 250;
}

dPriority is higher for larger amounts. Testnet coins are worth much less, so you're more likely to send lots of them around. For example, if you sent 50 testnet coins half an hour after you got them, that would be eligible for a free transaction.

Testnet allows to send transactions without fees.
Mainnet does not mine such transactions.


Easy way to accept bitcoin payments without external service Is there a way to accept Bitcoin payments without running a full node or rely on an external service?

I'm thinking in some way to validate the transaction and then broadcast it to the network.

If you're not running a Bitcoin client of some sort, or referencing a 3rd party (rely on an external service) then your usability will suffer.

For example you can create private keys and address pairs for receiving funds using a library, so you can accept payments just fine without a node or a 3rd party. The draw back is you don't have a way to monitor the blockchain, check for UTXOs, or push transactions.

If you're looking to do those things as well with as little 3rd party as possible, I'd suggest use a library to create addresses, and build transactions, and then line up a series of open API's that allow you to check the UTXO set, and push a signed transaction. If one fails, then hit the next one, and if that fails hit the next, etc. It's a little extra work, but you won't have to sign up with a service, you don't have to run a node, and you don't have to feel like you're relying on an API service since you'll have fall backs.

Here are some push tx endpoints:
https://api.blockcypher.com/v1/btc/main/txs/push
https://chain.so/api/v2/send_tx/BTC/
https://btc.blockr.io/api/v1/tx/push

Here are some APIs to get the UTXO of an address
https://blockchain.info/unspent?active=1bitcoineateraddressdontsendf59kue
https://chain.api.btc.com/v3/address/1bitcoineateraddressdontsendf59kue/unspent
https://api.smartbit.com.au/v1/blockchain/address/1bitcoineateraddressdontsendf59kue/unspent

You can accept by having a QR code.  Where the sender will broadcast the transaction on your behalf.


Should I be running Bitcoin Core or Bitcoin-XT? I just read about Bitcoin Core and Bitcoin-XT, and I want to know what is the difference between Bitcoin Core and Bitcoin-XT?

And which is better Bitcoin Core or Bitcoin-XT?

The two pieces of software, Bitcoin Core and Bitcoin-XT, are very similar. Bitcoin-XT is actually just a fork of Bitcoin Core with some features added that Bitcoin Core developers didn't deem appropriate, such as a larger block size (BIP 101) and relaying of double spends.
Bitcoin Core is more up-to-date with all of the work that the community doing. Additionally, Bitcoin-XT now has a different consensus protocol regarding the maximum size of blocks. There has been much debate within the bitcoin community about if/how/when to increase the artificially imposed block size limit (of 1 MB), and one attempt to resolve this debate is being done through Bitcoin-XT.
The Bitcoin-XT README.md has these notes on how it is different than Bitcoin Core:

Support for larger blocks. XT has support for BIP 101 by Gavin Andresen, which schedules an increase from the one megabyte limit Bitcoin is now hitting.

Relaying of double spends. Bitcoin Core will simply drop unconfirmed transactions that double spend other unconfirmed transactions, forcing merchants who want to know about them to connect to thousands of nodes in the hope of spotting them. This is unreliable, wastes resources and isn't feasible on mobile devices. Bitcoin XT incorporates work by Tom Harding and Gavin Andresen that relays the first observed double spend of a transaction. Additionally, it will highlight it in red in the user interface. Other wallets also have the opportunity to use the new information to alert the user that there is a fraud attempt against them.

Support for querying the UTXO set given an outpoint. This is useful for apps that use partial transactions, such as the Lighthouse crowdfunding app. The feature allows a client to check that a partial SIGHASH_ANYONECANPAY transaction is correctly signed and by querying multiple nodes, build up some confidence that the output is not already spent.

DNS seed changes: bitseed.xf2.org is removed as it no longer works, and seeds from Addy Yeow and Mike Hearn are (re)added to increase seed diversity and redundancy.

So, if you support these changes and/or the possible future changes on the consensus-block-size-limit, run Bitcoin-XT. The releases are available here: https://github.com/bitcoinxt/bitcoinxt/releases

Core. Bram Cohen has a good writeup on medium

  The upcoming ‘crisis’ which is being used as a justification for a
  hard fork is something which it’s easy to convince people who aren’t
  very familiar with the technology will be a disaster. There’s a hard
  limit on the rate which transactions can happen, about five per
  second, and the transaction rate in bitcoin has been approaching that
  over time. We’re going to hit a wall! The sky is falling!

  So what happens when that limit is reached?

  Transaction fees go up.

  Literally, that’s all that happens. That’s the big ‘crisis’. What’s
  being claimed is: Transaction fees might go above two cents! The sky
  is falling! I am not exaggerating.

and

  Raising the block size limit is the idea of Gavin Andresen, former
  Bitcoin lead developer, who initially went around to core developers
  and players in the Bitcoin ecosystem trying to convince them that it
  should be done. The core developers had reactions ranging from neutral
  to vitriolically against it. Rather than accept this strongly negative
  reaction as a sign that his idea is a bad one, or attempting to work
  on some kind of compromise proposal, Gavin’s now blaming the arguing
  on a lack of benevolent dictator or clear voting process. There are
  several obvious problems with this. In projects which have a real
  Benevolent Dictator For Life, that person was the one who created the
  project. Gavin didn’t invent Bitcoin. He isn’t even a Bitcoin
  developer any more. He resigned his position as lead developer a year
  ago, and has been largely inactive since. Using a voting process, or
  even a system of rough consensus among core developers would cause his
  proposal to be quickly rejected. It’s only the exertion of outside
  political force which has forced it to be taken seriously.


Is there any study or research of how to make BTC transfers refundable? is there any study or recent research of making the bitcoins transfer refundable? As if your account is hacked and the bitcoins are transferred there is no way I can return it back.

At the technical level - No.

Credit card charge-backs work because the credit networks such as VISA and MasterCard (and participating banks) are giant clearing houses or multilateral bank arrangements to that effect. Anyone with an ongoing relationship with a bank essentially agrees to having money removed from their account or frozen in the case of a dispute or other funny business.

This is difficult to enforce with bitcoin addresses, if those addresses avoid the more centralised parts of the bitcoin ecology (currency exchanges, escrows, off-block payment gateways) that are more motivated to trace, penalise and report theft and fraud.

However:

Bitcoin insurance may become a popular way to mitigate against theft or fraud. This should actually be quite easy for insurance companies to calculate actuarial tables and premiums for; as the global transaction log for this currency is entirely visible.
Escrow is a common option for "reversible" transactions but only because the atomic irreversible bitcoin transactions are split into two separate transactions: One to the escrow and one from the escrow - assuming the escrow service is more trustworthy than the original buyer/seller arrangement... Escrow can provide a potential reversible service for fraud but would be pretty useless against theft.
A bounty arrangement might be viable. As actually offloading the bitcoins to a fiat currency is hard to hide (unless your mixer service provides pools of large volume and uniform dispatch interval); offering a bounty or amnesty of X% of the stolen money might result in the thief returning it.

If you want to get a refund, you can't do it by pressing a button. You'll have to ask the person who got your Bitcoins to send them back.


how to create a transaction that can only run in bch-abc using javascript? I use the "bitcoincashjs" or "bch-lib" and want to add a new opcode "OP_CHECKDATASIG" to output.How to do?

const utxo = {
    'txId' : 'b76e4563bfe2e9e40355e3791e060b774ceb9ba04bef70df151763f82acb69a0',
    'outputIndex' : 0,
    'address' : '1bbLNcTwoffAjuWTyBuu4vSwNUBNMgYgHL',
    'script' : '76a9147f27b2a0a88bc84d3db72f22ea82d52c99a6a0e088ac',
    'satoshis' : 2000
    };

    const transaction = new bch.Transaction()
    .from(utxo)
    .to('1bbLNcTwoffAjuWTyBuu4vSwNUBNMgYgHL', 1500)
    .sign(privateKey);

They added it to their examples.md recently.

var privateKey = new bch.PrivateKey('L1uyy5qTuGrVXrmrsvHWHgVzW9kKdrp27wBC7Vs6nZDTF2BRUVwy');
var utxo = {
  "txId" : "115e8f72f39fad874cfab0deed11a80f24f967a84079fb56ddf53ea02e308986",
  "outputIndex" : 0,
  "address" : "17XBj6iFEsf8kzDMGQk5ghZipxX49VXuaV",
  "script" : "76a91447862fe165e6121af80d5dde1ecb478ed170565b88ac",
  "satoshis" : 50000
};

var transaction = new bch.Transaction()
    .from(utxo)
    .addData('bch rocks') // Add OP_RETURN data
    .sign(privateKey);


if my wallet is sufficiently secure, can I ever lose my coins? I've made an offline address and only have the key stored on 2 encrypted flash drives stored in different locations with the private key written physically on paper and stored in 2 locations. Do I ever have to worry about my coins? That is, could theyever be lost in software changes or is that as big of a never-going-to-happen as the 21 million limit being lifted? I'm pretty sure I'm not touching that wallet for a long time. Is there any benefit to repeating this process for a more "fresh" address ever or does that not make sense?

I'll go through your question clause by clause:

  I've made an offline address

You're doing good.

  and only have the key stored on 2 encrypted flash drives stored in different locations

As long as only you know the password and the password is sufficiently strong, this is probably secure.

  with the private key written physically on paper and stored in 2 locations.

If either of these two locations are accessible by anyone other than you, then they are vulnerable. If someone else found either paper, and your keys are in plain text, then you could consider them compromised.

  Do I ever have to worry about my coins?

Yes.

  That is, could they ever be lost in software changes

Extremely unlikely, as the whole of Bitcoin depends on the safety of balances through upgrades. There are people who have very vested in ensuring that this never happens. Even a bug in the protocol could not erase history in an unrecoverable way, as a single offline client copied online or bootstrap.dat would refresh anyone affected.

  or is that as big of a never-going-to-happen as the 21 million limit being lifted?

Pretty much.

  I'm pretty sure I'm not touching that wallet for a long time. Is there any benefit to repeating this process for a more "fresh" address ever or does that not make sense?

Theoretically, you would never need to regenerate keys unless some kind of vulnerability was found in the software that generated your key, ala the Android random number generator flaw.

An unlikely occurrence would be some kind of change to the way private keys are imported, and your private key generated in 2013 cannot be securely converted to whatever format is expected in 2063, or whenever. I wouldn't get too paranoid about this.

Sounds to me like you are taking good care of your Bitcoins, so you should be able to sleep easy at night.

Of course, there is always a risk that your account could be hacked through a scam.

Bitcoin is the realm of technophiles, so always be careful when conducting transactions. The sad truth is that there are some scammers out there looking to hack into accounts. And as they are often very bright, there is always a risk that you could be tricked.


Is there any tool to extract the bitcoin transaction network from the blockchain? I'm looking for a way to extract some data from the latest downloaded bitcoin blockchain. In particular I'm interested in extracting the whole transaction network, so input and output public keys used in each transaction, the transaction date, hash, block hash and BTC amount.  I tried several solutions so far with no luck:

Bitcoin-Transaction-Network-Extraction

rusty-blockparser

bitcointools

BitcoinDatabaseGenerator

BCGraph

I've had some luck with bitcoindatabasegenerator and rusty-blockparser, but while these tools succesfully extract the output PKs, input PKs are nowhere to be found in the resulting files.

Summarizing, I'm looking for something like this to produce a network visualization of bitcoin transactions:

|Source PK(s) (BTC)| ------> Transaction ------> |Target PK(s) (BTC)|

Im not really an expert in coding so this makes everything more complicated for me. Can you suggest me a way to extract this data from downloaded Blk files?

Any help would be greatly appreciated!

BlockChain::BlockChain ( QObject* parent ) : QFile ( parent ), blkFile ( START_BLOCK )
{
  connect ( this, SIGNAL ( block ( const QByteArray& ) ), parent, SLOT ( block ( const QByteArray& ) ) );
  connect ( this, SIGNAL ( doneFile ( ) ), parent, SLOT ( doneFile ( ) ) );
  QTimer::singleShot ( 0, this, SLOT ( start ( ) ) );
}

void BlockChain::start ( )
{
  setFileName ( blkFileName ( blkFile++ ) );
  if ( !open ( QIODevice::ReadOnly ) )
  {
    _trace ( QString ( "cant open [%1]" ).arg ( fileName ( ) ) );
    emit block ( QByteArray ( ) );
    deleteLater ( );
  }
  else
  {
    _trace ( QString ( "processing [%1]" ).arg ( fileName ( ) ) );
    QTimer::singleShot ( 0, this, SLOT ( next ( ) ) );
  }
}

void BlockChain::next ( )
{
  if ( pos ( ) < size ( ) )
  {
    quint32 magic;
    quint32 sz ( read ( (char*)&magic, 4 ) );
    while ( !magic && pos ( ) < size ( ) - 4 )
      read ( (char*)&magic, 4 );
    xassert ( ( ( magic == MAGIC_ID ) || !magic ) && ( sz == 4 ) );
    if ( magic )
    {
      read ( (char*)&sz, 4 );
      emit block ( read ( sz ) );
      QTimer::singleShot ( 0, this, SLOT ( next ( ) ) );
      return;
    }
  }
  close ( );
  emit doneFile ( );
  QTimer::singleShot ( 0, this, SLOT ( start ( ) ) );
}

const QString BlockChain::blkFileName ( const int i ) const
{
  return
    ( i < 10 ) ? QString ( DATA_ROOT "\\blk0000%1.dat" ).arg ( i ) :
    ( i < 100 ) ? QString ( DATA_ROOT "\\blk000%1.dat" ).arg ( i ) :
    QString ( DATA_ROOT "\\blk00%1.dat" ).arg ( i );
}


Bitcoin API(s) - how to pair (or obtain) BOTH sender and receiver addresses with a transaction ID (hash) Various block explorers exist, which offer REST APIs. So far been using blockchain.info and btc.com

Here is what we have:
- List of bitcoin addresses

Here is what can easily be got with that info:
 - Historic list of transactions (hashes, or IDs) for the given addresses
 - I can also discover which input or output was OUR address, and therefore:
 - value, and whether the transaction was being sent or received

Now, here's what we need to obtain:
 - the OTHER (to/from) address!

So:
How can you use a transaction ID to obtain BOTH the sender's and receiver's wallet address - with some kind of REST API preferably?

(...knowing that sometimes transaction IDs are associated with multiple inputs and multiple outputs)

Endpoint references:
https://blockchain.info/q
https://btc.com/api-doc

The Bitcoin system doesn't have a "sender's address".  You can walk the transaction history to find out what destination the coins you were paid was last sent to but that is not a "sender's address".

Imagine if you had a magic wand you could wave over any package you received in the mail that would tell you where it was last mailed before you. You wave the wand over a package and find it was last mailed to a large distribution warehouse in china.  Is this the sender's address?  No. You bought the package from a shop in New York that purchased it for drop shipment from a distributor in Texas that fulfilled it out of a third party operated warehouse in Seattle, who recently pulled it out of a container from transoceanic shipment from the warehouse in china that your wand returned.

The previous to address might be useful information, just like the wand example-- but it is not the sender-- or at least not necessarily so--, it is not a return or refund address.  And this failure to map to the sender is not a fringe situation, just like the wand returning someone other than the party who sold you something would not be fringe: people frequently pay bitcoin's out of third parties wallets.

You have to crawl the transactions,which will give you Vout addresses i.e receiver address

and to know the sender address you have to Crawl Vin txid and match the  Vout address  with "vout"and "n" parameter of raw transaction which will be you sender address. You can check the link which will show you how this is done in python 2.7


What happens to cash used to buy bitcoins? Are there any requirements to Bitcoin exchanges [USD/EUR/etc], as to for what the [USD/EUR/etc] may be used? Or is the [USD/EUR/etc] received property of issuer of bitcoins?

Unfortunately, this is not decribed anywhere.

Bitcoin exchanges, like stock exchanges, act as a middleman for people that want to trade bitcoins. They do not sell/buy their own bitcoins or US Dollars.

Suppose that I have 10 bitcoins and I want to sell them at $5 each. In order to do that, I can use a bitcoin exchange and put a sell order at $5 for 10 coins. This is a way of "announcing to the world" that I will sell 10 coins to anyone who is willing to pay me $50. If you want to buy them, just login to the exchange and put a buy order at $5. The exchange will match our orders and I will receive your $50 and you will receive my 10 bitcoins.
When a buy order matches a sell order, a trade is made. This is how the bitcoin price is defined.

Now suppose that you want to buy bitcoins, but you are only willing to pay $4.9 for each bitcoin. You will put your buy order at $4.9, but it will not match mine because I only sell if you pay me $5 per coin. The amount of pending orders defines market depth.

For example, you can see here the market depth for MtGox. The bids table show the price people are willing to buy at and the asks table show price people are selling at. MtGox Live is also a nice way to visualize these concepts.

Note that bitcoin exchanges charge a small fee (currently around 0.5%) each time they match an order. So in the previous example I would receive $49.75 and you would receive 9.95 bitcoins. The rest is kept by the exchange for their services.

That's the billion dollar question and no one seems to understand what you're asking

The answer is probably what you suspect. There's a pool of millions of $$ that fills up the basements of exchanges that just keeps growing whenever anyone funds their account with $ to purchase crypto from a seller they got matched with. Because that seller never gets that $ only simulated exchange money which we treat as having the same value because of the misplaced confidence that it's the same thing

But it's actually very close to worthless because the exchanges will never allow anyone to withdraw in a big way... why would they when they can just Mt.Gox it when too many people start coming after the money they think is waiting for them

When all crypto corrects to near zero when the exchanges start to cut and run most people probably won't even understand why

crypto is real. it has value. and that value is whatever it was when we only had a system like localbitcoins to trade it.

but the exchanges? they're ponzi schemes

99.9% of people engaged in trading crypto are in for the rudest awakening imaginable


If two parties submit a conflicting transaction between each other, how does the network decide which one is correct? Let's say parties A and B both submit a transaction to the blockchain with a different version of what happened. Party A submits a transaction saying Party B gave him 3 BTC and Party B submits a transaction saying he gave Party A only 1 BTC. How does the network decide which one to put in the next block?

Don't you have to trust a third party? A wallet or some kind of transaction application? How does that work?

If two transactions spend the same coin (utxo) only one is allowed in each node's mempool. That may not be the tx that gets actually confirmed by a miner though and inserted into a block. In that case, the confirmed transaction "evicts" the double-spend from the mempool.

It is possible that two competing miners each mine different blocks at the same height with conflicting transactions. This is a split blockchain and a split network, but it's not a problem. Eventually one of these blockchain branches will be extended by an additional block. The chain with the most accumulated proof of work is the only one that matters, and the other branch (with the conflicting TX) will again be wiped out.

If you are running your own full node you don't need to trust any other source of truth. If you are a vendor accepting bitcoin, this is why "waiting six confirmations" is generally accepted as best practice.

The network doesn't have to. (In reality it does, but it doesn't have to)

The miner who finds the next block does have to choose one, if it receives both. We don't really care which one the miner chooses. If it's the one Party B doesn't want, well, that's Party B's fault for creating two transactions in the first place.

The miner has to choose one, though, because otherwise its block is invalid and it doesn't get paid. It will probably choose the one with the highest transaction fee or the one it received first.


How to calculate a hash of a Tx? How does one calculate the hash of a Tx? Which fields need to be double SHA hashed and in what order?

As explained by Gavin Andersen on the forum - in order to calculate the ID hash of the Tx that is used in the Merkle Tree, one needs to SHA hash the whole Tx message as defined in the Protocol Specification wiki page twice.

For example, for the only Tx from the Genesis Block one would double hash the following array of bytes:

01000000010000000000000000000000000000000000000000000000000000000000000000FFFFFFFF4D04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73FFFFFFFF0100F2052A01000000434104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC00000000

And if double hashed correctly, it would give the following hash:

4A5E1E4BAAB89F3A32518A88C31BC87F618F76673E2CC77AB2127B7AFDEDA33B

There's a diagram explaining the process of hashing a transaction when creating or verifying the signature of a bitcoin transaction on the forum, and a higher resolution version of the same image on dropbox.


Adversarial Question: Why not fork LND Loop and provide the service freely/cheaply? Adversarial Question: Now that LND Loop is paid product, what stops someone from forking the software and selling the product themselves, or integrating it freely?

The only reason I can think of is that Loop is still maturing as a product, and that it is LND who will bring  it to maturity, so it makes sense to stay with the proprietors. But that's not even relevant when the service becomes mature.

LND Loop is an open-source solution with MIT Licence. So, you are free to fork the code and create your own solution without any restrictions. In fact, there are a number of submarine swap companies out there that offer you a solution to import/export liquidity from your channel. LND Loop will just be one amongst a sea of such solutions. Market share winners and losers would be differentiated from their customer service and how they are going to tailor the solution to the customer needs.

A classic example to consider is Docker. Its code is completely open source (Apache 2.0 license) for Linux distributions and you can fork it if you want. However, Docker has raised $307.9M in funding to date and has a valuation in billions. They make money through their enterprise editions, docker hub and other professional services.

In my opinion, a similar analogy can be drawn for lightning. In the future, the company that will be able to handle huge requests of loop-ins and loop-outs without sacrificing time will grab a majority market share. They will have to tailor their solution to their customers and provide the best service possible. This will require considering multiple factors including good backend technology to handle the load, good professional services and if the company is able to handle enterprise implementations for their Lightning payment needs. They will also need to figure out liquidity and fluctuations in market price of Bitcoin to handle such operations. Offering all the services at a low cost is what is going to differentiate the competition. Forking off the code is just the first small step.

The problem isn't software related. All of the off-chain options invariably require a custodian to be managing the funds. Whether that is you on your own node, or Bluewallet, or other 3rd party app/option. The stated purpose of 2nd layer/offchain "solutions" is (ostensibly) to reduce the cost of casual transactions, and hasten an acceptable standard of "confirmed" status for txs for use-cases such as billing for streaming, and retail commerce.

The problem is this. Although the use of off-chain txing will temporarily reduce the cost of tx fees, invariably the cost per tx will continue to increase. Without increasing block-space to reduce the cost of txs, you're still competing for space in those blocks. In addition, the subsidy is continuing to reduce with each halving. This means miners will need to seek their due in the form of tx fees. I believe this means that eventually all private ln nodes (like your's) will be dusted as the tx fees eclipse their off-chain balances, and you will not be able to afford to establish new payment channels because you won't be able to afford the tx fees to have your initializing tx included in a block.

What this means for competitors for Loop is that unless you can cover the tx fees, and put up enough Bitcoin to make opening the payment channel worth doing, you'll be forced to rely on the services of 3rd party payment service providers. I'm assuming that because they just received $10 million in series A funding that they are going to be able to afford to put up more Bitcoin than you, or I ever could.

If you can see a flaw in this thesis, please feel free to let me know. They just block me on twitter, and reddit when I say stuff like this.


How do I protect my paper wallet from use by a different human who has used a random generator? Since millions of people use Bitcoin and Bitcoin Wallets that use their own addresses use several addresses per day, it is obvious that generators can generate the same characters for the Bitcoin address multiple times. So please therefore simply tell me how one would prevent others from accessing or spending the coins that are stored at my paper bitcoin address.

"Improbable" is an understatement.

There are 2256 possible keys.  In the entire universe, there are estimated to be "only" 2100 atoms.

So the odds of someone else ending up with the exact same address/key as you is far, far less than the same atom, out of the entire universe, being randomly picked twice.

If you are worried about an address collision, here are things that should be more worrisome:

Gamma ray burst wiping out all life on earth.
Sun unexpectedly going Supernova
Rogue Blackhole swallowing the solar system
An asteroid hitting the earth at the same time as nuclear war breaks out.

On the list of things to worry about, an address collision just does not show up.

You say that "millions of people use Bitcoin and Bitcoin Wallets that use their own addresses use several addresses per day".

  100 Million of people
  100 addresses per day
  365 days / year
* 200 years
-------------
Less than 1 Billion addresses used in the foreseeable future.

1 billion is about 230.
Which means that in 200 years, the chance of a collision is somewhere around 1 in 2256-30 or, 1 in 2226, which is still way more than atoms in the universe.

You're easily safe for at least 200 years.

What all of url don't realise is that is not impossible for hackers to brute the crap out of private keys, with computer processing increasing rapidly it's definitely not IMPOSSIBLE, to put the record straight, but then again that's vulnerability as being around since computers started to exist.


Bitcoin core internal transfer problem i have one big problem in bitcoin core internal transfer. to understand my question, please read my problem clearly.

1) Let me explain you by providing example.

My one of the core account let's say "xyz" has 0.05 bitcoin balance. This is real balance.
Now i am creating another two core account. "freebalance" & "dummy"
now i am going to run this command move "freebalance" "dummy" 10000
it will transfer 10000 btc to my new dummy account and freebalance account will have -10000
i know that my "dummy" account has dummy balance that is 10000 BTC. i can not spend it on blockchain transactions. No issue for now.
Now my xyz has 0.05 real bitcoin balance as i said earlier. and next i am transferring 5 BTC to my "xyz" account from "dummy" using internal transfer move command of bitcoin core.
It will make my "xyz" account balance (0.05 real balance + 5 BTC dummy balance = 5.05 mixed balance)

  Now the situation changes from here
  - whenever my internal transfer goes for "xyz" account to another account it will work good. but assume that i want to transfer 1 BTC
  from that 5.05 BTC balance to any other blockchain address. I mean i
  want to convert that "dummy" account generate balance to real one. So
  we can send that transaction to our users directly.

2) Another method or idea i have:

I have used json rpc api of bitcoin core.
let's assume i have "abc" account with 0.10 balance. So is there any possibility in move api or sending api to stop balance part. like whenever i try to transfer amount 0.50 from "abc" to "xyz" account it should work.
like this way-
first of all when sending api calls in, we will send 0.50 btc to xyz, but before that process we want to stop balance part of bitcoin core that is checking & deducting 0.50 from "abc" account. This way i want to keep my 0.10 balance in "abc" as it is. and also want to deposit "xyz" account with 0.50 btc.

  In short words, i want to stop bitcoin core to run deduct task from my
  core wallet account but run task of deposit or transfer easily without
  any error. So i can send profit to my customers easily.

Anyone please help me to solve out 1) or 2) problem. at-least one. i'm hoping to get good helps from the community on this issue.

Things you are trying to accomplish is you are try to transfer your bitcoin currency from one wallet to another wallet through internal bitcoind core system. whilst, you do not want to deduct balance. there is no api there which can prevent balance deduction.

bitcoind core has build their api if you tweak their code to prevent deduction of money. you can say you hacked bitcoin and your name will be breaking news! in theory you talk awesome, but practical way impossible.

Bitcoin virtual money is invented by satoshi nakamoto. also he can not do this things. if any person do transfer like you said. bitcoin will have zero value.
reason: people will start installing core/generate new bitcoin daily/earn money/no mining forever. just earn money. practically your idea is worthless, impossible.


How to get Bitcoin Cash from Multibit HD wallet? Multibit HD still works but is no longer supported so I sent most of my bitcoins to my new ledger nano s hardware wallet.
I now gather there may be bitcoin cash associated with the old multibit wallet that could still be claimed. If so, how can I do that please?

You need to use a Bitcoin Cash specific wallet.  I won't recommend a specific one but here is a list:

https://www.bitcoincash.org/#wallets

Use at your own risk.


Can I use Bitcoin elsewhere except in the deep web? I really like the idea of having an universal online currency and I wanted to know if I can use it in the 'surface web'.

Yes. You can use bitcoins in many places. There are Bitcoin exchanges where you may exchange your coins for USD or vice-versa. You can also use them on various websites like Newegg for example.

Yes! Of course! Websites like Overstock.com accept bitcoin.


How to confirm custom transaction with solo mining? I'm looking to cgminer software (https://github.com/ckolivas/cgminer) for understand that how mining works. It is difficult to understand and there are lots of codes. For this I'm asking this question here.

Is it possible that can I confirm a specific transaction? For example I sent a bitcoin from my address to other address and it generates a transaction ID. Can I pass this transaction id to my custom solo miner and it confirms it. Is it possible?

Is there a software that mines custom transaction seems like:

myOwnGPUorCPUMiner -tx [my custom transaction id]

It will confirm my transaction and finished or continues to mine other transactions. (This code is just an example)

In Bitcoin, it is the miners' task to order the transactions. Thus, it is possible for a miner to pick which transactions they want to confirm. By default, they pick the ones that will provide the largest mining revenue to them, but often they will pick transactions to prioritize out of band.

However, you can only confirm a transaction by mining a block. That's what a confirmation is, a transaction being included in a block and thus being committed to on the blockchain.

However, it is infeasible for you to mine a block at home. Whatever minig power you may be able to acquire and run at home will likely not help you mine a single block in the next 1,000 years. I've elaborated here: In the ASIC-age, is it worth starting mining Bitcoin at home?

Bitcoin network is secured by two powerful protocols both of which are attack proof.

First of all for not allowing anybody adding arbitrary transaction in the blockchain; you should do a proof of work calculation which takes 1000 years on a single PC. doing such an intense calculation is so expensive and does not defer between accepting one transaction or thousand of transaction. so miners prefer to put as much as they could in a single mined block to gets more bitcoin from overall transaction fees. dont forget: you cannot 'mine' a transaction without putting it in a block, and you cannot mine a block without doing the proof of work calculation.

secondly and more importantly, generated block should be accepted by other full nodes of the network. so if you generate a block containing a transaction without enough evidence from signature of sender; they would refuse from accepting your block and that block would be worthless.

these two things helps bitcoin philosophy to secure its independence from being raped by any kind of filtering boycott or sanctions.


Bitcoin privacy metrics? I'm looking for a numerical privacy scoring system that estimate the degree of linkage between the members of a key pool (or even just individual key pairs). Ideally, the method should be easy to understand and apply.

I'm aware of "taint analysis" as offered by blockchain.info. There's also discussion in these papers:

Anonymity of Bitcoin Transactions
Evaluating User Privacy in Bitcoin
Privacy-Enhancing Overlays in Bitcoin
Quantitative Analysis of the Full Bitcoin
Transaction Graph

What else has been done to quantitate Bitcoin user privacy? I'm most interested in ways to compute a benchmark score that tells a user how closely linked the the members of a key pool are, or how closely linked two individual key pairs are.

Here is a great video in which they asked: given 1 address I know belonging to someone, how many other addresses can I associate with that particular wallet. It turned out to be about 75%.

The method detailed in the video uses a few assumptions about how wallets work.

Multi-input heuristic: All inputs in a transaction belong to the same wallet.
Shadow change heuristic: Change public keys have never been seen before on the blockchain.
Consumer change heuristic: Transactions from consumer wallets have 2 or less outputs.
Optimal change heuristic: Wallets do not spend unnecessary outputs. This means that a transaction with say 2 inputs of 0.5 each and 2 outputs of 0.6 and 0.4, the 0.4 is assumed to be the change address belonging to the same wallet. This is because if the intended payment is 0.4, the wallet would have chosen a single 0.5 input.

To quantitify user privacy there is the Bitcoin privacy score which is available for all BTC addresses which were ever used in the blockchain. It's a score between 0% and 100%. Close to 100% means excellent privacy:

No address re-use
several analytical heuristics to group the address with others belonging with high likelihood to the same entity (co-spend ...) not successful
No path to one of the millions of known exchange addresses (deposits)
No path from an exchange address to the subject address (withdrawal)

The lower the score the worse the privacy of the bitcoin address.
If you want to try it out here the link:
Bitcoin privacy score
(Disclosure: As co-programmer I'm affiliated to the btctester site)


Which exchanges offer stop-loss functionality? In case of a sudden price drop, I want to sell my coins automatically. MtGox doesn't have an option for this, which exchanges do?

BTX Trader will let you create stop-loss orders on top of your account on Bitstamp, BTC-E, Mt. Gox, BTC China and CampBX.

It's not same as an exchange-hosted stop-loss order but a close second.

Disclosure: I'm one of the founders of BTX Trader.

www.bitrule.com assists Bitcoin users to mitigate price volatility by placing custom trading rules such as stop loss as well as creating price alerts.
Designed to be simple, Bitrule is a cloud based service that connects to all major Bitcoin exchanges and safeguards your bitcoins even while you're asleep.

No software downloads, no browser plug-ins required and no deposits. Simply login your  account, place rules & alerts
goodluck...
http://www.bitrule.com


Where can I buy Litecoin? I know Litecoin is sold on Coinbase, but I'm wondering if anyone has compiled a list or knows of other exchanges selling the currency?

The most current list of Litecoin exchanges, originally from the Litecoin wiki, updated in December 2017 to remove nonfunctional exchanges:

  Market exchanges

 Kraken
 The Rock Trading
 UpBit - Korean exchange
 Bithumb - Korean exchange
 BTCTrade - Chinese exchange
 OkCoin - Chinese exchange

  Fixed rate exchanges  Okpay
 Litecoinlocal
 BitBargain
 24change
 ALFAcashier
 GOLDUX

For the most updated list, take a look here:

http://exchangewar.info/coinprice?LTC_BTC

You can find those exchanges using fiat currency too. For example:

http://exchangewar.info/coinprice?LTC_USD

http://exchangewar.info/coinprice?LTC_EUR

http://exchangewar.info/coinprice?LTC_CNY

etc. ;)