Giter Site home page Giter Site logo

Comments (8)

ripper234 avatar ripper234 commented on June 30, 2024

@dacoinminster @marv-engine - please review.

from spec.

dacoinminster avatar dacoinminster commented on June 30, 2024

Sorry - I meant to comment on this earlier, but apparently I didn't.

Having an output to the reference address has a couple advantages too:

  • The recipient gets a ping when somebody sends them money, even if they are only using a standard bitcoin wallet
  • The recipient wallet can send the money out again using the BTC received as part of the outgoing transaction, such that if the incoming transaction gets invalidated, the outgoing transaction will also be invalidated. This removes the need to wait for confirmations if you want to immediately use money you have received.

Both of these advantages would be lost if we merely encoded the recipient address in our data fields.

I think if we make a change in this direction, it would need to be a new multi-send transaction type. Perhaps this new transaction type could also take multiple balance inputs.

from spec.

ripper234 avatar ripper234 commented on June 30, 2024

Please make sure to consider #77 if/when making progress on this issue.

from spec.

dexX7 avatar dexX7 commented on June 30, 2024

The recipient wallet can send the money out again using the BTC received as part of the outgoing transaction, such that if the incoming transaction gets invalidated, the outgoing transaction will also be invalidated. This removes the need to wait for confirmations if you want to immediately use money you have received.

That's an interesting argument. One could do almost trustless escrow-free trades. Say I want to buy MSC from you directly, but I don't trust you enough to simply send you BTC: you could prepare the transaction and tell me the TXID. I then could build the BTC transaction which includes your output. If you - for any reason - invalidate the MSC send transaction - you'd also invalidate my BTC payment. (edit: invalidated due to the potential of a double-spent, since the tokens are not bound to the output exclusively)

I haven't thought much about use-cases, but a simple multi-send is the most obvious one, if multiple transactions could be chained and I thought seperation should be a general goal. :)

Edit: after reading #77, this idea for another use-case came into my mind. Some say address reuse should be avoided, so one could attach another send of the remaining balance to the next wallet. Say I have 5 MSC and I'd like to send Ron 2 MSC, I then could create a chained transaction:

Input: [My wallet A with 5 MSC], Output: [Tx1: Send 2 MSC to Ron] [Tx 2: Send 3 MSC to my wallet B]

from spec.

dacoinminster avatar dacoinminster commented on June 30, 2024

If we do this, it will be under issue #54

from spec.

ripper234 avatar ripper234 commented on June 30, 2024

If you don't mind, I'll reopen this is as a reminder.

The reason for reopning is it seems to be two completely separate issues - I can see us doing one but not the other. Why not keep both open for the time being?

from spec.

dexX7 avatar dexX7 commented on June 30, 2024

Even though it doen't seem to be in work since yesterday, I literally stumbled upon this pretty much the day before:

A similar concept is currently implemented in XCP which moves references aka. destinations onto the data layer, seperated by an underspace to allow multiple recipients. Haven't reviewed it completely yet, but it also seems like multiple senders are possible as well (and data packs are now obfuscated).

https://github.com/CounterpartyXCP/counterpartyd/pull/ 298

Edit: it's actually much less neat as expected.

from spec.

dexX7 avatar dexX7 commented on June 30, 2024

Small note and addition:

A seperator is not necessary, if there is a terminator at the end of a chain, e.g.:

[transaction 1] [transaction 2] [...] [0x0000]

This aligns well with current transactions, because due to the fixed length of a data package embedded as public key, we usually end up with zero padding at the end anyway.

from spec.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.