Where to store coins while I do a factory reset on my computer? My Macbook is having some issues and I have a desktop wallet on it for Bitcoin, Litecoin and Ripple.

I have been told to completely redo my laptop with a factory reset. How can I move or save these coins while I restore my Macbook?

Rutger's response is probably the easiest. Other options would require an understanding of the wallet(s) used. They might have private keys that can be used to allow immediate setup after reinstalling. For example, the Ripple (Rippex) desktop wallet has a secret key that can be used.


I reused a previous deposit address and the recipient claims the address was invalid I sent bitcoins to Sportsbook.ag, my Bitcoin wallet saved an address that I'd previously used to send Sportsbook.ag. The problem is my bitcoins never showed up in my account. I e-mailed sportsbook.ag, they told me that the address I used to deposit bitcoins was invalid and I had to contact my bitcoin wallet. From what I've seen the bitcoins aren't lost, they're somewhere, how do I get them?

If you've used this address before to deposit money to Sportsbook.ag, the address will still be under control of Sportsbook.ag. If they don't directly manage their Bitcoin deposits, their payment processor will still have received the payment in proxy.

They may not have expected you to reuse that address, but they should be able to fix it on their end. Contact them again and clearly explain what has happened. Good luck.


Does each bitcoin have a serial number? I was recently told that each bitcoin has a serial number and can be uniquely identified. Is this correct?

No, each bitcoin is not uniquely identifiable (there is no ‘serial number’). In fact, on a technical level, a ‘bitcoin’ does not actually exist as most people imagine it to.

What I mean by that is that all ‘bitcoins’ actually exist as ‘unspent transaction outputs’ (UTXO). Each UTXO is a record of where the bitcoins reside: it will specify a bitcoin address, and an amount of bitcoin.

For example, suppose you have 2 addresses, each with one bitcoin in it:

Address A: 1 bitcoin

Address B: 1 bitcoin

Each of these addresses will have a UTXO associated with it. Next, you send a transaction, that spends both of those UTXOs to a single address (Address C, we’ll ignore txs fees for simplicity). So now you have:

Address C: 2 bitcoins

Next, send a transaction that spends the address C UTXO, with an output of 1 BTC to each address D and E. So now you have:

Address D: 1 bitcoin

Address E: 1 bitcoin

So now the question is: what can we say about the bitcoins (UTXOs) for address D and address E?

We can trace the history through the blockchain, and know that the address D and E UTXOs have a common history with the address A and B UTXOs, but we cannot say that ”the bitcoin in address D is the one that was in address A”. This allows bitcoins to be fungible, preserving privacy and usability.

Hopefully through this you can see how the bitcoins are not track-able digital objects being passed around, instead they are UTXOs that can be combined and split endlessly, as the user so desires.


How can I stop Electrum re-using change addresses? I had three addresses containing BTC in my main Electrum wallet.

I then performed more than three sends, to addresses not in my wallet.

The first three sends used main wallet addresses to send BTC from, depositing the change each time in the first change address where it gathered.

Sends after that sent BTC from my first change address, but they sent any change back to the same change address, which isn't ideal. How can I stop Electrum sending change to the change address it originated from, in these cases?

Update

According to Electrum documentation, addresses can be frozen. This seems to only affect where BTC are taken from, however; the docs don't say how to affect where change goes.

Electrum waits for confirmations to create new addresses, so if you make new transactions before the previous ones are confirmed, you'll end up reusing the existing change addresses.


Lightweight client, bare necessities What are the bare data necessities that a lightweight client would have to get from a server client in order to perform basic wallet tasks (show balance, transaction history, number of confirmations, send coins)?

For example, a simple, light client could store all Txs where any of the given addresses from the wallet were used, but one could also try trimming all data from those Txs that aren't related to their addresses.

What is the bare minimum of data a client needs in order to function?

In order to correctly show balance and be able to create new transactions, a thin client needs the following information:

Current block number
OutPoint information - hash of the incoming transaction and position of the output relevant to the client.
Signature script, as it needs to be included in a Tx
Amount of Bitcoins send/received in the given transaction
Block number in which the transaction was included (for knowing the amount of confirmations)

(Does anyone have an idea what else could be useful or needed?)


Why is "cancel canal can" an invalid BI39 (3 word) mnemonic phrase? Is there an entropy rule that prevents this particular combination? e.g. it's not random enough?

Or is this just a bug on this generator tool I'm using: https://iancoleman.io/bip39/#english

When generating a BIP39 mnemonic seed phrase, the user will first want to generate an entropic value ENT (as referenced in the BIP39 docs), which will be used to generate the mnemonic.

Note that it is very important that ENT be of suitably high entropy, or else the resulting mnemonic phrase will be insecure against brute force attacks. Choosing your own words is similarly insecure - always start with a proper source of ENT, and then derive the words from it.

Next, we take the SHA256 hash of ENT, and then concatenate the first ENT/32 bits of the result to the end of ENT. This works as a checksum on the mnemonic.

Once this is done, we split the result into groups of 11 bits, and encode each 11-bit group into a word, using the BIP-39 word list.

With your example, a 3-word phrase would encode 32 bits of entropy:

32 bits + (32/32) bit checksum = 33 bits
 33 bits / (11 bits/word) = 3 words

This amount of entropy is extremely insecure against brute force attacks, if you store funds at a wallet generated from this mnemonic seed, you should expect them to be stolen. It is generally recommended to use at least 128 bits of entropy (12 words), with 256 bits (24 words) being a common standard.


Checksum generation for seed I am trying to generated the checksum for the mnemonics (BIP39) but can't get the correct value.

I used 3 resources

This explains the mnemonic generation https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#Generating_the_mnemonic
This contains test vectors
https://github.com/trezor/python-mnemonic/blob/master/vectors.json
This is the word list
https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

I can't get the first test vector to work out.

I SHA256 0x00000000000000000000000000000000 into 374708fff7719dd5979ec875d56cd2286f6d3cf7ec317a3b25632aab28ec37bb

The first four bits, which are the checksum bits, are 0b1101

That makes the last 11 bits of seed + checksum 0b00000001101, the last word of the mnemonic. Corresponds to 13 or index 12 "accident". However in the test vector it's index 4 "about".

I get the wrong word for every test vector. Probably a silly mistake. Thanks.

The checksum is expressed in Hex, so I believe the first character '3' represents the first four bits of the checksum string? If so, this is 0b0011. Word "about" is actually index '3' because the word list is 0-indexed (hence all zeroes maps to "abandon").


How to Construct a Ping Message I am struggling greatly trying to figure out how to send a basic "PING" message, and receive back a "PONG" response.

import random
import hashlib
import socket
PEER_IP = "35.187.200.6"
PEER_PORT = 8333

nonce = (random.getrandbits(64)).to_bytes(8, byteorder="little", signed=False)

magic_number = bytes.fromhex("f9beb4d9")
command_name = bytes.fromhex("ping".encode("utf-8").hex() + ("00")*8)
payload_size = (int(len(nonce))).to_bytes(4, byteorder="little", signed=False)
checksum = hashlib.sha256(hashlib.sha256(nonce).digest()).digest()[:4]

final_msg = (
    magic_number
    + command_name
    + payload_size
    + checksum
    + nonce
)

sock = socket.socket()
sock.connect((PEER_IP, PEER_PORT))
sock.send(final_msg)
pong = sock.recv(1024)
print(pong)

I am following this YouTube tutorial, and added the socket layer myself.

The only response I get is

b''

Any insight into what I am doing wrong here, would be greatly appreciated.

Thanks

You need to send a version message (and receiving the correspondant verack) before sending anything else. Here is a quickly patched version of your script which handles the version message:

import hashlib
import random
import socket
import time
import urllib.request

PEER_IP = "127.0.0.1"
PEER_PORT = 8333

nonce = (random.getrandbits(64)).to_bytes(8, byteorder="little", signed=False)

magic_number = bytes.fromhex("f9beb4d9")
command_name = bytes.fromhex("ping".encode("utf-8").hex() + ("00")*8)
payload_size = (int(len(nonce))).to_bytes(4, byteorder="little", signed=False)
checksum = hashlib.sha256(hashlib.sha256(nonce).digest()).digest()[:4]

pong_msg = (
    magic_number
    + command_name
    + payload_size
    + checksum
    + nonce
)

# Magic bytes, as usual
magic = bytes.fromhex('f9beb4d9')
# Version number (PROTOCOL_VERSION in core)
version = int(70015).to_bytes(4, 'little')
# Random services, we don't care
services = int(1).to_bytes(8, 'little')
timestamp = int(time.time()).to_bytes(8, 'little')
myip_str = urllib.request.urlopen('https://api.ipify.org').read().decode()
myip = socket.inet_aton(myip_str)
nodeip = socket.inet_aton(PEER_IP)
# https://en.bitcoin.it/wiki/Protocol_documentation#Network_address
addr_recv = services + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff'
addr_recv += nodeip + int(8333).to_bytes(2, 'big')
addr_from = services + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff'
addr_from += myip + int(8333).to_bytes(2, 'big')
nonce = 0x00.to_bytes(8, 'little')
# You can replace this with something more fun
user_agent = 0x00.to_bytes(1, 'big')
# Let's say zero, once again we don't care for this example
start_height = 0x00.to_bytes(4, 'little')
# The message content, which we'll compute the checksum from
payload = version + services + timestamp + addr_recv + addr_from + nonce
payload += user_agent + start_height
checksum = hashlib.sha256(hashlib.sha256(payload).digest()).digest()[:4]
payload_length = len(payload)
# The command type, as NULL padded ascii
version_message = magic + 'version'.encode('ascii') + b'\x00\x00\x00\x00\x00'
version_message += payload_length.to_bytes(4, 'little') + checksum + payload

sock = socket.socket()
sock.connect((PEER_IP, PEER_PORT))
print('Sending version message..',)
sock.send(version_message)
print('Received verack: {}'.format(sock.recv(24)), end='\n\n')
print('Sending ping..')
sock.send(pong_msg)
print('Received pong: {}'.format(sock.recv(1024)))

And here is a sample output of my node:

Sending version message..
Received verack: b'\xf9\xbe\xb4\xd9version\x00\x00\x00\x00\x00h\x00\x00\x00n\x8a\xbe\xc7'

Sending ping..
Received pong: b'\x7f\x11\x01\x00\r\x04\x00\x00\x00\x00\x00\x00\x86\xc5\x08^\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\r\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xa0vQ\x16V\xb1\xab\x12/Satoshi:0.19.0.1/\x14P\t\x00\x01\xf9\xbe\xb4\xd9verack\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00]\xf6\xe0\xe2'

Here is the protocol documentation, on which you can rely for implementing protocol messages.


Bitcoin adder or bitcoin generator or bitcoin hacker software Nowadays I always see many persons selling bitcoin adder / bitcoin generator or bitcoin hacker software claiming that these are creating 1 bitcoin or more.

I am unable to believe authenticity of their claim.

Can any one make me clear whether these programs work or merely are scams.

AFAIK no such thing is possible. Could you please describe where this balance is supposed to be created?

You could obviously change your local record of the blockchain to reflect added balance, however, no other Bitcoin node would accept payments funded from that balance.


Bitcoin create TX. What is 'hash_type'? https://bitcoin.stackexchange.com/a/5241/92798
What is the meaning of item 13?
Why is this value chosen? What does it mean?

https://en.bitcoin.it/wiki/OP_CHECKSIG

99% transactions use SIGHASH_ALL


Bitcoin security/vulnerability on computer backed up by cloud? I understand that BTC are stored as file in wallet.dat on hard/external drives.

Is there an added layer of security to Bitcoin storage when the computer is backed up by a trusted cloud storage company, or does this make BTC more vulnerable to raids/theft?
Does this redundancy allow remote access to BTC wallet without increasing security risks?
Can the third party (cloud storage company) access/steal BTC value of wallet.dat?

first you have a misconception, BTCs are only stored in the blockchain, wallet.dat stores public/private keypairs of your addresses, addresses can have or not BTCs to spent but that's irrelevant for the storage.

Bitcoin has nothing like a API for backups, but it does have encrypted wallets so you can encrypt your wallet file and you only will be able to use it if you remember the passphrase.
Having your wallet.dat file in several computers and actively using it in several pcs can cause address loss (and BTC in those addresses) see: If I backup my wallet.dat once, am I forever safe?
If the wallet.dat file stored in external sites is not ciphered and someone has access to it, yes that entity wil be able to "steal" all current and future coins on that addresses.


Why does Bitcoin-Qt not launch the program, on Mac I can't believe that I have lost my Bitcoin Wallet just because I clicked on the red spot on the window of it on my Mac. Or was this enough to loose it???

I think I have the address (does it start with a 1xxxx ?) and I have my password.
Have I lost my wallet or is it just invisible?

When I click on the Bitcoin-QT icon in my applications folder, nothing happens.

Right click the icon and quit Bitcoin-QT, then restart it. I have it on my iMac and occasionally it goes completely unresponsive. If necessary, force quit. See:

https://en.bitcoin.it/wiki/Securing_your_wallet

For instructions on backing up your wallet for future.


Blockchain.info and fetching transactions for a address between dates I'm trying to fetch transactions for a certain bitcoin address, but I only need to fetch transactions within a specific date range.

Now, I had a look at the blockchain.info api and it seems like the best solution to get transactions for a address is: https://blockchain.info/rawaddr/$bitcoin_address

(as seen on this page: https://blockchain.info/api/blockchain_api )

My problem is that the array of transactions returns all transactions, but I just want to fetch a small subset of transactions within 2 dates.

I know that I can then filter the transactions myself based on the expected date range, but I'd like to reduce the payload for the initial response, otherwise I can end up with hundreds or thousands of transactions that I don't need.

Question: Is there a recommended, easier method to get transactions, belonging to a specific address, but only within a certain date range?

im looking at the same thing what you will find is that rawadddr only gives you 50 transactions not the full list, if the address has more than 50 txns you have to use limit and offset to go through the results pages of txns like paging through pages of search results, use &sort=1 so that it sorts oldest first that way if new txns come in while you are looping through the indexes wont get bumped up

you will have to get all the txns, loop them and look at the timestamp to see if it fits in the range blockchain.info cant give you what you want directly i dont think, of you will have to page through till you hit your date range and then keep paging till you get to the end

the api from blockcypher.com pages by block height which is not time but i think is closer to time, if im right and you stored the times that blocks got confirmed in a look up table you could call your date range through finding if the block was confirmed in the time range, if there is more than 50 txns it has a has_more attribute that you can use to page through and the set wont shift on you

https://www.blockcypher.com/dev/bitcoin/#address-full-endpoint


Where can I find Armory 92.3 for download? I am trying to use Windows XP and need Armory 92.3
to do it. Where can I download that version without compiling?

A version for XP can be downloaded from github. This is actually 93.3 not 92.3. It says "Armory 0.93.3 for Windows XP, Vista, 7, 8+ (64-bit)"

I have not used this version and cannot vouch for it in any way.

As I expect you know, Windows-XP is an insecure operating system. Microsoft stopped supporting XP in 2014, 5 years ago now. Personally I'd install Linux (e.g. Ubuntu) on the same hardware in order to create a safer environment than XP for a Bitcoin wallet. This might be slightly less of an issue if the computer is never connected to the Internet or to USB devices etc. Duubtless you have considered this but I feel I should mention this for any less-informed people who might read this.


Can a Butterfly Labs Jalapeño be used to mine Zetacoin? Can my Butterfly Labs Jalapeño be switched to mine Zetacoin?

Bitcoin ASICs like the old Butterfly Labs Jalapeno can do one thing and one thing only and that's SHA-256 hashing. Searches indicate Zetacoin uses SHA-256 hashing, so the answer is yes. Whether or not you will make any money is whole different story.


Troubleshooting pybitcointools transaction signing/verification I'm having several problems getting tests to successfully run under my fork (or vbuterin's pybitcointools, and I'm hoping someone with a combined Python / Bitcoin knowledge can provide some insight.

Here's the error message (as submitted to #145):

======================================================================
FAIL: test_all (__main__.TestTransaction)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/var/mobile/Containers/Shared/AppGroup/AA78F2EC-3EE8-40F4-A318-8A9AB1BCB5FF/Pythonista3/Documents/pybitcointools-vbuterin/test.py", line 179, in test_all
    self.assertTrue(verify_tx_input(tx1, 0, mscript, sig1, pubs[1]), "Verification Error")
AssertionError: Verification Error

======================================================================
FAIL: test_all (__main__.TestTransactionSignVerify)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/private/var/mobile/Containers/Shared/AppGroup/AA78F2EC-3EE8-40F4-A318-8A9AB1BCB5FF/Pythonista3/Documents/pybitcointools-vbuterin/test.py", line 133, in test_all
    "Verification error"
AssertionError: Verification error

----------------------------------------------------------------------
Ran 18 tests in 6.944s

FAILED (failures=2, errors=2)

I've got a hunch this has to do with the introduction of low_s (ie s = N-s if s>N//2 else s) for ECDSA signing, but can't be certain.

Can anyone point out where things are going astray?

OK, I figured it out.

It was an issue with the value of v in vrs (v being the version byte, and r/s being the DER values). Since v is not encoded by DER signatures, the check for 27 <= v <= 34 was failing because not knowing the v value would sometimes require v be equal to None, 0 or 1.


Is a multisignature transaction propagated through the Network before it accumulates enough signatures? An N-of-M multisignature Transaction requires to be signed by N addresses to be a valid transaction. I would like to know whether the Bitcoin Protocol would transmit a Transaction with less than N signatures through the Network in order for it to reach the other parties holding the remaining addresses, or would it be rejected?

The problem essentially boils down to whether one can reliably use the Bitcoin Network to initiate N-of-M Transactions and let them reach the other parties on their Clients, or would the Transaction need to be transmitted outside of the Network first, signed by the N addresses, and only then broadcast through the Network?

Mike Hearn talks in his speech about the future of bitcoin and mentions subchannels when doing micro payments, is this what you are looking after?

When i try this in Testnet
getreceivedbyaddress does show the amount sent to the multisig address, but listunspent does not. So even if listaddressgroupings include the multisig address, you still need to know the txid to be able to spend that prev_output.

if i try to send a tx with only 1 signature, this is what i get in the log:

ThreadRPCServer method=sendrawtransaction
ERROR: CScriptCheck() : 4378d77e5d VerifySignature failed
ERROR: CTxMemPool::accept() : ConnectInputs failed 4378d77e5d

and with 2 signatures (Complete):

ThreadRPCServer method=sendrawtransaction
AddToWallet 470a194f21  new
keypool reserve 9
keypool keep 9
CTxMemPool::accept() : accepted 470a194f21 (poolsz 5)
AddToWallet 470a194f21
received getdata for: tx 470a194f21

txid is also returned 470a194f21 by the client.

My answer is:

No, the mempool will not work as a subchannel (right now, if it ever was indended)


Some question about block and block chain.....really confuse me! Here are my questions:

Because miners can choose which transaction will be added in block by themselves, so what if two miners broadcast two blocks almost at the same time, one is bigger(has more transactions), another is smaller. Which of the two blocks will be accepted?
When miner creating blocks, transactions in that block affect the result?
For example, if miner A is creating a block, but now there is a new transaction is broadcasted on network, will A stop current work then add new transaction as one of the input then recreate block?
If above is the case, then I think because transactions will happen at anytime, so some miner will creating block, before the block is created, there is a new transaction on network, so they abort current work, take the new transaction as one of the input, start create block again, then there is another new transaction on network, miner stop current work .......
so they will never finish...
Say if at current time there exist spilt of block chain, we call them A and B. A is "longer" then B, as the result B will be eventually forgotten, but what happened about the transactions in blocks on B? The block which is different between A will be unpacked, reconfirm the transaction then create new block, add new block on A?
The new block will be create approximately 10 min, but I saw on blockchain.info

why the time between these two blocks are just 2 min?

The cost to abort current work is essentially zero. If you haven't found a block yet, you haven't accomplished anything you care about. So you can restart to include new transactions at near zero cost. You don't have to restart if you don't want to. Miners can either try to get new transactions into blocks as soon as possible or not bother.

In the future, people will probably work harder to get new transactions into blocks as soon as possible. Right now, the 25 BTC block reward dwarfs any transaction fees. But in the future, getting as many transaction fees as possible may be worth extra effort.

If two blocks are broadcast at about the same time, there's no good way to know which will ultimately be accepted. You have to wait to see which one gets confirmations. Everyone wants to mine on the longest chain (to increase the chances they get to keep their block reward), so as soon as one gets even a slight advantage, its advantage should grow.


Why Bitcoin Mining requires "Hash Guessing" problems, even though Consensus algorithm exists to tackle BFTP? This post on CoinText explains Purpose of Hashing in Bitcoin Mining:

  The purpose of all the extra work is to prevent the traitors from sending false messages but serves no other purpose.

The idea seems to make the false/rogue attempts of Byzantinian nodes more difficult.

Since I am researching on this, would like the community's view(s) on:

We have Consensus algorithm in place to deal with false/rogue messages, then why is there a need to make the process more difficult by adding hash guessing work?
If we skip hash guessing work, how will it impact the resiliency or reliability of Blockchain?
Since hash guessing tries to make further rogue attempts costly and there is no value-add from the computation, can we route some other difficult problems to Miners to keep the message attempt difficult and still utilize resources to compute something of value?

The "consensus algorithm" you are referring to is predicated on the "hash guessing" you are trying to eliminate.
If we skipped "hash guessing," the resiliency and reliability of the blockchain would be completely destroyed.
This question assumes at least 2 false premises and cannot be meaningfully answered.


What is the difference between ripple blockchain and bitcoin exchange? What is the difference between ripple blockchain and bitcoin exchange ? I was reading this blog the other day but wanted to understand in simple language.

XRP runs on an internal blockchain. There are no public blocks/ transactions, but rather everything is done P2P.

They do however track alot more client/user information.

They do not use PoW, neither do i think that you can call the system that they use PoS.(As there is no direct reward eg staking, all transaction fees are BURNED.).

There's no hashpower involved in confirming ripple transactions, every simple node can do it, which means almost every transaction is instant.

Which means there's also no block reward. Every XRP has been generated by Ripple Labs, 100 Million is the maximum amount that can be generated, and there's a dev fund of ~20 million.


Send coins from another adress Newbie here!

I need to confirm something:
I have bought bitcoins and I already see them in the QT client I am using.
I now want to send the bitcoins using a different address than the one I use to receive them.
Do I have to send the bitcoins to another address and only then send them again to the final destination?
Thanks!

Yes.

You can only spend bitcoins from the Address they were sent to. Think of it like cheques - only the person they are written out to can authorise them - not their spouse or child. Bitcoin transactions operate similarly.


how long can it take me to get 1 BTC on mining speed 30.9945H/s and 72.99451H/s respectively im new to this biticoin mining, i justed to know is it going to earn me anything soon where my mining speed is at 30.9945165416H/s and 72.9945165416H/s really? how long can it take me to get 1 BTC

like for;
30.9945165416H/s how many days

72.9945165416H/s how many days

It would never, ever happen. The increase in difficulty and the reduction in mining reward would mean that you would never, ever accumulate anywhere near 1 BTC with a mining speed that low. You would need to be more than a billion times faster.

Mining is perfectly competitive. Trying to mine with hardware like that is like trying to win a race to build a suspension bridge across a massive river using teaspoons and toothpicks when other people have flat beds full of steel and steamshovels.

Update: "kindly advise which one of theses two can i buy ..."

Why? Why would you want to enter a business you don't understand? I don't understand tailoring, so I'm not going to go out and buy the stuff to have a tailoring business. Having a bitcoin mining business requires you to get everything right because it is absurdly competitive. Were you to just get an S9i and hook it up in your home, you'd lose $45/month. And that assumes you don't need additional air conditioning to get rid of the 1.3Kw of heat it generates.

Update: I just read their FAQ -- they're not mining bitcoins at all, "In fact, CryptoTab software is mining Monero(XMR) and then converts them to Bitcoins in accordance with the current exchange rate, that is why your balance is displayed in BTC.".

I re-did the math using Monero, and I got a best case yield of minus $6/month. The exact amount depends on your electricity cost. That assumes you personally keep 100% of your mining reward, which I'm pretty sure you don't since you're in someone's downline and are paying for conversion to BTC and whatnot.

It seems like an obviously bad idea though. What's the benefit of combining the mining program with a browser? What conceivable advantage does that have over a separate mining program? And there are obvious downsides -- if I want to change mining programs, mining pools, or which coins I'm mining, I have to change browsers!


Stuck recovering what appears to be a seed for a wallet I've been passed a piece of text from my father who's not really interested in the crypto space. He claims he bought a fraction of a coin a few years ago (about 4) and placed the wallet on a paper wallet.

I've asked him where he generated this wallet from but he cannot remember that. I've tried to recover this wallet using various versions of Electrum, but none worked.

Is there anyone out here that would be able to recognize this seed pattern and point me into the direction in which it can be recovered?

The pattern looks like so:

mywallet xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx yyyyyyyyyyy

The x are random letters/integers and the y looks like a potential password to unlock the file (100% sure the Y was typed by him and not generated). Googling "mywallet" brings back results with blockchain but I cannot recovery it there as the seed is not 12 words long.

This looks like information for a blockchain.info wallet. The x's are the wallet id and the y's are probably the password. Go to blockchain.info's wallet login page and enter the string of x's (with dashes) in the wallet id part and the string of y's in the password part.


Calculate Transaction Confirmations I am writing an API for one of my systems which can verify if a monitored address is receiving Bitcoin, I can already check if the address is on the newly received block, save it to a database for future use as UTXO, it is being managed pretty well.

I am just running into an issue. Since raw blocks do not hold the height information, how can I calculate (without using any external API) my database stored transaction confirmations? It does not make any sense also in my architecture RPC calls for that.

For this task, it's better to run a full-node with the transaction indexing txindex=1. Then you can get the number of confirmations from the txid of a transaction by calling:

bitcoin-cli getrawtransaction "txid" true and checking under the field confirmations. If you have jq installed you can call for example bitcoin-cli getrawtransaction 64749d0a6ab7292ed7445609e1adb8df8d67b29e344d752971699ca75bbda78e true | jq '.confirmations' and you get your answer.

In case you are not running your node with the txindex=1 option, you need to loop through the blocks to find your transaction and the number of confirmations is obtained by subtracting the block height of the transaction from the block count. You could check if the transaction is in a block like this:

bitcoin-cli getblock $(bitcoin-cli getblockhash 610321) | jq '.tx' | grep 210d8e526f4d3f72f7cdc9014ef057aa4654f64a7b1bd059f2d8dea7fcce79cd

If the command above returns anything, the transaction is in that block.


What is the Elliptic Curve algorithm used in Ripple to generate public / private key pairs? The algorithm used by bitcoin to generate keys is secp256k1, is it the same for ripple?

Yes in ripple-lib the default elliptic curve is set in sjcl-custom/sjcl-secp256k1.js

// Overwrite NIST-P256 with secp256k1 so we're on even footing
sjcl.ecc.curves.c256 = new sjcl.ecc.curve(...)

Then in keypair.js when a new key pair is instantiated its _curve attribute is set to secp256k1.

function KeyPair() {
  this._curve  = sjcl.ecc.curves['c256'];
  this._secret = null;
  this._pubkey = null;
};


How much data traffic does participating in Bitcoin mining cause? I have a limited amount of data included in my internet plan. If I exceed that limit I get charged extra. So, before signing up for Bitcoin, I'd like to know whether Bitcoin mining causes a lot of internet traffic. Does it involve a lot of downloading and uploading throughout the day?

If you mine with a pool, your actual internet activity will be fairly small.  I just took a look at my network statistics and BFGMiner used 9MBytes down and 11 MBytes up over the previous 24-hour period.

The Bitcoin-Qt application on the other hand maxes out my upload bandwidth since I always seem to get 2-3 peers who want to download the entire 12 GB blockchain from me.  Other than that, the main Bitcoin-Qt network usage occurs when you are receiving or relaying the latest block (blocks are typically 100-400 KBytes).

Since you have limited internet bandwidth, your best bet would be to run a lightweight client such as Electrum or Multibit.  If you are mining in a pool, you don't need a local Bitcoin-Qt.


Can the system of votes (of Stack Exchange) be considered as a blockchain? When discussing with a friend about blockchain, he told me that he read an article about using blockchain in management: people can vote on somebody else's work, so that he can gain reputations points, etc.

This made me think immediately of stack exchange, with its voting system. Then I found this: https://followmyvote.com/online-voting-technology/blockchain-technology/

It is possible to hack stack exchange et add manually reputation points? Is there anything to compare with blockchain technology?

First off, no, I would not consider StackExchange to be a blockchain.  StackExchange is a centralized web site, just like most (arguably all) websites.

Many of the proposals people make for using blockchains nowadays don't really require a blockchain to work.  So while, yes, you could use a blockchain to create a StackExchange-like voting system...you probably wouldn't want to.

When deciding if a blockchain is the correct solution, ask yourself "can this project work if I have to trust a centralized authority?".  If the answer is "yes", then you probably don't want to use a blockchain.  A blockchain is the solution to the problem of needing a data store that you can trust, yet not being able to trust any single individual or organization to run that data store.

In the case of StackExchange, the maintainers of the site have a vested interest in making it useful, informative, and collaborative.  If they don't, nobody will use it, and they won't make any money from advertisements.  Therefore we can trust them to do a good job maintaining the site.  This is also probably true for a company maintaining a reputation system for their employees.

In the case of Bitcoin, we can't have a central authority that we all trust.  In the past, centralized alternative currencies were shut down by governments, so even if we trust an organization, it has a weakness.  Furthermore, how much more can we trust a centralized upstart currency than we can government fiat currencies?  Bitcoin needed a blockchain to work, because centralized trust does not work for the project.

Here's a couple of other relevant questions you may find interesting:

How to implement a Bitcoin voting system:

Blockchain-based polling/voting systems

...and why you shouldn't:

Blockchain Tools for Voting Among Small Groups?


Can Bitcoin-Qt be configured to trim the blockchain? I run Bitcoin-Qt and Bitcoin Armory on a laptop. I don't have the space to store the whole 20 GB (or however big it is now) blockchain.

I understand the need to run through the entire thing for security, but I'd like it to only store relatively recent blocks + the summarized version (for example, the database of unused outputs / computed ledger). I'd like good security; I just don't have the space to store the whole thing.

Is there some way to configure Bitcoin-Qt / bitcoind to trim its data to a more reasonable size after it's gone through and processed the chain?

Since Bitcoin-Core 0.11.0 you can prune (trim) the blockchain in Bitcoin-Qt.
But not from the UI.
You need to add prune=550 to your bitcoin.conf file and restart Bitcoin-Qt.

Explanation:
-prune=<target in MiB> will tell bitcoin-core to remove blocks which are older than oldest block that can be kept with a chainsize (sum of block-sizes) of <target> (min. 550MiB as example above shows). A minimum of 550MiB ensures to keep at least 288 blocks (~2 days).
(simple explanation not including undo-data)

Restriction:
-prune does disable all wallet functions in version 0.11 (will work with a wallet in version 0.12).


Does GDAX have weekl buy and sell limits? I understand that CoinBase has weekly buy and sell limits. Does GDAX have this as well?

No.

From the GDAX support page (source):

  Deposit (BTC, ETH, LTC): Unlimited

  Deposit (ACH or SEPA): Varies

  Deposit (USD via wire): Unlimited

  Trade: Unlimited

  Balance: Unlimited

  Withdrawal: $10,000/day for individual accounts and $50,000/day for
  institutional accounts. To be considered for higher withdrawal limits,
  please go to your Settings within GDAX and click "Increase Limits."


What's the purpose of the WalletLocator field in Ripple accounts? https://ripple.com/wiki/Transaction_Format#AccountSet_.283.29 defines  a field "WalletLocator" (256 bits) in Ripple's AccountSet transaction. That means that the field belongs to an account, and the owner of the account can set this field to whatever value they want.

Currently, it's not yet implemented in the client code but in the server code. I'm not able to make sense of the name "WalletLocator", and the code doesn't provide an explanation either.

What's the purpose of the field?

The original idea of the field was to keep a hash of the contents of your wallet that you could update in the Ripple ledger. Your wallet would also contain any prior hashes of earlier versions of the wallet that you couldn't confirm had already been replaced in the ledger.

That way, a malicious (or negligent) wallet provider couldn't serve you an old/obsolete version of your wallet. You just retrieve your WalletLocator from the network and if that isn't either the hash of your wallet or a prior hash stored in your wallet, you know you have a newer wallet out there somewhere. This would also catch the case where you store your wallet in more than one place and retrieve it from the "wrong" place.

Since the field was added, a different wallet model was used. But the field is still in the server and Ripple network in case anyone wants to use it.


bitcoind no such file or directory when trying to execute on Ubuntu for Raspberry Pi 4 Trying to install and run Bitcoin Core Daemon on a Raspberry Pi 4 8GB w/ Ubuntu Server and unable to execute bitcoind.
Below are the exact steps I am taking:

Use Raspberry Pi imager to flash the Ubuntu Server image to an SD card:
Ubuntu Server 20.04.2 LTS (RPi 3/4/400)
64-bit server OS with long-term support for arm64 architectures

Insert the SD card, turn on the Raspberry Pi, SSH in.

Run the following commands:
sudo apt update
sudo apt upgrade
sudo reboot
# Download bitcoin core:
curl -O https://bitcoin.org/bin/bitcoin-core-0.21.0/bitcoin-0.21.0-arm-linux-gnueabihf.tar.gz
# Unzip
tar xzf bitcoin-0.21.0-arm-linux-gnueabihf.tar.gz
#Install
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.21.0/bin/*

When running the following I get the message (bash: /usr/local/bin/bitcoind: No such file or directory):
bitcoind --help

I have attempted to cd to /usr/local/bin and run
bitcoind --help

Still no luck

Edit: you’re using the wrong architecture bitcoind binary, gnueabihf means armv7 hard float, which is 32-bit. There are 3 possibilities:

Download the correct Bitcoin binary for arm64 architecture (preferred);
Use 32-bit OS;
Install 32-bit compatibility layer on 64-bit OS.

—
Type ldd /usr/local/bin/bitcoind to check what libraries you’re missing. Most likely the only thing you need to do is to update your /etc/ld.so.cache by executing ldconfig.
ps: if you want to run a binary from the current directory, e.g. after switching to /usr/local/bin, you should type ./bitcoind, not just bitcoind.


How do exchanges automate transfer of Bitcoin from a cold storage wallet? Most exchanges use Cold Storage to store the bulk (approx. 95%) of their user assets. Only a relatively small amount (approx. 5%) of funds are held in their Hot Wallet.
My question is, what process is used to transfer funds from cold storage to the hot wallet? Is the process automated in any way or is each transfer reviewed and processed manually? It seems to be very tedious and inefficient to have to review and process each transfer manually without being able to rely on any form of automation.
Are there any ways to make the process more efficient? Are there generally well accepted protocols that most exchanges follow in this regard?

They don't and that's the point.
The actual process varies probably from company to company, but generally, deposits into cold storage are automated, and withdrawals from cold storage require varying degrees of manual involvement.
The process usually involves some of the following components:

Air-gapped signing system
The signing device is not connected to other networks in the company or let alone the internet. An unsigned withdrawal transaction is produced by means of a watch-only wallet on the "hot-side", then manually input to the signing device either by means of QR codes or USB stick and signed. The signed transaction is then manually transferred to the hot-system for broadcast.
Hardware Security Modules (HSM)
The private key to the cold wallet is stored in a system with a narrow API which cannot dump the key itself but will only produce signatures. Access to this signing request interface should be further locked down by requiring the requests to be signed as well as subject to additional security requirements and policy checks.
Multi-factor setup
The cold wallet is locked to a quorum of multiple public keys. Each signature is produced by independent signers with isolated security procedures. Preferably, the signing protocol ensures that multiple stakeholders verify the transaction and sign off. The protocolshould record the involved parties for accountability. Similar outcomes can be achieved via MPC or by sharding, in which case the signing protocol must ensure that the reconstituted key cannot be extracted by any signing participant.

Security and convenience are often at odds, but the inconvenience can be managed by automating all processes around the manual steps, and by limiting the events in which manual involvement is necessary. E.g. funds should be consolidated before depositing into cold storage so that the cold wallet has fewer UTXOs. An intermediate security level can be introduced with a warm wallet, that e.g. is not airgapped but requires manual 2FA for each transaction.
An example flow with three wallets could look thusly:

a hot wallet that issues batched withdrawals. The hot wallet gets restocked from the warm wallet to have operational funds for at most a day.
a warm wallet that holds funds for a few days of operation but requires sign-off on each transaction that sends funds from the wallet. Deposits are received to the warm wallet. Funds from the warm wallet get consolidated regularly in an automated fashion. Excess funds are deposited into the cold wallet. When running low on funds, the warm wallet gets restocked from the cold wallet.
a cold wallet which holds the majority of the funds and should not issue transactions more than a few times per week.


What happens if two miners mine the next block at the same time? The process of mining as described in the answer to this question is simultaneously repeated by multiple miners.

Is it possible for two miners to find the next block at the same instant? If it is, what happens if they do?

Yes, it is possible, and you can actually follow "orphaned blocks" here: https://blockchain.info/orphaned-blocks

Bitcoin clients always trust the longest chain, so if two blocks is mined on the same time, it's up to (51% of) the miners to decide which is going to be 'accepted' and which is going to be worthless.

This is one of the reasons why you shouldn't trust only a few confirms, as the confirms could be a orphaned blockchain. After "enough" confirms, everyone will mine on the "correct" blockchain, because any work(mining) on a orphaned blockchain is waste of power (unless your trying to perform a 51% attack).


Can you create Bitcoin transactions from one address to the same address? So if I wanted to send 1 satoshi from a Bitcoin address to the same address...

Would this be possible?

Would the transaction be recorded on the blockchain?

Yes, this is possible.

As far as bitcoin is concerned there is no such thing as an address, only locking scripts. As long as the input's lock script is satisfied, the output can be sent anywhere, including to an identical script.

This technique is often used by exchanges to consolidate the smaller outputs that build up as they process withdrawals into more usable chunks when fees are low.


Invest 100USD in BTC and BTC went down by more than 100USD. How much I lose? Can I hold? how long? If I invest 100usd in BTC and let's say BTC went down next down by 200. What will happen? Would I only lose my 100 usd? OR, I also owe another 100usd?
If anyone can explain. NOTE: Super new in investment world.
Thank you.

You have 100 USD. The current BTC price is 40000 USD/BTC.
You buy 0.0025 BTC. This costs you 0.0025 BTC * 40000 USD/BTC = 100 USD. You now have 0 USD and 0.0025 BTC. You don't owe anybody anything.
Time passes, as long as you want. You can stop here, and just hold on to your BTC for eternity. You don't owe anybody anything.
The BTC price changes to 39900 USD/BTC. You still have 0 USD and 0.0025 BTC. You don't owe anyone anything. In fact, you didn't even lose anything - you have exactly the same as what you had before, only it is now worth a bit less when expressed in USD.
Now you decide to sell your 0.0025 BTC. This earns you 39900 USD/BTC * 0.0025 BTC = 99.75 USD. You now have 99.75 USD and 0 BTC. You still don't owe anyone anything. You lost 0.25 USD compared to what you had before buying, but no matter what the USD/BTC exchange rate does, it won't go negative.
As long as you don't borrow anything for anyone, you never owe anyone anything.
PS: Nothing here is specific to BTC. It applies to anything you could buy and resell later for a different price. If the price goes up and you sell, you win. If it goes down and you sell, you lose. Under no circumstances (*) will you ever owe somebody something because the price goes down; you'll just end up with less.
(*) This isn't true in some financial constructions (margin trading). Don't worry, if you were using these, you'd know.


How is a transaction's output signed? In a transaction Tx, the hash pointer of the earlier transaction (say TxE) that serves as input to Tx must be signed by the sender S of Tx. This is to show that S was the recipient of TxE.
It remains to show that S agrees with the output of Tx. At which stage does S sign the output of Tx?
I assume (s)he does so. Else, what would prevent an attacker from looking at Tx just after S broadcasted it, and modify the output (so that he is the recipient) before rebroadcast?

In other words:
The scriptSig proves the sender owns the input of Tx. What proves that the sender approves the output of the Tx?

rgds

P.S: the transaction I am considering atm is:

The signature also signs the Pubkey Script and Amount (which together would represent what you reference as "output of Tx").
Quoting the Transaction section of the Developer's guide:

Bob’s secp256k1 signature doesn’t just prove Bob controls his private
key; it also makes the non-signature-script parts of his transaction
tamper-proof so Bob can safely broadcast them over the peer-to-peer
network.

Image Source: Developer Guide: Transactions

As illustrated in the figure above, the data Bob signs includes the
txid and output index of the previous transaction, the previous
output’s pubkey script, the pubkey script Bob creates which will let
the next recipient spend this transaction’s output, and the amount of
satoshis to spend to the next recipient. In essence, the entire
transaction is signed except for any signature scripts, which hold the
full public keys and secp256k1 signatures.


How Do Addresses Function? I understand that an address is needed to send Bitcoins to other people, but I do not understand why you are recommended to generate a new address for each transaction. Also, I have read that an address can be saved for easy payment in the future, but I don't understand how this function would be possible if new addresses are generated every payment. Thanks so much for your time and help! It is much appreciated.

The simple answer is you have a keypair for each bitcoin address, public key & private key, you can think of this as a username (public key) and password (private key). You can share your username/public key with as many people as you'd like, whether you know/trust them or not, of course you must keep your private key to yourself. The interesting part is that the public key is derived from the private key, and you sign messages with your private key to prove that you know it without giving away what the private key actually is (this is verified by comparing your public key with the message you signed).

The technical way that you create a private key can be found at the offical bitcoin wiki here: https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses

This wiki has a LOT of information, and is the most accurate source on bitcoin related information I have found to date.


Bitcoin mining may reduce the lifespan of my video card? I'm not using a mining-dedicated videocard, i'm using my only video card (Radeon 6850) and i'm getting around 0.11 btc/24h.

My concern is about reducing the lifespan of (or even burning) my video card with this.

Heavy usage will certainly decrease the lifetime, but I think it's not incredibly much as long as it's not overclocked. You will probably even buy a new card (because the current becomes too outdated/slow) before the current one breaks down.

Keep an eye on the temperature for a few hours (or as long as it's not stable/maxed out), it shouldn't exceed about 75-80 °C. Otherwise you may want to invest on cooling, regardless of bitcoin mining (games also make the card warm). If it's at an okay temperature, you should be good.


Bitcoind sync process I accidentally deleted all the files that the standard bitcoin client stores to disk, except blk*.dat files. When I run bitcoind, he write that he doing sync. This sync is very very slow. What does bitcoind doing with this blk*.dat files while sync? And why there is need to connect to the internet during sync (it did not work without internet)?

The block files are indexed (the blocks/index subdirectory), and if you just delete the index, bitcoind will assume you have no blocks and start over downloading from the network.

You could instead have used the -reindex option to scan for blocks on disk and rebuild the index. This may still work, but likely won't as you've already started downloading again, and overwriting the existing block files.


Why is bitcoin-qt not launching?  Using linuxmint-12-lisa i'm using LinuxMint-12-lisa and installed bitcoin-qt as described

Installing Bitcoin-Qt on Ubuntu

sudo add-apt-repository ppa:bitcoin/bitcoin

sudo apt-get update

sudo apt-get install bitcoin-qt

bitcoin icon appeared to Application list and available to execute, but nothing happened after start. Please help

There is a bin folder that contains the binary. There are two folders in that folder, "32" and "64". You have to know what type of system your mint/computer is. It either a 32 bit system or 64 bit system. If you click on on a 32 bitcoin-qt on a 64 bit computer it will not start and vice versa.


What is Bitcoin's "genesis hash"? From Lightning Network documentation:

  Used in several of the BOLT documents to denote the genesis hash of a target
  blockchain. This allows nodes to create and reference channels on
  several blockchains. Nodes are to ignore any messages that reference a
  chain_hash that are unknown to them. Unlike bitcoin-cli, the hash is
  not reversed but is used directly.

  For the main chain Bitcoin blockchain, the chain_hash value MUST be
  (encoded in hex):
  6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000.

However this wiki entry about Bitcoin's genesis block has

  GetHash()      =
  0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

Indeed, inputting the latter value into blockchain.info yields Block 0, while the former value cannot be found on blockchain.info.

Why does the value 6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000 appear in Lightning Network as "Bitcoin's genesis hash"?

They're exactly the same number; one is written in little endian notation and the other is big endian.  Notice that the bytes (two-hex-digit pairs) are exactly reversed from one to the other.

Block explorers like blockchain.info usually expect big-endian for block hashes.  The proof-of-work requirement means that the most significant bits have to be zero, so big endian makes it easier to see this.


Can bitcoin exist without miners? In the past year only, the bitcoin mining difficulty has increased fivefold. If in the coming years the difficulty increases so much that mining is no longer profitable (i.e. consumes more power than money is earned), can the bitcoin network exist without miners? Can bitcoin supporters or governments have data centers that handle transactions only and do not spend computational resources on mining new bitcoins?

if in the coming years the difficulty increases so much that mining is no longer profitable

That's not really possible. The mining power is set so that the miners need 10 minutes in average to mine a block. If 50% of the miners would disappear because it's not profitable any more, the difficulty would decrease so that it's profitable again.

  Can the bitcoin network exist without miners?

Yes and no. There is still the decentralized blockchain, so you can still check who has how many bitcoins, and you can view the whole history of transactions (they do still exist), but you could not spend them if nobody would mine the transactions.

  Can bitcoin supporters, or governments have data centers that handle transactions only and do not spend computational resources on mining new bitcoins?

Transactions can't be confirmed if nobody spends the necessary processing power to mine blocks. Confirming transactions requires mining.


Alternative chain shows blocks with empty TXIDs - what's going on? An alternative chain based on Litecoin 0.8.6.1 that I have an interest in is during certain low-difficulty periods showing several blocks that contain empty TXIDs. Digging into the TXIDs return nothing with gettxout, and "No info available" with getrawtransaction. Usually these blocks contain just a single empty TXID, but some blocks can contain normal TXIDs as well as an empty one.

What's the cause of this? What action can create these empty blocks with no apparent transaction or coinbase content in them? Can it be rectified?

maybe client is not indexing the transactions.

I'm having this problem and apparently running yourcoind -txindex (or txindex=1 in the conf)  and afterwards run with -reindex will fix the issue

when I run this command it just hangs but it looks like it's actually doing something which might take a long time. I may have to start from scratch with those changes added first


How to pre-generate 100M bitcoin addresses? What is the best method to generate large numbers of bitcoin addresses?

I imagine something like the following would break bitcoind in some fashion:

  ./bitcoind keypool=100000000

I ran vanitygen -k 1, which will keep creating addresses matching the pattern 1* until stopped, for approximately five seconds and it generated more than 3,000 addresses. No GPU assistance here.

So, do this:

In one Terminal tab, run vanitygen or oclvanitygen:

vanitygen -k -o addrs 1

In another Terminal tab, run this:

watch 'echo "`wc -l addrs | egrep -o "[0-9]+"` / 3" | bc'

When the number in the second terminal tab is greater than 100M, you're done! The divisor is three because the output file will contain addresses in three line sets: Pattern, Address, Private Key.

Now, find a way to automate that and you'll be golden. You can also just shuffle bits around with another program that just gets the first 100M addresses from the file you generated.


what does it mean when a transaction contain multiple inputs? Just like https://www.blockchain.com/btc/tx/230636ab4f285ca5e9f4c32dbae581c10d491a99493d8733c594af780f1edc5e

what does it mean when a transaction contain multiple inputs?
as i know, an transaction should be signed by the sender`s the private key.
However there are a lot of sender in one transaction, how does it happen?
thanks

A single transaction may contain multiple inputs and outputs. It is not the transaction that is signed by the sender, but each input. The signature is in the scriptSig field of each input.

See http://en.bitcoin.it/wiki/transaction


Why does Blockchain.info's My Wallet tx volume seem to exceed to total bitcoin network volume? I was looking at Blockchain.info's tx volume (in BTC) over the previous year. It goes from about 100k to 400k BTC per day with a peak of over 850k BTC around November.
https://blockchain.info/charts/my-wallet-transaction-volume

However, if you look at their graph of the total bitcoin network tx volume over a similar time perdiod, it goes from 100k to 300k without similar peaks.
https://blockchain.info/charts/estimated-transaction-volume

This makes it seem like they are doing more volume than the entire network.  Is this is a bug, or are they counting something differently (like maybe a send between two wallets is counted twice)?  Thanks.

The estimated transaction volume chart is processed in a way that it removes any change and send-to-self values inside a transaction from its total value. If you want to see the raw chart then you should be looking at the output volume chart instead.


Calculation of transaction fee for transaction I like to calculate the transaction fee which takes place for making the transaction to blockchain platform.

How can i calculate it??

I had gone through google and got to know that it's based on the number of blocks but still i am unable to understand it how it will be calculated.

So, is there any formula or process to calculate it ??

Thanks in advance for your revert...

There's 2 parameters that affect the value of a transaction fee: the transaction's size and how long you're willing to wait for it to confirm.

Smaller transactions pay a smaller fee than larger transactions since miners can include more of them. At a higher level, you pay for each byte of data you want to include in a block.

The price per byte (denominated in satoshis per byte) that will confirm you in n blocks is estimated by looking at the past data (and maybe at the current transactions waiting to be confirmed).

Once you have that price, you can multiply the size of your transaction by it to get the fee you have to pay.

As for formulas, if you use standard addresses (not P2SH), the formula is:

fee = (n_inputs * 148 + n_outputs * 34 + 10) * price_per_byte

SegWit slightly changes this, where instead of paying per byte, you pay per unit of weight: 1 byte of non witness data = 4 weight, 1 byte of witness data = 1 weight.


How do I trade dogecoin for money? I have read a lot about how to build and tune hardware for script mining, but it is still unclear to me how to trade what you have produced for real money.

I need some help in order to put together the parts of the big picture. So, I want to mine dogecoins. Using a web site I can connect to mining pool for dogecoins. So, these all mined coins should appear in my account there, right?

Then, using this tutorial it is said that using an "auto-sell" strategy with Cryptsy is nice. I can't get how both are connected - is Cryptsy used to transfer what you have produced to BTC? And where is the part when the coins are transferred to money?

The basic idea is to find somebody else who is willing to pay money to obtain dogecoin. This is difficult to do by yourself, so there is the idea of an "exchange" where people who are interested in buying and selling can find each other.

You would create an account on an exchange, send your freshly mined dogecoin to your exchange account, and then put them up for sale at some price. Hopefully, another person who wants to buy dogecoin will meet your price. When the sale happens you would get some amount of dollars in your exchange account. Note that in order to sell your dogecoin, there must be another buyer who is willing to buy them. If nobody is willing to buy, you can't convert them to cash.

Finally, after a successful sale, you arrange with the exchange to withdraw your money into your bank account.


Can I force my company to pay me in Bitcoin I just got my bank account closed.

  Reason: International payment were not supported

I don't like to waste my time in bank formalities. I am a programmer. I wish to stay technical for most of the part.

Probably not - I mean you're not in an absolute position to demand them to compensate you via bitcoin.  Can you possibly get an E-checking account with someone like INGDirect then have your BTC automatically dispursed via bitwage or even lawnmower...I think you could even do an auto-rebuy with coinbase if you felt inclined to do so.


Is there a Trading API that spans multiple independent sites, preferably from open source websites? To experiment a little with automatic trading I'm looking for a trading api (like mtgox has) which is used on multiple independent websites so that if one goes under that I then don't have to redo my whole program. If possible one from open source bitcoin trading websites so that I can setup one in a vm and use that to test against.

I'm currently running my tests against Mt.Gox but that can be a bit expensive when the script doesn't perform too well.

The Java XChange library could help

It might not be exactly what you're after, but the XChange project provides a demonstration of a general purpose API for communicating with multiple exchanges.

You could repurpose the code to create your own mock trading endpoints and run up a collection of virtual hosts. In this manner you can test against a reasonably well known set of APIs for the usual failure modes.


Is there a way to access transactions that happen inside exchanges? For example coinbase is an exchange and so, their transactions are done off of the blockchain.

They do however expose an API, which I believe should expose their own coinbase "blockchain" transactions, but this does not seem to be the case from my perspective, or maybe I missed something.

Is there a way to submit a "public" key given to me by an exchange, then have all transaction for that key?

Thanks

There are no blockchain transactions within an exchange.

Let me explain: (Y = you, B = someone else, C = someone else, E = exchange, assume that all people have 0 BTC, but C has 1 BTC so far)

  You send 1 BTC as a blockchain transaction to the adress of E.
  => E makes a database entry "Y have 1 BTC".

-

  B buys 1 BTC from C
  => E makes a database entry "B has 1 BTC" and "C has 0 BTC" (no blockchain transaction).

-

  B sell his 1 BTC to C
  => E makes a database entry "B has 0 BTC" and "C has 1 BTC" (no blockchain transaction).

-

  You transfer your BTC to your own adress as a blockchain transaction
  => E makes a blockchain-transaction and an entry "Y have 0 BTC".

They don't need to make blockchain-transaction within their service. They do just edit their database which tells them who has how many BTC. And as you don't have access to their database, you can't see those edits.


OP_RETURN custom message in testnet transaction I would like to do a bitcoin transaction in testnet by embedding a custom message in the OP_RETURN. do i have to download the bitcoin core client with and the block chain to do that? or can i use a separate way without downloading the whole blockchain? Thanks!

If you are developing in java using the bitcoinj library, they have a mechanism in place to do it without downloading the full block chain. They just download the header lightweight simplified payment verification (SPV) mode. Maybe you can try that.This is the link.

    SendRequest req;
    Transaction transaction = null;

   transaction = new Transaction(networkParameters);

   // the following statement will help to create an OP_RETURN with "Test" as the message
   transaction.addOutput(Coin.ZERO, ScriptBuilder.createOpReturnScript("Test".toString().getBytes()));
   req = SendRequest.forTx(transaction);


update to 0.17.0 broke several rpc api calls that worked under 0.16.3, how to migrate correcty my code? After updating from Bitcoin core 0.16.3 to 0.17 I've found several RPC calls are now broken, and I'm not sure on how to migrate/update my code (PHP).

Things broken so far:

getbalance : does not detect unconfirmed balance, this command shows only confirmed balance where it used to (and should) show confirmed+unconfirmed balance. Expected to work like in 0.16.3.

$btc->getbalance("*", 0);

listunspent: does not detect unconfirmed inputs, showing nothing and returning error stating "Invalid amount". Expected to work like in 0.16.3.

$btc->listunspent(0, 9999999, array(), true, array("minimumAmount" => 0.00005));

I will add more to the list as they get discovered.
There is no mention of these issues online, in the 0.17 changelog or anywhere else I could find.

Already updated some other php code that used validateaddress deprecated call and a couple more, probably still missing some editing here.

How to restore functionality as expected?
Thanks.

The first issue, with getbalance, is a known issue which will be fixed in the next release. You can see the pull request for it here: https://github.com/bitcoin/bitcoin/pull/14602

The latter, though, I cannot seem to replicate. To my knowledge, listunspent has not been modified in version 0.17, and it seems to work as expected when I test on the command line. Did it work before? Perhaps PHP is causing the issue, could you try enclosing the number as a string instead just to test it? "minimumAmount" => "0.00005"


Does signing message weakens the address' security? Will signing message (without doing any $ transaction) reveal the private key to the blockchain just the same/similar way the private key is revealed to the blockchain when you do a $ transaction?

The point is, doing a transaction weakens the security of the address a tiny bit because the private key is revealed to the blockchain. That's one reason why change/new address is used with every transaction.

But what about just signing message? Will that weakens the security of the address a tiny bit too?

Public / Private key encryption requires that the private key is never revealed - the owner must keep it secret.

Message and transaction signing is done with the private key and verified with the associated public key. So the private key is never revealed to the blockchain. Note that public key here refers to the the full ECC public key, and not a Bitcoin address - which is a hashed and transformed representation of the public key. The public key can only be derived from a Bitcoin address if the SHA256 and ripeMD-160 hashing algorithms are ever broken. This question explores the challenge.

To answer your question: Yes, each new signature produced by a private key may bring an attacker, who already knows the associated public key, closer to discovering the private key.

Comments to this answer have informed an updated position:

Although there is no provable security for ECDSA, it is commonly assumed that, even with knowledge of multiple signatures produced by a particular key, an attacker will not have improved odds at deriving the associated private key or forging its signature.

It is an almost impossible task to discover a Bitcoin private key from its public key. An answer to this question illustrates the challenge mathematically.

Some people advise an attitude of "better safe than sorry" - that public keys should not be revealed, where possible. Yet, caution should not discourage practical utility - as pointed out in the comments below.

Best practice, as you say, is to  frequently change keys and to preferably use a new address for every receive transaction. If you want someone to be able to verify a signature they will, of course, need your public key.

As far as I'm aware, the only Bitcoin transaction type that reveals public keys is Pay-To-Public-Key-Hash (P2PKH) which contains the full public key in its script.


My question is about the possiblitiy of going overdrawn by mistake if account is hacked I am new to crypto  currencies and wondered if ones online wallet is hacked and coins stolen could the hacker make you go overdrawn by spending coins you don't have?  Many thanks

You can never spend more coins than a wallet controls, there is no 'overdrawing an account' in bitcoin. You either control the keys that can spend some coins, or you don't.


Which programming languages support secp256k1? Which programming languages have some ready libraries that support Bitcoin's ECDSA curve - secp256k1?

The Bouncy Castle project allows for this and it runs on the Java VM (as was mentioned earlier) as well as the .NET Runtime. An example of using it in C# is shown in this blog post. You can use the .NET version from Visual Basic .NET (as well as any of the other languages on the CLR as well, obviously).

For C++, look at the Crypto++ library which supports secp256k1.


How ./configure Bitcoin Core build to pick up depends build and installation path at the same time? I'm trying to build Bitcoin Core and, if I understand it correctly, the configure script uses the --prefix= option twice, once for the inclusion of the depends build (from depends/README.md):

**Bitcoin Core's configure script by default will ignore the depends output.** In
order for it to pick up libraries, tools, and settings from the depends build,
you must point it at the appropriate `--prefix` directory generated by the
build. In the above example, a prefix dir named x86_64-w64-mingw32 will be
created. To use it for Bitcoin:

    ./configure --prefix=$PWD/depends/x86_64-w64-mingw32

And another usage of --prefix as it's usually used in configure, to specify a nonstandard install location (output from ./configure --help):

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

How can I specify an installation path and a depends path at the same time?

You cannot set the installation path with ./configure, but only when running make install. You need to specify --prefix=once for ./configure and once for make install.


Other users' coins instead my own? I found some advices about anonymity, however one sentence is unclear for me

The quote comes from https://en.bitcoin.it/wiki/Anonymity

  The protection that this method offers is significantly reduced if you are trying to anonymize more than about 10% of the total number of Bitcoins that the eWallet service holds. You'll end up getting your own coins back instead of other users' coins. Withdrawing Bitcoins more slowly and in smaller increments will help reduce this problem. Sending coins to an eWallet service in the largest single transfer possible will also help.

I don't get idea of "your own coins" - as far as I know there is no "coin" as an identifiable whole, just a log of transactions which balances as ones "bitcoins amount". What was the author intent to express by this sentence?

Yes, you are right. There are no "coins". There is only an ability to write some data (transactions) into one global file (blockchain).

But it is possible sometimes to track who is an author of transaction. For example, I am buying something in online shop (with delivery) and paying bitcoins for it. Now the shop knows my name and my address (for postage). The spending transaction has a "change address". If I use the same address for change - the shop owner would also know (with some probability) the amount of bitcoins in my wallet! Some people may think that this is not good, especially if they have large amount of funds.


why is bitcoin-qt connecting to port 9051? Running bitcoin-qt with default policy in the OUTPUT chain to DROP I see lots of packets from localhost to localhost with destination port 9051 being dropped. If I open that port the node syncs. I do not see any service listening on that port. Why is it connecting? This is a tor port and I am not currently running tor here.

You're seeing probes for automatic configuration if it were running.


What if a malicious owns more than half of the nodes in bitcoin network? my question is simply What if a malicious owns more than half of the nodes in bitcoin network? she can simply fraud then. isn't there any algorithm to prevent someone from having more than half of nodes in bitcoin network?

No. The 51% hack is considered one of the main ways a hacker could control the network. However, it is almost completely implausible because of the sheer amount of power that would be required to have 51%. For example, the total hash rate of the network is currently 6.09 Exahashes per second. So, if a hacker wanted to take control of the network, he would need to buy about 6.1 Exahashes per second of hash power. An antminer S9, for 3,000 dollars, gives you 14 terrahashes per second. Thus, the supposed hacker would need to buy 435,000 Antminer S9's which would cost 1.305 billion. That's not even considering the growth rate of the network and the sheer amount of space and energy required to host all of those Antminers.


Difference between Hashcash proof of work algorithm and Ethash proof of work algorithm? Understand that each proof of work algorithm has its pros and cons.

Difference between Hashcash proof of work algorithm and Ethash proof of work algorithm?

Nathan Aw

Hashcash and Ethash are two different things and not directly comparable. Hashcash is the idea of using hashes for a proof of work system. it can be used with any hash function.

Ethash is a specific hash function. It is used in a hashcash proof of work system, specifically the one used in Ethereum.

Hashcash is not comparable to Ethash because it is not a hash function at all.


Runaway exception on 0.9.3 Bitcoin client startup 64 bit Windows 7 After I install my Bitcoin client (0.9.3 64 bit on Win7) I can run it one time without problems. It won’t start up a second time, though, and terminate with the following error:

EXCEPTION: N5boost12interprocess22interprocess_exceptionE
Access denied
E:\Program Files\Bitcoin\bitcoin-qt.exe in Runaway exception

I don't store my blockchain data in the standard AppData folder. I have, however, specified the correct -datadir in the bitcoin-qt shortcut. So this should not be the problem.

I dicovered that all my Bitcoin folders are partially read-only. When I uncheck the box, the read-only will automatically be restored, I just don't know why and by which routine. Might this be the problem?

So in order to be able to run the client I have to reinstall it every time I want to use it at the moment and then it will work once. Any ideas?

I'm not an expert on Windows, but I suspect your problem is caused by your anti-virus program.  As widely reported, some griefers have placed virus signatures in the Bitcoin block chain.

These virus signatures can't actually harm your computer---the block chain is non-executable---but virus programs detect them and quarantine the files anyway.  You may want to poke around your anti-virus program's settings and see if there's a way to exclude bitcoin-qt and its data directory from your scans.

Although it won't help you now, it might ease your mind to know that the Bitcoin Core developers are working on this issue.  If I understand correctly, their plan is to optionally allow each Bitcoin Core user to store the block chain with a slightly different encoding[1] so that virus signatures in the block chain are uniquely obfuscated on each computer.

[1] For compsci geeks: they plan to allow XORing the block chain it by a bitstream unique to each instance.


Is it normal to be asked for an advance fee on a withdrawal? I was approached out of the blue being told that I was supposed to receive a sudden windfall, someone opened an automatic trading account in my name, or offered to invest in a lucrative mining contract. A while later, I'm being told that there are now "thousands of dollars" waiting to be claimed by me.
However, when I try to withdraw the money, the operator asks me for an "advance fee" or an "unlocking fee" so that they can pay me out my money.
That sounds fishy, what is going on? What should I do?

This is a canonical question for a frequently occurring line of questions. Please help by building out the answers on this topic and using this canonical question as a duplicate target for new instances of these questions. Related meta discussion: What's the best Q&A to promote to the canonical answer for “advance fee scam” questions?
Related:

Someone else created a wallet for me to use. Is this a scam?
How do I recover from a cryptocurrency scam?

Never pay to receive a withdrawal. If they wanted to send you money, they could deduct the fees from the sum they claim you own in your account.
It's a common scam to be asked for money so that you withdraw your funds. In fact, if you pay, they'll find a different excuse and ask you again to pay them, while you in reality never had any money on their website.
Your account balance might show $10k, $100k, $100m but don't be fooled by their values displayed on their website. Never ever pay to withdraw any bitcoins.
Seek help from your local authorities.


unconfirmed transaction bitcoin core i have this problem two payments not go through  with bitcoin core
Bitcoin Core version v0.11.2 (64-bit)

so what is going on ??

Status: 0/unconfirmed
Date: 6/12/2016 01:38
To: 1H9ZLnP6QiwQ7aZYETZ46S4vwQnBX1sGxB
Debit: -0.00380000 BTC
Net amount: -0.00380000 BTC
Transaction ID: de79ea7cf8b3c1b62e084c5f07bbd7853e081ffb021ec0039a8300a213deb798-000

Status: 0/unconfirmed
Date: 6/12/2016 18:33
To: 1BQZvu1bmHtmYEuZG7D5yUKfLRfvfZ8DJC
Debit: -0.01410100 BTC
Transaction fee: -0.00001952 BTC
Net amount: -0.01412052 BTC
Transaction ID: 0a7c04048968a7216a09b636fcad69ce6ff2d40b93cb6d5f0adb60724fd08082-000
Merchant: bitpay.com

Expect more delays until you start paying reasonable transaction fees. This site can help you:

https://bitcoinfees.21.co/


Could Bitcoin work without block subsidy and transaction fees? Could, game theoretically speaking, Bitcoin work without block subsidy and transaction fees? Assume, for example, some alternative anti-transaction-spam measure was in place. Would there be enough incentive for miners to use their computing power for no direct reward other than keeping the network up? Could the network still operate safely under this scenario?

Bitcoin would have to be changed heavily for that to work.

Here are some of the issues with that:

Initial money distribution: Currently, all new coins are introduced into the system through the block subsidy. If there is no block subsidy, how does anyone ever get any coins?
Security against majority attack: The mining reward (consisting of block subsidy and fees) incentivizes miners to invest money into hardware and to spend irretrievable resources (power). Why would they make investments or mine at a loss, when there is no reward? Perhaps some honest users waiting for confirmation of their transactions would mine until a block is discovered and they get their transaction confirmed, and then stop again. Perhaps some people would even mine at a loss just because they can.
However, the hash rate of the network would be minuscule, and an attacker e.g. with a botnet could easily overwhelm it, and start a majority attack.
Additionally, previously attackers could usually earn more by supporting the network than by attacking it (unless they provided already a majority of the hash rate by themselves). Now, there is no reward to support the network, so an attack is always more lucrative than supporting the network.
Transaction ordering: Currently, transactions are prioritized by their fee rate. Transactions that pay more per byte get selected for confirmation first. If transactions were free in general, people could send an unlimited amount of transactions. They could for example use the Bitcoin blockchain as cheap decentralized backup for their data. However, you say that there is some sort of anti-spam measure in place. Another problem still exists: How do you decide which transactions get confirmed first? "First come, first served" could work to some degree, but if more transactions are submitted to the network than get confirmed, waiting times for confirmations grow indefinitely.

There are some Proof-of-Stake systems that don't have a block reward. ( Instead they created all coins at genesis and distributed them in some fashion to the initial user base. However, Proof-of-Stake doesn't cost the expenditure of irretrievable resources. AFAIK, transactions in PoS systems still cost a transaction fee.


Just-Dice or some other Gambling API? Is there a gambling site where they expose an API for it? I want to build an application that leverages a crypto/bitcoin gambling site's bank roll. Just-dice seems to have the biggest bank roll to take advantage of, has anything been built for something like this?

celldice.com has an API over secure http,
see this link for details

https://celldice.com/api.en.txt


Premine coins from genesis block are gone after one transaction from account/wallet Please check the whole question once before giving negative marking or Mark as duplicate of

Why can’t the genesis block coinbase be spent?

Why I cannot get transaction from genesis block [duplicate]

I am creating AltCoin from litecoin source.And using GenesisHO generating genesis block details like nonce ,genesis hash , merkle etc.

While generating genesis block I have changed the coin value parameters in genesis coin value. that is -v parameters and generated genesis hash and merkle etc.

I've done changes regarding genesis , nonce, coins for genesis block.

genesis = CreateGenesisBlock(1538404994, 2086003386, 0x1e0ffff0, 1, 50000 * COIN);

eg. I want to premine 50,000 coins in genesis block. I don't want give condition in validation.cpp like if block height 1 than reward should be 50,000.

I've generated pub key and used the same pub key while generating genesis hash.So I can use that genesis block coins by importing private key of that pub key.

After all above change in source,I've build daemon ,cli ,tx and qt from same source.

Next

From cli I have executed command(coin-cli generate 1) to generate one block so I can get genesis block coin(Yes!! initially it will be in immature state after x(which I've set to 1) amount of block it will be in mature state). And imported that private key in wallet.

Result of above :

After execution of coin-cli generate 1 genesis coins are generated.Displayed in wallet and account under account name ""

Started Mining (using cpuminer) which has another account's address. And after few blocks genesis block coins converted to mature state

  Problem/Issue

  Now when i tried to transfer from that genesis block coins its not transferring to any address.Its not displaying in qt wallet but using
  cli command its displaying balance.

So where do I need to make other changes to make that genesis coin spendable.

  Transactions details

  Balance details from qt wallet and command

For mining using cpuminer

Litecoin source : https://github.com/litecoin-project/litecoin/tree/0.14

  UPDATE

I've tried & follow steps from this answer too
After updating as per from above answer in validation.cpp here is the link of same

  Update 2

Changes mentioned in answer regarding validation.cpp & updated validation.cpp file here & same updated change mentioned below line wise

 Changes in special case for the genesis block, skipping connection of its transactions (its coinbase is unspendable)

Changes for assert(pindex->pprev);

Added WriteUndoDataForBlock method :

Change to skip writing undo data for genesis block

After updating above things it give error Segmentation fault (core dumped)

And here is debug.log details

Thanks.

You need to do a few things to make the genesis block spendable, all in validation.cpp (untested):

Allow tx connection, L#2904:

if (*pindexPrev->phashBlock == chainparams.GetConsensus().hashGenesisBlock)
    // return true;

Skip coinbase amount check for genesis block, L#1933:

if (block.vtx[0]->GetValueOut() > blockReward && block.GetHash() != chainparams.GetConsensus().hashGenesisBlock)
    return state.DoS(100,
                     error("ConnectBlock(): coinbase pays too much (actual=%d vs limit=%d)", block.vtx[0]->GetValueOut(), blockReward),= REJECT_INVALID, "bad-cb-amount");

Skip writing undo data for genesis block L#1947:

if (block.GetHash() != chainparams.GetConsensus().hashGenesisBlock)
{
    if (pindex->GetUndoPos().IsNull() || !pindex->IsValid(BLOCK_VALID_SCRIPTS))
        {
            if (pindex->GetUndoPos().IsNull()) {
                CDiskBlockPos _pos;
                if (!FindUndoPos(state, pindex->nFile, _pos, ::GetSerializeSize(blockundo, SER_DISK, CLIENT_VERSION) + 40))
                    return error("ConnectBlock(): FindUndoPos failed");
                if (!UndoWriteToDisk(blockundo, _pos, pindex->pprev->GetBlockHash(), chainparams.MessageStart()))
                    return AbortNode(state, "Failed to write undo data");

                // update nUndoPos in block index
                pindex->nUndoPos = _pos.nPos;
                pindex->nStatus |= BLOCK_HAVE_UNDO;
            }

            pindex->RaiseValidity(BLOCK_VALID_SCRIPTS);
            setDirtyBlockIndex.insert(pindex);
    }
}


Can I use bitcoin as a means of bypassing Argentine Dollar restrictions? I am planning on doing some small-time buying/selling with a friend who is in the States. I am in Argentina and I do not have a way of reimbursing him in Dollars for products that he buys, sends to me, then I sell. Product and Dollar restrictions are very bad here right now, but there has to be a way to bypass these so we can do business together. Any help or advice is appreciated.

Put up an ad on LocalBitcoins.com.  You possibly might find a tourist arriving with bitcoins who is looking for Argentine pesos.  Or perhaps you'll find a local Bitcoin miner who is simply looking to cash out some bitcoins for your pesos.

Are there any goods that you could pay for with your pesos and then have the goods shipped to a buyer who pays using bitcoins?

You might laugh, but you might find buyers for Argentine pesos sent via the mail.  If there's a market for the Zimbabwe 100 trillion dollar note, there's probably buyers wanting a set of your paper banknotes (for novelty, or maybe even speculation -- who knows.

Again, travelers are a resource for you.  For instance, even while visiting a foreign country a traveler might have family or friend back home that would be able to deposit cash for the purpose of buying bitcoins.  The typical traveler might not need this, but if for instance, the traveler wants to buy a larger valued item and the seller only accepts cash then the traveler is in a bind.  You are simply helping the traveler convert paper money (e.g., USDs) in one country for a different paper money (ARS) in another.

You might also follow the Spanish board on BitcoinTalk forum to find others who might wish to trade by selling bitcoins to you.  Or find some Argentine merchants who accept bitcoin (like this, this or this) and see if they have coins and are looking to trade.   Or find a merchant that does a lot of export and convince that merchant to begin accepting bitcoins.  When they do, you've found your supply of coins.


What is the meaning of in-script and out-script in standard bitcoin transaction? I am new to bitcoin world and I am reading this paper: Secure multiparty computations on Bitcoin
https://eprint.iacr.org/2013/784.pdf

The author said on page 7 that the standard bitcoin transaction can be represented as in attached picture. Could anyone explain what is meant by in-script and out-script. And Could any one give a easy explaniation to that standard transaction?

What is meant by the both seems to be answered following the diagram in the pdf: "The transactions where the input script is a signature, and the output script is a verification algorithm are the most common type of transactions" and in context seems to directly refer to Inputs and Outputs used in Bitcoin.

I apologise in advance if you find my answer too simplified.

You can look at Inputs and Outputs like a coin in your pocket: you received it as an input in change while at the store last night, they received it as an input from the bank earlier in the week, and the bank received it as an input from the mint. The exact same coin at the same time was an output from the Mint that went to the bank, an output from the bank to the store, and an output from the store to you. When you give that coin to the gas station tomorrow, it will be your Output, and the gas station's Input.

So it is with a bitcoin: it starts life magicked into being by a miner who receives it as a reward for mining a block. He sells it for cash to pay his electric bill and so in a transaction on the blockchain, that same bitcoin is transferred as an Output from the transaction that magicked it into life, and an Input to the address of the new owner. Every single bitcoin transaction can thus be looked at as defining who owned that sum immediately beforehand: its in-script, and who may spend that coin next: its out-script. (I'm deliberately not mentioning how transaction fees affect Inputs and Outputs for simplicity.)

I've covered how the In and Out describes the movement of a bitcoin sum, but what about "Script"? In bitcoin (and computing generally) a Script is a very short program describing how data is to be handled. Here, the Out-script is a short program that defines the conditions under which that bitcoin may be transferred: in a standard transaction (I'll come to that shortly) the Out-script program will say something like "this sum may only be transferred by the private key that matches public key X". The In-script program will say something like "My right to receive these funds may be identified by Y". Only when combined and validated will the network at large agree that the transaction happened.

I've not read his entire PDF but I'll take a punt on just the section shown that The Standard Transaction he refers to is a p2pkh transaction. Your easy explanation to the diagram is this: Two sets of bitcoins (v1B and v2B) had ended up unspent in transaction Ty1 and Ty2 (think: you have two unspent coins in front of you, both received in change from different stores.) Now comes transaction Tx which identifies itself as having the right to spend those coins through In-scripts1 and 2; it imposes a condition PIx on whomever would next spend those two coins; and the result is the two are combined in one new, larger value vB. (Think: you pick the coins up and put them in your pocket.)

I do not consider myself an expert here, and am acutely aware the above is likely oversimplified to the point of offensiveness. If so, I apologise and encourage you to read https://en.bitcoin.it/wiki/Transaction for a more serious background to your question.


Difference in hashrate between two GPUs I am a gamer who simply uses his rig to mine when idle. A year ago I was getting 0.5 Ghs using a Radeon HD7970 3072MB 384bit OC Boost, then due to a technical issue I stopped mining for a few months and eventually replaced the Radeon with GeForce GTX770 4096MB 256bit OC...

On which I am currently getting a consistent 126Mhs.

What follows may be a dumb question, but did anything change (eg some network property), that would explain a much lower hashrate on a better card? Or is there something wrong with my setup?

I'm using: BTCGuild and BitMinter, GUIMiner, Win7

The general answer is that your card replacement caused the huge drop in hash-rate. Radeon cards are generally better for mining (faster and more efficient) compared to Nvidia. There is a nice chart that approximates hash rate per card here: https://litecoin.info/Mining_hardware_comparison

You should really consider mining scrypt algorithm at either a profitability pool (I think BTCGuild has one now) that will mine the most profitable coin and convert it to BTC for you, for a small fee of course. This should increase your mining yield by 10fold or so!

You also might try Cudaminer instead of GUIMiner for nvidia cards. I have had better using cudaminer for nvidia gpus than both cg and bfgminer.


Is P2Pool vulnerable to pool hopping? Some pools / payout mechanisms are vulnerable to pool hopping.

Is P2Pool vulnerable?

From the Wiki on P2Pool:

  Each share contains a generation transaction that pays out to the previous n shares, where n is the number of shares whose total work is equal to 3 times the average work required to solve a block, or 17280, whichever is smaller. Payouts are weighted based on the amount of work each share took to solve - proportional to the p2pool difficulty at that time.

So it works like a PPLNS pool, which is not vulnerable to pool hopping.


Is it OK not to sort transactions at all? According to Mastering Bitcoin. Mining - Transaction Age, Fees, and Priority, miners sort transactions, using special parameter, called priority, which looks like

Priority = Sum (Value of input * Input Age) / Transaction Size

If the priority is greater than 57,600,000, it means that transaction is high priority and it will be written in the first 50 kb.

The question is: Is priority really necessary? I mean, if I'm a miner and I have e.g. 1000 unconfirmed transactions, is it ok to randomly choose 100 transactions and put them into the block just as it is? Without sorting by priority or fees?

Will it work out or I'll get reject message or something?

As long as all selected transactions are valid, you may select any transactions you want.

You should check that there are no double spends among the selected transactions and that you keep any transactions which build on each other in the correct order, i.e. if TX B spends an output of TX A, TX B has to be listed after TX A in the block if you select both.

Sorting them by fee rate (i.e. fee paid per data size or satoshi per byte) will greedily maximize the transaction fees that you collect per block, to optimize block usage while maximizing fee, you'd have to perhaps use a knapsack solver.

Priority was turned off by default in Bitcoin Core 0.12.0, I actually asked a few months ago whether any miners still select by priority.


Easy, low fee way to move fro one paper wallet to another? Newbie here.
I am looking for an online wallet that will support me to import Bitcoin paper wallets, then sweep each one to a new paper wallet, at the lowest fee.
I had a few accounts from three years ago and finally acted on getting my modest Bitcoin on paper wallets. After much research I chose paper, printer, method and BitCoinPaperWallet to generate the keys. A few days ago I read on Coindesk.com that there have been many reports of people losing large amounts of  Bitcoin due to a probable back door problem with BitCoinPaperwallets servers. I do not have large amounts, but still want to be cautious.
So, I want to move my several paper wallets to ones generated by BitAddress.org. I want to import the wallet to an online wallet and then sweep each one to my replacement wallet. My logic is that importing can be done without miner fees. With Bitcoin miner fees being upwards of $20 and taking 8 hours at that, at least using the import function would cut fees and time in half.
I signed up with Trust Wallet, owned by Binance and after many hours and finally submitting a question was informed that they do not support importing Bitcoin wallets. They do support importing Etherium and many others. Odd.
Can anyone recommend an online android smartphone app for me?

If you simply import your paper wallet's private key to another wallet, then you will not be protected against the backdoor that is being used to steal funds stored on paper wallets created with the code you mentioned. This is because importing the key will not move the BTC to a new address, it will simply allow the new wallet to spend the coins that are stored at the paper wallet address. Nothing would stop the thief from also being able to move those coins.
To protect yourself, you need to move the BTC to a new address, which was generated using secure software/hardware.
I would strongly recommend against using a web-wallet. Instead, I would recommend starting here: https://bitcoin.org/en/choose-your-wallet


How do I update offline Electrum wallet after receiving payment with Online seedless wallet? How do I update offline Electrum wallet after receiving payment with Online seedless wallet?

The guide at: http://electrum.org/tutorials.html#offline-mpk does not say. It only says how to make payments from the offline wallet but not how to receive money to it. I can receive payments to my online seedless wallet, but I don't know how to transfer that to the seeded offline wallet.

Thanks.

P.S. In case some Electrum dev read this there is also an outdated instruction: [Offline PC] Go to Settings -> Import/Export and copy your "Master Public Key" and put it in a text file on your USB-Key. >>> This is now Wallet -> Master Public Key.

If you have a seedless wallet the coins received there will need to be signed from the offline computer to be able to spend them. History will be showed in your online PC.

Thanks for pointing out the outdated info.

UPDATE:

You don't need the offline wallet to know how much coins it has, only the online needs that. When you make a payment from the online seedless wallet it knows how much it owns, so the client will spit out the unsigned transaction that needs to be transferred to the offline wallet (with a USB stick or webcam) for it to sign it and then transfer it again to the online PC in order to broadcast it from Electrum.