Categories
Blockchain Software Technology

What is a DAO, or a decentralized organization?

A Distributed Autonomous Organization (DAO) is a combination of software and social connections. It’s able to act as a decentralized company for the benefits of its members – but no member has a controlling stake in it. My analysis of this phenomenon will be split into two parts. In the first part, we’ll focus on the benefits and risks of a decentralized organization.

What is a DAO?

In short, a decentralized organization relies on hard-coding certain important company rules, so that specific actions can be automatically carried out. A DAO relies on smart contracts to enforce those rules digitally.

Benefits of a DAO

  1. Shareholders/members of the DAO can have a very direct and immediate impact on key company operations.
  2. Cheap distribution of shares. What is a DAO benefit is that there’s no middleman. We have peer-to-peer communication between members who want to sell/buy DAO shares.
  3. Cheap distribution of dividends (directly from the decentralized organization to members).
  4. You can code many standard corporation activities in the algorithm. So, they can be executed automatically without any human intervention. Accounting, auditing, tax payment, payroll – you name it. It adds transparency to the operation, removes the risk of human error and lowers employment costs.
  5. You can also code integration with suppliers (exposed as other DAOs) in the algorithm. So, execution can work based on that interactive algorithm. If not disputed, cooperation between parties can be much smoother and cheaper.
  6. No single person (like a CEO) exists who represents the DAO. All members, even minor,  represent it collectively.

Risks of participating in a decentralized organization

  1. If you lose the cryptographic private key, or someone steals it, you also lose access to the DAO and voting rights in it.
  2. The programming code of the DAO can have bugs which might be impossible to correct. As we know, the smart contract code is immutable (read more about blockchain immutability). These bugs can result in anything, from money loss to unexpected liability incurment.
  3. Public blockchain networks (like Ethereum or Bitcoin) aren’t controlled by any single party. Their evolution can go into an unexpected direction, resulting in DAO disruption. In extreme cases, a DAO might become unusable.
  4. Most useful decentralized organizations need access to data outside of the blockchain. These data can be provided by automatic or semiautomatic centralized oracle mechanisms. To disrupt the operation of that DAO, it’s easiest to target the oracles it depends on.
  5. The algorithm can’t go beyond what it was programmed for. Hence, it can make biased or plainly bad decisions if you don’t account for every reasonable fact and circumstance. A DAO should be structured so that there’s always a human factor involved that can take back or stop automatic decisions.
  6. Parties (cooperating decentralized organizations) might not be explicitly defined in the smart contract. In case of a dispute not covered by the code (and without an automatic arbitrator) it might be difficult to resolve it in traditional legal system.

What is a DAO capable of? Stay tuned for the second part. In the coming weeks I’ll take a look at DAOs from a legal perspective. And if you’re considering blockchain for your company, but you’re still stuck on terms and crypto jargon – it may be time for blockchain training.

Categories
Finance Software Technology

Mobile App Cost Estimation: What you need to know before you start talking with your development partner

Developing an app can be a big investment, and the development process itself is usually very complex. This is why it’s important to be well prepared when you commission an app, so that you are able to get the best results, both in terms of price and quality. In this article, we’re going to take a look at the preliminary considerations that have to be taken into account when estimating a mobile app cost.

Understanding what goes into the cost of developing an app

App pricing can vary based on several factors. When contacting an app development agency for the first time, it’s important to be aware of these factors and how they may affect the pricing. These factors are: the complexity of the app, the platform, and the location of the development resources.

The complexity of the app

When it comes to complexity, we can divide apps into four categories: simple apps, complex apps, enterprise apps, and gaming apps. Complexity is the first factor that gets considered during the estimation of a price.

To begin, you have simple apps, which have a small number of different screens, and which sometimes use APIs in order to work with data. These apps do not generally support user profiles, and they generate a very small amount of analytic data. The development process for one of these apps can take anywhere from 35 hours to 400 hours depending on the amount of features that go into the final app. This type of project can be handled either by a single developer or a small team, and the app should be ready within 3 months.

Then there are complex apps, which have up to 10 different screens, and which connect to one or more APIs to retrieve data. They also make use of location data and user profiles. They may also feature in-app purchases or, in the case of e-commerce apps, a shopping cart. On top of that, complex apps are generally able to collect a wide range of analytic data and they may feature a central administrative console that allows you to monitor and moderate content. Depending on the number of features, one of these apps can take anywhere from 70 to usually 500 hours to complete and they are developed by medium sized teams.

Enterprise apps come with over 10 screens, connections to multiple APIs, and, in some cases, custom APIs. They have a robust user management system, and they are very complex in scope. The purpose of an enterprise app is to streamline internal business processes, sometimes in multiple departments of a single company. For example, an enterprise app developed for a logistics company may cover invoicing, HR, sales, warehousing, vehicle tracking, and various aspects of management. Development for an enterprise app can take anywhere from 140 hours. Here, you will need a large, experienced development team and, in some cases, more than one of those.

Finally, you have gaming apps, which are characterized by the use of 3D acceleration, multiple APIs, the gathering of user data and other metrics, in-app purchases, and the use of user profiles. Gaming apps can take anywhere from 350 hours upwards to develop. Gaming apps will require a varied team of experienced designers, media creators, and developers.

cost estimation for a mobile app

The platform

The platform the app is being developed for must also be considered. However, if you are building a native application for a single platform, the cost does not vary noticeably between different platforms. In the past, you had something called the “Android tax”, which referred to the extra cost of developing for Android platforms, but this is no longer the case.

The cost difference becomes clear when you are planning to launch on multiple platforms. Here you have a choice between developing several native applications or developing a single hybrid application. The latter option is less expensive, but it is not able to offer the full experience of a native app. This can be detrimental if you have a particular set of functionalities in mind. However, if your app is not aiming for specific native features, there’s no reason to develop multiple native apps for each platform.

The location of the development resources

It’s no secret that offshoring can help you cut costsas much as 50% in some cases. However, it does come with its own problems. There may be cultural barriers, time differences, and a variety of other factors to take into account. That said, there are numerous offshore companies that have an established reputation for delivering high quality products, so if you shop around, you will be able to find the perfect balance.

request-for-proposal

Documentation

In order to get an accurate estimate and get the development team on board, you have to provide them with as much information and documentation as possible. Here are some of the documents that you should present to your development team, before requesting a quote.

RFP

A request-for-proposal will help you evaluate the responses from various developers more easily. To start, the RFP should define the project and its scope. This can include an executive summary of the project, a definition of the components and architecture of the app, and a series of questions you have for each vendor.
The executive summary should give a very brief explanation as to the focus of the app, and clearly define the various components and methods that will go into the app. Any technical detail will help the developer better understand your project. Finally, you want to have a list of questions for your developer, regarding issues such as previous projects and their ROI, the model of delivery, the quality testing tools and methodology, and other relevant factors regarding core capabilities such as development, design and quality control.

You can find a list of free RFP templates here, and there are many more to be found on the web.

Business plan

Your business plan contains a lot of information that can help the development team. While the RFP offers a detailed look at the specific product you are looking to purchase, the business plan offers a general view of your company and its vision. A business plan will help the developer see how the app fits in the bigger picture.

A business plan is usually comprised of an executive summary, a description of the company, a description of the target market, the marketing strategy, and the financial plan. The executive summary will help the developer understand the problem that your company is trying to solve, the solutions it is deploying, your unique value proposition, and your objectives. Your business plan will also likely cover your competitors, your customer acquisition strategy, and your monetization strategy, all of which are important factors that affect the final scope of your app.

Pitch Deck

A pitch deck is usually a PowerPoint presentation that is meant to provide a brief introduction to your business plan. It is best used in online or face-to-face meetings with potential investors, customers or partners. The pitch deck is meant to open the conversation and to give the prospective developer a quick understanding of what your company is about.

It should contain all the key information outlined in your business plan, but without being excessively long, including a description of your team, the problem you are addressing with your app/services, the solution you offer, the target market, the competition and your general business model.


Business model canvas.

The business model canvas is an alternative to the business plan. It was developed by Alexander Osterwalder, and it is meant to be a more agile and modern version, suitable for today’s highly dynamic business environment, especially within the tech field. It is less costly, less time consuming and much shorter than a business plan, and it covers 9 important business areas: key partners, key activities, key resources, cost structure, value proposition, customer relationships, channels, revenue streams, and customer segments.

Odds are that you either have a business plan, or you work with a business model canvas. When presenting a business model canvas to your development agency, you are helping them gain a clear understanding of how various components of your business connect and impact each other, and how you intend to maneuver your business in the market. The BMC also has your value proposition at its core, making it a key consideration in the development process.

Mobile App Cost: Key Takeaways

The cost estimation process relies on two factors: your understanding of the various cost structures and the developer’s understanding of your business, and your goals and the means of achieving them. However, the best way to get a good price and a great final product is to have as clear an image as possible of the app you want to develop and how you want to develop it.

Check out some of our best app design ideas: simple, plain and effective

If you understand the APIs, development methodology, programming languages, and project management methods that will be used in your project, you are able to better estimate pricing and timelines.

Conversely, if the developer understands your business and preferences correctly, they will be able to give the most accurate quote and deliver a quality final product that helps you meet your objectives. Avoid upfront quotes, and make sure that you include a list of the features you’d like for your app, the services you need, the platform you want to develop for, and the ideal timeline for your business.

See also:

Categories
Blockchain Finance Financial Services Software

Ethereum gas: how to pay it on behalf of your users

On Ethereum, every transaction that changes the state of a smart contract costs a small fee: this is called gas. Most commonly, end users pay gas while interacting with a smart contract. However, when you’re making a profit on your product by charging some transaction fee or just want to gain many users quickly, you may think about covering the Ethereum gas costs yourself. Well, good news — it’s achievable! In this article, I’ll describe how to do this from both the business side and technical side.

To calculate the precice amount of gas you need to know two factors: Ethereum gas price and the complexity of the operation you want to execute. The current average gas price of Ethereum depends on the current demand on the Ethereum network. Now, let’s see how you can offload the gas costs from the transaction creator to the platform itself.

Blockchain use case: P2P options exchange

The need for offloading the transaction fee in order to achieve cheaper prices is real! We’ve recently faced the problem of moving as much Ethereum gas cost as we can from the end user to the contract creator. The project in question was a blockchain peer-to-peer options exchange, which got a percentage of profit from every successful option settlement. The goal was to encourage people to use the product by waiving any additional cost, just like in non-blockchain solutions.

One of the functions that needed to be free for the users was a standard ERC20 functionality – approve(). User A can allow user B to transfer a certain amount of tokens from user A’s wallet. This method, like any other, normally costs Ethereum gas to execute, but we want to achieve this with no cost to the user. Let’s call the target solution zero-fee allowance. The following requirements must be met for a trusted and secure solution:

  1. The transaction has to be executed by the contract owner, not the end user.
  2. It has to be clear which action is performed by the contract owner on behalf of which end user.
  3. The transaction can be invoked only once.
  4. Two transactions containing two intents by the same end user have to be executed in the order of creation.

Dealing with the Ethereum gas cost challenge

We began by searching through Ethereum Improvement Proposals for problems similar to ours and maybe some solutions. Jackpot! Issue 662 addressed our problem.
After a detailed analysis we were ready to develop our own solution based on what we learned.
We divided the process into 3 parts:

  1. Arbitrary data (the intent) is signed offline using the end user’s private key. The data contains the approve method signature, all parameters and contract address on which the request should be executed. The resulting data signature is sent along with rest of data to the server. Within this step, the user doesn’t make any state changing transactions, so there’s no transaction fee.
  2. The server gets the data from the end user and pushes it to the network using the smart contract owner’s key. The smart contract owner pays the transaction fee.
  3. The contract verifies if the sent data is really the end user’s intent by validating the signature. Then it checks for replay attacks and user intent’s execution order. Lastly, it executes the actual approve function.

Implementation

This part describes the technical solution. So, if you’re not interested in the guts of implementation details, then just skip to the next section, where I’ll discuss the financial aspect of the zero-fee allowance approach.

We based our solution on StandardToken from OpenZeppelin framework. It gave us base methods like the aforementioned approve(). Next, we moved to validating the end user’s intent in the getSigner() function. Firstly, the end user address is recovered from the data signature. Then, the signature is checked against the signature calculated for the arbitrary data passed by the end user. In this step, the intents order is checked by incrementing the nonce value. Lastly, the intent is checked for any previous executions.
After all these checks pass, the flow continues like the standard approve method with the spender address being replaced with the one belonging to the user who signed the message. For readability, the code is split into three methods – checkProvableApprove and provable_approve. The first one is constant and can be used for checking intent correctness, while the second changes the state.

Business calculation of the Ethereum ETH price

Let’s take a look on price per unit that user has to spend per transaction with zero-fee allowance in comparison with the traditional approach.

The gas price and ETH/USD ratio given at the time of writing:

Gas price (Gwei) ETH/USD
49 995.5
Method Gas used Wei cost Ether cost USD cost
Zero-fee allowance 98213 4.81244E+15 0.004812437 $4.79
Traditional allowance 45324 2.22088E+15 0.002220876 $2.21

The conclusion is quite clear. The zero-fee allowance approach costs over 2 times more than when the approve() function is executed directly by the user. In our use-case, that move was worth it, but it should be an individual decision. After all, as the popular song goes, “it’s all about the money”.

If you liked this article, then give it a share. We’ve got more great stuff on our blog (e.g. a guide on how to start an ICO), so make sure you subscribe to our newsletter to be up to date!

Categories
Software Technology Uncategorized

How geolocation and big data can be used to the advantage of your business apps

Nearly all industries have improved their efficiency through the use of geolocation. When it is combined with big data it allows for greater client satisfaction including more individualized customer experience, better targeted marketing and enables you to learn more about your own company.

Geolocation Apps & Big Data

Geolocation is most commonly used in marketing for geofencing, which targets clients who enter a certain location or area. This is often seen in shop apps which recognize when a client is near one of their stores and will then send them special offers, discount coupons, or other promotional information.

In similar vein big data analyses purchases to change or improve offers to better suit the needs of the consumer and allows a company to make their own products more attractive than those offered by the competition. For example a retailer can send special promotions and offers to a client whilst they are shopping in a competitors store. Equally, offers with a small time window can be sent to customers who are currently shopping in one of the company’s own on-line stores. This last example utilizes Beacon technology which works like geofencing but on a smaller scale, i.e. tracking the exact location of a client in the shop.

geolocation apps

Transportation and Logistics

Geolocation is indispensable for transportation and logistics where it is able to get the most out of the huge amount of data produced. Applications utilizing geolocation collate information about traffic jams, road works, quickest routes and allow for the communication of current locations and delivery times between the customer and the service/goods provider. For example, the client can keep track of the person who is delivering his food, and conversely a restaurant can also know exactly when the customer arrives to collect their order. Even within companies it is possible to create more realistic schedules and production timelines based on geolocation information shared between employees.

Social apps

Geolocation has also become an integral part of many social apps allowing users to leave digital markers as they use restaurants, hotels, and bars so that they can  rate their experiences and leave comments for other customers. This also provides increased levels of user engagement as most recently exampled in the huge success of Pokémon Go which showed the possibilities of augmented reality making old forms of advertising suddenly come alive. The same technology can be applied to museums, galleries and other architectural spaces to create virtual tours and even help people negotiate other public facilities such as hospitals or government buildings.

big data apps

Summing up

Geolocation and its various applications are constantly improving, just as are the analytic tools used to interpret and apply the information produced by it. However, it is worth mentioning security concerns that are inevitably produced by the collecting and use of such data. In this regard we should only ask for information that we really need and we should be always transparent about how and when it is to be used. In this way users can always feel safe using our products and can make informed choices on whether or not to disable location on their app.

Want to know more about Espeo? Read about our services HERE.

See also: