Bitcoin Forum
May 09, 2024, 06:46:29 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 682 »
1  Bitcoin / Bitcoin Technical Support / Re: Get bitcoin address with few characters on: May 06, 2024, 07:01:14 PM
To find all matching addresses:
Code:
grep 1NXY all_Bitcoin_addresses_ever_used_in_order_of_first_appearance.txt | grep fV | grep BoAD
1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD

Or, if you're willing to put a bit of effort into learning how to use Regular Expressions (regex):

Code:
grep -E "^1NXY.*fv.*BoAD$" all_Bitcoin_addresses_ever_used_in_order_of_first_appearance.txt

^ indicates the beginning of the line
.* is used to match any piece you're missing
$ indicates end of the line.
2  Other / Off-topic / Re: How much do you know about crypto, scams? Survey on: May 01, 2024, 03:17:44 PM
I'm taking your survey, but I wanted to point out to you that one of your survey questions has a VERY big bias.

Specifically Question #8 asks:
"Cryptocurrencies first coin was ____"

And provides the following choices:
  • Bitcoin
  • Ethereum
  • Dogecoin

This question fails to recognize the existence of many earlier cryptocurrencies such as:
  • eCash (David Chaum, 1983)
  • eGold (Dr. Douglas Jackson & Barry Downey, 1996)
  • Hashcash (Adam Back, 1997)
  • BitGold (Nick Szabo, 1998)
  • B-Money (Wei Dai, 1998)


Note also that your question is phrased as if the word "Cryptocurrencies" is a possessive noun describing ownership of the "first coin", but uses the plural form of the noun. As such, it isn't clear exactly what you're trying to ask there. It's a bit like having the phrase "Mice first mouse was ___"Huh

Additionally, that same question asks for the year that "Cryptocurrencies first coin" was "introduced in".  While Satoshi released, in a particular year, his Whitepaper describing a concept very similar to what would eventually become Bitcoin the "first coin" didn't exist until a later year when the software was finally available. That "first coin" had significant differences in functionality compared to the earlier Whitepaper.

Furthermore, I see an issue with Question #9

In this question you ask for a definition of "mining", but none of your provided answers are technically 100% accurate for Bitcoin. I chose the one that I felt comes closest to being accurate, but "mining" has different meanings for each cryptocurrency so without identifying a specific cryptocurrency, none of the options provided can be completely accurate.

Question #10 also seems to have some bias included in the way it is phrased. In addition to the explicit bias in the question, you provide answers that can be sometimes true and sometimes false depending on the situation and then ask for which are "true".  Always true? Mostly true? Usually true? Occassionally true? Can ever be true? Which is it?

Both Question #11 and Question #12 ask about THE crypto regulations, as if there is a specific set of regulations you are asking about, but you never explain which regulations those are?

Question #14 asks about an amount "invested" in cryptocurrency, but the values provided are all in £. Many (maybe even most?) of the users on this form do not use British Pounds as their local currency. Are you expecting every respondent to know the conversion rate between their currency and yours? Are you expecting them to all go search the internet and look up that conversion rate?

Is it even an "investment" if I just hold some cryptocurrency so that I have it available to spend on things I want to buy?

Are you asking about the initial amount spent to acquire the cryptocurrency in the first place, or are you asking about the current value of that cryptocurrency?  Please explain to me how much has been "invested in the following situation:
  • Someone spent £400 to acquire some cryptocurrency
  • After some time they exchanged that cryptocurrency for £900
  • After some more time they spent £500 on cryptocurrency
  • The current value of their cryptocurrency is £9,000

Did they invest:
  • Their initial acquisition £400?
  • The sum of their 2 acquisitions (£400 + £500) £900?
  • Their initial acquisition minus their realized profit (£400 - £400) £0?
  • Their most recent acquisition £500?
  • The current value of their current holdings £9,000

Did you even have an advisor review these questions before you made your survey public? If so, did that advisor know anything about Bitcoin, Cryptocurrencies, or how to create an unbiased survey?

Assuming you are working with an advisor on this, please speak with your advisor about whether the confusing word choices and lack of accurate response options will have any impact on the validity of these questions in your dissertation.
3  Economy / Speculation / Re: When will the real bull run begin? on: April 29, 2024, 04:21:48 PM
I have been investing in crypto since January 2022
The highest value that month was less than $48,000.  So, you're already up more than 28% on the purchases you made that month.  Got it.  Great job! That's a very nice return on investment after only 27 months!

and it is beginning to test my patience waiting for the bull run.
From mid-November 2022 through mid-March 2024 (16 months) we just had a huge bull run from a low of a bit less than $15,600 to a high of more than $73,000. That's an increase of almost 370%! I'm sorry about your patience, but it appears you weren't paying attention?

I was buying all along the bottom of the bear market
Wonderful! So, you have multiple purchases below $18,000 between November 7, 2022 and January 11, 2023. Isn't it exciting that all those purchases are now worth more than 3 times as much after less than 18 months!?

so current prices do not interest me too much
Honestly, I never find any price "interesting". It's just a number.  $10 per bitcoin sounds just as interesting to me as $1,000,000 per bitcoin.

as I got in a lot lower
That's great. That means you've experienced the bull run and can decide now if you want to do something else with your money, or if you want to continue to see what happens next with Bitcoin.  So many fun choices to make.

so I am just waiting to take profits.
Waiting? Why?  If you just want profits, you can take them now.

Looking at the 2020 halving, the market didn't really start moving until 4 months later - is this likely to be the case after this recent halving too?
Oh. Past performance is NEVER a guarantee of future results. There is one thing that I can say with a high level of confidence though:
Every time the bitcoin exchange rate hits a new all-time-high value, it will be within two years of when the bitcoin reward subsidy is cut in half.
That's a fun fact, isn't it?

I will continue to hold
Oh. Ok. I thought you said you wanted to take profits? If you would prefer to hold, that's a fun choice as well.

as I feel we are only months away from the real bull run
Real? Was there something imaginary about the bull run we already had? Also, if you want to take profits, you should think about the fact that we may be months away from a real bear run.  I certainly wouldn't be surprised if the value of Bitcoin was more than $250,000 a year from now, BUT I also wouldn't be at all surprised it if was $15,000 either (or anywhere in-between). If you want guaranteed profits, the only way to do that is to sell now.  If you want the possibility of higher profits, then you're going to need to accept the risk of lower profits or even total loss.

but it is testing my patience lately waiting month after month for some real price action.
Again, there's been plenty of action. Is there something about that action that makes it imaginary? It certainly seems real to me.

How is everyone else feeling?
I feel like you just like to complain. Maybe it makes you feel important when people respond to your complaints, I don't know. You're essentially bragging about how you made a lot of money, and simultaneously complaining that you want lots MORE money. I wasn't going to point that out, but since you asked.
4  Bitcoin / Bitcoin Technical Support / Re: When is a BTC address actually created? on: April 26, 2024, 08:41:51 PM
I think I understand the answers,
I think you probably don't.

but also suspect the question is not being asked correctly.
Or, more likely, you're asking a question that doesn't make any sense and therefore doesn't have an answer.

I am thinking quite a bit different.  Presume someone creates a new private key and a new public address.
Then it exists.  If they created it in their mind, then it exists in their mind. If they created it with pencil on paper, then it exists as something written on paper. If they created it with wallet software, then it exists in the wallet software.

If, before doing anything else, search all the nodes and all the existing blocks and that public address will not be found.
Well, if they created it within their own node, then they'd find it there I suppose.

My perspective is that it does not really exist in the BTC world.
You're really going to need to either spend more time understanding what I wrote above, or do a better job of explaining what you mean by "exists".

I currently presume that when someone initiates a transfer that results in coins being deposited in address X
You're on the technical support subforum asking a technical question.  As such, you're not going to understand the answers to this question until you understand and accept these facts:
  • "coins" don't exist in bitcoin.
  • There are no addresses in the blockchain nor are there addresses in any standard bitcoin transaction
  • Nothing is ever "deposited" anywhere when a bitcoin transaction is created, broadcast, or confirmed
  • As far as the Bitcoin protocol is concerned there are no "accounts", there are no "balances". Wallet software can add up all the individual transaction outputs and display it to you as a balance, but the blockchain and the transactions have no knowledge of such balances and don't need to.

this is when address X is first instantiated when it first becomes part of the BTC world.
It is not. Nothing is "instantiated". The address doesn't "exist" any more after that transaction than it did before. The only thing that changes is that, using a standard set of rules to convert the transaction output scripts into simplified form to display to humans, other nodes and block explorers can display that data in a format that we all agree to call an "address" when they inspect the transaction.

It is when the BTW world first becomes aware of that specific address.

Is this a valid statement?
No.
It would be a valid statement to say that once you tell someone an address, then they will know about the address.
It would be a valid statement to say that once an individual node receives a transaction, that node can determine what the transaction output scripts are, and any other software (such as a wallet or block explorer) that interacts directly with that node can convert that output script into the standardized address format for display purposes.  Other nodes that haven't yet received the transaction will not know anything about the transaction outputs (or address) unless they have received an identical output script in some other transaction.

5  Bitcoin / Bitcoin Technical Support / Re: step-by-step process for BTC transaction on: April 23, 2024, 09:34:25 AM
<snip>
how often does anyone really transcribe a private key or an address by hand?  I suspect extremely seldom.  Almost to the point of never.  We just do a copy with the keyboard and mouse, in which case, the font has no significance what-so-ever.
<snip>

Even when we "copy with the keyboard and mouse", it is important to be able to look at the original address and the copied address and make sure they are identical. Malware exists that can modify the contents of your clipboard. So, it's possible that you could copy an address, then the malware modifies the contents of the clipboard to be someone else's address, and then you paste that other person's address into wherever you are using it.

Generally you are correct though, we could use binary or octal, or hex, or any other base to represent the number. base 58 is what was chosen. It is both shorter than hex AND avoids ambiguity. Since it isn't really any more difficult for a computer to convert binary data to base58 than it is to convert that binary data to hex, why not?
6  Bitcoin / Bitcoin Technical Support / Re: When is a BTC address actually created? on: April 23, 2024, 09:18:41 AM
Presume I create a new key, then calculate a public address from that key.  So far, it is just on my computer and is not what I would call a real address.  If I then send some coins to that address, does that automatically create the address in the real bitcoin world?  Maybe I go to Gemini and enter that public address as the receiving address and move some coins.  Does that result in the new address being created?  Are there other methods worth mentioning?

I suspect, that new addresses are created, in the real BTC world, when some amount of coin is sent to the address.  Is there more to it than this?

A bitcoin address is simply a representation of a number. Asking when it is "created in the real world" is a bit like asking when the number 5 is created in the real world?

The number that a Bitcoin address represents is just a way to make it easier for us humans to talk about transferring control over value. There aren't any actual addresses in the electronic form of transactions or in the blockchain itself. Instead, using a standard set of rules, data that does exist in binary form in those places (specifically, a pre-defined set of output scripts) are converted into "addresses" by our wallet software and by block explorers whenever that data is to be displayed to humans.

So, for the old bitcoin addresses that start with a 1, when you say "please send 2 bitcoins to the following address 1PMycacnJaSqwwJqjawXBErnLsZ7RkXUAs" you are essentially saying:

"Create transaction that includes in one of its outputs a requirement that: to be allowed to use the output as an input to a future transaction, the spender must supply a binary representation of an ECDSA public key from the secp256k1 elliptic curve such that when hashed with SHA256 and RIPEMD160 hashing algorithms will result in a binary value of 1111010101001010010110000101000111101001001101110010101110000111100000010000101 0100011100110000011001101110100101110011111001111110110000000101101101110001100 01 and the spender must also supply a binary representation of an ECDSA digital signature of that future transaction which can be validated with that same public key on that same curve. Of the sum of the value found in all of the inputs of this transaction, assign to this requested output a binary value of 1011111010111100001000000000.

Perhaps you can see how the request using the "address" is easier than asking literally for what you want.  As a community, we've all implicitly agreed to a standardized way to convert back and forth between what's actually being requested and the more simplified way of requesting it.  Then, creators of wallet software, custodial accounts, and block explorers have all written software that handles that conversion for us.

So, to try and answer your question:
  • A bitcoin address is just a number, so any given address has always "existed" for as long as numbers have existed.
  • Within your wallet software, your bitcoin addresses "exist" as soon as your wallet has chosen it's private keys, since it can generate those addresses for display to you from those private keys whenever you want to see them.
  • Within the wider Bitcoin network, other software (other wallets, block explorers, etc) can display the addresses you use in your transactions by converting the transaction output scripts into an address representation via the standardized rules of how to represent that information as a number
7  Bitcoin / Bitcoin Technical Support / Re: step-by-step process for BTC transaction on: April 22, 2024, 01:57:03 PM
I cannot find a simple step-by-step process to understand how to go from a BTC <snip>

You've jumped into the deep end of the pool with weights strapped to your ankles here. Your lack of understanding of even the basics has resulted in you using phrases that are meaningless and don't apply to Bitcoin at all, such as "private address".

What are you trying to accomplish here?  Are you just wanting to learn more about the technical details of the bitcoin protocol because you find it interesting? Are you trying to create software that interacts with the Bitcoin network in some way? Are you just trying to receive some bitcoins from someone that wants to pay you with bitcoin? Do you already have some bitcoin, and you're just trying to send it somewhere?

User ABCbits, earlier in this thread, has linked to some good resources for learning a bit more about some of the technical details of keys and addresses. Hopefully that will help, but I'm not certain yet that it gets you any closer to what you're actually trying to accomplish.
8  Bitcoin / Development & Technical Discussion / Re: Need mentorship on: April 10, 2024, 11:34:36 PM
1 how can running a node help you personally?/ what are the advantages of running a node?

If you are receiving transactions, then running your own node means that you don't need to trust or rely on anybody else for information about the transactions that are sent to you.  If you choose not to run your own node, then you will need to use a service provided by someone else to let you know if/when you've received a transaction and the total value of that transaction. That service could lie, they could be mistaken, they could disappear.

2 if Bitcoin wallet denied a transacted because you don have the sufficient amount you which to transfer, then how does a node detect such transaction. that is, spending more Bitcoin than they own?

When you send a transaction, your wallet software spends unspent outputs that you have control over, and it creates new unspent outputs that are under the control of whomever you choose.  If you don't have sufficient funds, then there won't be unspent outputs under your control to include in the list that you are spending. If you try to spend an unspent output that you don't have control over, then you won't be able to provide a valid digital signature. Any transaction that has a sum of value from unspent outputs being spent that is less than the sum of value from the new unspent outputs being created is rejected by all nodes in the network as being invalid.  Any transaction that attempts to include in the list of outputs being spent an unspent output without a valid digital signature is rejected by all nodes in the network as being invalid.

3 if I make a double spending, what is the possibility that the first transaction would get confirmed first?
There will only be 1 spending.  The spending that is confirmed is the 1 valid spending, the one that is not confirmed becomes an invalid spending. With this definition of "spent", it is impossible for the same bitcoins to be spent more than once.

However, I assume you are asking about transmitting two different unconfirmed transactions (A and B) that both attempt to include at least one unspent output in common in the list of outputs being spent.  In that case, some nodes, solo-miners, and mining-pools can receive unconfirmed transaction A (and reject unconfirmed transaction B) while other nodes, solo-miners, and mining-pools would receive unconfirmed transaction B (and reject unconfirmed transaction A).  Eventually once one of the transactions is confirmed, all nodes will accept the confirmed transaction and reject the unconfirmed transaction.

In that scenario, it's impossible to say what the "possibility" is of either transaction being confirmed. It depends on many factors.  A few of those factors are:
  • Which transaction paid the larger fee per vByte?
  • Which transaction required more bytes?
  • How much time was there between the transmission of the two transactions?
  • How many blocks were solved between the transmission of the two transactions?
  • How well connected were the nodes that were initially sent each transaction?
  • Did either of the transactions attempt to spend unconfirmed unspent transaction outputs?
  • Which mining pools received each transaction first?
9  Bitcoin / Bitcoin Technical Support / Re: I was hacked today and all my bitcoin was stolen on: April 10, 2024, 06:19:05 PM
I stupidly shared my key I guess by going to what looked like an extremely trusted site to validate it.

You didn't get hacked.  You got conned.

A thief, con artist, tricked you into giving them control over your bitcoins.

You haven't provided enough details to know for sure, but any (or all) of the following are possible:
  • You may have been tricked into downloading a fake Electrum from a website that is disguised to look like the Electrum website, but actually isn't.
  • You may have been tricked into believing that you were receiving Bitcoins when they actually were never sent
  • You may have been tricked into revealing your security information directly to the thief

Bitcoin isn't a bank account. It's a currency. If you handed someone on a street corner a $100 bill, and then they took off and disappeared with it, the only way to get that money back would be to catch the thief and force them to hand it back to you (through threats or government action). The same is true of Bitcoin.  You handed your Bitcoin to a complete stranger on a digital street-corner without any knowledge of who they were or what they would do with it.  Then, they disappeared with the money. The only way to get that back from them is to catch them and force them to give it back to you.
10  Bitcoin / Development & Technical Discussion / Re: Security of signing a message? on: April 05, 2024, 11:17:20 PM
So if an attacker provides a pubkey from a weaker curve, and you respond with the product of their weak pubkey * your secret, they can use brute-force to factor out and reveal your secret."

That doesn't make any sense. Why would you respond with "the product of their weak pubkey * your secret" ??

When signing a message, you generate a hash of the message, then you generate a signature using your private key and the hash that you generated. The other person's public key isn't used at all.

You only use their public key to verify a signature that they send you.
11  Bitcoin / Development & Technical Discussion / Re: Private miners, a ticket to getting faster transaction confirmations on: March 29, 2024, 12:08:10 AM
Because, if you believe in the concept of "tainted coins", then that coinbase reward is "tainted" by the "tainted coins" used for the fee. It's as just as easy to trace as any other transaction that could have used those coins.
I don't believe in anything, governments do. Read the previous posts.

Sorry, I'll rephrase to avoid confusion:

Because if someone already believes in the concept of "tainted coins", then that coinbase reward is "tainted" by the "tainted coins" used for the fee. It's as just as easy to trace as any other transaction that could have used those coins.

What should a pool do if they receive fees from "tainted" coins? Cease operations immediately? Reject the transaction and let another pool mine it?

That depends on what the pool believes about the concept of "tainted coins".  If a pool believes it's possible for coins to be "tainted", and that pool has reason to want to avoid awarding tainted coins to their participants then their only option would be to "Reject the transaction and let another pool mine it". Anything else would subject them to whatever consequences they are concerned about.

Who are you going to trace exactly if you distribute the fees proportionally according to the hashrate submitted by miners?

If someone believes in the concept of "tainted coins", then (for them) EVERY UTXO created from that block reward is "tainted" (proportionally according to how the reward is distributed). There's nothing magical about coinbase transactions, the "taint" affects coinbase transactions in exactly the same way as it affects any other transaction.



The mempool is the only mechanism we have to mine transactions fairly.

There is nothing about "the mempool" providing any mechanism for "fairness". Each node maintains their own mempool however they want. The mempool is just a list of unconfirmed transaction that the node has not yet forgotten about. That's it. Nothing more.

Here the only incentive is fees paid.

That's the only incentive built into the protocol, but there is nothing about the bitcoin protocol that prevents any solo miner or mining pool from adding any other incentives that they want to add to their own mining. Some mining pools have already adjusted their transaction selection process, allowing users to "accelerate" transactions by simply indicating a desire to have their transaction included instead of a higher-paying transaction.

If we eliminate it, then any mining sector can implement any incentive they want, like "taint", "oligarchs first", "include Ordinals", "mine all of my own transactions", "deplatform exchange X"

All of those are already possible.  A solo miner or mining pool doesn't need anyone else to change anything else about the bitcoin software to do any of those things. They can just modify their own software as they like.

and this will make transaction processing no longer decentralized.

The ability to make such modifications exists BECAUSE of decentralization. If Bitcoin were mining were centralized, then the entity in control could make any (or none) of these decisions, and then FORCE everyone else to abide by them.  BECAUSE it is decentralized, neither you, me, or anyone else can decide what criteria a miner gets to use when choosing transactions.
12  Bitcoin / Development & Technical Discussion / Re: Private miners, a ticket to getting faster transaction confirmations on: March 27, 2024, 11:41:50 PM
There would also be nothing "clean" about the coinbase outputs.
Why not?

Because, if you believe in the concept of "tainted coins", then that coinbase reward is "tainted" by the "tainted coins" used for the fee. It's as just as easy to trace as any other transaction that could have used those coins.

The perpetrator can get his money back in multiple UTXOs and multiple wallets to obfuscate the origins even more...

It doesn't have to be a single UTXO.

You don't need a coinbase reward to do that.  If obfuscation through the use of "multiple UTXOs and multiple wallets" will address the problem, then there's no need to bother with this mining scheme you're imagining.
13  Bitcoin / Bitcoin Technical Support / Re: Missing 5 characters of a private key in Hexa format ; please help on: March 27, 2024, 11:26:09 PM
I'm always curious how people lose a part of their private key.

My assumption is that, in the vast majority of these "I need help recovering my password/privateKey/corruptedFile situations, the person asking for help either:

1. Bought this piece of information from a scammer and doesn't want to admit to that fact. The scammer convinced them that all they had to do was figure out how to recover the missing piece and they'd make a HUGE PROFIT! The victim is desperately clinging to hope that they weren't actually scammed, that the promised address and/or bitcoins are actually there, and that with help from us they'll be able to recover at least what they spent.

OR

2. Is a scammer that created a fake piece of information, and is trying to use the BitcoinTalk conversation to convince victims that they gave it a real try and just didn't have the expertise to recover the bitcoins. In that case, they're hoping that they can get a victim to buy this fake partial information.

I suppose it's a legitimate request occasionally, but probably not often.
14  Bitcoin / Development & Technical Discussion / Re: Best Approach to Processing Bitcoin Deposits Using External APIs on: March 17, 2024, 05:56:09 PM
I would like to process deposits, but I am not quite sure how to best go about it. Unfortunately, I cannot and do not want to operate my own node at the moment

Here's the scenario: I have only one address to which all deposits should go.

No. Just no.  A bitcoin address is like an invoice number. You give out a new one for every deposit. That way you know exactly who you gave the address to and when.  Then when a payment shows up on that address, you know who's deposit it is, since htey are the only one you gave the address to.

My service works without accounts and the sender's address is the UserID.

If I send you a single deposit in a single transaction, the bitcoins you receive from me will have been received by me at 5 different addresses. How are you going to decide which "sender's address" is my userID?  Do I now have 5 userID's, just because I sent you one transaction? this is not the right way to do this. You're making it complicated and you clearly are trying to write software without any understanding of how any of this actually works.  This is a bomb with the fuse already lit.  Please stop until you've learned a bit more and you've re-architected your service to make the best use of what's available to you.

The user should be directly shown on the website that the transaction has been received. In addition, the confirmations of the transactions should be updated and displayed promptly. But only up to 6 confirmations. After that, the deposit is successful, and we do not need to query the additional confirmations.
Quite easy to do if you give out a new address for each depoist.

It is important to me that if my web server goes offline, the system also processes the deposits during the time the server was offline.
Another good reason to use new addresses for every deposit, and to build recovery processes into your system for handling downtime.

My solution with which I am not quite satisfied
I wouldn't be either from what I've read so far.

How would you proceed?
I'd start over. I'd make sure I understood how bitcoin works. I'd take advantage of the tools available. I'd run a node. I'd process transactions and blocks as they are received by the node. I'd create a recovery process that can scan the most recent X blocks. I'd create backups/snapshots of point in time to recover from if needed. I'd receive all deposits into cold wallets whose private keys have never been online. I'd maintain a hot wallet with a small but adequate balance if I need to also send out payments. I'd have very strict and careful process in place to fund the hot wallet.

Deposits should always go to just one address
Again, no.

I don't understand why it's so complicated. Cryptocurrencies are meant to be used for payments. So why is it so hard to process them?
It's not.  You are choosing to MAKE it hard by artificially putting constraints on yourself and refusing to architect your product/service properly.

I definitely want to use only one deposit address. I don't want new addresses to be generated all the time.
Then you don't understand how bitcoin works. This would be like saying "I want to accept U.S. physical cash, but I don't want to anything made of metal or or cotton-linen blends. Why is this so difficult to do?"

If I run my own node, then it's much easier to process deposits, right?
Easier?  That depends on your capabilities, knowledge, and skills. But it's certainly more reliable and less prone to the whims of a service provider.

Or does it also require a lot of makeshift solutions?
That depends on how complicated the design and architecture of your product/service is.
15  Bitcoin / Development & Technical Discussion / Re: Security of signing a message? on: March 17, 2024, 05:35:28 PM
I recommend including more details like the purpose and for whom, just to ensure that it can't be reused or otherwise misconstrued.

Please take note of what is said there.

Imagine this scenario:

I have no bitcoins at all. I pretend to be you.  I contact John Smith and tell them that I have some number of bitcoins that I want to send to them in exchange for something.  They ask me to send a signed message proving that I'm you.

Meanwhile, I've been talking to you about a "business deal" with you, and I get you to send me a signed a message that just says "Hi, 2024-03-17".

I then take the exact signed message that you've provided to me, and send it on to John Smith.  John Smith is now convinced that I'm Speedoguy. I get John smith to provide me whatever he's selling.  Next, I disappear.

John Smith now contacts YOU demanding the Bitcoins that he says YOU owe him. You claim that you never received anything from him. You claim you've never even talked to or heard of him.  He shows the message where he asked me (pretending to be Speedoguy) for a signed message, and then he shows YOUR signed message saying that it PROVES that YOU did talk to him and that you agreed to send him bitcoins.

What a mess.

All that could have been avoided, if you were just a bit more careful about what you had signed.  Instead of just "Hi".  Make sure that The message is very clear about details such as who it's from, who it's to, why it's being sent, when it was requested, what it's intended to prove. That will make it much more difficult for the message to be reused.

If instead of "Hi, 2024-03-17" you had signed a message that said:

"This message was requested of Speedoguy by DannyHamilton in an email sent from notDannyHamiltonsEmail@gmail.com at 17:25 UTC on 2024-03-17 to notSpeedoGuysEmail@gmail.com. This message is intended to prove that address bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh contains exactly 0.30834147 as of 17:42 UTC on 2024-03-17. This message was requested as part of a business deal where Speedoguy would put up 0.2 BTC as collateral for a loan of $5,000 from DannyHamilton, to be paid back by SpeedoGuy (with interest) in payments of $1,100 on the first day of five consecutive months beginning with the first payment due on 2024-05-01".

It's going to be a lot harder for me to forward that message on to John Smith and convince him that I'm Speedoguy and that I'm providing him 0.30834147 bitcoins to him in exchange for $20,000 of his Monero.
16  Bitcoin / Development & Technical Discussion / Re: A Proposal for easy-to-close Lightning Channels (and other uses) on: March 15, 2024, 02:32:11 AM
it currently is growing: 1 MB per block.
Blocks have been larger than 1 MB for several years now.

what if a block was published that was X bytes shorter than this limit
There is nothing currently preventing miners from publishing smaller blocks if they want to.

"Redeem Nonce" would simply allow the mined block to exceed 1 MB by up to X bytes. Miners would tend to include all such transactions in the mempool where X is no more than the actual size of the transaction, because it would be free money: they would get all of the associated transaction fees while not using up any of the 1 MB space allowed.

I suspect there are several issues with this, but the first that comes to mind is:

This seems like it would open an avenue for a significant attack.  Couldn't a malicious party "Reserve" space as much as possible every time fees are low, and then after a few years "Redeem" all the reserved space all at once in a HUGE block?
17  Bitcoin / Legal / Re: Question about capital gain. on: March 11, 2024, 01:58:17 AM
That depends on what jurisdiction you live in. Every government has their own rules about tax reporting.  Are you in London, England?
18  Other / Beginners & Help / Re: Bitcoin newby questions on: March 08, 2024, 11:06:26 PM
Not an easy task, hence why it's a wall of text sometimes (no judgement).
I tend to end up writing a "wall of text" when Im responding to someone that has either asked several questions in a single post, or made several incorrect or misleading statements in a single post (or both). I typically try to address each point individually.

I would like to add another detail to mining that might not have been said here (apologies if I overlooked it):
Mining a valid block hash that fulfills required Proof of Work difficulty is a totally random process.
It was lost in my "wall of text". Thats ok. It's an important fact, and worthwhile to repeat it.

See here:
Confirming is a somewhat random process

And here:
Since it's effectively a random process, there's never any "progress" made towards the solution
19  Other / Beginners & Help / Re: Bitcoin newby questions on: March 08, 2024, 01:46:16 AM
You already have 2 great answers from thecodebear and odolvlobo, so a lot of what I say may repeat some of what they've already said.  Also, since this is in the "Beginners & Help" section of the forum you'll want to keep in mind that the actual technical details might be a lot different than how you might assume it works from things you've read and heard, and probably even a bit different than the level of detail that's provided in this thread.

I'm a fairly new (eight months) Bitcoin owner,
Welcome! There's a lot of great information available on this forum, and some very knowledgable and experienced people that are all willing to help you understand anything that confuses you. Note, you'll also find a LOT of misinformation, deceit, and outright lies here as well. Be careful, and don't always trust something you're told. Misinformation does tend to be called out when it shows up in public threads, so if you're unsure wait and see who confirms or denies what's being told to you.  Be extra cautious about information that is given or requested over direct messaging, since the public won't be able to point out risks to you there.

so have not had a long history owning it,
Even 8 months is significantly longer than the majority of people in nearly every country. Everyone that has had some bitcoin for more than 8 months was at the same point as you once in the past.

but have been interested in it for some years.
Glad to hear it. It's very interesting development.

I'm also an old guy (78 years)
I know 90 year olds that have had some bitcoin for more than 2 years now and that enjoy occasionally discussing bitcoin.  Compared to them, you're a spring-chicken.

which definitely puts me at a disadvantage with such a technical product.
You're curious, and you're seeking answers. When it comes to understanding Bitcoin, that puts you WAY ahead of many people I know that are under the age of 30.

I've got a few questions about Bitcoin, and thought this would be a great place to get some answers.
I hope my answers and/or the answers others have already provided are what you're looking for, but if anything needs more clarification, just let us know.

1. I've heard a lot about the process of mining, and how miners are rewarded for their work with Bitcoins, but it's the process of mining I don't understand.
Depending on just how much detail and technical understanding you're looking for, in some ways that can be a very complicated thing to understand. The basics aren't too bad though.  You may, however, discover that things you've heard elsewhere, or things that you thought you knew, turn out to be completely wrong. Keep that in mind as you try to learn from what you find here.

I do know there's a great amount of computing power, and energy, required, and I'm aware the process validates a Bitcoin transaction,
Here's the first point where what you frequently hear might not quite line up with the way things actually work.  There are 2 processes that are frequently confused, "validating" and "confirming".

Validating is the process of making sure that a transaction hasn't broken any rules. For example, it must include a valid signature, and it can only spend bitcoins that already exist and are under the control of the private key that signs the transaction. This process is performed by EVERY peer node on the network regardless of whether they are performing any portion of the mining process or not. When a node receives a transaction, if it determines that the transaction is invalid, it will not share the transaction with ANY of he peers it is connected to. That keeps the bad transaction from propgating across the network and clogging up communications. Futhermore, since a node is supposed to validate a transaction before it shares it, if a node receives an invalid transaction it may ignore any further transactions from that node for a period of time (to avoid wasting time repeatedly inspecting bad transactions from the bad node).

Confirming is the process of including a transaction into "the blockchain" so that all participants in the Bitcoin system can agree on which transactions have happened and which have not.

Validating is VERY fast, and uses VERY LITTLE computing power.

Confirming is a somewhat random process, but the software is written to try and keep the AVERAGE time between new blocks added to the blockchain close to 10 minutes. If there were only 1 person in the entire world that was performing this action, then it wouldn't require much computing power or energy.  As more and more people choose to participate in this activity, the computing power and energy requirements go up to keep the average at 10 minutes (the reverse is also true, power and energy requirements go down when there is less participation).

with Bitcoins being the reward for that validation,
Keeping in mind the difference I explained above, there is no reward for "validation". Every node does it for free. I suppose you could say that "protecting yourself from accepting a false history" is its own reward?

The reward that you seem to be asking about is for "confirmation". That reward is the sum of two things. There are brand new bitcoins that the miner is allowed by the software to assign to themselves (or wherever they like), and there are transaction fees from all the transactions that are included in the block that the miner adds to the blockchain which the miner is also allowed by the software to assign to themselves (or wherever they like). Approximately every 4 years (exactly every 210,000 blocks) the quantity of new bitcoins that the miner is allowed to assign is cut in half. Meanwhile, as bitcoin grows in popularity, the sum of the transaction fee grows. At some point in the future, as the quantity of new bitcoins created gets smaller, the majority (and then eventually ALL) of the reward will come from the transaction fees.

but what exactly is taking place to make that validation, and how does the system both determine it's a valid transaction, and also detect a fraudulent transaction?

As we've all described, if you're asking about mining, then you aren't really asking about the validation.  If you're asking about the validation, then you aren't really asking about the mining.  Just how much detail are you looking for on each of those processes?

For "validation", does it answer your question to say the following?
  • Software checks that the bitcoins being spent in the transaction exist and haven't already been spent elsewhere
  • Software checks the total value being assigned to the new "address" is not larger than the sum being spent
  • Software checks each of the bitcoins being spent have a valid signature from the private key that they were previously sent to
Or are you looking for more detail about any of those steps?

For "confirmation", does it answer your question to say the following?
  • Software selects transactions to include in a "block"
  • Software builds a block header for that specific set of transations, containing information about the block such as an identifier of the previous block in the chain, and a timestamp
  • Software hashes the block and checks to see if the result satisfies the difficulty requirement
  • If so, the block is complete and is broadcast to all peers.
  • If not, the header is modified and the process repeats until either a valid block is received from someone else or the difficulty requirement is satisfied
Or are you looking for more detail about any of those steps?

2. How are the individual transactions distributed among the miners?
All transactions are generally shared with all nodes regardless of whether they are mining or not. There is nothing FORCING a mining node from sharing the transactions that it receives with other mining nodes, but unless a miner writes their own custom software, the reference node software generally shares all standard transactions with all peers.

I know that computing speed is critical,
Specifically the speed of computing SHA256 hashes is critical. We've reached the point where the hardware that does this is all specially designed to do that, and only that, as fast and efficiently as hardware designers can get it. That hardware would be useless at any other form of computing.

but is it a race to validate a particular transaction among multiple miners at the same time, or are the transactions assigned to individual miners?
Not exactly. As mentioned, each solo-miner (or mining pool operator) is allowed to use any criteria they like to choose which of the valid unconfirmed transactions they'll include in the block they build. As a practical result, since there's money to be made, generally they all choose the transactions that offer the highest fees per byte. Therefore, they are largely working on mostly the same transactions at the same time. However, since each needs to include a transaction to pay themselves their reward, the blocks will never be 100% identical. Therefore they all get different hash results since they are all hashing slightly different blocks.

If it's a race, does it mean a miner can do all the work but then get beaten to the finish line and not get any benefit from his work?
Yes, sort of. Since it's effectively a random process, there's never any "progress" made towards the solution. Any single hash could be the solution, and if it isn't all you can do is modify the source data (the block header) and try again.

There are about 144 blocks "solved" per day. Imagine that you have enough hashpower to (on average) get lucky once every 14400 blocks. In that case, you could occasionally be VERY lucky and get the very next hash solution. However, you could also get very unlucky and might not get a solution for an entire year. It would be nice to receive 1/100th of the block reward every day rather than waiting to get lucky enough to get the whole thing, but the blocks don't work like that. This is why mining pools have become popular.  A mining pool can build the blocks and block headers, and then send those out to pool participants to handle running the hashing hardware.  Then, when any single member of the pool happens to get the lucky hash, the pool can can split the reward up and share it among all the participants.

3. What happens to an individual Bitcoin when it's split?
This is going to get a bit more difficult to conceptualize. As others have pointed out, there isn't really anything you can point to in a transaction such that you can say "that's the bitcoin". The word "Bitcoin" is really more of an abstraction that we humans use to make it easier to talk about transferring control over value.

Transactions have "inputs" and "outputs".

An output has a requirement and some value. The value is simply an integer that indicates a total amount of "satoshis" under the control of that output. If someone wants to spend the value in that output, they need to be able to meet the requirement. The most common requirement is effectively a requirement to provide a digital signature of the transaction that can be validated with some data that is embedded in that output requirement. This is how "bitcoins" are "sent to an address".  The "address" is really just an encoding of some data that will be needed for validating the signature.

An input is an identifier that specifies an output from some other transaction, and a bit of data that satisfies the requirements of that referenced output. Referencing an output in this way is commonly called "spending" the output. The blockchain rules only allow an output to ever be referenced ONCE in an input.  So, once a transaction is included in the blockchain, the output that it "spent" can NEVER be spent again. Transaction outputs that haven't been spent yet are called "Unspent Transaction Outputs", typically shortened to UTXO.

So, a transaction gains control over value by "spending" one or more UTXO (listing them in the inputs) from various other transactions and satisfying the output requirements for each of those UTXO (supplying the valid signatures).  It then assigns that value to one or more new UTXO with requirements that someone else has the ability to satisfy, thereby giving them the control over that value.

As you can perhaps see, it's possible to spend just one UTXO, and then create multiple new UTXO each with just a portion of the value from the "spent" UTXO, effectively "splitting" that value into smaller amounts each under the control of multiple others.

Is it a situation where a Bitcoin can be reassembled from it's components after it's been split,

Again, as you can perhaps see from the description above, it's possible to use a transaction to "spend" many UTXO, and create just a single new UTXO, effectively "combining" all that value into a single new UTXO.

or will the splitting just continue until all that remains are billions of tiny components?
When the value assigned to a UTXO is small enough, it can cost more in transaction fees to spend it than it's worth. This is commonly referred to as "dust", and that value tends to be trapped in those outputs unless/until someone decides that they don't mind paying a higher transaction fee with no benefit to themselves.

I'm sorry if these are silly questions,
They are not. They are very common questions for beginners, and there is nothing obvious or intuitive about the answers.

but I really appreciate getting some help to understand the Bitcoin world a little better now that I'm a part of it.
Happy to help.
20  Bitcoin / Bitcoin Discussion / Re: Contributing to the network on: March 07, 2024, 04:45:37 PM
Is there other ways to contribute? (Any Android phone options?)

In my opinion one of the best things you can do to strengthen Bitcoin's place in the world is to demonstrate to businesses that their customers have an interest in using bitcoin to pay for products and services.

  • Install a Bitcoin wallet on your Android device.
  • Send a small amount of Bitcoin to that wallet (similar to the amount of cash you might carry in a physical wallet, something that wouldn't be devastating to lose)
  • Every time you need to pay for something that costs less than the value of Bitcoin you carry in the wallet, ask "Do you accept Bitcoin?"
  • Be ready to actually pay with your Bitcoin if they say yes

99.99% of the time, they're not going to accept Bitcoin, and sometimes they'll think you're silly for asking. However, hearing this question plants the seed of thought in their mind that perhaps a competitive edge might be available over their competitors by simply accepting an additional form of payment. The more people they hear it from, the more pressure they'll feel to provide Bitcoin as a payment option.

Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 682 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!