1 - The software must provide a automatic way to exchange BTC by fiat money. The user just provide the price/BTC and the amount to buy or to sell.
I've been thinking about this off and on for a couple years, and the only way I can see a zero-trust P2P fiat exchange, is if the issuing authority (or maybe a highly trusted institution) issues their own P2P crypto currency. All they would need to do, is clone/develop their own PoS fiat system, issue themselves a trillion dollars, then release the network to the public. They can then issue their currency to banks and other institutions for further dissemination to the public at large.
This still does not solve the problem of a zero-trust P2P currency exchange. A previous poster suggested that this would require a hard fork in one of the existing currencies. This is true, but a proof-of-concept can be done without a hard fork. Just create a new currency with the features required to solve the problem.
This new exchange and trade currency will have the ability to process a transaction based on transactions in 3rd party block chains. A payment script that would be way too experimental to include in an established blockchain before proving itself.
Here's what would happen if Bob wanted to buy BTC for SNC (some new coin):
Bob announces that he wishes to buy 1 BTC for 100 SNC in the next hour.
Alice sees the announcement and sends a reply to accept.
Bob sees the acceptance and sends 100 SNC to Alice on the condition that 1 BTC be sent within the next hour and receives 5 confirmations.
Project launch? Need some developers and/or investors to make this a reality. Any takers?
The SNC network receives Bob's transaction and adds it to the public ledger.
Alice sees the transaction in the SNC blockchain, then after a sufficient number of confirmations, she sends 1 BTC to Bob.
The SNC network sees the BTC transaction, which triggers the first transaction to start confirming. Once the confirmation count is reached, the SNC network completes the transaction, sending 100 SNC to Alice.
If the hour is up, and 1 BTC was not sent, the transaction will be completed/reversed, giving the 100 SNC back to Bob.
The proof of concept will only allow for 1-way transactions that must originate by sending SNC. To exchange BTC for LTC, you must first buy SNC with one, then sell SNC for the other.
Incentive for mining this new currency would include block rewards with a built-in halving rate, and market driven transaction fees as a percentage and/or a fixed minimum. IOW, no major change from how Bitcoin works.