outside of bitcoin, how does a network negotiate what the next blockchain should be? There are two problems I see with negotiating the next block chain:


which transactions to include in the chain (because consider transaction T which has propagated through exactly 49% of the network at the time the next block is negotiated)
which proposed block to consider the next legitimate block in the chain, because even assuming all nodes have all transactions, what's to stop every node from attempting to propose the next block, thus forcing the network to attempt to propagate and resolve N different block collisions.


In bitcoin, number 2 above is easily resolved by intentionally imposing conditions on the resulting hash of the blockchain such that it is computationally difficult to derive the hash, and thus collisions (where 2 nodes propose a valid block/hash at the same time) are very rare.

Outside of bitcoin, I'm skeptical as to how new blocks are announced and agreed upon. If you have a blockchain structure where a new block should be announced at an artificial time interval of every 10 minutes (assume the network is time sync'd) then what's to stop all your nodes from attempting to propose many different next blocks all at once? In a general blockchain network that isn't bitcoin, I don't see any restriction like #2 above that reduces the ability for many nodes to come up with their own proposed blocks and to stop them from trying to announce these blocks to the network.

Also, assuming we can resolve this issue ^ and manage to negotiate which block to use as the next one in the chain, we're assuming here that the contents of all the proposed blocks are also equal. How can a network negotiate the next block if 49% of nodes contain a transaction that the other 51% of nodes do not?
Here's how Bitcoin works.  I suppose we could say that each node can "propose" a different next block.  What this really means is that each node can select a "proposed" next block and start mining to attempt to append that block to the blockchain.  Bitcoin's proof-of-work  basically creates a lottery among all of the nodes who are doing this; it's random which one will win, but there will be only one winner, and once there is a winner, everyone will know which one won.

Nothing stops dishonest nodes from attempting to "propose" many different next blocks and mine from them.  If 100% of the network is dishonest, then you're screwed anyway.  So if you want any security at all, you need to assume that at least 51% of the nodes are honest.  And the crucial part is to look at how the honest nodes will behave.

The way that a protocol works is that it specifies how an honest node should work.  If the node is honest, it will follow the protocol faithfully -- that's more or less the definition of honest, in the world of protocols.  The Bitcoin protocol specifies how an honest node should determine what transactions to include in its proposed next block: include all of the transactions that it is aware of, and that are valid.  It also provides a mechanism to help all of the honest nodes learn of all possible transactions.

So, if at least 51% of the nodes are honest, they'll all "propose" the same next block (since they're all honestly applying the same validity checks) and start mining from that next block.

What about protocols other than Bitcoin?  No one ever promised that other protocols would be secure.  No one ever promised that merely using a blockchain (a hash-chained ledger) is sufficient to ensure security.  Bitcoin is a clever combination of multiple interlocking mechanisms that work together to provide security -- the beauty and magic is in how they fit together.  If you take away some of those mechanisms and keep only others, there's no reason to expect the result to necessarily be secure.  And it's not really possible to analyze the security of an unspecified protocol, where the only information we have about it is that "it uses a blockchain but isn't Bitcoin".