Peer coin had a system where they had a centralised block signing server (plus POW and POS for minting). The plan was to remove the centralised server once the coin had matured sufficiently. I am not sure if they still have it though. A quick Google suggests it went from enabled by default to disabled by default.
They gave it the unfortunate name "checkpoints" and it's required in the system and can't simply be turned off, and was made much more fundamental over time due to attacks.
Also, it's a single key-- not a arbitrary scriptpubkey.
Speaking of which, was the off-by-one bug in the difficulty code fixed?
well, its difficulty is always 1 sooo in some sense, yes?
In seriousness, I think the big one would be UTXO set commitments (or just commitments in general). That isn't a hard-fork, but would be much nicer if it was implemented that way (with a tweak to the merkle tree).
Yep, I wanted to avoid a bunch of scaling tools in this first cut to avoid this getting confused as itself some kind of response in the blocksize debate. So the only scaling related thing in it is the witness separation. It would be a fine thing for playing with some kinds of scaling tools; though the scaling ideas that are mostly centered around incentives alignment, not so much. Things like txo commitments, sure.
You have to prove that it is buried deeply enough in the testnet chain before accepting?
It's required to be 10 blocks deep in testnet.
Do the signers do any extra checking for re-orgs in testnet?
All nodes that have a local testnet node running (and enabled, e.g. with the blindtrust=false) setting, will watch for reorgs and generate special fraud proof transactions to advise the network of a transfer that got reorged out. They have 144 blocks on the sidechain to get a proof in to abort the transfer.
What is the point of the genesis block then? This is to simulate minting fees?
It basically fits the "coins can appear magically when a script says so" into the existing Bitcoin Core software framework... (consider handling reorgs and such). It was _much_ easier to implement was "well the potential coins were there all along, but they were just held in care of this magic script" than coins that appear out of nowhere.
Testnet to elements
You spend testnet coins to a special address
More or less, you perform a little ritual to generate a pay-to-contract p2sh address for the fedpeg functionaries. Then you pay to that. It's an ordinary (p2sh) testnet address. At this point the only person in the world that can determine you are moving coins to the sidechain is you, because only you know the nonce used in your contract.
Then after its 10 blocks deep on testnet you show up on the sidechain and present a proof that coins were paid on testnet according to the rules, and barring no reorgs that break things; the coins are yours 144 sidechain blocks later.
Elements to testnet
Federation releases testnet coins?
Right, you make a special transaction on the elements chain and the functionaries follow its instructions and pay according to it.