public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: "Jose Femenías Cañuelo" <jose.femenias@gmail.com>
To: bitcoin-dev@lists.linuxfoundation.org
Subject: [bitcoin-dev] easypaysy - A layer-two protocol to send payments without addresses
Date: Thu, 5 Dec 2019 21:00:03 +0100	[thread overview]
Message-ID: <E70934BE-E7BE-4035-BBFF-47005E25C441@gmail.com> (raw)

Hi ZmnSCPxj

first of all, excuse me for my delayed answer. 

I think I posted to the wrong address the first time (I’m mainly a lurker in the list, so I make gotchas like that…)

Let me address your points.

> It also means that to register an account, you need to either own some Bitcoins, or rent some Bitcoins to serve as signalling (and then potentially have to change your account identifier later when the lease expires). 

I don’t understand what you mean by ‘renting’ Bitcoins. 
Once you commit the account transaction, the account ID never changes.
(Also, you don’t need to own Bitcoins if you use a Master Easypaysy Account. See my comments later on).



> Finally, use of the blockchain layer is costly; given that payees must be online at any time payers wish to pay, it may do better to just use Lightning instead,

That is not the case. 
When using non-interactive payments, the payee doesn’t need to be online at all.
Even for interactive payments, it depends on the protocol you use.

For Bitmessage, or email, or even MQTT you don’t need to be online simultaneously. (The interactive protocol(s) is still open, however, those are just some hypothetical examples):

Anyway, when using interactive payments, the payee has the option to specify an LN invoice and/or a bitcoin address.



> which has the same requirement, but moves payments to a separate layer as well, and requires only a single onchain transaction to construct a channel (easypaysy seems to require at least 2, one to anchor the account pubkeys, the other to give the basic "activation" information for the account). 

Easypaysy accounts don’t need 2 TXs. They need funding plus a TX for the account information itself.
So, you need an UTXO -to fund the account- and a TX. 
But the UTXO can be one of many in the same transaction. 
So, you could fund multiple accounts with a single TX.


> Also, one of the contact-information protocols supported should probably be Tor hidden services, instead of `https`. Tor hidden services have better useability (no need for port forwarding or registering DNS from some centralized service), with privacy as a bonus. 
Easypaysy is protocol agnostic (for now). So, Tor is definitely a possibility.


> Further it seems insufficient to only encode block and tx index. I think it should also encode output index, to also allow a single transaction to anchor multiple accounts. Also consider using the Lightning encoding of identifying an output: 543847x636x2 
There is really no need to specify an additional output.
If I am right, you can’t have more than one OP_RETURN per transaction.

On the other hand, as you can see in the white paper “4.2 Master accounts”, these type of accounts allow for up to 2048 accounts per transaction.

The format of the ID in this case is: btc@master_idx.slave_id/checksum

The master_idx is an ordinal pointer (not positional) to the Master TX, while the slave_id points to one of the 2048 transactions within the account (whose information is stored elsewhere, protected by a Merkle root committed in the Master Tx)

There is a little bit more to it that seems appropriate to discuss here, please have a look at page 25 of the white paper.

Thanks for your input.


Best regards,

José Femenías

             reply	other threads:[~2019-12-05 20:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-05 20:00 Jose Femenías Cañuelo [this message]
2019-12-06  2:53 ` [bitcoin-dev] easypaysy - A layer-two protocol to send payments without addresses ZmnSCPxj
2019-12-06  7:56   ` Jose Femenías Cañuelo
2019-12-06 17:16     ` ZmnSCPxj
2019-12-06 18:47       ` Jose Femenías Cañuelo
2019-12-07  4:09         ` ZmnSCPxj
  -- strict thread matches above, loose matches on Subject: below --
2019-12-02 21:25 Jose Femenías Cañuelo
     [not found] <mailman.1377.1575015939.25512.bitcoin-dev@lists.linuxfoundation.org>
2019-12-02 14:00 ` Jose Femenias
2019-12-02 17:27   ` Tim Blokdijk
2019-12-02 21:10     ` ZmnSCPxj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E70934BE-E7BE-4035-BBFF-47005E25C441@gmail.com \
    --to=jose.femenias@gmail.com \
    --cc=bitcoin-dev@lists.linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox