Comments (8)
@dacoinminster @marv-engine - please review.
from spec.
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.
Please make sure to consider #77 if/when making progress on this issue.
from spec.
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.
If we do this, it will be under issue #54
from spec.
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.
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.
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)
- Update specification for 0.0.10 changes HOT 4
- Best solutions to list USDT on an exchange? HOT 2
- A transaction send USDT(version:0.13) to BTC(version:0.16) address,How to transfer out from BTC address? HOT 8
- is there any qrcode spec like bip21? HOT 2
- TetherUS - USDT guide ? HOT 1
- Where could I find a detailed description of the freezing tokens and unfreezing tokens ?
- why omni do not support p2pk input as a sender in Class C? HOT 1
- Endianness is unspecified HOT 1
- Failed to load freeze state from levelDB. It is unsafe to continue. HOT 1
- [Question] Is there any risk by using the same address for toadress and feeaddress in omni_funded_send/omni_funded_sendall API? HOT 1
- Why are 32 bits of Property ID enough? HOT 1
- Convert Specification to AsciiDoc from Markdown HOT 3
- Start work on revised specification in file name OmniSpecification -- move spec out of README file HOT 4
- New Tx Types: Send with Receipt Request, Send with Receipt (to prevent loss of misdirected funds, and other uses) HOT 11
- Update include images that still say Mastercoin or MSC. HOT 3
- #345 HOT 1
- Еду домой HOT 1
- taproot support
- Clarify and/or Improve Dev OMNI section in the specification
- [Discussion] On-chain protocol layer HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spec.