Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 24

CREATE OUR OWN CRYPTO

TOKEN
A Minor Project Report
Submitted in Partial fulfillment for the award of
Bachelor of Technology in Computer Science & Engineering

Submitted to
RAJIV GANDHI PROUDYOGIKI VISHWAVIDYALAYA
BHOPAL (M.P)

MINOR PROJECT REPORT


Submitted by

Tanishka Gupta [0103IS201058] Nivedit Tiwari [0103IS201037]


Md. Faiz Naushad [0103IS201031] Arpit Kumar [0103IS201011]

Under the supervision of


Prof. Raj Kumar Sharma
Associate Professor

Department of Computer Science & Engineering


Lakshmi Narain College of Technology, Bhopal (M.P.)
Session Dec 2022
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY,
BHOPAL
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING

CERTIFICATE

This is to certify that the work embodied in this project work


entitled” Create your own Crypto Token” has been satisfactorily
completed by the Tanishka Gupta [0103IS201058], Nivedit Tiwari
[0103IS201037], Md. Faiz Naushad [0103IS201031], Arpit Kumar
[0103IS201011]. It is a bona fide piece of work, carried out under
the guidance in Department of Computer Science &
Engineering, Lakshmi Narain College of Technology, Bhopal
for the partial fulfillment of the Bachelor of Technology during
the academic year 2022-2022.

Prof. Raj Kumar Sharma


Associate Professor (GUIDE)

Approved By

Dr. Sadhana K. Mishra


Prof. & Head
Department of Computer Science & Engineering
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY,

BHOPAL

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

ACKNOWLEDGEMENT

We express our deep sense of gratitude to Prof. Raj Kumar Sharma (Guide)
department of Computer Science & Engineering L.N.C.T., Bhopal. Whose
kindness valuable guidance and timely help encouraged me to complete this
project.

A special thank goes to Dr. Sadhana K. Mishra (HOD) who helped me in


completing this project work. She exchanged her interesting ideas &
thoughts which made this project work successful.

We would also thank our institution and all the faculty members without
whom this project work would have been a distant reality.

Signature

Tanishka Gupta [0103IS201058] Nivedit Tiwari [0103IS201037]

Md. Faiz Naushad [0103IS201031] Arpit Kumar [0103IS201011]


SR TOPICS PAGES
No.

1. Problem Domain. 2

2. Major Objective and Scope of Project. 2

3. Problem Analysis and Requirement 3


Specification.

4. Detailed Design. 7

5. Software Platform Environment. 3

6. Snapshots of Input and Output. 5

7. Coding. 5

8. Project Limitation and Future Scope. 2

9. References. 1
1. Problem Domain

Money transfer overseas is a difficult undertaking. The fees are high, the
processing time is slow, the money can be intercepted or stolen, and there are legal
and tax issues that must be considered. A blockchain-based system would eliminate

these problems.

Crypto assets were created as an alternative to traditional banking infrastructure


that don’t need an intermediary and aren’t tethered to the capacity of a centralized
government, bank, or agency. Instead of relying on centralized intermediaries in
these transactions, the trust is placed in the blockchain code and the distributed
nature of the blockchain.

Cryptocurrencies allow for peer-to-peer transactions without a regulated


intermediary, giving the user the ability to easily transfer funds quickly without
having to pay transaction fees. Instead of identifying the transaction by an
individual bank account through a financial institution, transactions are simply
linked to the transaction ID on the blockchain. In 2019, the US Financial Crimes
Enforcement Network’s (FinCEN) determined that any cryptocurrency transactions
and custody services conducted through crypto entities that are considered money
service businesses must still abide by AML/KYC regulations. This will help avoid
malicious transactions, illegal activity, or scams using these platforms. These
regulations could help banks and larger financial institutions conduct due diligence
on customers involved in crypto transactions, further diminishing their anxieties
about the risks that these transactions pose.

Therefore, the most obvious and basic use for blockchain technology is its use as a
payments system. Bitcoin and other cryptocurrencies act both as digital money and
a method to send payments in those cryptocurrencies all across the world. These
transactions require only an internet connection and take place instantly. While it is
true that it may take many minutes for a transaction to be 100% confirmed, the
transaction itself takes place in a matter of moments. These transactions are
borderless, secure, and largely anonymous. Furthermore, transaction costs are
minimal, costing only a few cents per transaction making it a much cheaper way to
send money around the world than wire companies like Western Union or via
credit card processors such as Visa or Mastercard.
2.Major Objective & Scope of the Project.
Our project titled “Create your Own Crypto Token” is the best implementation for
the problem domain we have opted for. Making money transactions seamless,
efficient and cost efficient can revolutionize the banking sector by making money
transactions cheaper and more accessible to all the general public.

Our Project is based on Web 3.0 technology for the implementation of Crypto
Token based on the principles of Blockchain. Web 3.0 is the third-generation
implementation of Web Technologies which is widely known as one of the fastest
emerging technologies nowadays with various Web 3.0 Implementations like
Bitcoin, Decentralized Finance (DeFi) or Metaverse which have taken the world by
the storm.

Numerous of the most well-known businesses in the tech and commercial


industries, like Facebook, Google, Epic Games, etc., have acknowledged the
benefits that the Web 3.0 principles offer to diverse metaverse applications. The
web, also known as the World Wide Web, is the foundational layer for how the
internet is used, providing website and application services.

Through this project and its core idea of implementing Blockchain we wish to
increase the scope of Blockchain and Cryptocurrencies for the benefit of general
masses by reducing the dependencies on third party money transferring services.
Third party money transferring services are very risky as they don’t exactly
guarantee the transfer of money by justifying charging lower than official bank
services for transferring money.

By seeing this amazing emerging technology, we thought to build our own


cryptocurrency and start the new minting platform for blockchain basics.
The benefit that Blockchain implementation in the form of Smart Contract brings is
that; when entering into an agreement through a smart contract, there’s a reduced
level of trust needed among parties because the success of the transaction relies on

computer code instead of an individual’s behavior. Banks could reinforce that trust
by becoming a reliable third party that utilizes these smart contracts for mortgages,
commercial loans, letters of credit, or other transactions.

By doing this we can bring the era of revolution in the field of banking or even lead
to innovations in various different fields where Blockchain can be implemented
successfully and make lives easier.
3.Problem Analysis & Requirement Specification.

Money transfer domestic or overseas is a difficult task to accomplish. The fees for
transfer are high, the processing time is awfully slow, the money can be intercepted or
stolen if not done from reputed service providers, and there are legal and tax issues
which vary from region to region that must be considered. Thus, we came to the
conclusion that a blockchain-based cryptocurrency token transfer system can solve
most of these issues due to inherent properties of Blockchain and Cryptocurrencies.

Crypto assets were created using Blockchain principles as an alternative to traditional


banking infrastructure that don’t need an intermediary and aren’t tethered to the
capacity of a centralized government, bank, or agency. Instead of relying on
centralized intermediaries in these transactions, the trust is placed in the blockchain
code and the distributed nature of the blockchain.
Cryptocurrencies allow for peer-to-peer transactions without a regulated intermediary,
giving the user the ability to easily transfer funds quickly without having to pay
transaction fees. In 2019, the US Financial Crimes Enforcement Network’s (FinCEN)
determined that any cryptocurrency transactions and custody services conducted
through crypto entities that are considered money service businesses must still abide
by AML/KYC regulations. This will help avoid malicious transactions, illegal activity,
or scams using these platforms. These regulations could help banks and larger
financial institutions conduct due diligence on customers involved in crypto
transactions, further diminishing their anxieties about the risks that these transactions
pose. This decision now had solved so many factors which act as a source of
insecurity towards and a point of risk which people believe to be the only set back of
relying on Cryptocurrencies.

On the basis of the Problem Analysis, we now have a clear path on what we want for
our Project to do making the process of drafting Requirement Specification easy. We
need our project to provide the ability of creating new accounts and redeeming credits
for new users. Be able to give a check credit balance functionality to the pre-existing
customers to check their Crypto Credit before a transaction. And give the ability to the
customers to transfer Crypto Credits from one user to another with the shield of
Blockchain Crypto currency principles.

Internet Computer (ICP)

Dfinity Technology
4.Detailed Design

DApps on the Internet Computer, or IC for short, are implemented as canister smart
contracts, or canisters for short. If you want to build on the Internet Computer as a
dApps developer, you first create a canister module that contains the Web Assembly
code and configuration for your dApps, and deploy it using the HTTPS interface. You
can create canister modules using the Motoko language and the SDK, which is more
convenient. If you want to use your own tooling, however, then this document
describes what a canister module looks like and how the Web Assembly code can
interact with the IC. Once your dApps is running on the Internet Computer, it is a
canister smart contract, and users can interact with it. They can use the HTTPS
interface to interact with the canister according to the System API.

The user can also use the HTTPS interface to issue read-only queries, which are faster,
but cannot change the state of a canister.

Canister lifecycle
DApps on the Internet Computer are called canisters. Conceptually, they consist of the
following pieces of state:
 A canister id (a principal)
 Their controllers (a possibly empty list of principals)
 A cycle balances
 The canister status, which is one of running, stopping or stopped.
Resource reservations
A canister can be empty (e.g., directly after creation) or non-empty. A non-empty
canister also has code, in the form of a canister module state (memories, global etc.)
possibly further data that is specific to the implementation of the IC (e.g., queues).
Canisters are empty after creation and uninstallation, and become non-empty through
code installation. If an empty canister receives a response, that response is dropped, as
if the canister trapped when processing the response. The cycles set aside for its
processing and the cycles carried on the responses are added to the canister's cycles
balance.
Canister cycles
The IC relies on cycles, a utility token, to manage its resources. A canister pays for the
resources it uses from its cycle balance. The cycle balance is stored as 128-bit
unsigned integers and operations on them are saturating. In particular, if cycles are
added to a canister that would bring its total balance beyond 2^128-1, then the balance
will be capped at 2^128-1 and any additional cycles will be lost. When the cycle
balance of a canister falls to zero, the canister is deallocated. This has the same effect
as uninstalling the canister (as described in IC method) setting all resource
reservations to zero afterwards the canister is empty. It can be reinstalled after topping
up its balance.

Canister status
The canister status can be used to control whether the canister is processing calls:
 In status running, calls to the canister are processed as normal.
 In status stopping, calls to the canister are rejected by the IC, but responses to
the canister are processed as normal.
 In status stopped, calls to the canister are rejected by the IC, and there are no
outstanding responses to call contexts that are not marked as deleted.
In all cases, calls to the management canister are processed, regardless of the state of
the managed canister. The controllers of the canister can initiate transitions between
these states using stop_canister and start_canister, and query the state using
canister_status. The canister itself can also query its state using ic0.canister_status.

Signatures
Digital signature schemes are used for authenticating messages in various parts of the
IC infrastructure. Signatures are domain separated, which means that every message is
prefixed with a byte string that is unique to the purpose of the signature. The IC
supports multiple signature schemes, with details given in the following subsections.
For each scheme, we specify the data encoded in the public key (which is always
DER-encoded, and indicates the scheme to use) as well as the form of the signatures
(which are opaque blobs for the purposes of the rest of this specification)
In our project, User is given various choices on the basis of their status for example if
a user is new, he will have the available functionality of being able to create or
generate a new Faucet Account and have their own container which provides them
with the Principal ID. After getting the Principal ID, the new user can then redeem
10000 Crypto Cred to start transacting Crypto Creds from one Principal ID to another
Principal ID. All pre-existing customers are provided with added functionalities like
Transfer of Crypto Cred and the ability to check your Crypto Cred Balance. To check
the balance the existing customer must provide their Principal ID and in order to
perform a transaction, the User needs to provide the receiver’s Principal ID and the
Crypto Cred amount that needs to be transferred.

The process of Faucet takes place as depicted, a User initiates the process by inputting
the Unique Principal ID provided when one creates a Faucet Container of his own and
generates his public and private keys. If the user is new, he will have the ability to
redeem 10000 Crypto Cred and if the user is pre-existing then he won’t be able to
redeem 10000 Crypto Cred again and will be given a message of Already Claimed!
The ‘Check Your Balance’ functionality is available to all the serving customers
which gives them the ability to check their balance whenever they want to. In order to
check their balance, the user must provide their Unique Principal ID and then click the
Check Balance button. The system then fetches their Balance details using the Unique
Principal ID and display it to the user.
The ‘Transfer’ functionality is available to all the serving customers where they can
transfer Crypto Cred from one registered customer’s Principal ID to another registered
customer’s Principal ID. There are two fields available where we input the Unique
Principal ID of the receiving customer and then the Transfer Amount then we have to
click the Transfer Button. The system will then deduct the transfer amount from the
sender canister and then add the amount to the receiver canister and give the
confirmation of the Transaction.
5.Hardware & Software Platform Environment

Our Project is mostly Software Based thus a list of Software Platform Environment
used are as follows:
I. Web 3.0
II. ICP (Internet Computer Program)
III. Dfinity organization (dfx)
IV. VSCode for Coding
V. dfx canister
VI. CyclesFaucet.com for cycles for deploying ICP projects
VII. Front End Technologies (HTML, CSS, Java script, React)

Web3.0

Web 3.0 (Web3) is the third generation of the evolution of web technologies. The web,
also known as the World Wide Web, is the foundational layer for how the internet is
used, providing website and application services.

Web 3.0 is still evolving and being defined, and as such,


there isn't a canonical, universally accepted definition.
What is clear, though, is that Web 3.0 will have a strong
emphasis on decentralized applications and make
extensive use of blockchain-based technologies.

ICP
The Internet Computer (ICP) is the first World Computer blockchain, powered by
innovations in cryptography and computer science derived from deep crypto research
begun in 2015. It is a limitless blockchain that runs with 20,000X more efficiency than
the next best, and hosts smart contract code that directly serves web experiences to end
users, interacts with Web2, and creates signed transactions that run on other
blockchains. It supports end-to-end decentralization, in which traditional IT, such as
Big Tech’s cloud services, can be completely replaced by blockchain smart contracts.
Dfinity Organization
The DFINITY Foundation is committed to realizing the most disruptive vision in tech:
the adoption of public blockchain as a single technology stack that hosts all of
humanity’s systems and services.

VSCode
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor
made by Microsoft with the Electron Framework, for Windows, Linux and macOS.
Features include support for debugging, syntax highlighting, intelligent code
completion, snippets, code refactoring, and embedded Git. Users can change the
theme, keyboard shortcuts, preferences, and install extensions that add additional
functionality.

dfx Canister
dfx is the command-line interface for managing your Internet Computer project and
the best place to start. In Web3.0 Canister is like a container in which we store data
similar to a block in the Blockchain network. We can store user data like: User Private
Key, User Public Key and Principal ID. Every Canister provides the user with a
Unique Principal ID which can be shared on the internet to avail the features of ICP.

CyclesFaucet.com
A crypto faucet lets users earn small crypto rewards by completing simple tasks. The
metaphor is based on how even one drop of water from a leaky faucet could eventually
fill up a cup.

HTML
HTML5 is a markup language used for structuring and presenting content on the
World Wide Web. It is the fifth and final major HTML version that is a World Wide
Web Consortium recommendation. The current specification is known as the HTML
Living Standard.
CSS
Cascading Style Sheets is a style sheet language used for describing the presentation
of a document written in a markup language such as HTML or XML. CSS is a
cornerstone technology of the World Wide Web, alongside HTML and JavaScript.

Java script
JavaScript, often abbreviated as JS, is a programming language that is one of the core
technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of
websites use JavaScript on the client side for webpage behavior, often incorporating
third-party libraries.

React
React is a free and open-source front-end JavaScript library for building user
interfaces based on UI components. It is maintained by Meta and a community of
individual developers and companies.
8.Project Limitation & Future Scope

Most of the report we have been lauding Blockchain and Cryptocurrencies however
they have also suffered from several drawbacks that have led to refer them as the next
‘bubble’. Probably the biggest concerns with Cryptocurrencies are the problems with
scaling that are posed. While the number of digital coins and adoption is increasing
rapidly, it is still dwarfed by the number of transactions that payment giant, VISA,
processes each day. As a digital technology, cryptocurrencies will be subject to
cybersecurity breaches, and may fall into the hands of hackers. We have already seen
evidence of this, with multiple ICOs getting breached and costing investors hundreds
of millions of dollars this year. Mitigating this will require continuous upkeep of
security infrastructure, but we are already seeing many players dealing with this
directly, and using enhanced cybersecurity measures that go beyond those used in the
traditional banking industries. Price volatility, tied to a lack in inherent value, is a
major problem, and one of the specifics that Buffet referred to specifically a few
weeks ago when he characterized the cryptocurrency ecosystem as a bubble. It is an
important concern, but one which can be overcome by linking the cryptocurrency
value directly to tangible and intangible assets. Even if we perfect the technology and
get rid of all the problems listed above, until the technology is adopted by federal
governments and regulated, there will be increased risk in investing in this technology.
Other concerns with the technology are mostly logistical in nature. For example,
changing protocols, which becomes necessary when the tech is being improved, can
take quite a long time and interrupt the normal flow of operations.

But if we can overcome these hurdles, it can be easily said that cryptocurrency and
blockchain are one of the hottest topics when discussed for digital innovations. Our
project is still in the very early stages of development of the project and we hope to
improve this idea more to make it sustainable. We hope to add a customer login page
which will act as a security measure to secure customer details through Cryptographic
Hashing Algorithms like MD5/ SHA. We also want to add a Digital Locker
functionality to our System so that User details like Bank Account Number, Card
Details Crypto Cred balance etc. As Cryptocurrencies don’t have the best reputations
due to volatility, we hope to get our system verified by the Government Authorities so
that it can be regulated and managed accordingly which in turn will help us to gain
trust in the public domain and in turn increase the market share and server the purpose
it was created for. We hope to add KYC Verification to the system for every user
which registers to the System when linking their bank accounts to the Crypto Cred
Accounts. We wish to solve the issue of scalability by designing our own payment
gateway like VISA reducing our dependencies on major vendors who control the
market through monopolies thus making ourselves self-dependent. We also hope
launch our Crypto Cred as a Commercial Token and adding more successful
blockchain functionalities namely Smart Contracts, DApps etc.
9.References
Angela Yu – Full Stack Development Boot Camp

W3Schools.com
MDN document
ICP
Dfinity.org
CyclesFaucte.com
Zajno.com - As an inspiration for Front End Design

You might also like