Discussion:
[bitcoin-dev] Proposed BIP extension to BIP 0070
Justin Newton via bitcoin-dev
2016-03-01 18:58:16 UTC
Permalink
The following draft BIP proposes an update to the Payment Protocol.

Motivation:

The motivation for defining this extension to the BIP70 Payment Protocol is
to allow 2 parties to exchange payment information in a permissioned and
encrypted way such that wallet address communication can become a more
automated process. Additionally, this extension allows for the requestor of
a PaymentRequest to supply a certificate and signature in order to
facilitate identification for address release. This also allows
for automated creation of off blockchain transaction logs that are human
readable, containing who you transacted with, in addition to the
information that it contains today.

The motivation for this extension to BIP70 is threefold:

1. Ensure that the payment details can only be seen by the participants in
the transaction, and not by any third party.
2. Enhance the Payment Protocol to allow for store and forward servers in
order to allow, for example, mobile wallets to sign and serve
Payment Requests.
3. Allow a sender of funds the option of sharing their identity with the
receiver. This information could then be used to:

* Make bitcoin logs more human readable
* Give the user the ability to decide who to release payment
details to
* Allow an entity such as a political campaign to ensure donors
match regulatory and legal requirements
* Allow for an open standards based way for regulated financial
entities to meet regulatory requirements
* Automate the active exchange of payment addresses, so static
addresses and BIP32 X-Pubs can be avoided to maintain privacy
and convenience

In short we wanted to make bitcoin more human, while at the same time
improving transaction privacy.

Full proposal here:

https://github.com/techguy613/bips/blob/master/bip-invoicerequest-extension.mediawiki

We look forward to your thoughts and feedback on this proposal!

Justin
--
Justin W. Newton
Founder/CEO
Netki, Inc.

***@netki.com
+1.818.261.4248
Luke Dashjr via bitcoin-dev
2016-03-08 22:34:13 UTC
Permalink
Is there a way for Joe Mobile Wallet User to upload a set of N PaymentRequests
authenticated by his key to an untrusted server, which encrypts and passes
them on in response to InvoiceRequests? Or does this necessarily require the
recipient to be online?
Post by Justin Newton via bitcoin-dev
The following draft BIP proposes an update to the Payment Protocol.
The motivation for defining this extension to the BIP70 Payment Protocol is
to allow 2 parties to exchange payment information in a permissioned and
encrypted way such that wallet address communication can become a more
automated process. Additionally, this extension allows for the requestor of
a PaymentRequest to supply a certificate and signature in order to
facilitate identification for address release. This also allows
for automated creation of off blockchain transaction logs that are human
readable, containing who you transacted with, in addition to the
information that it contains today.
1. Ensure that the payment details can only be seen by the participants in
the transaction, and not by any third party.
2. Enhance the Payment Protocol to allow for store and forward servers in
order to allow, for example, mobile wallets to sign and serve
Payment Requests.
3. Allow a sender of funds the option of sharing their identity with the
* Make bitcoin logs more human readable
* Give the user the ability to decide who to release payment
details to
* Allow an entity such as a political campaign to ensure donors
match regulatory and legal requirements
* Allow for an open standards based way for regulated financial
entities to meet regulatory requirements
* Automate the active exchange of payment addresses, so static
addresses and BIP32 X-Pubs can be avoided to maintain privacy
and convenience
In short we wanted to make bitcoin more human, while at the same time
improving transaction privacy.
https://github.com/techguy613/bips/blob/master/bip-invoicerequest-extension
.mediawiki
We look forward to your thoughts and feedback on this proposal!
Justin
James MacWhyte via bitcoin-dev
2016-03-08 23:07:03 UTC
Permalink
Our BIP just defines protocol definitions, and doesn't really dictate how
people use them (we're coming up with a new title for the BIP, by the way,
to more accurately convey that). Using our definitions as building blocks,
someone could definitely accomplish what you described. For example, Joe
Mobile Wallet User's wallet could upload a slew of generic PaymentRequest
messages with signatures to prove his identity, and the server could then
create encryptedPaymentRequest messages using the server's key for
encryption and communication with the other party. In this case the server
would essentially be a proxy for the user without having actual access to
the user's private keys.

My personal goal with the protocol was to keep it extremely flexible so
developers could use it to build all different types of schemes while
keeping standard messages that could be forwarded between services if
needed. Does the above make sense?

James

On Tue, Mar 8, 2016 at 2:55 PM Luke Dashjr via bitcoin-dev <
Post by Luke Dashjr via bitcoin-dev
Is there a way for Joe Mobile Wallet User to upload a set of N
PaymentRequests
authenticated by his key to an untrusted server, which encrypts and passes
them on in response to InvoiceRequests? Or does this necessarily require the
recipient to be online?
Post by Justin Newton via bitcoin-dev
The following draft BIP proposes an update to the Payment Protocol.
The motivation for defining this extension to the BIP70 Payment Protocol
is
Post by Justin Newton via bitcoin-dev
to allow 2 parties to exchange payment information in a permissioned and
encrypted way such that wallet address communication can become a more
automated process. Additionally, this extension allows for the requestor
of
Post by Justin Newton via bitcoin-dev
a PaymentRequest to supply a certificate and signature in order to
facilitate identification for address release. This also allows
for automated creation of off blockchain transaction logs that are human
readable, containing who you transacted with, in addition to the
information that it contains today.
1. Ensure that the payment details can only be seen by the participants
in
Post by Justin Newton via bitcoin-dev
the transaction, and not by any third party.
2. Enhance the Payment Protocol to allow for store and forward servers in
order to allow, for example, mobile wallets to sign and serve
Payment Requests.
3. Allow a sender of funds the option of sharing their identity with the
* Make bitcoin logs more human readable
* Give the user the ability to decide who to release payment
details to
* Allow an entity such as a political campaign to ensure donors
match regulatory and legal requirements
* Allow for an open standards based way for regulated financial
entities to meet regulatory requirements
* Automate the active exchange of payment addresses, so static
addresses and BIP32 X-Pubs can be avoided to maintain privacy
and convenience
In short we wanted to make bitcoin more human, while at the same time
improving transaction privacy.
https://github.com/techguy613/bips/blob/master/bip-invoicerequest-extension
Post by Justin Newton via bitcoin-dev
.mediawiki
We look forward to your thoughts and feedback on this proposal!
Justin
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
James MacWhyte via bitcoin-dev
2016-03-09 01:17:11 UTC
Permalink
I accidentally replied to Luke off-list, and this was his reply to my last
message:

"But wouldn't the server be a trusted third-party in this case?
I'm thinking it's very close to being possible for an untrusted server to do
this..."

If you are okay with anyone being able to view your PaymentRequest
messages, then you wouldn't need to encrypt them. Just upload them to the
server and let it give them away--no trust needed as long as you include a
signature. If you want only certain people to be able to see your messages,
then you need to denote those people in some way. In this situation, you
would do that by trading public keys and uploading encryptedPaymentRequest
messages to the server that only those people could read.

Using the encrypted method doesn't require the devices to be online, but it
does require at least one of the parties to know the other party's public
key. Do you have a specific use case in mind?

James
Post by James MacWhyte via bitcoin-dev
Our BIP just defines protocol definitions, and doesn't really dictate how
people use them (we're coming up with a new title for the BIP, by the way,
to more accurately convey that). Using our definitions as building blocks,
someone could definitely accomplish what you described. For example, Joe
Mobile Wallet User's wallet could upload a slew of generic PaymentRequest
messages with signatures to prove his identity, and the server could then
create encryptedPaymentRequest messages using the server's key for
encryption and communication with the other party. In this case the server
would essentially be a proxy for the user without having actual access to
the user's private keys.
My personal goal with the protocol was to keep it extremely flexible so
developers could use it to build all different types of schemes while
keeping standard messages that could be forwarded between services if
needed. Does the above make sense?
James
On Tue, Mar 8, 2016 at 2:55 PM Luke Dashjr via bitcoin-dev <
Post by Luke Dashjr via bitcoin-dev
Is there a way for Joe Mobile Wallet User to upload a set of N PaymentRequests
authenticated by his key to an untrusted server, which encrypts and passes
them on in response to InvoiceRequests? Or does this necessarily require the
recipient to be online?
Post by Justin Newton via bitcoin-dev
The following draft BIP proposes an update to the Payment Protocol.
The motivation for defining this extension to the BIP70 Payment
Protocol is
Post by Justin Newton via bitcoin-dev
to allow 2 parties to exchange payment information in a permissioned and
encrypted way such that wallet address communication can become a more
automated process. Additionally, this extension allows for the
requestor of
Post by Justin Newton via bitcoin-dev
a PaymentRequest to supply a certificate and signature in order to
facilitate identification for address release. This also allows
for automated creation of off blockchain transaction logs that are human
readable, containing who you transacted with, in addition to the
information that it contains today.
1. Ensure that the payment details can only be seen by the participants
in
Post by Justin Newton via bitcoin-dev
the transaction, and not by any third party.
2. Enhance the Payment Protocol to allow for store and forward servers
in
Post by Justin Newton via bitcoin-dev
order to allow, for example, mobile wallets to sign and serve
Payment Requests.
3. Allow a sender of funds the option of sharing their identity with the
* Make bitcoin logs more human readable
* Give the user the ability to decide who to release payment
details to
* Allow an entity such as a political campaign to ensure donors
match regulatory and legal requirements
* Allow for an open standards based way for regulated financial
entities to meet regulatory requirements
* Automate the active exchange of payment addresses, so static
addresses and BIP32 X-Pubs can be avoided to maintain privacy
and convenience
In short we wanted to make bitcoin more human, while at the same time
improving transaction privacy.
https://github.com/techguy613/bips/blob/master/bip-invoicerequest-extension
Post by Justin Newton via bitcoin-dev
.mediawiki
We look forward to your thoughts and feedback on this proposal!
Justin
_______________________________________________
bitcoin-dev mailing list
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Loading...