FAQ

Q. Does Kchannels have an admin key that would grant us special access to the smart contract to, say, withdraw users' funds?

A. No. Kchannels can only do a few things at the smart contract, such as adding additional zone identities, adding funds to zones' gas wallets, and updating some operational parameters. It is explicitly and permanently forbidden within the smart contract from accessing funds, or even acting as a regular user for the system it manages. The only one with access to your funds is you. Don't lose your private keys--we truly do not have a way to help you if you do!

Q. Can you freeze a channel, e.g. in response to a court order?

A. Kchannels is a non-custodial system. It is designed for one thing and one thing only: facilitating transactions. Even if we could somehow cause a single user's channel to stop serving additional requests, there is nothing stopping that user from withdrawing his funds at the smart contract, bypassing anything and everything we can do to stop them. Kchannels was never designed to hold on to assets against their owners' wishes.

Q. What happens if I lose a private key for my channel?

A. It depends on the private key you lost. If you lost the private key for a sender or validator identity, you can simply use your channel owner identity to renegotiate your channel definition with fresh identities. If, however, you lost your channel owner key, you are forever locked out of your channel. If at the time you have a different sender identity listed on your channel, you may still be able to transfer your remaining assets to a different channel with a different owner identity. If, however, no sender identity is present, or if that one is also lost, your assets are forever lost to you. Unfortunately in this case we cannot help you; we do not have any access to the system' assets by design. Kchannels is carefully written to not allow us to own anything within it (except for the transaction fees we collect and use to provide the service to you).

Q. Is Kchannels better than System X? Can Kchannels do Y?

A. It depends on what you are trying to do. Better for what? What would an ideal solution to what you are trying to do look like? We designed Kchannels to solve a specific class of problems, and it is pretty good at that. We do not claim to have solved every problem everywhere, nor do we claim Kchannels is perfect. Please contact us, we are very interested to learn about problems people have with Kchannels, as well as new ways people try to use Kchannels. If not there already, we may be able to put your use-case on our roadmap.

Q. Why Is Kchannels "trust-minimized" and not "trustless"? What is the minimized part?

A. This is an architecture decision we made with Kchannels. A trustless payment channel needs to ensure it is fully-capitalized by some means, and thus has not been tampered with, at the smart contract level before every withdrawal. Unfortunately this always requires introducing unacceptable delays in withdrawal requests, or else asking users to take on unacceptable additional burdens, both of which affect UX. Security comes with a price tag in usability and the question is how much security one can afford. A trust-minimized solution aims to strike a better balance by taking a more practical and optimistic approach; it would still try to ensure the system is fully capitalized, however part of this check would take place after allowing the transaction, in the background, in order to maintain the required UX. A trust-minimized system is, therefore, designed to be tamper-evident, not necessarily tamper-proof. As there now can be a theoretical delay between someone tampering with Kchannels and it becoming evident, Kchannels is not strictly speaking trustless anymore. In the unlikely event this happens, our smart contract is always there to rule in favor of the user, as only the user can initiate a valid transaction, thus leaving us, the Kchannels operators, to cover the shortfall. We have identified this as risk, have mitigated in several ways, and have chosen to deal with the residual risk using a business process that would make our users whole.