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.