Recently there have been several posts on the Nxt and Ardor subreddits asking about Ignis: Why did Jelurida create it? What problems does it solve? Why would people want to use it?
I suspect that for a lot of longtime members of the Nxt community, the answers to these questions are self-evident. For newcomers, though, it’s a fun and helpful exercise to brainstorm interesting applications of the Nxt/Ardor tech. In that spirit, I replied to one of those posts with a few thoughts about what you can do with Ignis. I figured Nxter readers might be interested to hear them, too, so I’m posting them here for you to consider.
So what’s special about Ignis? In a nutshell, Ignis is the only child chain on the Ardor platform that is guaranteed to be permissionless and to support all available features. It will have basically all of the features that Nxt currently has, plus a few new ones (see apenzl’s excellent write-up for a survey of the new functionality). If you’re new to Nxt and Ardor and haven’t spent some time with the full client yet, I’d strongly recommend you do so. It’s quite impressive just how much you can do with the built-in features.
Without further ado, here are a few examples of ways you might use Ignis, most of which apply to Nxt, too.
Co-Ownership of Property
Suppose you and some friends own a rental property. You can create an asset on Ignis to represent shares of the property and distribute the shares among the co-owners. As the property earns money, you can pay dividends to the owners in proportion to the amount of the asset that they hold (this is a built-in feature). They can freely buy or sell their shares in it (another built-in feature), making it easy for them to take on as much or as little risk as they are comfortable with. If you need to make a collective decision, like whether to remodel it, you can conduct a poll of your asset holders (another built-in feature) where their votes are weighted by their share of the asset, or where each person gets an equal vote, your choice.
Suppose you want to conduct a Kickstarter-like crowdfunding campaign, where your supporters don’t have to pay unless you meet your fundraising goal. The Monetary System on Ignis supports exactly this application, among many others. You can issue your own “currency” (token) to represent a receipt of payment from your backers, set a deadline for the fundraiser, and make the transfer of funds conditional on raising at least some minimum amount of money. All of this is built-in functionality. As your project progresses, you can send your supporters messages using the Messaging System with updates on important milestones. Finally, when your project turns out to be wildly successful, you can pay bonuses to your early backers proportional to their share of your tokens.
Suppose you own a video game store and Nintendo announces that they’re selling a Nintendo64 Classic. You know that you’ll only receive a limited quantity. To save your customers the hassle of lining up outside your store at 5 am to try to get their hands on one, you decide to offer them an opportunity to buy vouchers ahead of time, which they can exchange at their convenience for the game system. You’re worried that scalpers will buy up all of your vouchers at MSRP and resell them for a huge markup, though.
You decide to issue your voucher through the Ignis Monetary System as a controllable currency. This means that you can sell it at a fixed price and buyers can’t resell it later to anybody but you. When the account holder later visits your store, you buy back the voucher for next-to-nothing and give him or her a Nintendo64 Classic in return.
Suppose you want to start a hedge fund like Numerai. You want to issue a token that can only be held or traded by data scientists, whose models you want to collect and evaluate.
You first solicit applications from data scientists through your website and decide whether they’re worthy to participate. The candidates you’d like to enroll send you their Ardor addresses, and you use your account to mark their accounts with a special property indicating that they are eligible to participate. Next, you issue an asset on Ignis using the new Asset Control and Vote by Account Property features, and specify that your asset can only be traded by accounts with the property you used to designate eligibility. You then make payments of your asset to each account proportional to how well the account holder’s models perform, and you pay dividends to all asset holders in proportion to their holdings. The result is that people who submit the best models get the biggest shares of your dividends.
Perhaps you charge your users a fixed quantity of your asset for each model they submit, both to ensure they have some skin in the game and to help redistribute the asset away from the users who submit the worst models. Since Ignis supports sending short messages along with payments, a user could annotate such a payment with an ID number that corresponds to the submitted model, allowing you to easily track which models’ submission fees have been paid.
Suppose you want to start a crowdfunded venture capital firm. You want to sell shares of your firm to raise money, allow shareholders to vote on which projects to invest in, and pay them dividends in proportion to their holdings. You like the idea of making the investment decision somewhat decentralized, but you’re nervous about using a strict decision-by-majority investment model. As a hedge, you’d like to allow a supermajority of your board members to veto investment decisions made by your investors.
You can issue an asset on Ignis representing shares of your company, then make payments to the companies you invest in using composite phased transactions, another new feature. You can set the phasing conditions to say that each payment succeeds if at least a majority of your asset holders approve of it and less than eight out of your ten board members try to veto it. If these conditions are met, the company gets funded. Otherwise, the transaction does not occur. And how do you elect your board members? Why, the built-in voting system, of course.
These examples barely scratch the surface, but hopefully, they give you an idea of the kinds of things Nxt and Ignis can do.
Note that you can do any of these things using just the standard Ardor wallet. If you’re a programmer, though, and you want to make things a little easier on the people you’re interacting with, you can write an app with a custom interface that interacts with Ignis only on the backend. Your users don’t even necessarily need to know that they’re transacting on a blockchain.
Along those lines, I’d suggest that most of the things you would want to do on Ethereum can also be done on Ignis. As I’ve argued before, writing secure smart contracts on Ethereum generally requires either keeping them very simple or introducing some trust between users and developers. In the former case, Ignis’s smart transactions often substitute directly for smart contracts, and in the latter case, you might as well move most of your code off-chain and only use the blockchain for the parts that really need to be trustless. Either way, I don’t think the extra flexibility that smart contracts offer is quite as big an advantage as it appears to be at first blush.
So if you find yourself wondering what value there is in Ignis, first ask yourself what value there is in Ethereum. For each example application you come up with, try to convince yourself that you absolutely could not use Ignis to accomplish the same goal with a similar degree of decentralization. If you share my concerns about the security of complex smart contracts that are truly immutable, you might be surprised at how similar the potential applications of both platforms are.
Finally, it’s worth mentioning that there might be significant non-technical challenges to a couple of the examples I’ve given. In particular, the U.S. Securities Exchange Commission ruled several months ago that some tokens traded on blockchains can be considered securities, especially in cases where investors have “a reasonable expectation of profits derived from the managerial efforts of others.” In such cases, issuers of those tokens must register with the SEC in order to do business in the U.S. I suspect that this is not as big a deal as a lot of blockchain enthusiasts make it out to be, but that’s probably the subject of a different article. 🙂
In any event, I hope these examples help put into concrete terms just how much functionality Ignis offers. If you can think of other (better?) examples for how to use Ignis, please add them in the comments section! And as always, I’d greatly appreciate constructive criticism.