Components

Components supporting the same smart contract are said to belong to the same deployment, and they would recognize each other and trust each other by virtue of their identities being listed within the smart contract. It is important to note that all components belonging to the same deployment are owned by the same physical or legal entity as all the nice features Kchannels deliver are only possible if there can be no dispute between Kchannels' own internal components.

The smart contract is monitored by components called zones; these are domains of control within the deployment. Each zone is responsible for a subset of users and all their channels within the deployment. Zones act as facilitators for transactions and are not allowed to own anything within the deployment. In particular, they are not allowed to initiate (send) transactions on behalf of users, though they are sometimes allowed to terminate them (receive), depending on the channel owner's own preferences. The latter is deliberate decision made by the channel owner and is not being forced on them in any way.

A zone manager is a component part of Kchannels used as an onboarding tool; it is used to facilitate channel creation and any updates requested by the user thereafter. Its job is to facilitate the process of creating and modifying a channel definition, as well as allocating those channels to zones. At present it also contains our simple user interface for the system, our user authentication mechanism, as well as some tools internally used for channel discovery.

An ethereum node is a full node running in the Kchannels backend, which is responsible for handling any interactions between Kchannels' and the blockchain, including interactions between zones and the smart contract.

There are also a few additional components currently being planned:

A component called provision is being planned as a maintenance tool. This component is not client-facing and would be responsible for a number of small administrative tasks we are currently performing by hand, such as topping up the Zones' gas wallets, adding new zones and temporarily scaling individual zones to handle traffic peaks. This component would be the owner of all gas fees collected by all zones and is making sure the deployment is always fully-funded, fully-available, and self-sustaining.

A component called security node is being planned as part of the security layer we are discussing in the Security section. It is a non-client-facing shadow of one or more of our zones for the purposes of validating its actions and submitting a periodic report to the smart contract regarding the zone's disposition of assets. This component is what makes Kchannels trust-minimized. As part of the security layer, it is in a network of its own, and is not accessible to anyone, especially the zones it shadows. It creates and maintains an independent copy of a zone's channel states, and also has to sign off on any transactions performed by any zone it represents. If a zone ever gets compromised, the signatures stop coming and all assets being moved in violation of the rules of the system stay frozen in place. This component is also responsible for submitting regular reports to the smart contract for the purposes of establishing an accountability for all assets within the deployment.