GRAFT Development Status Update May 2018

It’s time for another status update! Y’all are busy people, so let’s not waste any time and get right to the point.

Payment Apps

Let’s start from really good news – our Merchant Marketplace app just received certification from Verifone – big step towards GRAFT acceptance by brick-and-mortar merchants and a product of 6 months long development cycle in close communication with Verifone. We are working on improving this application as well as building apps for other major players in the area of hardware payment terminals such as Ingenico.

Also, we just started designing the online shopping cart integrations – the first implementation is going to be an integration with Shopify, one of the most popular online store platforms. While it’s not within GRAFT’s charter to produce all the integrations, we take it upon ourselves to provide reference integrations with few leading platforms, paving the way for the independent software developers to take GRAFT to all other platforms.

Blockchain

It’s not a big secret that GRAFT has been forked from Monero – in order to be able to reuse the best (as of today) implementation of Cryptonote protocol, which is the most secure blockchain protocol so far, at least for people who care about their privacy. The idea was (and still is!) to take the open source Cryptonote technology and use it as a tier-1 foundation of the future 2-tier application platform, when the 2nd tier consists of the network of full supernodes (please read the white paper for more details). So the GRAFT dev team was supposed to be mostly focused on design and implementation of the tier 2 from the beginning. Unfortunately, sometimes our plans diverge reality in unpredictable ways, and we admit that it was naive assumption. Instead of working on core development tasks, significant part of the team had to address several problems caused by network difficulty and timestamp manipulation attacks. As a result, we switched to more efficient difficulty adjustment algorithm, which is already used by a few other blockchains, and even managed to improve it. We also followed the majority of Cryptonote community and implemented ASIC-resistant code.

We appreciate a concrete help we receive from the community, including individual contributors zawy12 and jagerman – thank you guys! It’s also worth mentioning that our full time core dev team has been growing as well – we have added two senior core developers and project/product manager.

We are working on another potential modification – Cryptonote Heavy hash algorithm. Although the code change is ready, we are still testing, and haven’t made a final decision when (if at all) to switch to Heavy. We continue monitoring the situation in order to find the best time for changes that require major network update.

Real Time Authorizations (RTA)

Our top-most development priority right now is RTA and we’ve been hard at work doing the R&D and laying the foundation to meet our delivery timeframes. For those of you who are interested in details, here is the “10,000 foot view” of RTA – simplistic, optimistic sequence diagram of the RTA flow: Note that every line of text in this diagram correspondents to hundreds or even thousands of lines of the source code, so this diagram just demonstrates interactions between the main players, without going deeply into the details such as auth sample selection, fee distribution, message broadcasting, etc. We are working on various modules of the RTA so we could compile the full picture: supernode-ng server framework, porting DAPI/business logic into a new framework, and authorization sample communication, which includes both super-fast UDP-based direct communication protocol (for “urgent” messages) and “unhurried” protocol (for regular message transmissions) based on existing P2P implementation.

CryptoFind

Although CryptoFind was not designed to be the core product, its popularity recently skyrocketed, and so now we cannot imagine GRAFT without CryptoFind, which becomes the most comprehensive worldwide database of businesses that accept crypto. We have implemented some new features and improvements in CryptoFind since the last update: added a text search function, which allows you to find nearby points by name or type (cafe, store, refueling, etc.), enhanced the user interface, and created statistics page.

Network Monitoring

Also we are internally monitoring multiple parameters of GRAFT servers using special tools such as CloudWatch and Nagios, we thought that the community should be able to know about the basic status (“up/down”) in real time as well, without the need to ask and repeat the same questions on forums. So we have created a simple public network status monitoring page – don’t forget to check it out!

Happy Grafting!

GRAFT Transactions: How to Transfer Your GRFT Between Wallets

If you read GRAFT white paper, you probably know that RTA (Real Time Authorizations) is one of the main features proposed by GRAFT. Eventually, all GRAFT transactions will be real-time (point of sale purchases) or near real-time (“regular” inexpensive, or in some situations even free fund transfers between user wallets). Now, when ICO is finished, we can finally be fully focused on development of RTA and other important features.

Implementing RTA, however, is not a simple task which requires significant development and testing efforts, and we never promised it will be available at the beginning. Meanwhile, before RTA is available on mainnet, GRAFT wallet users will be able to transfer their GRFT balances between wallets using “traditional”, slow transactions. Such transfer is not available on mainnet for mobile and desktop wallets yet, only on RTA testnet; however, those transfers between mobile and desktop wallets will be available on mainnet by the end of this week.

Note that even now you can use CLI wallet for GRFT transfers by exporting your mobile or desktop wallet and importing it into CLI wallet:

Exporting wallet from mobile/desktop wallet app

To view the mnemonic phrase go to the Settings and press “Show Mnemonic Password” button. The application will ask you to enter your password if the password is correct, you will see the mnemonic phrase.

Installing CLI wallet

See Installing VM and Installing network node and CLI wallet sections of Mining Guide

Importing mobile/desktop wallet into CLI wallet

To restore your wallet via GRAFT CLI, you need to get the mnemonic phrase of your GRAFT wallet and run GRAFT CLI with the following options:

–restore-deterministic-wallet \\allow to create wallet from mnemonic phrase

–electrum-seed “” \\mnemonic phrase of your Graft wallet

Linux/MacOS:

.//graft-wallet-cli –restore-deterministic-wallet –electrum-seed “

Windows:

\graft-wallet-cli.exe –restore-deterministic-wallet –electrum-seed “

MVP Development Status Update

We would like to update the community on the status of Graft blockchain development. We have made a lot of plans and promises, and now it’s time for our dreams to start coming true. In order to achieve our ambitious goals, we have put together an efficient team of very talented and experienced developers. Two of them came from Monero project, which is very important for us as we forked the blockchain from Monero, and there will be many blockchain protocol changes.

Network Node, Testnet, and Blockchain Explorer

As an important milestone, we have finished some initial blockchain code modifications which allowed us to set up a public testnet with the first Graft block explorer.

While the testnet is open for access from the Internet, we have not published yet any information on node/supernode setup, configuration, and connectivity since we are still frequently updating it, and we would like to make sure it is stable enough to be open for public view and alpha testing. We will notify everyone once we publish the instructions so anyone will be able to connect and test the basic network.

Supernode

The majority of the work, however, currently is concentrated in supernode code which is — unlike network node forked from Monero — being designed from scratch. The proof of concept supernode was written in Python for the sake of rapid prototype development. After thorough review, the team decided to refactor the supernode code in C++ in order to keep a single technology stack and optimize the development process and network performance. Although the supernode and network node are based on the same technology stack now, the supernode is still deployed as a separate process (daemon), and we intend to keep it this way, at least for the near future.

Mining

Also, we are working on instructions for miners, including GPU and mining pools. Initially, it will be possible to mine on CPU, so the entire full supernode can be hosted on single machine. That’s how the typical testnet supernode is configured. On the mainnet, however, the network hashrate will grow fast, which will require GPU, then multiple GPU, and eventually mining pools to be set up in order to efficiently mine and maintain the full supernode. We are working on providing instructions for GPU miners as well as creating a first mining pool. The GPU mining machine can be detached from the supernode, which enables a hybrid “on premise/cloud” configuration, where, for example, the GPU mining rig is located at home while the supernode is hosted in AWS.

Mobile Wallet, Point of Sale, and Payment Terminal Apps

Finally, we are working on development of client applications, which include wallet and point of sale mobile apps that should look familiar from the PoC phase, as well as new apps running on payment terminals such as Verifone, Ingenico, Equinox, and AnywhereCommerce. Those new apps are going to be different from our existing mobile apps as they are going to be tailored to particular terminal hardware/OS/API/SDK and mostly integrated with third party point of sale software. The terminal apps are very important as they will open the door to the mainstream merchants including top tier retailers. Here is how the typical terminal app will interact with Graft blockchain:

We are still on initial design phase with those apps, but we believe we will be able to demonstrate the working prototypes before the ICO. Stay tuned!

GRAFT Merchant Tokens: Introducing VChains

Merchant token is a simple smart contract that allows creating a private token that belongs to its owner. Unlike some other smart contract and token platforms, creation of GRAFT merchant token does not require any programming and can be done by anyone.

The business features described below are typically associated with using complex third party service providers and high implementation costs, which makes those services inaccessible for small to medium size businesses and expensive to large businesses. GRAFT Merchant tokens allow any merchant to implement those important business features with minimum efforts and low cost.

Types of Merchant Tokens

Store Credits

Store Credits are typically utilized by merchants for performing purchase returns and exchanges, when return cannot be done using the original payment method, or the merchant’s return policy does not allow the full refund. Store Credit essentially transforms return to exchange, so the merchant does not lose the customer and associated revenue.

Store Credit Token can be linked to the item price in local fiat currency, so the customer can use those tokens during next purchase “instead” of or in addition to the payment with local fiat currency. Store Credit tokens usually either do not expire or have very distant expiration date as they are basically replace the fiat currency.

Loyalty Rewards

Loyalty Rewards is powerful marketing instrument which attracts customers and increases spending. Loyalty Rewards can be awarded with each purchase, or as one-time bonus, or using other models. The rewards than can be used to makes purchases of particular items or all items, or converted to cash. Loyalty Rewards are not necessarily linked directly to fiat or crypto currency as they can be spend to provide discount or buy a special “unique” reward items that are not available for sale using other methods of payment.

Loyalty Rewards usually have relatively close expiration date. This way the merchant “stimulates” earning more rewards and eliminates accumulation of very large amounts of reward points that can become useless.

GIft Certificates

Gift Certificates can be issued by merchant in order to attract customers. In order to increase the effect, gift certificates can be sold with discount (for less than their nominal price). Gift Certificate tokens usually either do not expire or have very distant expiration date as they are basically represent the fiat currency.

Discount Coupons

Discount coupons can be used for one-time or long term promotions. The coupons can be distributed publicly or to individuals, in wallet or paper form. The coupon then can be scanned by point of sale in order to get discounted or even free item.

Transactions with Merchant Tokens

Create

Creating new merchant token (“smart contract”). Can be done using point of sale app.

Renew

Renew merchant token (“smart contract”). Can be done using point of sale app.

Add

Add more merchant tokens to the circulation.

Issue

Merchant’s point of sale sends merchant tokens to the customer wallet or prints a paper wallet.

Redeem

Customer redeems merchant tokens at merchant’s point of sale using wallet app or paper wallet.

Merchant Token Fees

All the merchant token fees are paid to the current supernode authorization sample.

Merchant Token Transaction Fees

Merchant always pays the token transaction fee, which means the buyer never pays the fee. A regular transaction fee is applied to each transaction with merchant token, including adding, issuing, and redemption. As GRAFT fees are proportional to transaction amount, the fee is calculated based on 1 token = 1 GRF, although it’s not necessarily that the token has any direct link to the GRF or other currency. It’s important to note that GRAFT fees are calculated based on logarithmical formula so there is no danger of paying high fee on large amounts.

Initialization and Renewal Fees

The initial Create transaction implies a special higher fee because it is associated with naming a token. In order to prevent “domain squatting”, the initial fee is set to a reasonable amount that prevents massive abuse. Initialization fee of 5 GRF is required to generate a new merchant token smart contract (Create transaction). The renewal fee is 10 GRF.

VChain

VChain allows creating a virtual chain of stores so multiple point of sales can be “connected’ to the same private “virtual blockchain”. Thus, there is a dual meaning of word “Vchain”: virtual chain and virtual blockchain. Vchain creates a private common platform for managing merchant tokens and items catalogue.

Merchants can create their own private vchain which is going to be accessible only by this particular merchant and contain all information about its tokens. Vchain allows connecting multiple points of sale or even creating a chain of multiple stores. Points of sale that belong to the same vchain can issue and accept the same merchant tokens, use the same shared item catalog stored and maintained on the blockchain, generate aggregated transaction reports, and more.

Buyers can use vchain to link multiple wallets so they can manage multiple accounts and move funds between those accounts without paying fees. This feature is useful for family and corporate accounts.

VChain Fees

There is initialization annual fee of 5 GRF for creating a new Vchain smart contract. The renewal fee is 10 GRF. Those fees are required to securely process the smart contract and prevent system abuse. There is a separate annual fee of 10 GRF for adding another point of sale or wallet to the vchain.

All vchain fees are paid to the current supernode authorization sample.

Summary Comparison of GRAFT Blockchain to Other Payment Solutions

GRAFT VS RIPPLE AND OTHERS: FOCUS ON BUYERS, MERCHANTS, AND THEIR PRIVACY

SINCE GRAFT USES CRYPTONOTE PROTOCOL, HAS THE MONERO COMMUNITY INDICATED SUPPORT FOR GRAFT?

ARE TENX AND OTHERS CRYPTO CARDS COMPETITORS?

HOW GRAFT IS DIFFERENT FROM OTHER CRYPTOCURRENCIES AND WHY IS IT BETTER FOR PAYMENT PROCESSING APPLICATIONS

HOW IS GRAFT DIFFERENT FROM DASH?

CASH, DEBIT, CREDIT, MOBILE, BITCOIN, OR GRAFT?

FEATURE COMPARISON – GRAFT VS. OTHER CRYPTO-CURRENCIES FOR PAYMENT PROCESSING APPLICATIONS

Graft vs Ripple and Others: Focus on Buyers, Merchants, and Their Privacy

Focus on Buyer and Merchant Needs

Ripple’s is mostly focused on bank settlements, while Graft provide solutions to buyers and merchants. Buyers can pay anywhere with cryptocurrencies or plastic card using Graft wallet app. Merchants can receive payment from anyone using point of sale accepting both cryptocurrencies and plastic cards. Faster payment confirmations are provided by Graft supernode authorization sample, a process that is more similar to Dash masternode scheme. Unlike Dash masternode, however, Graft supernode is not a “wrapper” or a second tier as it is designed to be a monolithic code base that implements both real time authorization and blockchain settlement (mining) features. Such an architecture improves security of the real time authorization process, as payments cannot be settled “off supernode chain” by the “lower” level blockchain network nodes, without supernodes knowing about their existence. Thus, all Graft transactions are authorized instantly without requiring additional fee, by supernodes that are automatically selected by the network using combined proof of work and proof of stake algorithm.

Focus on Absolute Privacy

Ripple consensus protocol is different, and its main problem is that it does not provide privacy features: untraceability and unlinkability of payment transactions. Unlike Graft blockchain, all transaction information on the Ripple ledger is public. Ripple does not provide the privacy and untraceability that are demanded today by potential Graft users – both buyers and merchants. When we pay with credit card, we share our secret payment information (like credit card number) with some entities – the merchant, the issuing bank, the payment processor, the payment acquiring bank – but those entities are relatively trustable so they try not to share our secrets with the entire world, and no one else can see our transaction history without our or their permission. Oftentimes, however, they fail to keep our secrets (think Target and many other retail mega breaches). With Ripple or Bitcoin or most other cryptocurrencies that are not based on CryptoNote protocol, the story is exactly opposite: there is no central authority that “knows” our secret “card number” (private key), but at the same time anyone in the world can trace our payments on the blockchain and link them to our identities with minimum efforts. By Implementing CryptoNote and other features, Graft brings the level of untraceability of payment history similar to traditional credit and debit card system, while adding decentralization, privacy, and security, which are the features of any cryptocurrency that are absolutely impossible to achieve using traditional credit card payment technology.

Since Graft uses CryptoNote protocol, has the Monero community indicated support for Graft?

While Graft supernode code is being written from scratch, the blockchain CryptoNote implementation codebase is forked from Monero. We do not anticipate a direct and immediate Monero community support. However, we believe that our project attracts people from CryptoNote communities as it adds a lot of features that are not available in existing CryptoNote implementations. One example of such a feature is real-time authorization (instant confirmation). Another example is hidden transaction fee amount, which is exposed to public view in all existing blockchains. This table compares Graft with Monero, Bitcoin, Dash, and other cryptocurrencies.

However, there are even more important features that are not simply enhancements of the CryptoNote protocol. No one needs just another blockchain, even if it provides better privacy. But Graft is much more than just “another blockchain”. Graft is innovative payment application platform which supports various payment and payout methods, either traditional or innovative. While providing “reference”, default implementations of applications and services, Graft ecosystem is open for any software vendors and service providers. We believe in diversity of payment methods and cryptocurrencies.

Graft mobile wallet and point of sale apps do not maintain a full copy of the blockchain for obvious reasons. Does it mean the wallet content is stored on supernodes which may compromise its security and privacy?

There are multiple elements of the Graft user wallet:
  • Private spend key – secret – required to spend money; stored in the wallet app
  • Private view key – “semi-secret” – required to see the balance and previous transactions
  • Payment address – public – required to receive money
In Graft, the Private spend key is always stored at the client (wallet) and never shared with the supernodes. Therefore, it is not the same as credit card when you share you card account number with the merchant, payment processor, and the bank every time you make a payment. If one of them is breached, your credit card can be stolen and used to make fraudulent payments. If any or even all supernodes are “breached”, they don’t have your private spend key so no one will be able to “use” your Graft account.
The Graft wallet balance is a “hidden” set of previous transactions. It is calculated by scanning all the previous transactions which are stored on the public blockchain but invisible without view key. Since mobile wallet app does not have direct access to the blockchain, the private view key is temporary shared with a single “proxy” (relay) supernode in order to retrieve the wallet balance; the supernode will not store this view key in any database so even if it’s “breached” the view key will not be disclosed in most cases. However, even if the view key is disclosed, it only allows to see transactions, not to spend any money.
Users (either buyers or merchants) with higher requirements for privacy can host their own private “proxy” supernode with full copy of blockchain. This way they will never share their view keys with the random “foreign” supernodes. Most probably, due to limited processing power and other resource limitations, such a private proxy supernode will not be able to participate in transaction processing and earn any block rewards or transaction fees, but it will still be able to validate transactions and view balances privately by scanning the local copy of the blockchain. For users who cannot or don’t want to host their own supernode but still don’t trust the entire network, Graft creates a special (free) cloud service with trusted proxy supernodes that are protected by multiple levels of security.

In order to process real-time authorization (instant confirmation) Graft network puts a “lock” on buyer’s account. How does it not violate one of the main goals of any cryptocurrency system – untraceability?

First of all, untraceability is not a feature of any cryptocurrency. As of today, CryptoNote is perhaps the only protocol that enables full privacy and untraceability. The beauty of Cryptonote is that it hides the details of transaction while still preventing double-spending. This is achieved through the use of key image which is unique “fingerprint” that represents the spending address and amount without disclosing any details about the buyer or the amount. By providing the key image for upcoming transaction to the network of supernodes, the buyer’s wallet will temporarily “lock” its “account”, so no other transaction with the same key image can happen until the locked transaction is settled or the lock is removed. If the buyer will try to finalize the transaction with the key image different from the one used in the original lock, such transaction will be rejected by the supernodes. On the other hand, the key image does not contain any information about the buyer, buyer’s wallet, or recipient (merchant). In addition, any traces of communication between the buyer (wallet app), the merchant (point of sale app), and the supernodes (selected proxy and sample supernodes) during authorization phases are completely removed once transaction is settled (written into the blockchain). Even transaction fees paid by merchant to authorizing supernodes are hidden from public view, which is another major privacy improvement comparing to all previous CryptoNote implementations that do not hide transaction fees.