I think that the most important issue that needs to be addressed in this question is de-linking the user and assignment clients. It is my understanding that an assignment client could not be dedicated to an individual avatar that travels from domain to domain, rather that domain operators will have the option to request additional processing from the “stable” of assignment clients that others are running based on the current processing needs of the domain.
Recent discussions about adding costs to creating / modifying / destroying voxels ( which would be paid to the domain operator based on rates that could be set by that operator ) would imply that domain operators would NOT have to run assignment clients to generate credits. They could use the credits they collect through these charges ( or selling content ) to pay for the additional processing capacities that assignment clients provide.
In one of our Friday meetup discussions @Philip described some additional details…
Assignment clients would be assigned jobs on a random basis… The design thinking is that if a “rogue” client was modified to collect information about the domain it was serving, It would never be assigned enough jobs in a single domain so that it could collect the information required to replicate the entire contents of that domain.
Assignment clients would be interacting in a “marketplace”… That is… Domain owners who wished to pay for the additional processing power would be able to identify and select a client that provided the best local performance. This would prevent the use of an assignment client that might include unacceptable network delays to complete the assigned processing. This seems an obvious advantage to the domain operator, who would want to get support from the “best” assignment client available, however it weakens the [security through randomness] that is intended to prevent a single client from collecting enough details to replicate content…
Assignment clients could be run in a “comparative group” mode… It would be possible to distribute the same task to multiple assignment clients and compare the results of the processing returned. This would support the ability to prevent a single “rouge” client from returning “corrupting/inaccurate” results to a domain.
I apologize if I have mis-stated any of this… Please feel free to expose my mistakes and explain them correctly