Bitcoin Forum
May 08, 2024, 03:20:38 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: 1 2 3 [All]
  Print  
Author Topic: Full node reward - request  (Read 5329 times)
Kprawn (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1073


View Profile
August 06, 2014, 11:32:11 AM
 #1

Is there any way a reward for people who run a FULL node, could be incorporated into the BTC protocol?

Many people do not want to download 25Gb to enable them to run a local FULL node.

They could fund this reward, through a fraction of the miners fees, towards people who are running a FULL node. In this way more people would be encouraged to do this, and it would secure the
decentralization of the BTC currency.

Most people today, run no node and use online wallet services to access the blockchain. {If this trend continue, decentralization would become less}

Otherwise, some sort of preference could be given to users running FULL nodes, when it comes to transaction. {But it will become too complex then, to query if someone is running a FULL node, to determine if preference should be granted, and it would put addisional overhead on the protocol, which will decrease overall speed}

Is this in any way feesable? or not a threat that needs urgent attention?  Huh

THE FIRST DECENTRALIZED & PLAYER-OWNED CASINO
.EARNBET..EARN BITCOIN: DIVIDENDS
FOR-LIFETIME & MUCH MORE.
. BET WITH: BTCETHEOSLTCBCHWAXXRPBNB
.JOIN US: GITLABTWITTERTELEGRAM
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715138438
Hero Member
*
Offline Offline

Posts: 1715138438

View Profile Personal Message (Offline)

Ignore
1715138438
Reply with quote  #2

1715138438
Report to moderator
1715138438
Hero Member
*
Offline Offline

Posts: 1715138438

View Profile Personal Message (Offline)

Ignore
1715138438
Reply with quote  #2

1715138438
Report to moderator
1715138438
Hero Member
*
Offline Offline

Posts: 1715138438

View Profile Personal Message (Offline)

Ignore
1715138438
Reply with quote  #2

1715138438
Report to moderator
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1078


Ian Knowles - CIYAM Lead Developer


View Profile WWW
August 06, 2014, 11:37:53 AM
 #2

I would guess the biggest problem you'd face with such an idea is "just how do you determine that someone has a full node"?

This would not be a trivial thing to do as presumably it would require some sort of separate consensus algorithm (i.e. a "proof of storage" type idea).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 06, 2014, 10:18:26 PM
 #3

At a protocol level, no. Not in bitcoin. Even if you can think of a scheme that would make it possible, putting it in the protocol would completely change bitcoin and will never happen. Maybe someone could make an altcoin that implements it.

What could be possible (I don't know if it is, or how) would be a way to prove an address is associated with a full node. Then people could chose donate to one of those addresses with knowledge that the owner is running a full node.

Believe me, I wish it was possible. I run a full node, and I'd love to be paid for it. But I can't prove that I run a full node of course.
ForgottenPassword
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
August 06, 2014, 10:23:38 PM
 #4

Perhaps nodes could have an optional donation address config option. You could connect to a node and ask for its donation address. People who want to donate to nodes would have a piece of software that monitors a node or number of nodes uptime and if it is satisfactory it will request their donation addresses and send a donation.

Wouldn't be too difficult to implement, though I'm not sure how many people would be willing to donate.

I have private messages disabled. Send me an email instead. My contact details can be found here.

Tip Address: 13Lwo1hK5smoBpFWxmqeKSL52EvN8U7asX
saddambitcoin
Legendary
*
Offline Offline

Activity: 1610
Merit: 1004



View Profile
August 06, 2014, 10:26:22 PM
 #5

I think the good feeling you get when running a full node is enough. Supporting the network in order to allow bitcoin to happen in the first place!


Kprawn (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1073


View Profile
August 07, 2014, 09:43:57 AM
 #6

Unfortunately the "good feeling" do not pay the bills.  Wink

The donation is a great idea, it's just the "proof of storage" part that would get tricky and to get people to appreciate the effort, of other doing it, for them.

But you could get a generated list on say "Blockchain" and people could be encouraged to participate, by having a monthly "Lottery" where a portion of the donations, goes towards a single pot, and you get people winning that "pot" each month.

Just a thought.  Grin

THE FIRST DECENTRALIZED & PLAYER-OWNED CASINO
.EARNBET..EARN BITCOIN: DIVIDENDS
FOR-LIFETIME & MUCH MORE.
. BET WITH: BTCETHEOSLTCBCHWAXXRPBNB
.JOIN US: GITLABTWITTERTELEGRAM
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 07, 2014, 09:58:10 AM
 #7

It is possible to slightly change the User-Agent string
Right now the string is something like: "/Satoshi:0.9.1/" or "/Satoshi:0.8.5/"
List of nodes is here https://getaddr.bitnodes.io/nodes/1407404879/?q=United%20States

Just change your bitcoind and set this string to "/Satoshi:0.9.1-Donate-1MyBitcoinAddressForDonations/"
(this can be even configurable option in .conf file)
Everyone will see that the node is really exists and connected

In fact, I do not think that fullnode owners should ask donations. The rest of network is obliged nothing to them.

abtus
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
August 07, 2014, 01:34:15 PM
 #8

Actually you can receive an indirect income by providing alternate services to Bitcoin network.
Check https://bitcointalk.org/index.php?topic=726826.msg8214655#msg8214655.
This week will be more information about how the node works and potential additional services.

The basic Coinjoin service doesn't require a large bandwidth connection, but if you connect the node to a good internet connection you can provide the blockchain network service and get additional income with a better ROI than a GPU rig miner. You will be able to pay the basic bills (host, internet access, etc) and get extra bitcoins to invest and consolidate the Bitcoin network service.



CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 07, 2014, 06:43:01 PM
 #9

It is possible to slightly change the User-Agent string
Right now the string is something like: "/Satoshi:0.9.1/" or "/Satoshi:0.8.5/"
List of nodes is here https://getaddr.bitnodes.io/nodes/1407404879/?q=United%20States

Just change your bitcoind and set this string to "/Satoshi:0.9.1-Donate-1MyBitcoinAddressForDonations/"
(this can be even configurable option in .conf file)
Everyone will see that the node is really exists and connected

In fact, I do not think that fullnode owners should ask donations. The rest of network is obliged nothing to them.



Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.

Unfortunately the "good feeling" do not pay the bills.  Wink

The donation is a great idea, it's just the "proof of storage" part that would get tricky and to get people to appreciate the effort, of other doing it, for them.

But you could get a generated list on say "Blockchain" and people could be encouraged to participate, by having a monthly "Lottery" where a portion of the donations, goes towards a single pot, and you get people winning that "pot" each month.

Just a thought.  Grin

Still not proof. What the OP seems to want is a way to prove, in a way that doesn't require trusting a third party, that an address is associated with a full node. (Note op never said address explicitly, but I don't know where else you'd even start)

Perhaps nodes could have an optional donation address config option. You could connect to a node and ask for its donation address. People who want to donate to nodes would have a piece of software that monitors a node or number of nodes uptime and if it is satisfactory it will request their donation addresses and send a donation.

Wouldn't be too difficult to implement, though I'm not sure how many people would be willing to donate.

Anyone could pretend to be a full node, but actually just be relaying messages from an actual full node, man-in-the-middle style.

Actually you can receive an indirect income by providing alternate services to Bitcoin network.
Check https://bitcointalk.org/index.php?topic=726826.msg8214655#msg8214655.
This week will be more information about how the node works and potential additional services.

The basic Coinjoin service doesn't require a large bandwidth connection, but if you connect the node to a good internet connection you can provide the blockchain network service and get additional income with a better ROI than a GPU rig miner. You will be able to pay the basic bills (host, internet access, etc) and get extra bitcoins to invest and consolidate the Bitcoin network service.

While I like the idea, this doesn't reward someone just for being a full node. They have to do something additional.
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 07, 2014, 06:59:05 PM
 #10

Quote
Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.
OK, so fullnode == miner node (solo or pool)
Miners do have their fees. What else can the rest network do for them? Only increasing fees. Nothing more.

Quote
this doesn't reward someone just for being a full node.
no one will pay another person just for wasting energy
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 07, 2014, 07:14:43 PM
 #11

Quote
Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.
OK, so fullnode == miner node (solo or pool)
Miners do have their fees. What else can the rest network do for them? Only increasing fees. Nothing more.


You can run a full node without mining.

Miners:
- Have the whole block chain. (miners in a pool might not, but the operator certainly does)
- Act as transaction validating servers (if you read the whitepaper, that's how it's described), thus supporting the network.
- The bitcoin protocol is designed to identify and reward them - their address is in the coinbase transaction of each block, therefore
- Are paid for contributing their resources (electricity, hardware costs, to a lesser extent hard drive space) to the network.
Full nodes:
- Have the whole block chain
- Act as messengers, thus supporting the network.
- The bitcoin protocol was created assuming everybody would be a full node, so it is not possible on a protocol level to identify and reward them, therefore
- Are all volunteers, contributing their resources (bandwidth, hard drive space, to a lesser extent electricity) to the network for absolutely nothing.

Note that a full node can mine, and a mining pool operator or solo miner can run a full node. But it is definitely possible to be one but not the other.
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 07, 2014, 07:20:23 PM
 #12

Lets imagine that I have a profit running full node, OK?

My next thing will be: setup 100 nodes and increase my profits 100 times
What next? setup 1000 nodes... Etc... Etc

This is economically impossible
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 07, 2014, 07:27:44 PM
 #13

Lets imagine that I have a profit running full node, OK?

My next thing will be: setup 100 nodes and increase my profits 100 times
What next? setup 1000 nodes... Etc... Etc

This is economically impossible

Well, if you're setting up 1000 full nodes then you're doing a lot to help the network, so I'd say you'd deserve a good chunk of donations (we're not trying to force anyone to donate, just allow anyone to prove that a full node is associated with a specific address). Remember that 1000 full nodes requires (currently) 20 TB of hard drive space, plus probably several terabit per second of bandwidth, maybe even a petabit, plus 1000 rounds of checking each new block and each transaction.

If the system that proves you're running a full node allows you to claim the same node several times, it's not a good proof system. That's exactly what someone trying to make such a system would have to solve (and why such a system hasn't been made yet).
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 07, 2014, 07:30:01 PM
 #14

Quote
Well, if you're setting up 1000 full nodes...
No. I will invent asic for it. But you will see 1000 nodes.
There is "proof-of-work"
But there is no "proof-of-fullnode" in bitcoin protocol
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 07, 2014, 07:34:52 PM
 #15

Quote
Well, if you're setting up 1000 full nodes...
No. I will invent asic for it. But you will see 1000 nodes

ASICs can't be full nodes. ASICs are really good at performing one operation quickly. Put in the need to store data, and ASICs are out of the question.

BUT - Go ahead, by all means try to make a full node ASIC. You'll be doing a lot to support the network.

And if what you're saying is an ASIC to spoof the proof of full node system -- well if it's spoofable in that way it won't be a good system, and nobody will trust it.

EDIT for your edit:
There is "proof-of-work"
But there is no "proof-of-fullnode" in bitcoin protocol

I am well aware of that. I am not advocating adding proof-of-fullnode to the protocol.
I'm advocating creating proof-of-fullnode as a separate thing, so that anyone can validate a one-to-one mapping of address to full node. Then anyone would have the option of donating to support the network. Most people won't, but it will be possible to do so with confidence.
No, that's not easy. No, I don't know how to do it. No, I don't know if it's possible. But it would be nice.
Weed Stuff
Newbie
*
Offline Offline

Activity: 12
Merit: 0


View Profile
August 07, 2014, 07:36:09 PM
 #16

I would guess the biggest problem you'd face with such an idea is "just how do you determine that someone has a full node"?

This would not be a trivial thing to do as presumably it would require some sort of separate consensus algorithm (i.e. a "proof of storage" type idea).

i think...
thats not a big problem as we now thats easy to implement on it .
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 07, 2014, 07:43:37 PM
 #17

I would guess the biggest problem you'd face with such an idea is "just how do you determine that someone has a full node"?

This would not be a trivial thing to do as presumably it would require some sort of separate consensus algorithm (i.e. a "proof of storage" type idea).

i think...
thats not a big problem as we now thats easy to implement on it .

How would you implement it?
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 07, 2014, 07:43:47 PM
 #18

Quote
ASICs can't be full nodes.
http://en.wikipedia.org/wiki/Application-specific_integrated_circuit

This means that this device will be very cheap (to increase my profits) and perform only one simple task - connects to a network and simulates fullnode. NOTHING MORE.

Quote
BUT - Go ahead, by all means try to make a full node ASIC. You'll be doing a lot to support the network.
No. It will be "checking transactions and broadcasting them to another clients" by 1 fullnode (may be). But my earnings will be 1000x

Quote
And if what you're saying is an ASIC to spoof the proof of full node system -- well if it's spoofable in that way it won't be a good system, and nobody will trust it.
How will you check whether I have 1000 fullnodes or one "fake device" which is only able to resend transactions to peers?
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4158
Merit: 8411



View Profile WWW
August 07, 2014, 07:53:14 PM
 #19

Well, if you're setting up 1000 full nodes then you're doing a lot to help the network, so I'd say you'd deserve a good chunk of donations (we're not trying to force anyone to donate, just allow anyone to prove that a full node is associated with a specific address).
1000 nodes run by one party is very harmful to the network compared to just running one system with more capacity, consolidating node control like that reduces the diversity of voices available to other hosts. Done maliciously it would be called a sybil, done innocently its just a waste.
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 07, 2014, 08:01:34 PM
 #20

Quote
ASICs can't be full nodes.
http://en.wikipedia.org/wiki/Application-specific_integrated_circuit

This means that this device will be very cheap (to increase my profits) and perform only one simple task - connects to a network and simulates fullnode. NOTHING MORE.

Quote
BUT - Go ahead, by all means try to make a full node ASIC. You'll be doing a lot to support the network.
No. It will be "checking transactions and broadcasting them to another clients" by 1 fullnode (may be). But my earnings will be 1000x

Quote
And if what you're saying is an ASIC to spoof the proof of full node system -- well if it's spoofable in that way it won't be a good system, and nobody will trust it.
How will you check whether I have 1000 fullnodes or one "fake device" which is only able to resend transactions to peers?

I think we're on the same page. What I've been trying to say is, I do not know how to solve these problems. Neither does anyone else, and they might not even be solvable. This is why no proof-of-fullnode system exists.

A good proof of fullnode system would have to allow you to prove the following things:
- You have a full copy of the blockchain (if you can't prove this, you can do what you suggested and just relay transactions)
- You are accepting incoming bitcoin messages (if you can't prove this, you might be putting a strain on the network because you're draining the resources of full nodes but not providing a service to non-fullnodes)
- You are using that copy of the blockchain to validate any transaction and block you receive, and send it on to anyone who asks for it (if you can't prove this, you can have a copy of the blockchain and do nothing with it - not contributing bandwidth)
- You can only associate ONE address with each time you satisfy all these conditions (the same way a miner can only associate ONE address with each coinbase transaction) (if you can't do this, you're susceptible to exactly what you described - multiplying your profits arbitrarily by pretending you're running more nodes when you're actually just running one)
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 07, 2014, 08:04:07 PM
 #21

Well, if you're setting up 1000 full nodes then you're doing a lot to help the network, so I'd say you'd deserve a good chunk of donations (we're not trying to force anyone to donate, just allow anyone to prove that a full node is associated with a specific address).
1000 nodes run by one party is very harmful to the network compared to just running one system with more capacity, consolidating node control like that reduces the diversity of voices available to other hosts. Done maliciously it would be called a sybil, done innocently its just a waste.

Fair, though I know I just run fullnodes on computers or servers I have anyway, as a thing it does on the side.
That honestly sounds like a bigger problem than a 51% attack, since it would be easier.
abtus
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
August 07, 2014, 08:35:09 PM
Last edit: August 07, 2014, 08:54:40 PM by abtus
 #22

Actually you can receive an indirect income by providing alternate services to Bitcoin network.
Check https://bitcointalk.org/index.php?topic=726826.msg8214655#msg8214655.
This week will be more information about how the node works and potential additional services.

The basic Coinjoin service doesn't require a large bandwidth connection, but if you connect the node to a good internet connection you can provide the blockchain network service and get additional income with a better ROI than a GPU rig miner. You will be able to pay the basic bills (host, internet access, etc) and get extra bitcoins to invest and consolidate the Bitcoin network service.

While I like the idea, this doesn't reward someone just for being a full node. They have to do something additional.

I understand your point of view and agree with you.
Let me use a simile:
Most large shopping centers (at least in south Florida) provide free parking for their customers. The parking lot space service is obviously not free and someone absorb the cost (usually ownership cost and maintenance community fees).
Change this traditional free parking in most shopping center and charge the customer is not a good idea (it will create additional problems in the future).
- One solution could be accept donations at the shopping center entrance (maybe with an amazing sign with a lovely speech suggesting a donation).
- Another solution could be an optional paid service like valet parking or premium parking slots, (equivalent to premium bandwidth to download and perform the blockchain operations). I'm confident that some bitcoin users will paid a reasonable fee to have access to faster full nodes.
- Another real solution is to offer other related paid services like rent electric chair or high capacity shopping carts, sell umbrellas when is raining, etc. (equivalent to perform the Coinjoin service). At the end you will have the blockchain in the Coinjoin processor and your node will be idle until the deterministic selection will activate your node to execute the coinjoin transaction.
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 07, 2014, 09:33:00 PM
 #23

Actually you can receive an indirect income by providing alternate services to Bitcoin network.
Check https://bitcointalk.org/index.php?topic=726826.msg8214655#msg8214655.
This week will be more information about how the node works and potential additional services.

The basic Coinjoin service doesn't require a large bandwidth connection, but if you connect the node to a good internet connection you can provide the blockchain network service and get additional income with a better ROI than a GPU rig miner. You will be able to pay the basic bills (host, internet access, etc) and get extra bitcoins to invest and consolidate the Bitcoin network service.

While I like the idea, this doesn't reward someone just for being a full node. They have to do something additional.

I understand your point of view and agree with you.
Let me use a simile:
Most large shopping centers (at least in south Florida) provide free parking for their customers. The parking lot space service is obviously not free and someone absorb the cost (usually ownership cost and maintenance community fees).
Change this traditional free parking in most shopping center and charge the customer is not a good idea (it will create additional problems in the future).
- One solution could be accept donations at the shopping center entrance (maybe with an amazing sign with a lovely speech suggesting a donation).
- Another solution could be an optional paid service like valet parking or premium parking slots, (equivalent to premium bandwidth to download and perform the blockchain operations). I'm confident that some bitcoin users will paid a reasonable fee to have access to faster full nodes.
- Another real solution is to offer other related paid services like rent electric chair or high capacity shopping carts, sell umbrellas when is raining, etc. (equivalent to perform the Coinjoin service). At the end you will have the blockchain in the Coinjoin processor and your node will be idle until the deterministic selection will activate your node to execute the coinjoin transaction.


I'm not advocating anything that would force anyone into paying for full nodes. But some people would like to donate to full node operators, and I would like it to be possible to do that with full faith that you are actually donating to a full node operator. It simply is not right now.
As for coinjoin nodes, that's a separate topic, and it may or may not be implemented (regardless of our advocating for or against it in this thread).
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1078


Ian Knowles - CIYAM Lead Developer


View Profile WWW
August 07, 2014, 11:11:29 PM
Last edit: August 07, 2014, 11:23:29 PM by CIYAM
 #24

Here is an idea that could have some potential - there has been discussion (by Peter R in particular) about tools for creating a "snapshot" of all UTXOs for a given date range (for usage in clone coins that will end up with the equivalent distribution that BTC had at the time of the snapshot).

Offering such a service (which requires a full block chain) could be a way to "earn some extra BTC by running a full node" (and perhaps there are other such services that could be useful - such as say statistical reports).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
deluxeCITY
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500



View Profile
August 07, 2014, 11:21:52 PM
 #25

This is not something that is done today, although I have seen a few sites that do allow for donations to full nodes.

I would not be surprised if, in the future there is some kind of system in which full nodes are rewarded as running a full node will be much more expensive when adoption gets much higher then it is now.
chris45215
Newbie
*
Offline Offline

Activity: 22
Merit: 0


View Profile
August 11, 2014, 08:29:35 PM
 #26

Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.

So, would it be possible to verify that an entity is a full node if they sign to show their address and provide a hash of the entire blockchain + a nonce?
Can a contract be written into the scrypt stating that a designated node can receive the coins of a transaction? Or, why not give higher priority to transactions that include a small transaction to a known node address?

If an alt protocol is created to reward nodes, then it may be better to abandon processor-based mining altogether. It is possible to devise a protocol in which nodes constantly send blocks, and send 'gibberish' transactions in the block to provide the randomized value that allow the hash to be different for each block. When some set of conditions is met (like Node A can prove to the network that it received a transaction from Node B and they each used the same salt/random value to generate the transaction), then a reward can be split among nodes A, B, and all other nodes that directly observed and confirmed that transaction. This system could feasibly work because it's intention is to consume bandwidth - so needing tons of bandwidth to inform and validate with the network is a good thing, rather than a bad thing.
The benefit of consuming bandwidth rather than ASIC cycles is primarily that, in order to 'mine' faster, the miner must increase their bandwidth, which allows them to transmit more transactions. There is a perfect correlation between helping the network and the miner's profit. The gibberish transactions sent along the network can be discarded shortly after they are received; there is no reason to keep them, they can be treated just like any failed attempt to mine a block.
The actual signal that a block has been mined may be a bit tough to figure out though - the specific example I gave would be too easy to exploit.
MakeBelieve
Hero Member
*****
Offline Offline

Activity: 602
Merit: 500


View Profile
August 11, 2014, 08:48:55 PM
 #27

It's a good incentive for people but it would be too complicated to implement and would probably be exploited a few ways I think you get enough reward for having a full node in the first place.

On a mission to make Bitcointalk.org Marketplace a safer place to Buy/Sell/Trade
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 12, 2014, 06:32:24 AM
Last edit: August 12, 2014, 06:43:42 AM by CJYP
 #28

The most important concept that people seem to be missing:
You can have a full copy of the blockchain and all unconfirmed transactions and not be a full node.
To be a full node, you also have to participate in relaying transactions and blocks, and accept incoming connections. If you use bitcoin core, and only have 8 or less connections, you're probably not a full node even if your block chain is up to date. And you are only a full node as long as you are accepting incoming connections, so you can be a full node for some hours of the day (when your computer is on, for instance) and not be a full node others.

Here is an idea that could have some potential - there has been discussion (by Peter R in particular) about tools for creating a "snapshot" of all UTXOs for a given date range (for usage in clone coins that will end up with the equivalent distribution that BTC had at the time of the snapshot).

Offering such a service (which requires a full block chain) could be a way to "earn some extra BTC by running a full node" (and perhaps there are other such services that could be useful - such as say statistical reports).

You just need a full copy of the blockchain (and maybe unconfirmed transactions) to do this. See above. A full node owner can do it, but it's a niche and there won't be much room for competition in that niche.

Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.

So, would it be possible to verify that an entity is a full node if they sign to show their address and provide a hash of the entire blockchain + a nonce?
No, see above.
Also, under that system a single full node operator could sign multiple addresses.

Can a contract be written into the scrypt stating that a designated node can receive the coins of a transaction? Or, why not give higher priority to transactions that include a small transaction to a known node address?
This only works if you can identify nodes (though,  allowing a full node to sign an arbitrary number of addresses is acceptable for giving higher priority to their transactions; node owners would have to show restraint and not abuse that, or miners would eventually start disregarding it).

If an alt protocol is created to reward nodes, then it may be better to abandon processor-based mining altogether. It is possible to devise a protocol in which nodes constantly send blocks, and send 'gibberish' transactions in the block to provide the randomized value that allow the hash to be different for each block. When some set of conditions is met (like Node A can prove to the network that it received a transaction from Node B and they each used the same salt/random value to generate the transaction), then a reward can be split among nodes A, B, and all other nodes that directly observed and confirmed that transaction. This system could feasibly work because it's intention is to consume bandwidth - so needing tons of bandwidth to inform and validate with the network is a good thing, rather than a bad thing.
The benefit of consuming bandwidth rather than ASIC cycles is primarily that, in order to 'mine' faster, the miner must increase their bandwidth, which allows them to transmit more transactions. There is a perfect correlation between helping the network and the miner's profit. The gibberish transactions sent along the network can be discarded shortly after they are received; there is no reason to keep them, they can be treated just like any failed attempt to mine a block.
The actual signal that a block has been mined may be a bit tough to figure out though - the specific example I gave would be too easy to exploit.
Interesting. Proof-of-bandwidth. If you develop this idea further and write up a whitepaper, you might be able to get some support for developing an alt based on the concept. One issue I can see is that we don't want to ddos the entire internet (or even just the trans-oceanic pipes). Think of the implications of anyone being able to profit financially from sending junk data, and profiting more the more junk they send.

It's a good incentive for people but it would be too complicated to implement and would probably be exploited a few ways I think you get enough reward for having a full node in the first place.
I agree that it would be complicated to implement, but bitcoin as a whole is complicated to implement. That didn't stop Satoshi from implementing it. I think this is a problem that will take Satoshi-level genius to solve securely. It's not currently a big enough problem to warrant it, but there are a lot of really smart people working on bitcoin. If the number of full nodes starts decreasing too much, the developers will find a solution.
p2pbucks
Hero Member
*****
Offline Offline

Activity: 642
Merit: 500


Evolution is the only way to survive


View Profile
August 12, 2014, 10:15:20 AM
 #29

bitnodes has a part of full nodes IP address .
Maybe bitcoin fundation will likely to donate some little money to full nodes ?   Roll Eyes
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 12, 2014, 02:07:22 PM
 #30

bitnodes has a part of full nodes IP address .
Maybe bitcoin fundation will likely to donate some little money to full nodes ?   Roll Eyes

Centralized, and doesn't associate bitcoin addresses with nodes (only IP addresses).
It's fine for just getting a sense of the network, but not for trying to contribute financially to node operators.
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 12, 2014, 02:25:27 PM
 #31

see also http://en.wikipedia.org/wiki/Tragedy_of_the_commons and think about it
Kprawn (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1073


View Profile
August 14, 2014, 04:44:22 PM
 #32

When I created this thread, I was more thinking of a very small portion of the estimated +/- US $50 transactions fees per block, being generated now. {Let's say about $10 of that amount, goes towards, this reward.}

But the $50 per block, seems to be at the upper limit per block, anyway. See this thread --> https://bitcointalk.org/index.php?topic=738166.msg8351456#msg8351456

This can easily be funded by donations, from generous BTC moguls.  or from the $ 2 000 000 wallets currently generated on the blockchain. { 1 satoshi from each of them }  Grin

The "proof of node" part, I will leave up to you. Way above my knowledge level.

Who would want to exploit a system, for that kind of money? {Remember it's split up between everyone, running the full node} So running 1000 full nodes, will cost you more than, what you would gain from it.

But it creates another way, to generate income from BTC and that is good.

But, thanks for all the positive remarks. Remember it's just a request.


THE FIRST DECENTRALIZED & PLAYER-OWNED CASINO
.EARNBET..EARN BITCOIN: DIVIDENDS
FOR-LIFETIME & MUCH MORE.
. BET WITH: BTCETHEOSLTCBCHWAXXRPBNB
.JOIN US: GITLABTWITTERTELEGRAM
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 15, 2014, 05:27:24 PM
 #33

When I created this thread, I was more thinking of a very small portion of the estimated +/- US $50 transactions fees per block, being generated now. {Let's say about $10 of that amount, goes towards, this reward.}

But the $50 per block, seems to be at the upper limit per block, anyway. See this thread --> https://bitcointalk.org/index.php?topic=738166.msg8351456#msg8351456

This can easily be funded by donations, from generous BTC moguls.  or from the $ 2 000 000 wallets currently generated on the blockchain. { 1 satoshi from each of them }  Grin

The "proof of node" part, I will leave up to you. Way above my knowledge level.

Who would want to exploit a system, for that kind of money? {Remember it's split up between everyone, running the full node} So running 1000 full nodes, will cost you more than, what you would gain from it.

But it creates another way, to generate income from BTC and that is good.

But, thanks for all the positive remarks. Remember it's just a request.



There are two separate problems here:
1) Figuring out a way for people to prove that they are a full node, that won't allow them to cheat (don't underestimate peoples' willingness to cheat when there's a financial incentive, or even just the ability to destabilize bitcoin involved).
2) Implementing this either (a) at the protocol level (where people who run full nodes are automatically rewarded with bitcoin) or (b) as an optional thing people can donate to if they so choose.

There will have to be a big debate over (2). There are a lot of merits and downsides to (2a), and it is definitely a useful debate. But until (1) is done, it doesn't even make sense to have that debate.
It seems that you created this thread to debate (2), but most of the discussion in this thread has centered around (1). That's probably because we don't have a practical solution to (1), so debating (2) isn't really practically necessary yet. Also, this is the Development and Technical Discussion board, so people here are more inclined to discuss the technical side of things than to debate the practical side of things.
warpio
Member
**
Offline Offline

Activity: 110
Merit: 10



View Profile
August 15, 2014, 05:38:54 PM
 #34

you can already be rewarded for having a full node. just turn your full node into a p2pool node with a moderate mining fee.
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 15, 2014, 05:59:38 PM
 #35

The only proof-of-fullnode is mined block. If you are not producing blocks - you are not bitcoin network supporter.
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 15, 2014, 06:15:54 PM
 #36

you can already be rewarded for having a full node. just turn your full node into a p2pool node with a moderate mining fee.
There's only so much room for p2pools. If all 7000 (or however many there are) fullnodes currently in existence ran p2pools, only a few of them would have miners on them (and those would be the ones with the lowest fees, so they wouldn't even make too much money off of it).

The only proof-of-fullnode is mined block. If you are not producing blocks - you are not bitcoin network supporter.
That's not proof of fullnode, only proof of hash power. You can mine without being a full node as long as you have a full copy of the blockchain.
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 15, 2014, 06:29:06 PM
Last edit: August 15, 2014, 06:41:44 PM by amaclin
 #37

Quote
That's not proof of fullnode, only proof of hash power. You can mine without being a full node as long as you have a full copy of the blockchain.
http://en.wikipedia.org/wiki/Duck_test
Every running miner (not a pool-miner, but owner of full node in setgenerate=true mode) works for decentralisation and been paid fees for founding blocks.

Such miners *must* accept transactions from the network and *must* push found blocks back to a network (otherwize it is wasting energy)

The problem is that mining on general devices is economically unreasonable. But we can do nothing with it.
You must understand that nobody will pay you only for your computer switched on.

I placed here a link http://en.wikipedia.org/wiki/Tragedy_of_the_commons
Fees and block reward - is a "common resource".
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 16, 2014, 05:04:56 PM
 #38

Quote
That's not proof of fullnode, only proof of hash power. You can mine without being a full node as long as you have a full copy of the blockchain.
http://en.wikipedia.org/wiki/Duck_test
Every running miner (not a pool-miner, but owner of full node in setgenerate=true mode) works for decentralisation and been paid fees for founding blocks.

Such miners *must* accept transactions from the network and *must* push found blocks back to a network (otherwize it is wasting energy)
That's subtly false.
Miners and full node owners are not the same. Though they both work for decentralization (as long as they don't own too much of the hash power / connectable full nodes) and the security of the network, the way they do so is completely different. See my comparison earlier. Someone can be both (as in your example - owner of full node with setgenerate=true), but someone definitely can be one without being the other.
One important distinction - miners are not required to include transactions in their block (read up on the O(1) block propagation discussion to see why this is important), so they are not required to do anything other than accept blocks from the network and push their blocks to the network. And since mining can be pooled, one copy of the blockchain can support many miners.

The problem is that mining on general devices is economically unreasonable. But we can do nothing with it.
You must understand that nobody will pay you only for your computer switched on.

I placed here a link http://en.wikipedia.org/wiki/Tragedy_of_the_commons
Fees and block reward - is a "common resource".
https://en.bitcoin.it/wiki/Scalability
Running a full node is much more than just computer switched on. It requires storing the entire blockchain (~20gb right now, but will scale as the network grows - and there certainly will be a financial price for all the hard drive space that'll take up once the it's growing fast enough). It requires accepting incoming connections, and accepting and sending on transactions to anyone who needs or wants to send them (8 mbps according to the above article assuming 2000 txps, which is certainly not free).
The article I linked claims that these problems are easily solvable as long as full nodes are running on high end servers. The price of a high end server is enough that most people won't pay that price just to support the bitcoin network.
The common resource we need to protect is not fees or block reward - that's reserved for specific people (miners). The common resource we need to protect is the security of the network (you know, the thing that gives bitcoin value).
laurentmt
Sr. Member
****
Offline Offline

Activity: 384
Merit: 258


View Profile
August 16, 2014, 06:48:52 PM
 #39

The only proof-of-fullnode is mined block. If you are not producing blocks - you are not bitcoin network supporter.
I don't think it's completely true. There was an interesting concept discussed in the past : a miner network backbone (direct connection between big mining pools used to propagate blocks, clients connect directly to mining pools).

The concept is interesting and I guess that such a network could work. But it has a major drawback : the network becomes more centralized with less redundancy in the architecture. As a consequence, attacking such a network would become easier. I guess a better solution is a miner backbone cohabiting with full nodes which provide redundancy and a better resilience of the network.

So, as stated by CJYP, even if mining becomes more and more centralized, full nodes remain very important for the security of the network. Their role is different but not less important.
gtraah
Sr. Member
****
Offline Offline

Activity: 420
Merit: 250



View Profile
August 17, 2014, 10:19:08 AM
 #40

It is possible to slightly change the User-Agent string
Right now the string is something like: "/Satoshi:0.9.1/" or "/Satoshi:0.8.5/"
List of nodes is here https://getaddr.bitnodes.io/nodes/1407404879/?q=United%20States

Just change your bitcoind and set this string to "/Satoshi:0.9.1-Donate-1MyBitcoinAddressForDonations/"
(this can be even configurable option in .conf file)
Everyone will see that the node is really exists and connected

In fact, I do not think that fullnode owners should ask donations. The rest of network is obliged nothing to them.


I am extremely curious why ALL the nodes are not up to date and doesnt this effect the network as to version of bitcoin... Now I am totally lost and confused about this whole updating client thing? What are the downside to not running the latest and whats the point up updating bitcoin when more than Half of the nodes are not updating.
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
August 17, 2014, 12:44:32 PM
 #41

Quote
I am extremely curious why ALL the nodes are not up to date

Because there is not "Central Goverment Of Bitcoin" which would force users to upgrade.
gtraah
Sr. Member
****
Offline Offline

Activity: 420
Merit: 250



View Profile
August 17, 2014, 12:57:34 PM
Last edit: August 17, 2014, 02:43:23 PM by gtraah
 #42

Yes I know there is no central government, but if everyone wants to be compatible with each other aren't they all supposed to be updated?.... I thought all the nodes have to be same version.. For example If Gavin changes something in the Core and everyone agrees, isn't everyone supposed to take this change to accept it? If there is Bitcoin V0.9.1. & 0..8 & 0.4 or what ever wouldn't this mean there is all different kind of coins out there right now? And how do i or others without nodes know which coins they have

OR

Have I got it wrong, the bitcoin Core client/Wallet Is not the actual CORE which determines if there is a fork or not ?

I think I am just more curious, I just don't get why people would not upgrade, i mean  newer most of the times means better, less bugs etc.
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 17, 2014, 02:48:26 PM
 #43

Updating isn't always important. The main benefits to updating are personal security and new features - occasionally there could be a network security update. If a full node operator isn't using the node to store bitcoin, they don't need to update for personal security, and they certainly don't need to update for the new features. They only need to update if there's a network security update or a fork, which is rare.

There is almost never a fork - it happened with version 8.0, but only because of a bug. Most versions of the bitcoin core client are compatible with the same bitcoin protocol.

EDIT - To clarify, bitcoin is a consensus driven network. A fork only happens if a fundamental rule of the network is changed. Most updates to bitcoind don't change the rules of the network, so they don't cause a fork - therefore running an older version doesn't break compatibility.
Dabs
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
August 20, 2014, 04:49:19 PM
 #44

I see a lot of alt-coins use what is called "Proof of Stake"... That gives them an incentive to be full nodes, at least some of the time. Maybe not all the time.

Kprawn (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1073


View Profile
August 20, 2014, 07:03:24 PM
 #45

I see a lot of alt-coins use what is called "Proof of Stake"... That gives them an incentive to be full nodes, at least some of the time. Maybe not all the time.

Well then it's not impossible to implement. And yes this is just a debate for a request I made. See thread Subject.

One of BTC strongest claim, is it's decentralized nature. {This is being threatened, by less people, running full nodes} Exaggerated but still true.

Why not implement something that is a incentive to keep it that way. {decentralized}

THE FIRST DECENTRALIZED & PLAYER-OWNED CASINO
.EARNBET..EARN BITCOIN: DIVIDENDS
FOR-LIFETIME & MUCH MORE.
. BET WITH: BTCETHEOSLTCBCHWAXXRPBNB
.JOIN US: GITLABTWITTERTELEGRAM
CJYP
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
August 22, 2014, 03:33:32 PM
 #46

I see a lot of alt-coins use what is called "Proof of Stake"... That gives them an incentive to be full nodes, at least some of the time. Maybe not all the time.

Well then it's not impossible to implement. And yes this is just a debate for a request I made. See thread Subject.

One of BTC strongest claim, is it's decentralized nature. {This is being threatened, by less people, running full nodes} Exaggerated but still true.

Why not implement something that is a incentive to keep it that way. {decentralized}

I suggest you read up on proof of stake. Bitcoin secures the network by proving that enough work (in the form of computing really low hash values) was put into generating a block that it would be (almost) impossible to have forged it. The proof-of-stake altcoins secure the network by proving that enough coin days were destroyed (I suggest you read up on what that means) in the process of generating a block that it would be (almost) impossible to have forged it. I have a much better understanding of how proof-of-work actually works than proof-of-stake, so I'm not really in a position to explain it better. But what I can tell you is that changing bitcoin over to proof-of-stake would be a huge change in the security model of the network. It would destroy some trust, and there's almost no chance it will happen without an extremely strong reason (stronger even than loss of some decentralization). The only way that could happen is if the current security model breaks somehow (51% attack, SHA-256 broken, etc), and even then other solutions would be considered first.

The reason not to implement something that is an incentive to keep bitcoin decentralized is that we don't know how to without either breaking trust in the network or adding an element of trust in a third party.
Pages: 1 2 3 [All]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!