5

If no, why not? And is it you physically/theoretically or practically cannot?

If yes, is this ever practical and does anyone do it? As I see it now, no matter what you are taking a fraction/subset of bitcoins entire hashing power so the difficulty of finding a nonce would take longer than 10 minutes to confirm.

As I see it, for this to be practical... Block reward + saved fees > mining costs * time

Where saved fees are the result of not having to pay other miners fees since you are doing it yourself and time is the time it takes to find the nonce. note: this miner wouldnt have to be running full time

  • It won't save you any fees really, as the space you'd use in your own blocks for your own transactions won't be available for storing other transactions - so you pay the opportunity cost equal to the fees those would pay. – Pieter Wuille May 3 '17 at 19:25
5

Theoretically, if you can mine blocks then you can certainly include your own transactions in the block.

Practically, you are competing with every other miner on the planet to find the next block. If you "win", you get the block reward plus you get to choose which transactions are included in your block. If somebody else wins, you get no say in the matter. Unless you have a very large mining operation, the chance of you winning is so small that it's never going to happen.

Miners who do make new blocks today (somebody has to, after all) may choose to include their own transactions in their blocks.

  • dont you choose the transactions before performing the mining operation? To clarify my question, can you avoid the competition and mine your own transaction into their own block separate from the rest of the network until you do find the mining nonce solution and then add that to the longest chain – Studnt Apr 18 '17 at 21:05
  • You can keep your blocks secret but that means other can't build on top of them. Every block has 1 (and only 1) parent. If you have less than 50% of the hashing power of the entire network, you can't out-compete the others. They will make blocks faster. Because when a block will drop is random, you might be able to get a block before anyone else does, and you might even get another one on top of that one before the others get 2 blocks ahead of the starting position, but you can't defeat the law of big numbers and will lose the race in the long term. – UTF-8 Apr 18 '17 at 22:07
  • @Studnt But that would take a long time. And by including your transaction in the block, you'd give up the space that you could use to include someone else's transaction and thus give up their fee. What would the benefit be? – David Schwartz Apr 19 '17 at 0:59
  • I guess there is no reason to keep the block/txs secret because if you dont pay a fee, no one else will include it in a block...or if someone does even better! @DavidSchwartz I guess the benefit would be that you could maybe avoid orphan blocks by just mining your txs because then no one else would be creating blocks with those txs? – Studnt Apr 19 '17 at 1:46
  • @Studnt that is not how it works. The bitcoin mining ecosystem produces one single chain of blocks that is shared across the whole world. There is on average one block per 10 minutes. The contents of blocks has nothing to do with that. You need to compete with everyone else who produces blocks regardless of what you put in them. – Pieter Wuille Apr 19 '17 at 14:16
2

The fees people pay for transactions aren't destroyed. They are paid to the miner who mined the block. Each block typically contains about 2'500 transactions. For this to work, you have to make about as many blocks as transactions. Your transaction fee then is less than 0.1% of the fees you get from others. Plus, the block reward currently is way higher than the total transaction fees taken per block. You'd be at less than 0.01%. So if you can make a block, why not do it all the time and easily get 10'000 the money you save?

  • wrt the saved fees, what i was saying is that normally you have to include a fee to incentivize miners to include your tx into the block. Otherwise miners would just keep creating blocks out of other higher fee txs and your would be stowed away into a mempool i think is what its called??? If you were able to mine your transactions yourself, you wouldnt need to incentivize anyone with a fee because you are already incentivized to verify the block – Studnt Apr 18 '17 at 21:37
  • Yes, that's correct. – UTF-8 Apr 18 '17 at 22:04
  • 1
    @Studnt But then you'd just be cheating yourself. How would that help you? By including your own transaction, you'd forfeit the fee of someone else's transaction that you could have included instead. – David Schwartz Apr 19 '17 at 1:00
  • @DavidSchwartz Im getting the impression that regardless of what is in the block, the difficulty of finding the nonce is the same. So mining your own txs is no easier than mining everyones or no ones...and that you dont avoid any mining competition by withholding your own txs and making a block out of them – Studnt Apr 19 '17 at 1:50
  • 1
    @Studnt It still wouldn't benefit you. Because in order to mine your transaction, you'd have to forego the opportunity to mine someone else's. And since you weren't in a hurry, your transaction would be the cheapest. – David Schwartz Apr 19 '17 at 15:37
0

If you can separate block-creation consensus from coin-creation work, a coin could use self-hashing transactions to prevent the need for pools. The transaction would include a destination address, a difficulty you set yourself, a block number in the near future that gives enough time for a block-creator to include it, and a nonce. You hash the txn until the nonce solves the difficulty that you chose. https://zawy1.blogspot.com/2019/03/a-virtual-pow-to-prevent-51-attacks.html

-1

i was looking at it from the purpose of trying to figure out how https://app.originstamp.org/home does free trusted timestamping based on sending bitcoins to i assume their own accounts, with a hash.

So the use case of being able to mine your own transactions is for an app that requires secured time stamping, like if users needed to timestamp legal documents.

1) no transaction fee
2) you put your miner in your same network, so no network fee and lower latency
3) You dont have to wait forever for the transaction to be processed if you are trying to reduce fees. I dont know anything about fees vs time for minimum sum BTC transfers to happen, and if running a small miner server to perform this within my network is what it takes to not have to worry about it... it's something to be explored

  • Both you and the OP seem to misunderstand something. Namely, you seem to think that transactions are mined. They are not. Blocks of transactions are what actually get mined, and that makes a world of difference. For more details, see my answer here: bitcoin.stackexchange.com/questions/49569/… – Jestin Jul 26 '17 at 14:56
  • So after doing more research after the post, i found out that mining a 'standard' block would take a single small machine at least a day. Most of the content available on block size, seems to be talking about increasing a hardcoded 1mb limit. Is it possible on a server side, to process an extremely small block size (ie..only my own internal transactions)? – hansel ke Jul 29 '17 at 4:42
  • I don't know where you got your information, but mining a single block would take much longer than a day. In fact, it would take much longer than a human lifespan. You would be dead before you'd mine a block. The size of a block is not a factor in how long it takes to mine a block. Mining a block with just your transaction would take the same amount of time as mining a block with a million transactions. Also, there is no such thing as "server side" in Bitcoin. It is a peer to peer network. I don't believe you have done enough research to understand what you are taking about. – Jestin Jul 30 '17 at 22:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.