NEM Cross-Chain key storage & transaction framework

Greetings All,

I had an interesting idea as well about cross-chain transactions that I’d like to put out there.

In a nutshell:

  • Incorporate the algorithms for third party blockchains’ address creation (i.e. bitcoin, litecoin, eth, etc)
  • Users use NCC to create private & public key pairs for 3rd party blockchains. Private key is then stored in a NEM block via an encrypted message to self, and the public address is readily available to the user via NCC.
  • Users can initiate outbound transactions for 3rd party blockchains; this temporarily decrypts their stored private keys and uses them to sign transactions intended for third-party blockchain (ideally their balance is visible, otherwise their transaction may exceed their balance and get rejected - transaction fees also need to be considered)
  • Signed entries for third party blockchains are sent to a Supernode or equivalent
  • Supernode or equivalent is concurrently running a node on the third party blockchain; it sends the signed transactions on behalf of the NEM user for a small fee, never seeing the private key used to sign it. Ideally the supernodes advertises which blockchains they can transact on to other nodes.


Yes, essentially in this case, a supernode would be acting as the oracle between the two chains. The important thing I would wonder about is if the Supernode could be trusted.

If the other network was like NEM, then yes, you could do the txs trustlessly through the supernode as all information could be client side. But I’m worried a bit about using them as an oracle for other chains. Like for instance Tor nodes have been able to interfere with Bitcoin payments before and some people lost money. I wonder if this could happen in this case too. Not sure.

I must admit some naivety around the technical details on this, but from the Bitcoin Whitepaper "“Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin.”

So the client would need:

  1. Their own Private Key [stored in the client’s NEM wallet via encrypted msg to self]
  2. The Public key of the recipient [Manually entered by the sender]
  3. Hash of the previous transaction [More complicated - would have to come from a supernode? Perhaps multiple super-nodes to verify? This part is trickier]

The client’s wallet would take these elements, create the signed hash, and send the signed hash to the supernode for transmission to the other blockchain.

In this case the supernode could potentially not submit the transaction to the other blockchain. They wouldn’t be able to intercept the funds, only prevent or delay the transfer of them. This could result in funds getting held up, but not in a double spend on the other blockchain. The NEM blockchain would never be a good datasource for confirming transactions on 3rd party blockchains, so you’d always need to check the other blockchain to confirm the transaction. The biggest risk I see here is that the transaction is never submitted, or it gets submitted like a year later… I don’t have answers for this scenario, but I suspect it’s solvable.


How does the other coins(platforms) solve this issue of th e 3rd party information supplied
to their blockchain.
The blockhain is a separate entity not connected to the outside world and any external data
by itself therfore it needs some kind of data source to be able to implement some
bussines logic for example peer to peer betting or predicton markets inssurance.

I have seen lot of ICOs recently based on ethereum platform
Augur (opinion markets) , Wagger (p2p betting)
and other platforms like byteball too have similar functionality + some more like flight delay insurance.

I still do not get how this works without the risk of being “cheated” as this relies on
nodes (node operators called oracles run by people) that could cheat forming a cartel and
supply false information to the blockchain.

So similar to the problems you describe here my question is what prevents
(people, node operators to cheat in this networks)

How is the the 3rd party information verified?!
Who decides the truth?!

Is this even possible or is just their marketing trick and they actually
are selling bullshit (decentralised this and that) ?

Maybe someone with more knowledge could give some explanation.

Atomic is a sort of programmatic escrow, but what percentage of real world (aka post-speculative) crypto transactions are a currency exchange? In a practical application of blockchains, this may be the case for colored coins and such, but the bulk of transactions are one-way so far as blockchains are concerned. The Atomic solution does make a lot of sense for certain use cases, but so far as I see it, a realistic business / banking use of NEM likely would not rely on a programmatic escrow system for fund transfers.

I see the proposed solution as a way to store and manage wallets from numerous blockchains, rather than a platform to exchange NEM for other crypto… NEM becomes a master wallet of sorts - you don’t need an online wallet, exchange, nor to run a node in order to store and transact other blockchains within this solution - NEM becomes your key manager and transactional agent. This isn’t intended as a way to trade cryptocurrencies, only as a way to store and transact them. It’s a different solution, but certainly open to discourse!!

So the use case: Business A wants to transact with Business B. Business A has a Mijin solution, but Business B uses Etherium. Business A can now transact on the etherium network using their Mijin blockchain, over the NEM blockchain, using an Etherium wallet they have stored on either Mijin or NEM. Business A also gets hit by cryptolocker!!! Oh no! Luckily, they also have a Bitcoin wallet stored in their Mijin instance (or NEM) and are able to send those to unlock their computers.

Mijin and NEM become a company’s platform to transact across numerous blockchains, without the need to run a node for any of them, rely on online wallets, nor use an exchange. Sure, they do need one of these to fill their wallets, but once their wallets have a balance, transacting with that balance becomes NEM/Mijin based.

That’s what Ripple is for :slight_smile:
Not because Ripple is better than NEM in general but beause the use case you’re describing is exactly what Ripple is built for and it’s where it excells.

I was unaware the Ripple was able to store and transact across other blockchains…? Even so, it sounds like you don’t see value in NEM also having this functionality - it was just an idea that popped into my head and I wanted to bounce it around & see if it stuck, but I think it’s got potential to add to NEM’s value proposition… That said, there are loads that we could be working on and only so many dev resources to tackle them, so prioritization is key! Keep up the good work either way.

Well it doesn’t but it’s currency agnostic. So long as you provide a gateway it’ll work with any asset you provide it. It does it more seamlessly, at least imho, than it would work say using mosaics and namespaces.
I do think there’s value in that and I do think that what Ripple does would be awesome to have in NEM. I’d just like to see it implemented into the system itself not built around it.