Part of my confusion is that you are not separating Physical entities from Logical entities.
As best I can tell, a "Network Trust" is a logical grouping of physical peers. I'm not sure if you consider these peers to be the humans or these human's (zero?, one or more) computer nodes. Can I be part of a "Network Trust" (to send and receive coins), without running a node at all? Do I have to be part of a "Network Trust" to send and receive coins? I guess I'm asking, are NT's optional just so I can share in your reward scheme?
Again, a problem of poor terminology in the proposal. There are two types of computers that use the network--computers providing the service of running the network, and computers that are making use of the services offered by the network. Whatever I end up calling these will probably not be peers or nodes or users or whatever as those terms are confusing. So let's just use client and server for now. Client Joe wants to spend money so he signs a transaction that sends 5 ENC to Client Bob. Joe connects to server Mary and sends the signed transaction. Mary is a part of a TrustNet/NT and checks to make sure Joe has enough money in his account, signs it with her user ID and TrustNet ID, then passes it along to every other TrustNet. Once Mary receives confirmation back from >50% of the total network trust, Mary lets Joe know that the transaction has been approved.
Now one issue here is that Bob isn't notified of the payment unless he specifically tells his server to keep an eye out for him. So Bob tells server Hillary that whenever an approved transaction comes through with his address, let him know about it.
Since this system relies on a direct ip address->wallet address correlation, I am thinking on a layer of obfuscation that is similar to bitcoin, but one that removes a lot of the burden off of the servers and keeps it on the clients. So there would be, in effect, "the city" where the TrustNets operate and exchange information, and "the cloud" where clients communicate with each other about all the stuff that the city is doing. If Joe wants to send a transaction pseudo-anonymously, he can tell his connected peers in the cloud to send his transaction a random number of hops (client A to B, B to C, C to D, and so on) before sending it to the city. If everybody does this, it is not possible for city or cloud peers to know where the transaction originated. But it makes things a bit complicated when the city sends confirmations out, as they may have to roll around the cloud for awhile without much guarantee that the person who cares about the transaction will see it. This concept is very work-in-progress at this point.
Basically, in a perfect world, every server would be connected to enough other servers to maintain network cohesiveness, and must also each be connected to the total number of network clients divided by the total number of network servers.
I understand the logic of what you said. But who (what peers) is actually doing the work for a given "Network Trust" group? Does every NT member receive every broadcasted block from the other NTs? Or is there one-or-more delegates for each NT that NT members are *required* to trust? That was what I was referring to below.
Each member of a TrustNet is working on the hashing problem and reporting in on their progress (to the rest of their TrustNet). Each member of a TrustNet is also an open server that allows incoming connections from clients that bring in new transactions or requests for information.
I got really confused about your use of the term network peers here. Sometimes it seems to mean intra-NT peers. Other times it seems to mean inter-NT relationships.
And the statement "they will be putting" is completely nebulous. I understand why they will be putting together a block. I just have no idea who they are? Is there a single delegate for the NT? Do the members of the NT collaborate together? How do they share data? Who is responsible for resending the block every few seconds?
This time it means intra-NT peers.
Again, terribly sorry about the word confusion. The draft is still really rough but I have it clearly in my head, it just doesn't always come out very clear.
Individual servers of a TrustNet will pass any received transactions immediately on to their fellow TN members. They are connected to 4-5 out of the potential 100 TN members so as not to spam each other out and have 94-95 extra open connections that aren't necessary. Each member is aware of which 100 users are in their TN, what their IP addresses are, and so on, they are just not always connected to every one.
So, this is how it will happen for a new transaction:
1. One member of the TN receives an incoming transaction from a client.
2. This member passes this transaction, unadulterated, on to the 4 or 5 TN members they are connected to.
3. These 4-5 members pass this transaction on to the
other 3-4 TN members that they are connected to. (and so on)
4. Every 15 seconds, one member of the TN will be randomly selected* to put a block of new transactions (a block because to do it for every transaction would be a terrible waste of resources, especially when there may be hundreds of transactions per second) together that are
signed by the TrustNet's private key. Then this block of signed transactions is passed along back to every TN member in the same manner as a new incoming transaction. One member is selected to do this so that the TN presents a united, identical block to other TNs. This allows infiltrators to be spotted more easily trying to insert bad spends into transaction blocks, or other nefarious things.
5. Each TN member then signs this block with their own private key and passes it along to each other, separate TN that they are connected to as well as "the cloud" as described earlier.
* - Randomly selected by a function that everybody agrees on, so at the time it happens, everyone will know who it is that got selected.
It seems like there is a delegation pattern at work here. But then you say "Each peer knows the address of every peer in their network in case Something Really Bad™ is happening (all 4 or 5 peers are disconnected, or all 4 or 5 appear to be doing shady stuff, or something similar)" which implies each peer is monitoring his NT peers, not trusting them.
I'm really confused.
Everybody is assumed to be trustworthy until they prove that they aren't. For an infiltration attack to have any chance of succeeding, the infiltrator must act as a trusted member of the (overall) network first. Computers are doing the trusting, not humans. That would be far too much work for any person to keep up with. I'll talk more about this in response to your other post.
Again, when I said "account(ing) part of your trust network peer," I was thinking about the delegate pattern. Supposed you delegated *all* the 1) receiving of NT member's transactions, 2) validation of NT member's transactions, 3) transaction block broadcasting and receiving, 4) validation and recording of inter-NT transactions. This could easily be done using only the power of an iPhone.
If you are not delegating the above 4 things to some "trusted" delegate node, then I'm totally confused about the dynamics of your NT group of nodes. If each member does these things individually without trusting the other members, then the batching, signing, and sending seems redundant.
Yes you aren't seeing things the way I see them in my head. WHY THE HELL NOT?
Mining proof-of-work proves that, until you do something bad, at least you can be trusted more than someone who doesn't mine because you are putting time, money, and effort into creating currency for the economy. Proof-of-work still has a very important purpose in the EnCoin design.
An iphone could be a good client, but not a good server as I described earlier.
I don't mean to be dense, but I'm totally baffled by this last paragraph.
We got all the way here, talking about a distributed system for trusted and verified transaction accounting. Never once did you mention any necessity for *mining* in order to guarantee transaction validity. Validity was guaranteed through transaction block signing (consensus notarization).
What on earth does mining secure? The only thing I see that it can possibly protect is the reward system for mining. This system seems to operate completely independently. In actually, it doesn't seem to secure the transaction system. It seems to rely on the consensus relationships of the underlying transaction system to frustrate subverting the mining reward system.
Again, I'm baffled.
Third paragraph of section 4 on network trusts/trustnets:
"As TNs
continue to mint coins and agree on transactions with the rest of the network, the TrustNet Rating (TNR) of that TN will increase."
This has been in the proposal in one form or another since the beginning, so I'm not sure why you're confused. If your trust could increase just by being a "yes man" and agreeing with everybody else, you have not put any effort or money into the system, just a bit of network data. People are not individually making any of these decisions, it is all done by computer. There has to be a real, hard cost associated with gaining trust, or a sybil attack is much easier.
I thought the mining system was a way to optimize monetary policy. Where "optimize" means, expand or contract the money supply as appropriate to maintain coin value stability. That is a hard problem and worth my time to think about.
On the other hand, levying a tax on every transaction and using *mining* as justification for redistributing this tax among miners... Well that seems to be an unnecessary problem to solve at all. At best it's a marketing problem. That's not at all where I want to waste my mental energy.
You really seem to take offense that some of the users involved in this theoretical project are out to make a profit. Mining secures the network (albeit in a much more indirect manner than bitcoin), miners need to get paid. It's rather simple. I'm not going to rehash my reasoning for why there are incentives for being more trusted or whatever else at this point. And the tax is destroyed, so miners do not get that money. It is there to help the economic contraction, or to create new demand (continued security!) in times of economic stability.
I'll respond to the other post later, this took a bit out of me.