Cryptocurrency Payment System for E-commerce Applications
ELAMACHAIN has developed core technology of Hyperledger Fabric to create its own main network. We have developed and improved chain code of various required functions and components. Typically, coin logic was completed for actual payment. In order to be at a practically available level, transaction efficiency must be very high. ELAMACHAIN developed and applied algorithms and structures capable of high-speed transaction, and we are also developing and designing for improvement of software performance and hardware. We're developing and designing from a hardware perspective. E-Commerce applications can work well when they're actually running. We also built a more secure system through a multi-layer structure.
Gateway communicates directly with the client(App), and important logic is handled by API(Private Network).
Through Agent without direct access to Core, we reinforced security by communicating with the Hyperledger Fabric.
[ Elamachain’s Blockchain ]
Blockchain : Hyperledger
Hyperledger fabric is pemissioned blockchain that allows access to only authorized participants via membership Service Provider (MSP), which is different from public blockchain where anyone has access. Authorized participants become an integral part of Hyperledger Fabric system and share roles of endorsing, ordering and committing of transaction. There series of transaction process that occurs in Hyperledger network, or all the politics that are necessary to run the system, are implemented by program known as chaincode.
Configuration of Hyperledger Fabric
Chaincode is Smart Contract program of Hyperledger Fabric and it forms the backbone of consensus algorithm or policy. Smart Contract, developed by Ethereum, is a program that enables contracting and transaction processing in free form, designing easy-to-use mediator-free contract based on blockchain technology. Chaindode runs separately from blockchain. When a particular program needs to comply with blockchain, chaincode is called up by the application at client’s request out of blockchain. Smart Contract was first intoduced by Ethereum. This program needs to use specific deterministic programming language called Solidity that has been developed to ensure that the results of contacts executed in blockchain are always the same. However, Chaincode languages supported by Hyperledger fabric are Goland, Java, Node.js, etc. Additional support for other languages will be added in future releases.
ELAMACHAIN platform’s service are allocated an each domain. All components of Hyperledger Fabric compose one project unit. Domain represent separate channel and is responsible for operating unit project. Each domain is divided into unit called network organization.
1. Ordering Service node
Ordering service node, also known as Orderer, delivers transactions submitted by clients in chronological order to all peers securely. Peer also manage the addition and update new blocks in accordance with transaction information on blockchain network. Ordering method is based on consensus algorithm. Since consensus algorithm is modularized in Hyperledger Fabric, selecting a suitable consensus algorithm for various situations are feasible.
Type of consensus algorithms
i ) SOLO - A consensus algorithm that determines that order of transactions through a centralized ordering service.
ii ) Kafka - A consensus algorithm that can provides normal ordering service of distributed system even when node is stopped by systematic crash. ( Crash fault )
iii ) PBFT ( Practical Byzantine Fault Tolerance ) - A consensus algorithm that can provide normal ordering
Network of Hyperledger Fabric is divided into organization units. Each organization has MSP authority and goes through Certificate Authority(CA). Organization provides not only peer management, but also authorization, assurance policies, and hub systems which function as a gateway for clients to enter the network. ELAMACHAIN platform constitutes organization optimized for the number and characteristic of the project in network. Clients of ELAMACHAIN will sign up at an organization keyed to a certain service they use. However, there is no limit for the use of other services provided by ELAMACHIAN.
i ) MSP ( Membership Service Provider )
MSP identifies all participants and controls their access Hyperledger Fabric. After verifying their identities, Enrollment Certificate will be issued to participants which indicates authority to access network. Each time an authenticated participant request transaction. Transaction Certificate is issued. Identity of participant is not exposed as it’s not same certificate that will be issued each time transaction is requested, but different certificate is issued each time ensuring secure service running. ii ) CA ( Certificate Authority )
CA is server clients technology that provides authentication key to client. When client’s authentication request is granted by MSP,CA provides public /private authentication key and stores client’s information in the server database. One CA is allocated per organization in a network of organization units. Clients who have completed membership registration will have private key. Clients who have both key and password can securely use the service. Client’s information registered in CA server is registered in World state database, which records and reflects entire statues of blockchain network. Therefore, changes in authentication info is restricted without permission of the user.
3. Peer Node
Peer node, also known as Peer, has the role of maintaining the state of network. Peer handles proposal and responses of transaction occurs or blocks are added. Peers is divided into Endorsing Peer ( Endorser ) and Committing Peer ( Committer). When a client ( Service user ) generates and requests transaction, endorsing peer examines the requested transaction in accordance with endorsing policy, and send it back to client with endorsing signature attached to it. Committed peer verifies transaction result issued by endorsing peer. Unless theres is a problem, committer confirms transaction and updates its contents in blockchain.
Clients requests transaction to corresponding endorsing peer according to endorsing policy. Endorsing peer rubs the transaction prior to transferring to other parties and checks following condition with MSP.
i ) Validity of transaction request
ii ) Duplication of transaction request
iii) Validity of digital signature
iv ) Client’s compliance with authority and policy
When everything checks out, endorser attaches endorsing signature to transaction in certain data ( Readset, Writeset ) and sends the transaction back to the client.
After confirming endorsing signature, client sends the transaction to ordering service node using a channel made just for ordering. Ordering service node organized the transactions received from client in chronological order and then creates transaction block for each channel. Examining contents of specific transaction or chaincode isn’t necessary. As soon as endorsing signature checks out, block is added. As a result, block update rate is superior to typical public blockchiain where its method is to check every transaction and then adds them to
Ordering service node delivers updated transaction block to peers in a secure manner. Delivered committing peer verifies if the transaction satisfied the endorsing policy and then confirms the transaction by stoning it in blockchain. All peers return the event to client after completing blockchain update.
Hyperledger Fabric is different from traditional blockchains such as Ethereum, Bitcoin, etc. What makes this platform stand out is that it execute chaincode before adding transaction information to the block ; a way to ensure security and authentication process. By the way its verification process is done separately from blockchain, network still can not be damaged as it acts separately from blockchain. The user’s account is also kept securely in blockchain even in the event of bad inputs.
In E-commerce service, Transaction are made through 3rd party contracts. Buyer says seller on condition that goods are delivered after the payment is made in ELAMACHAIN escrow service. If seller does not deliver the goods or delivers the wrong products, transaction will be void and the payment will be returned to buyer. Escrow contracts will be in effect when transaction occurs not only in ELA pay platform but in coins or tokens as well. Hyperledger’s consensus attempts to execute before transaction information is added to the block. It takes advantage of escrow chaincode to process transactions faster and more securely.