Author

Topic: WalletSwap (Read 393 times)

newbie
Activity: 4
Merit: 0
September 14, 2018, 03:11:04 AM
#15
Thanks for the post, it helps alot!
hero member
Activity: 1778
Merit: 764
www.V.systems
September 12, 2018, 08:48:48 AM
#14
Can this idea be adopted for wallet destruction?
As in destroying a wallet completely, essentially burning the coins / tokens.

If you care to look at, then here's something I'm trying to cook : Help me DESTROY Bitcoin!

Any technical insight / suggestions would be helpful.

What you are talking about already exists:

Proof of burn

I've already answered the point about Proof of Burn. Here's the statement:

What you are describing has been done before. You might want to lookup the story of Counterparty who was responsible for trading a new currency "XCP" for people who were willing to burn bitcoin in exchange. Over 2,100 BTC's were burned this way.But some smaller startups have done it as well in the past.

Well, I'm not them. And if something has been done before does not mean it can't be done again in a much better way. I haven't even described 10% of the full functionality of what I am intending to build.

PS: I've heard of XCP before but wasn't aware of their 'burning bitcoins' ideology. Thanks for digging it up. Now I'll know what I need to do differently.

Thanks for getting involved in the thread. However, I am still looking for interested people who'd want to do this.
legendary
Activity: 1288
Merit: 1926
฿ear ride on the rainbow slide
September 11, 2018, 04:54:39 AM
#13
Can this idea be adopted for wallet destruction?
As in destroying a wallet completely, essentially burning the coins / tokens.

If you care to look at, then here's something I'm trying to cook : Help me DESTROY Bitcoin!

Any technical insight / suggestions would be helpful.

What you are talking about already exists:

Proof of burn
hero member
Activity: 1778
Merit: 764
www.V.systems
September 11, 2018, 02:20:36 AM
#12
Can this idea be adopted for wallet destruction?
As in destroying a wallet completely, essentially burning the coins / tokens.

If you care to look at, then here's something I'm trying to cook : Help me DESTROY Bitcoin!

Any technical insight / suggestions would be helpful.
legendary
Activity: 1288
Merit: 1926
฿ear ride on the rainbow slide
September 06, 2018, 08:07:26 AM
#11
Who and/or what is creating the private keys... where and how are they stored? Huh

You keep talking about "the network" like it is some magical black box that has a lot of functionality built in to it... and your picture above showed the private key stored on the blockchain!!?! Shocked Shocked Shocked

I don't see how you can possibly "give" a private key to the other party... Huh


Unfortunately OP seems to not have an answer to these questions  Undecided
I have asked similar ones, but didn't get any reply.

This whole 'walletswap' probably just was a small idea without investing too much thoughts.
Either this or it's a (relatively) well planned scam.. but i doubt that.


The whole approach of swapping sensitive information like this can not work. Private keys are not something one HAS, but something one KNOWS.
OP, if you are serious with this.. then you'd better stop wasting more time on that 'project'.

Was already answered here:



Party A uses the "create address" function from his X wallet app (it sends a small fee)

The X network creates the public and private key and give the AY public address to A but retains the AY private key on the X network

Party B uses the "create address" function from his X wallet app (it sends a small fee)

The X network creates the public and private key and give the BZ public address to B but retains the BZ private key on the X network

Party A funds the AY address and using the X wallet app sends a small fee to create a sale order.

Party B "buys the order" (by sending a small fee and message on the X network)  and funds his BZ wallet accordingly.

The X network checks the balance of the AY and BZ wallets and sends a message to the X wallet app for the users to confirm manually.

Each user check the relevant blockchain and either accepts or rejects the sale. (small fee for the message)

The sale can be rejected by either party until both have accepted the sale.

Once accepted the X network disconnects the ability to trade on the AY and BZ wallets and the BZ key is provided to A and the AY key is provided to B


If at any stage a party cancels a offer or sale the party that cancels it is given the key to their wallet.

So if A cancels their sale of AY they send a small fee message to the X network. The network disconnects the ability to use the wallet and issues the AY key to A.


AND


So A who owns wallet AY has the private key generated and stored on the X network. Encrypted by both AX and XX.

So B who owns wallet BZ has the private key generated and stored on the X network. Encrypted by both BX and XX.

Only when a trade is completed the AX key is used to unlock the AY private key and released to B by the X network

If the trade is cancelled by A the  AX key is used to unlock the AY private key and released to A by the X network



The transaction only provides the key to the correct recipient. It doesn't transfer any value. So block size is not relevant.

A sale on the X network will only transfer the ownership of the AY key to B and the BZ key to A

Neither party will have had access to the key but they will have had full control over the key.

Only the AX wallet can determine whether to swap or retrieve the AY private key - but it is safely stored on the X network by encrypting it with its own encryption XX and from the AX wallet.

Only the BX wallet can determine whether to swap or retrieve the BZ private key - but it is safely stored on the X network by encrypting it with its own encryption XX and from the BX wallet.



Regarding:


This whole 'walletswap' probably just was a small idea without investing too much thoughts.
Either this or it's a (relatively) well planned scam.. but i doubt that.


The whole approach of swapping sensitive information like this can not work. Private keys are not something one HAS, but something one KNOWS.
OP, if you are serious with this.. then you'd better stop wasting more time on that 'project'.

You're entitled to your opinion. I don't understand your reasoning. This is not a working model so I'm not quite sure how a theoretical discussion could be a "scam" or even be accused of possibly being a scam.  I'm clearly not selling anything or promoting the use of a working system. We are discussing a theoretical model.

The only way it would work is if it was entirely open source and transparent with the code.

The keys would be generated by using encryption generated from both the wallet that initiates the creation and a key generated and stored by the network. So neither the user key nor the network key would be able to access the private key on its own until outcome of the transaction is accepted by both the network and the user.

The whole idea is not much different to keeping your crypto on an online wallet - except in this case you hold part of the encryption that unlocks the key - making the wallet more secure than your average online wallet,

Making it work and secure could be a challenge but not impossible. If it was an outright stupid idea I'm sure the people that I discussed this with privately before posting it here would have said so already.




Who and/or what is creating the private keys... where and how are they stored? Huh

You keep talking about "the network" like it is some magical black box that has a lot of functionality built in to it... and your picture above showed the private key stored on the blockchain!!?! Shocked Shocked Shocked

I don't see how you can possibly "give" a private key to the other party... Huh

Yes- private key is generated by the blockchain and is stored encrypted on the blockchain.

Once the transaction is accepted by the network and both parties the key is provided to the relevant party.

Both the user application and the blockchain use encryption to ensure that the private key is securely generated and stored on the blockchain until required.

Neither the user application nor the blockchain have the capacity to unlock or decrypt the private key without the other. A bit like multisig.

If a successful trade is made the private key is provided to the other party - the party that generated the wallet will have never seen the private key. If a user cancels a listing or wallet the wallet is no longer able to be used for trades and the private key is provided to the user to withdraw.

The wallets are once use only. Once the private key is disclosed to the relevant party the wallet address no longer is able to be used to fund a trade.

Both parties use an X app to communicate via encryption to the X network. Once released by the A the AY private key is provided to B by the X network directly to B's X ap in an encrypted format that only the BX key can read.




A 'wallet' is just a piece of software which manages private-/public- keys.
What exactly should 'the network' (and how ?) create ?

Is your approach that 'the network' creates a private-/public- keypair and provides the address to send funds to ?
You'd need to outline the creation of the private key more closely.

Private keys are information. They are just numbers. Anyone who knows it, can access the funds.
How shall 'the network' create the private key without knowing it (since you have spoken from a trustless system) ?


Example:

User A uses their X wallet (of which they have the public and private key) to send an encrypted "create"  message to the X network.
This message together with a key from the network is used to encrypt the generated AY private key.

The X network only discloses the AY public key/ wallet address to A

The X network then retains the AY private key securely. A can control it by sending a "confirm trade" message in which case it is disclosed to B or a "cancel" message in which case it is disclosed to A.


I'm not advocating using such system for permanent storage - it is a single use wallet to complete a trustless trade.

Surely a system that holds your funds in a wallet that you have have the encryption solution to is safer than:

A large exchange wallet that you don't have the keys to and is a big prize for hackers.
A dex that tokenises your crypto and you have to hope you can exchange the tokens back to BTC (or other major crypto)
Wallets that have APIs that contain the key that are permanently connected to the internet.

Individual wallets will always be a smaller target for hackers. Every wallet will have its own unique keys which are not controlled by a single one person and only used for a the shortest time necessary.

I don't pretend to hold all the answers nor is this a format that has to be followed - this is one of the reasons to discuss it.  It is a concept that I believe could work and may serve a niche purpose in the crypto community.







legendary
Activity: 1624
Merit: 2481
September 06, 2018, 03:25:19 AM
#10
Who and/or what is creating the private keys... where and how are they stored? Huh

You keep talking about "the network" like it is some magical black box that has a lot of functionality built in to it... and your picture above showed the private key stored on the blockchain!!?! Shocked Shocked Shocked

I don't see how you can possibly "give" a private key to the other party... Huh


Unfortunately OP seems to not have an answer to these questions  Undecided
I have asked similar ones, but didn't get any reply.

This whole 'walletswap' probably just was a small idea without investing too much thoughts.
Either this or it's a (relatively) well planned scam.. but i doubt that.


The whole approach of swapping sensitive information like this can not work. Private keys are not something one HAS, but something one KNOWS.
OP, if you are serious with this.. then you'd better stop wasting more time on that 'project'.
HCP
legendary
Activity: 2086
Merit: 4361
September 06, 2018, 12:04:48 AM
#9
Who and/or what is creating the private keys... where and how are they stored? Huh

You keep talking about "the network" like it is some magical black box that has a lot of functionality built in to it... and your picture above showed the private key stored on the blockchain!!?! Shocked Shocked Shocked

I don't see how you can possibly "give" a private key to the other party... Huh
legendary
Activity: 1288
Merit: 1926
฿ear ride on the rainbow slide
September 05, 2018, 10:17:26 PM
#8

Yes, I am aware that it is a common practice.
But shouldn't the point of a new tech be to improve upon an older tech?

Regardless, there are a few kinks here and there, how committed are you to this idea? You have made quite a bit of time investment, are you at a position to make any financial investment maybe make this a real product?

If the market picks up like it did in December last year I would be in a position to fund a project (It would have good tax advantages for me too) .  Currently I am reluctant to make moves beyond HODL in the crypto market.

I've never seen it as a project that I would necessarily have to develop myself for personal gain but rather to throw it out in the wild and assist others that see it for its potential.  Many good ideas die because people keep it to themselves.

There have been some limited discussions with others about creating a working prototype as a means to take it forward from a theoretical model to something that would be marketable. A couple of the people I approached said - publish it on bitcointalk.  There was some commercial interest in it about half a year ago in a similar design (slightly different vendor machine model)  but it never eventuated into anything because the company is busy with other projects.
hero member
Activity: 1778
Merit: 764
www.V.systems
September 05, 2018, 08:54:40 PM
#7

Yes - you are on track.
They are use and forget wallets. It will generate a lot of one time use wallets. Each wallet costs to create by sending a set amount of X to the X network.
So the only disposable wallets that are created are paid for. The only wallets that are disposable are the ones used for the swap (AY and BZ). The AX and BX wallet can be reused.
The X fee will limit and discourage the number of junk wallets.
The use and forget wallets are for use on the Y and Z network so doesn't affect the X network.
It is already possible to create an infinite number of wallets for a network and it is already happening that trillions of keys are being generated.
https://motherboard.vice.com/en_us/article/nzpv8m/the-large-bitcoin-collider-is-generating-trillions-of-keys-and-breaking-into-wallets
Address re-use is not a recommended practice anyway. https://en.bitcoin.it/wiki/Address_reuse

Yes, I am aware that it is a common practice.
But shouldn't the point of a new tech be to improve upon an older tech?

Regardless, there are a few kinks here and there, how committed are you to this idea? You have made quite a bit of time investment, are you at a position to make any financial investment maybe make this a real product?
legendary
Activity: 1288
Merit: 1926
฿ear ride on the rainbow slide
September 05, 2018, 08:38:58 PM
#6
Long story short you are talking about a private key exchange. But If that's the case then this would be very inefficient.
First, you need a non-transferable wallet and you need a transferable wallet - the later of whose keys would be exchanged. Now there has to be a way for you to store both these wallet identifiers, which is where the 'network' come in to play.. am I on track so far?

Here's my query, are these swaps carried out on use & forget wallets? Wouldn't this generate way more junk wallets and data that would be used to do the swaps? Wouldn't tracking that itself be inefficient?

Yes - you are on track.

They are use and forget wallets. It will generate a lot of one time use wallets. Each wallet costs to create by sending a set amount of X to the X network.

So the only disposable wallets that are created are paid for. The only wallets that are disposable are the ones used for the swap (AY and BZ). The AX and BX wallet can be reused.

The X fee will limit and discourage the number of junk wallets.

The use and forget wallets are for use on the Y and Z network so doesn't affect the X network.

It is already possible to create an infinite number of wallets for a network and it is already happening that trillions of keys are being generated.

https://motherboard.vice.com/en_us/article/nzpv8m/the-large-bitcoin-collider-is-generating-trillions-of-keys-and-breaking-into-wallets

Address re-use is not a recommended practice anyway. https://en.bitcoin.it/wiki/Address_reuse


hero member
Activity: 1778
Merit: 764
www.V.systems
September 05, 2018, 08:10:31 PM
#5
Long story short you are talking about a private key exchange. But If that's the case then this would be very inefficient.
First, you need a non-transferable wallet and you need a transferable wallet - the later of whose keys would be exchanged. Now there has to be a way for you to store both these wallet identifiers, which is where the 'network' come in to play.. am I on track so far?

Here's my query, are these swaps carried out on use & forget wallets? Wouldn't this generate way more junk wallets and data that would be used to do the swaps? Wouldn't tracking that itself be inefficient?
legendary
Activity: 1288
Merit: 1926
฿ear ride on the rainbow slide
September 05, 2018, 11:53:58 AM
#4
Quote
Each party application sends a signed message and public key to the network to initiate the process.
So in your example Party A has the Private key for address A
And in your example Party B has the Private key for address B

Quote
Party “A” receives the private key to party “B”s wallet from the network.
Party “B” receives the private key to party “A”s wallet from the network.
So in your example Party A has the Private key for address A and B now also knows the Private Key for address A
And in your example Party B has the Private key for address B and A now also knows the Private Key for address B

Sharing Private Keys seems like a bad choice! Party A still has control over address A after it has been "handed over" to B so A could just clear the address after a successful wallet swap.

No - Party A and Party B have a special "wallet" that is created to communicate with the coin network.

So lets call the token on the blockchain that runs the wallet swap x
BTC we will call y
ETH we will call z

So party A wants to sell Y for Z

Party B wants to buy Y for Z

Party A creates a wallet for X and has a public and private key for X

Party B creates a wallet for X and has a public and private key for X

Party A uses the "create address" function from his X wallet app (it sends a small fee)

The X network creates the public and private key and give the AY public address to A but retains the AY private key on the X network

Party B uses the "create address" function from his X wallet app (it sends a small fee)

The X network creates the public and private key and give the BZ public address to B but retains the BZ private key on the X network

Party A funds the AY address and using the X wallet app sends a small fee to create a sale order.

Party B "buys the order" (by sending a small fee and message on the X network)  and funds his BZ wallet accordingly.

The X network checks the balance of the AY and BZ wallets and sends a message to the X wallet app for the users to confirm manually.

Each user check the relevant blockchain and either accepts or rejects the sale. (small fee for the message)

The sale can be rejected by either party until both have accepted the sale.

Once accepted the X network disconnects the ability to trade on the AY and BZ wallets and the BZ key is provided to A and the AY key is provided to B


If at any stage a party cancels a offer or sale the party that cancels it is given the key to their wallet.

So if A cancels their sale of AY they send a small fee message to the X network. The network disconnects the ability to use the wallet and issues the AY key to A.

B can either cancel their wallet or list the BZ for sale for a small fee.

Every Message sent by the x wallet costs a small fee. So there are no % of trade fees - just communication fees.

The X network stores the keys to the other coin wallets and provides them to A or B depending on whether a trade takes place.

The AY and BZ key are encrypted on the X network by both the key of the owners wallet and by the network itself. So neither the owner of the funds - nor the network has access to.


So A who owns wallet AY has the private key generated and stored on the X network. Encrypted by both AX and XX.

So B who owns wallet BZ has the private key generated and stored on the X network. Encrypted by both BX and XX.

Only when a trade is completed the AX key is used to unlock the AY private key and released to B by the X network

If the trade is cancelled by A the  AX key is used to unlock the AY private key and released to A by the X network


While it may seem unusual to have a fee for each step - a micro fee would not affect users and can pay for the network miners.

Since the network only stores the private key in encrypted form and the fee is paid for the message rather than the size of the sale there is no record of buyer or seller. The size of the transfer will not be known. Because the buyer and seller are exchanging wallets the buyer and seller cannot be easily matched.

Since the buyer and the seller are able to import the private key into their wallet (or a wallet built into the X wallet app) any withdrawal will not match times of when the messages are sent to conduct the swap.

This means i can fill the whole block with just one transaction and one small fee ?
Doesn't sound very resilient against spam attacks..

The transaction only provides the key to the correct recipient. It doesn't transfer any value. So block size is not relevant.

A sale on the X network will only transfer the ownership of the AY key to B and the BZ key to A

Neither party will have had access to the key but they will have had full control over the key.

Only the AX wallet can determine whether to swap or retrieve the AY private key - but it is safely stored on the X network by encrypting it with its own encryption XX and from the AX wallet.

Only the BX wallet can determine whether to swap or retrieve the BZ private key - but it is safely stored on the X network by encrypting it with its own encryption XX and from the BX wallet.


The X network - apart from transferring its own tokens - does not transfer coin values - it only stores, swaps or releases the private keys of the other coins.

B receives a AY wallet that is funded by A but the AY private key is securely generated and kept by the X network until the deal is completed.



This is a theoretical model - that could work with funded and unfunded Y and Z wallets.

Hedging using WalletSwap

A bond in X could be paid by A and B that if within a certain period of time the wallet is not funded the bond is released to the counterparty.

This would allow A to list 0.1 BTC (Y) for a certain price in ETH (Z) without yet funding the AY wallet in BTC but pay a bond in X that gets released to B if the sale does not take place withing a certain set time.

Likewise this would allow B to buy 0.1 BTC (Y) for a certain price in ETH (Z) without yet funding the BZ wallet in BTC but pay a bond in X that gets released to A if the sale does not take place withing a certain set time.
legendary
Activity: 1624
Merit: 2481
September 04, 2018, 02:34:24 AM
#3
A wallet is created by the network. 

A 'wallet' is just a piece of software which manages private-/public- keys.
What exactly should 'the network' (and how ?) create ?

Is your approach that 'the network' creates a private-/public- keypair and provides the address to send funds to ?
You'd need to outline the creation of the private key more closely.

Private keys are information. They are just numbers. Anyone who knows it, can access the funds.
How shall 'the network' create the private key without knowing it (since you have spoken from a trustless system) ?



Rather than have a fee based on the size of the transaction – each message sent carries a small fee.

This means i can fill the whole block with just one transaction and one small fee ?
Doesn't sound very resilient against spam attacks..
sr. member
Activity: 310
Merit: 727
---------> 1231006505
September 04, 2018, 02:25:44 AM
#2
Quote
Each party application sends a signed message and public key to the network to initiate the process.
So in your example Party A has the Private key for address A
And in your example Party B has the Private key for address B

Quote
Party “A” receives the private key to party “B”s wallet from the network.
Party “B” receives the private key to party “A”s wallet from the network.
So in your example Party A has the Private key for address A and B now also knows the Private Key for address A
And in your example Party B has the Private key for address B and A now also knows the Private Key for address B

Sharing Private Keys seems like a bad choice! Party A still has control over address A after it has been "handed over" to B so A could just clear the address after a successful wallet swap.
legendary
Activity: 1288
Merit: 1926
฿ear ride on the rainbow slide
September 03, 2018, 07:25:44 AM
#1
I'm not a developer and I haven't seen anything like it described anywhere. I believe it is a concept that could potentially solve some of the problems regarding anonymity, centralized coin exchanges, trust and cost of exchange listings for new coins and tokens. The idea would work great as an open source creative commons project.

WalletSwap could work as an alternative to atomic swaps. Atomic swaps use a method of hashed timelock transaction and is a brilliant idea and would have applications beyond what wallet swap would be capable of.

WalletSwap literally swaps the wallets and also removes the need for trust. It has one key advantage - it is super simple. It eliminates the need for actual wallets - since the keys can potentially be imported to a private wallet.

It is not intended as a solution for every situation. It would be an easy to deploy peer to peer vending machine for coins.- supplementary to other exchanges.

The users only receive the private keys if they cancel the wallet or a completed sale is confirmed by the network as well as both the buyer and the seller.

The application can be built to be part of a blockchain or a side chain.

How “WalletSwap”  works:

Each party has an client application that generates public and private keys.

Each party application sends a signed message and public key to the network to initiate the process.

A wallet is created by the network.  The wallet address is disclosed to the party that initiates the transaction and this address is used to deposit coins.
The client application allows the user to set the sale price. It also contains funtions to “alter price’, “purchase from dex (buy)”,“withdraw and cancel” and “confirm sale”. More functions could be added.

Rather than have a fee based on the size of the transaction – each message sent carries a small fee.

Party “A” sends the required amount to the wallet that was initiated by his client application and generated by the network. and “sets the price”.

Party “B” agrees to the price and sends the required amount to the wallet that was initiated by his client application and generated by the network.

The network checks for network confirrmations on each blockchain and when confirmed sends a message to the users to “confirm” the transaction. The application can be set to “auto cornfirm” and rely on the network check or the user can manually check the transaction of the other party on the blockchain. (This could be set to manually confirm as well in a simple setup)

Once both client applications confirm the transaction the client application process is locked and the transaction can no longer be cancelled.

Party “A” receives the private key to party “B”s wallet from the network.

Party “B” receives the private key to party “A”s wallet from the network.

If however prior to confirmation either party cancels the transaction – cancelling the transaction allows the party to withdraw the funds from their wallet. The process is locked and the party receives their wallet private key.

So if party “A” cancels their transaction before it is confirmed by both parties. Party “A” receives the private key to party “A”s wallet. Wallets are once only use. Once a private key is disclosed it is no longer available for use on the system.

The user can use the public key on the integrated wallet of the client application or export the private key data to an external wallet.

Funding for the Dex process can be from a user token wallet that requires payment for “generating a wallet address”, “altering price”, “confirming the sale” or “cancelling the transaction”. Each being a signed and encrypted message sent to the network.

A wallet swap dex can have a smart contract that allows coin developers to set up their own vending system. This allows the wallet swap dex to operate as a vending machine for new coins and tokens.

A coin developer would set the prefix of their wallets and nodes for their block explorer. It would make coin developers responsible for their own coin network. It would also eliminate issues for coin developers where exchanges are sometimes slow to update their wallets.

The client application could contain a custom coin wallet or it can just provide a private key that can be imported into the coins own developed private wallet.

It could be used for lots of other potential purposes as well.

Escrow of crypto securities
Derivative trading

Wallet swap would allow the “vending machine” to be integrated into any coin networks website. Allowing new coins or tokens to have their own instant exchange site.

Because the exchange only requires a wallet address to be generated – it would automatically be able to be used by the majority of coins that use a qt wallet.

WalletSwap could take the form of a clunky basic service that just swaps the private keys or more elaborate form that incorporates its own wallet for each coin it is capable of exchanging.

For the purpose of the illustration I have called the blockchain that performs the WalletSwap process "dexcoin".



I have some other variations of this model as well but I was keen to see if there was any interest in such a process.
Jump to: