Ethereum can block malicious users through ‘gas’, but ‘gas’ creates a discomfort to users who use a dapp. In injoin, a sponsor pays the fee for users who use smart contracts, so that users can use injoin without paying any fee and further solve the fundamental problem of decentralized application.

However, if the sponsor pays a fee to the user under any conditions, he/she is exposed to spam and sybil attacks by malicious users, and malicious users cause pollution to the ecosystem. In order to escape from this dilemma, the concept we present is ‘Pool’.

When a sponsor sponsors gas fee to users through Pool, injoin is protected from spam and sybil attacks. Furthermore, the scale of the network may expand several hundred to even several thousand times more.

Let’s take a look at the injoin Pool and find out if it can be practically implemented through this article.

First is the pool. A Pool is a smart contract and Pool is also similar to multi-sig wallets but has a different point. The sponsors create a contract through the Pool, and sponsor the gas fee in compliance of the contract. The owner of the Pool is the sponsor, and the sponsors can be registered by a user’s request, or request a user to enter. The users who come into the Pool will be paid according to the ‘sponsorship contract’.

In the figure above, there are users 1, 2, 3, and 4 and a sponsor pool. Users 1 and 3 sent a request to the sponsor, and User 2, 4 received a sponsorship request from the sponsor. User 1 receives the response to the request from the sponsor and is registered in the Sponsor Pool and receives the gas fee according to the sponsorship contract. User 2 has registered himself in the Sponsor Pool by responding to a sponsorship request by a sponsor. User 2 may also be eligible for gas fees in accordance with the sponsorship contract. User 3 has requested a sponsorship to a sponsor, but the sponsor has not responded therefore the user cannot be paid for the gas fee. User 4 didn’t respond to the sponsorship request by a sponsor, therefore the sponsor cannot pay the gas fee for User 4.

Users 1,2,3, and 4 in the figure above can make events using the injoin standard contract, and only through the injoin standard contract, the users can connect to the Sponsor Pool and receive gas fees. (Providing a standard such as the ERC20 standard)

Sponsors can sponsor users with the gas fee that apply to the standard contract.

Based on the information about the injoin standard and the Sponsor Pool, we will explain in detail how the gas fee is delivered to the user by the sponsor.

It may vary from each user, but new and unregistered users must make a pre-payment and get refunded.(Based on the Homestead) The smart contract will be great if it’s to pay the gas fee instead of the user. This is not possible on the homestead version but will be possible in the future on Serenity.

The main point would be the agreement on how the user and the sponsor receive gas refunds.

First, let’s look at the whole process of how a user receives the gas fee from a sponsor.

Prior to the description, users are divided into authenticated users and unauthenticated users (authenticated users are users whose real names are authenticated). Unauthorized users are likely to be spammed or suffer from sybil attacks. If a gas fee refund is available for unauthorized users, you do not need to consider to be a certified user. This explanation is about the method about how an unauthorized user can get paid for the gas fee. When a user uploads an event, the user selects the subject and region through the injoin standard.

The user can see the sponsor associated with the selected subject and region. You can register an already registered sponsor as a sponsor of the event, and you can choose a new sponsor related to the event subject or region (usually you can be requested sponsorship from sponsor or send a request to sponsor).

In the picture above, there is a ‘Sponsor Pool 1’ that added an ‘Event Subject’ to the sponsor list, and a ‘Sponsor Pool 2’ that added the ‘Event Send Category’ to the sponsor list. And there is a Sponsor Pool 3 that is already registered as a sponsor.

The User has requested a sponsorship to ‘Sponsor Pool 1’, and ‘Sponsor 1’ has responded to the sponsorship request. ‘Sponsor Pool 2’ has sent a sponsorship request to the User and the User has responded to the request. The user selects a sponsor from one of the Sponsor Pools 1,2,3.(If the sponsor is not registred in the sponsor list, the selected sponsor will be registered, and the Sponsor Pool that hasn’t been chosen by the User will be canceled)

If the sponsor has been chosen, due to the ‘Gas Fee Sponsorship Contract’, conditions for the sponsorship will be made and the User will be given sponsorship. (Gas limit, maximum gas amount, number of contracts, etc will be included in the ‘Gas Fee Sponsorship Contract’, and when the contract is violated the User will not be refunded with all or parts of the gas fee.)

If the sponsor made a condition that gas fee was paid for every 20 events, maximum gas limit of 50 per event, and the gas limit of 200,000 maximum limit per event for creating an event. The User can use the contract depending on this condition.

After the creation of an event, submit the transaction address, and the gas fee to the injoin standard for the creation of the next event. (When the service is released, the transaction address and the gas fee will be automatically processed by the client)

If you have used all 20 events mentioned above, the User can withdraw the gas fee from the Sponsor Pool that is worth 20 events. The sponsor may verify if the user has paid the gas fee according to the gas fee sponsorship contract, or has manipulated the transaction address. The scanner verifies in the injoin client side and notifies the sponsor if there is a singularity. During the verification process, you may be exposed to hacker attacks. However, the verification can be done multiple times and can be modified anytime even if the hacker manipulates the scanner’s verification. Hackers are ultimately unable to modify the state stored in the block chain, so hacker attacks are meaningless. The sponsor may approve the gas fee withdrawal by confirming the gas fee sponsorship contract, and the actual utilization value. The process of verifying the gas fee submitted to the Sponsor Pool will take place off the chain. Off chain, the user and sponsor will collect transactions that correspond to the injoin standard, and submit it to the Sponsor Pool. After verification of the transaction history, the mistaken submission or malicious submission from a user will be judged true or false, after viewing the transaction history, and the false users will be given a penalty.

The sponsor may not pay the gas fee. The solution for this is the gas fee sponsorship contract in the Sponsor Pool. The sponsor must deposit a certain amount of ETH into the pool, and when the gas fee sponsorship contract is created, the sponsors are not able to withdraw the amount from the Sponsor Pool. If the sponsor does not approve the withdrawal of the gas fee even though the user has fulfilled the terms of the contract, the user can withdraw the gas fee without approval from the sponsor. (this is done by contract, and it varies by contract. This is done by the agreement between a sponsor and a user.)

If a certain gas fee sponsorship contract seems suspicious or untrustworthy, users will not request for that sponsorship, and if the sponsor violates the sponsorship contract, he/she will not receive a good reputation. A typical sponsor will faithfully fulfill the gas fee sponsorship contract for his/her reputation.

We have looked at how users are reimbursed with the gas fee from a Sponsor Pool. The spam attacks and sybil attacks from unauthorized users were solved by the gas fee sponsorship contract. Unauthorized users will not have much freedom in terms of use in contracts, and to earn freedom the users must participate in events, or create events to fill event lists to earn a higher freedom. Possible manipulations in the process of the reimbursement of the gas fee can be solved by giving a penalty to the malicious users through comparison in the gas fee from the Sponsor Pool.We have complemented the shortcomings and realized the advantages of the blockchain. In the next section, we will look at the possible expansion in scalability of the service, by increasing the transaction efficiency through Pool network, and event network.