ELLIPAL’s Open Cross-Chain Wallet Framework

ELLIPAL — The Cold Wallet
3 min readAug 16, 2018

--

The Background

There are some kinds of wallets for cryptocurrencies. Brain wallet, paper wallet, hot(app, web) wallet and cold wallet. Brain and paper wallets are applied by very few people as it is not easy to manage. Some people use mobile phone app wallet while some others love pc based wallet like Bitcoin core wallet. More people use exchange generated account and address as their wallets.

By any kind wallets, you lost your coin as long as you lost or expose your private key.

Later, the cold wallet was introduced to store private keys. One piece of Internet isolated hardware locally connects to an application which can broadcast the transaction to the blockchain. The local connection between Internet-isolated hardware and online application can be USB, QR CODE Scanning or Bluetooth.

The concept of the cold wallet is very suitable for the decentralized cryptocurrency. However, there are only a few providers on the market due to the technology barrier like hardware design, security management, and the cross-chain ability.

Here we propose a general framework for cross-chain wallet implementation, particularly, the cold wallet or hardware secure wallet.

The framework

The framework is formed by four parts: cold wallet, app, OCCW-bus and chain plug-in.

1) The interface between cold wallet and App

This will be an Open Cold Wallet Protocol which is described separately in the following paragraph.

2) The interface between app and OCCW-BUS

This interface will be unified API which can perform basic wallet function like request of balance, Payment or spending and transaction record.

3) The interface between OCCW-BUS and chain plug-in

This part will be more specific on transaction forming and broadcast.

4) The interface between chain plug-in and nodes

This interface is generally from the node’s current interfaces like Ethereum RPC of web3.

Open Cold Wallet Protocol — The protocol between cold wallet and app

Receiving cryptocurrency is not private key related. Others just send cryptocurrency to one’s address and the transaction will be recorded on the blockchain.

Following is the general procedure of spending cryptocurrency:

- Generate a private key and the public key/address. A private key is actually 256bit random number.

- Form a transaction which includes sender, receiver, amount, transaction/miner fee and maybe others.

- Sign the transaction by the private key.

- Broadcast the signed transaction data to the p2p network. When the signed transaction is mined, it will be permanently recorded on the blockchain.

Besides address generation, only one action requires the private key — signing the transaction. So we could define an open protocol to describe the process of signing between a cold wallet and online app.

The protocol is formed by 3 interactions:

1) Sync the address from cold wallet to App

2) Send the data to be signed from App to cold wallet

3) Send the signed data back to App from cold wallet

So the related protocol can be in following format:

1) ELP://sync/accountname/cointype/address/chainextra

2) ELP://tosign/cointype/address/hexdatatobesigned/chainextra

3) ELP://signed/cointype/address/hexdatasigned/chainextra

In practice, the data to be signed should be full transaction instead of transaction hash. This will against the fake hash by App side. Therefore, decoding capability is needed in cold wallet.

The implementation

Based on the protocol and framework, ELLIPAL has built a cross-chain and multi-currency cold wallet which is support BTC, BCH, ETH and all ERC20 Token on this single software architecture. More chains are adding into the framework.

With this framework and protocol, many types of hardware can be secure, cross-chain, multi-currency cryptocurrency cold wallets.

--

--

ELLIPAL — The Cold Wallet
ELLIPAL — The Cold Wallet

Written by ELLIPAL — The Cold Wallet

Highest security for your assets, yet incredibly simple. ELLIPAL hardware wallet works with mobile phone and is requires no connection — https://www.ellipal.com

No responses yet