Hm . . . I though I had some grasp on this stuff, but I’m finding that grip slipping.
Let’s see if we can define the terms carefully, and see if we can tease anything out. Following are my best attempts to describe the elements involved. If we can hone these and agree on the terms for conversation, it may help be able to talk about this by more people.
transaction: any change of state ordered by a valid client. In the case of a token, this is credit/debit. In the case of a document, this would be delete/put/? changing the content by someone with controlling cryptographic keys.
consensus algorithm or mechanism: A means of arriving at a canonical (authoritative) agreement on the ordering of valid actions/transactions on a network. Validity of those is ensured by cryptographic keys, so that that is, in itself, not a part of the algorithm. The validity part is handled separately, except in regard sequence, since the sequence of add/delete, credit/debit affects the validity (i.e., a PUT inserting a word must arrive before a DELETE removing it for the sequence to be valid, even if both are properly signed validated cryptographically. Likewise with a credit needing to arrive prior to a debit).
Because, on a distributed network, information arrives at different nodes in different sequences (due to messaging lags, physical distances, etc.) the “true” sequence has to be sorted out and agreed upon. In most blockchain protocols, the sequence is fixed by the node (miner) that wins the proof of work challenge, or is designated by some other mechanism (as delegated proof of stake, etc.). This adds up to rotating central clearinghouse actors maintaining on common ledger, essentially requiring all participants to process and maintain a record of ALL transactions.
asynchronous consensus protocol or mechanism: this is any scheme by which much smaller sets of nodes validate the cryptographic validity of transactions and report the sequence as they experience it. The sequence is then agreed upon by interplay between nodes, and then finalized by whatever exact mechanics.
I’m sure there are other terms which, if we clearly define usage, will help, but that’s a start. Once these are laid out, perhaps then a restatement of where PARSEC fits into other settings might become more useful. (?)