BIP70 is a protocol for getting a user's wallet client communicate with a merchant's server in order to agree on details like where to send the payment, how much to send, what the shipping address is, sending a receipt back, and much more using various extensions that adds more functionality.
There could even be advanced functionality for automatically negotiating terms. One example could be selecting a multisignature arbitrator both sides trust. Another could be to agree on the speed and type of delivery. Many more types of decisions could be automatically agreed upon.
But as it is now, it is designed to be initiated at the time of payment. If you always want next-day delivery from online stores then you won't always know if that's an option until you've filled the digital basket and gone through checkout. If you only want to shop with an arbitrator involved same thing applies.
Everything that BIP70 enables happens at the last step only, as it is right now.
If there could be a BIP70 HTML tag on web shops that automatically triggered your wallet as soon as you visit the page, it would be possible for a browser extension that talks to your wallet to tell you right away if the web shop you're currently looking at has terms you consider acceptable or not (note: if your wallet client isn't installed on or linked to that same machine, a visible Qr code would be an acceptable alternative which you can scan in advance before you start shopping). This notification can even be automatically updated as you add and remove things from your cart and details like shipping options change.
This would massively simplify the shipping experience and make every web shop feel like Amazon.
Of course this has privacy implications and increases exposure to potential wallet exploits, but the wallet can ask you if you intend to shop or not at each site before it even connects and send any information at all in order to mitigate both of those problems. This way it should be reasonably safe.
Another option would be to automatically connect but limit what data is sent in order to remain privacy preserving, until the user agrees to send private information.
This second method would also open up for the merchant to other send relevant information such as details about various certifications from third parties, which can include a certification that shows they have been been audited and approved by by entity X for purpose Y. If your wallet has that entity whitelisted it will show you that certificate (for example "Acme Audits have audited and approves of Merchant M's privacy policy and data protection"). With a list of predefined types of certifications that the wallet understand and accepts, it could (by choice of the user) require a certificate to be present to even allow you to make a purchase (lack of required certifications would result in automatic denial). No certificate = your wallet never proceed to send private information.
Thoughts?
- Sent from my tablet