Gnosis Token Crowd Sourced Wisdom
Platform, or “app,” tokens in decentralized networks can be distributed in a variety of ways. In the Bitcoin and altcoin model these tokens are distributed gradually via a proof of work or proof of stake mechanism. There are variations within these mechanisms which are primarily dependent on the supply curve. This curve determines the rate of dispersion of the total coin supply. Over the last two years, an informal standard for the token purchase mechanism has emerged. In this mechanism, cryptocurrency is sent to an address in exchange for some amount of app tokens. These launches typically run for approximately a thirty day period. The rate of conversion between the sent cryptocurrency and the received app tokens decreases over this thirty day period (i.e. fewer tokens per unit of cryptocurrency). For example, the rate during the first two weeks may remain at 1 ETH for 200 Tokens and then decrease linearly to 1.5 ETH for 200 Tokens and below over the open period. The amount of tokens created is often wholly dependent on the amount of cryptocurrency sent in. If the rate is 1 ETH for 200 tokens and 1M ETH is sent, 200M tokens will be created. This model causes friction for purchasers in that they are compelled to purchase app tokens earlier than they feel is justified for fear of price increases. The uncertainty in token creation may also potentially lessen the utility of the app tokens themselves.
In the Gnosis launch, 10 million Gnosis tokens (GNO) will be created and a percentage of them will be distributed through the token launch. The launch period will end when either of the following ending criterion is met: 1.5M ETH worth of GNO is sold, or 9 million GNO tokens are sold. During the launch, participants will be able to send Ether to a token launch address, committing to buy GNO at or below the current price at the time of their purchase. The price of GNO will be determined by a falling, as compared to the current trend of rising, price specification. The price of GNO will decrease every block that elapses during the launch. The price per GNO sold in the final block, when either ending criterion is satisfied, is the price that will be applied to all preceding sales during the launch period. Therefore, token launch participants are committing to a maximum price per Gnosis token and will receive tokens at this rate or lower.
Example user experience
For example, Gnosis creates 10M tokens and begins the token launch. Alice sends 1 ETH to the token launch address while the rate is at 1 GNO for 1 ETH. The token launch process continues, with the price per GNO lowering each block. 1.5M ETH worth of GNO is sold on the 7th day of the launch. On the ending block, tokens were sold at a rate of 1 GNO for 0.5 ETH. The token launch concludes, and every participant gets tokens equal to the amount of Ether that they sent, at the rate of 1 GNO for 0.5 ETH (the price when the ending criterion triggered). Alice, who contributed 1 ETH on day one, would therefore receive 2 GNO, applying the final sale price to her 1 ETH purchase. Again, participants declare the maximum price they are willing to pay for GNO, but ultimately receive the lowest price that any purchaser pays for GNO as the final sale price is applied to all purchasers.
Gnosis Prediction Market Introduction
Economic theory dictates that purchasers should participate only when GNO tokens reach a price they feel is representative of their utility in the Gnosis ecosystem. Tokens will sell for a very high price on the initial blocks, representing high demand for the product. If a buyer believes the price is fair, economic theory would encourage participation. If not, economic theory dictates buyers should wait until GNO reaches a price they feel is warranted by GNO’s functionality in the platform. It is important to emphasize that our token launch model is significantly different from previous models. Participating early provides no special benefits.
Origin of this mechanism
Alex van de Sande, seeking out a model that better enabled participation and eliminated some of the aforementioned friction created by existing mechanisms, originally proposed this auction mechanism. We agreed with his suggestion and following the initial idea, we worked with Alex and Vitalik Buterin, who also supported this design, to create the mechanism that we have now settled on.
Stefan George, technical co-founder of Gnosis has released our smart contract source code along with the code for our token launch mechanisms.
Additionally, his multisig wallet, recently used by Golem, is also available for review.
Here are links to the code:
THE HUNCH GAME
The Hunch Game is a gamified prediction market for celebrity and media gossip. It is our first foray into building apps on top of Gnosis. Hunch Game provides an example of a customized application built on Gnosis, and highlights the need for such interfaces. Although celebrity gossip is outside of our interest comfort zone, we feel that it is incredibly important to understand and cater to the needs of users outside of the crypto space. The Hunch Game is nearly ready and can be launched in the first half of 2017 as an example Gnosis app.
predART is an early stage idea to create prediction markets for pre-auction art valuation. We have received insights that such an application would be very useful for auction houses. These houses can save billions of dollars with prediction market insights into variables such as where to begin auction pricing, and how much profit to guarantee to sellers. We are excited to see and support a vast array of information gathering applications for industries.
How to Gnosis
quick guide on using the test (real ether) markets at admin.gnosis.pm
The guys at Gnosis have created two new markets for us to play with in the lead up to their highly anticipated token launch. Given the Gnosis Dapp is still a very raw beta product, I thought I’d quick up a quite review on how it works.
Step 1: Have a web3 browser!
There are several options for web3 capable browsers on the main net; MIST, Parity, and Metamask are the three that immediately spring to mind. (I would normally add Status.im to that list, but they aren’t on main net just yet).
For this example I’m using Metamask, just because it’s the most accessible for anyone who hasn’t touched ethereum before. It’s pretty self explanatory to set up, but if you would like someone to walk you through it, check out this guide first.
Step 2: Head over to the Gnosis beta Dapp at admin.gnosis.pm.
Step 3: Deposit ether.
Plug in how much ether you would like to deposit. Remember, no more than
you are willing to lose as is this an experimental Dapp still in Beta.
If everything looks right, accept the Metamask confirmation.
As soon as your transaction is confirmed, you’ll be able to buy shares in markets.
Step 4: Pick your market.
Head back to the market list and pick a market.
Step 5: Buy shares in the position you think is correct.
Hit the buy shares button.
Choose the number of shares you would like to buy and in which outcome. Choose whether or not to pre-approve the contract for future transaction (this is to cut down on the number of transactions for frequent traders). Since this is a once off transaction, I’ve left it toggled to “No”. Then hit confirm. Confirm that you really want to buy shares in the market. Again, if everything looks good, approve the Metamask transaction and wait for your transaction to confirm on the network.
Congratulations! Now you have shares in a market on Gnosis! Woo! As demand for different positions changes so too will the price, and when the market resolves ether will be paid out to addresses relative to the shares they hold in that particular position.
From here you can have a play with some of the other features like selling your shares, buying positions in all of the outcomes, and short selling shares.
Disclaimer: This is absolutely not investment advice. The Gnosis beta is an experimental Dapp and it is highly likely that you will lose anything you put into it, so please treat it as such.
This is a main network test with a rudimentary interface. There may be bugs. Markets will be funded with small amounts and there will not be much liquidity because of this. Please act accordingly and do not risk much funds.
Gnosis Bug Bounty Round II $50k bounty for severe bugs
Welcome again bounty hunters!
Following our first bug bounty we are starting the next round of our bug bounty program for all contracts and software relevant for our upcoming token launch. Read more about our token launch mechanics here.
Major bugs will be rewarded with up to $5,000. Much higher rewards are possible (up to $50,000) in the case of very severe vulnerabilities. All rewards are paid in GNO tokens after the auction ends.
- $500: For any spec. bug in this document.
- $5,000: Any bugs leading to a redeploy of our auction
- $20,000 reward for bugs allowing trusted parties to “steal” funds Example: A multisig owner can move funds above the daily limit without multisig.
- $50,000 reward for bugs allowing non-trusted 3rd parties to steal funds Example: An unauthorized third party can move funds out of the multisig.
Most of the rules on https://bounty.ethereum.org apply. For example: First come, first serve. Issues that have already been submitted by another user or are already known (such as these) to the team are not eligible for bounty rewards.
A brief introduction to the Dutch auction contract
Before the auction starts:
- The dutch auction starts at a very high price per GNO token. The price decreases with every block: gnoPrice = priceFactor * 1 ether / (block.number — startBlock + 7,500) + 1 In code: https://github.com/ConsenSys/gnosis-contracts/blob/security_audit/contracts/solidity/DO/DutchAuction.sol#L222
- The priceFactor will be selected by the Gnosis team shortly before the auction starts. The priceFactor is chosen, such that the start price for one GNO will be $30 at the time the auction starts.
- The maximum receivable amount (ceiling) is ETH valued $12.5M.
- The amount in ETH will be set shortly before the auction starts using the changeSettings function.
- After the auction starts, the ceiling as well as the priceFactor cannot be changed.
- The auction is triggered by a transaction from the Gnosis multisig wallet to the dutch auction contract function startAuction.
During the auction:
- Bids are accepted via the bid function until ceiling or the stop price is reached (gnoPrice <= stopPrice).
- The stop price is based on the following formula: stopPrice = totalReceived / 9,000,000 + 1 In code: https://github.com/ConsenSys/gnosis-contracts/blob/security_audit/contracts/solidity/DO/DutchAuction.sol#L212
- The stop price guarantees that the Gnosis team retains at least 10% of all tokens.
- The bid function allows to bid on behalf of another user (the receiver). This is required for a ShapeShift integration allowing users to directly buy GNO with any supported currency.
- If a bid exceeds the ceiling, the maximum amount will be bid and the difference will be returned (to the receiver).
After the auction:
- After the auction is ended, there is a one week waiting period.
- After the one week waiting period everyone can claim their tokens with the claimTokens function and trading can start.
Scope of Gnosis Bug Bounty Program
The contracts are deployed on the mainnet:
- DutchAuction.sol: 0x01be2862387d46ef9a7c2145ee74961d62aa4154
- GnosisToken.sol: 0xef37e3a452fd3041144c04d993aa0b498a106ac4
- MultiSigWalletWithDailyLimit.sol: 0x0c9a023dc047bc3140ece933dd285c50379a9d4a
Contracts are compiled with Solidity version 0.4.4. The solidity compiler should compile to the same bytecode on every system. Please follow the instructions in the readme to deploy contracts and produce the same bytecode: https://github.com/ConsenSys/gnosis-contracts/tree/security_audit#install
Use the tokenAuction.json file as input for the deploy script: python deploy.py -f deploy/tokenAuction.json
Out of scope:
- Bugs related to Internet Explorer
- All browser rendering bugs that don’t affect the display of critical information such as ETH, GNO
- Most user experience improvements on the frontend
- https://github.com/ConsenSys/gnosis-contracts code that is outside the scope defined above
Examples of what’s in scope
- Being able to obtain more tokens (GNO) than expected
- Being able to obtain GNO from someone without their permission
- Bugs in eth-lightwallet that lead to loss or theft of ETH
- Bugs causing a transaction to be sent that was different from what a user confirmed: for example, a user transfers 10 GNO in the UI, but exactly 10 wasn’t transferred.
Examples of what’s out of scope
- Most user experience improvements on the frontend, for example, some part of the website doesn’t update unless the page is refreshed
The bug bounty ends on the day GNO becomes tradable, one week after the auction is over. However, the bounty program is still open for submissions regarding eth-lightwallet that have not been identified and fixed in newer versions of eth-lightwallet.
Responsible Disclosure Policy
If you comply with the policies below when reporting a security issue to us, we will not initiate a lawsuit or law enforcement investigation against you in response to your report.
We ask that:
- You give us reasonable time to investigate and mitigate any issue you report before making public any information about the report or sharing such information with others.
- You make a good faith effort to avoid privacy violations and disruptions to others, including (but not limited to) destruction of data and interruption or degradation of our services.
- You do not exploit a security issue you discover for any reason. (This includes demonstrating additional risk, such as attempted compromise of sensitive company data or probing for additional issues.)
- You do not violate any other applicable laws or regulations.
Email your submissions to: [email protected]
Don’t forget to include your BTC or ETH address so you can be rewarded (If more than one address is specified, only one will be used at the discretion of the bounty program administrators).
Anonymous submissions welcome.
For questions use the forum: https://forum.gnosis.pm/
How to Buy tokens with Gnosis LightWallet
First, you will be asked to generate a new account or to restore an old one.
Click on generate and start moving your mouse to generate entropy. You will get a seed phrase, please save it! Protect your new account with a password, and finally click on Create wallet. At the end of the process you will need to download your wallet or send it by email (recommended).
These are steps to ensure that your wallet is properly saved. After that, you will be asked to restore your wallet, you can use your pass phrase or the wallet backup file as well.
Great! You have finally created your wallet and can join the auction. Below is an overview of your account.
In order to buy tokens, please go to Buy tokens section, place the ETH amount and click on Buy button. You will be asked to confirm your action by typing your password. Remember that a small portion of the amount is used by Ethereum as Gas. The Buy tokens section lists your total committed ETH and your total GNO tokens you will receive at the current price. The number of GNO tokens will go up until the auction is over. When the auction is over GNO tokens can be claimed and will show up in the GNO balance of your Ethereum wallet.
Click on Transaction history to view a list of your sent transactions.
Software Engineer at Gnosis.pm
Gnosis Twitter Bot
In order to make prediction markets accessible and easy to use for everybody, Gnosis has placed its focus on building a platform and ecosystem of applications. We believe that because prediction markets can be used for such a wide variety of applications, in diverse locations, it’s important for each type of application to have its own interface and business strategy. We have built a Twitter bot, which interacts with Gnosis, allowing anyone on Twitter to participate in Gnosis markets via tweet and uPort.
Every 3 hours the Gnosis Twitter Bottweets the outcome prices of selected markets.
Users can reply to the tweet with their predictions using the following message:
1. “Lower 1 ETH”. Bet 1 ETH on NO Outcome.
2. “Higher 1 ETH”. Bet 1 ETH on YES Outcome.
The Twitter Bot replies showing how the outcome probability will change and with a QR code you can scan with Uport to perform the transaction.
Before using the bot you need to configure your Uport account with a few steps, detailed in the video below:
1. If you don’t have a Uport account, go to https://www.uport.me/signup to sign up for the Uport alpha.
2. Fill your Uport account with testnet Ether.
Got to uport app — settings — Developer tools — Request 1 ETH from faucet
3. Go to https://twitterbot.gnosis.pmand click on the first QR code “Configure Uport”, accept the transaction and wait.
4. Once the transaction is mined, go back to the page and click the second QR code “Deposit 1 ETH”, sign the transaction and wait.
5. Now you have configured your Uport account to use Gnosis and deposited 1 ETH in tokens. You are ready to trade.
6. Go to Twitterhttps://twitter.com/BotGnosis and reply to one of the tweets, such as,
7. The bot will reply with a QR code and a link.
8. Click the link, or scan the QR code to sign the transaction and wait until it is mined.
9. Once the transaction is mined you can check your shares in the uport.gnosis.pm link of the original tweet.
10. In the management interface you can sell your shares or redeem your winnings when the outcome is set.
Thanks to Martin Köppelmann.
It’s finally time! The Gnosis token sale is beginning tomorrow, April 24th, at 1pm EST.
Generally speaking, participation in the sale involves sending Ether to the token sale contract, and then receiving GNO tokens back within one week of sale conclusion.
Here are guides for several participation options:
Gnosis LightWallet (Default recommended option, can be funded with any Ether source including Shapeshift)
Kraken (Participate directly from Kraken and have tokens credited to your account)
MyEtherWallet (Light wallet commonly used for other token sales)
Ethereum-Wallet / Mist (Full node Ethereum wallet maintained by the Ethereum Foundation)
Parity (Alternative full node wallet with technical features)
imToken (中文, Mobile wallet targeting the Chinese market)
We are also available on Slack for additional questions.
We’re looking forward to taking the next leap in the Gnosis project tomorrow!
The Gnosis Team
IMPORTANT INFORMATION GNO tokens are functional utility tokens within the Gnosis platform. GNO tokens are not securities. GNO tokens are non-refundable. GNO tokens are not for speculative investment. No promises of future performance or value are or will be made with respect to GNO, including no promise of inherent value, no promise of continuing payments, and no guarantee that GNO will hold any particular value. GNO tokens are not participation in the Company and GNO tokens hold no rights in said company. GNO tokens are sold as a functional good and all proceeds received by Company may be spent freely by Company absent any conditions. GNO tokens are intended for experts in dealing with cryptographic tokens and blockchain-based software systems.
Gnosis - Thanks, Thoughts, and the Road Ahead
Dear Gnosis Community,
We are humbled to have seen such strong support from the community in our token sale. For the past 2 years we have been building Gnosis from the ground up and have been working towards this moment. This was not only a huge step forward for Gnosis, but also a highly emotional event for us. It’s an affirmation of both the project and team, and we are honored that the community holds such high opinions of us. Thank you.
A few facts:
- Over 1000 addresses participated in total
- The token sale was the fastest to sell out with more than 1000 participants
- Over $1M worth of transactions hit the auction contracts minutes after the end
- We are still getting daily requests to sell additional GNO
Now that the token sale has concluded, we have huge expectations to fill. We are prepared to deliver. Our roadmap, which can be found in the second half ofhttps://gnosis.pm/timeline, not only gives a detailed plan of our next steps over the coming months and years, but also provides probability estimates of the timeliness of successful releases. This data comes from Gnosis markets. It is exciting for us to utilize such tools which increase transparency, accountability, and community involvement. The next significant steps on our roadmap are cryptoeconomics experiments and the release of our Gnosis Twitter AMA App. The cryptoeconomics experiments will test assumptions surrounding cryptoeconomic markets and their application toward Futarchy. The Gnosis Twitter AMA app allows anyone to easily participate in prediction markets directly from Twitter and their mobile device. This app provides a concrete example of Gnosis’ platform model.
Many of you are interested in what we will do with the retained tokens. First of all, 10% of total tokens will be used for incentivizing the team, including our former “mothership” ConsenSys to whom we will retain close ties. ConsenSys has a long term interest in Gnosis and to demonstrate that, they announced today that they will not touch their tokens for at least a year. Tokens given to individual team members will be released over a 4 year period via a smart contract. Of the additional tokens retained by the Gnosis company we have visibly locked 99% for at least a one year period (find the transaction here). Following this time period, we intend to lock a significant portion for longer still, but are not currently committing to any fixed number to be able to react to the situation one year from now in the most appropriate way. These tokens are held for the purposes of incentivizing projects building on top of Gnosis and to bring in additional funding or token distribution for the project if necessary. There have been some concerns raised regarding the impact that this distribution will have on project decentralization. There are specific cases in which distribution must be wide for a project to work: Namely, protocol tokens in which there is any form of voting rights or proof of stake. In application and platform level tokens, this is not the case. We strongly believe that this distribution will benefit all token holders by ensuring we have sufficient tokens to incentivize ecosystem growth.
For everyone who participated successfully in the token sale, GNO tokens will be credited to their Ethereum addresses on May 1, 17:19:49 UTC. Meanwhile everyone can check their GNO balance onhttps://gnosis.pm/balance.An Introduction to the Gnosis Prediction Market Platform
It is our vision to create a world-changing platform. To achieve this goal we see a decentralized platform that runs exactly by the rules it was created under as a key component. In addition, GNO tokens should play a major role in aligning incentives to use this platform — eventually hopefully between millions of GNO holders. You may be among the first one thousand. We are looking forward to embarking on this journey together.
Martin, Stefan, Matt and Friederike for the Gnosis team
How to Claim Your GNO Tokens From the Gnosis ICO
With the recent success of the GNO ICO token auction, participants are asking how to claim their tokens.
The answer: It depends how or where you bought them:
I Sent ETH Manually
If you sent ETH to the Gnosis Dutch Auction Contract manually (e.g. using Mist or Parity) you would have executed the bid() function on the contract and sent ETH with the transaction. To claim your tokens you simply need to execute the claimTokens() function after the waiting period (exactly 7 days from the close of the auction).
I bought them from Kraken
Are you 100% sure? Maybe you followed their article. However, Kraken failed to get many (if any) transactions through to the Gnosis auction in time, due to their withdrawal process taking at least 5 minutes (the auction was over in less than 10 minutes). If you were participating the in the ICO at Kraken you should have received an email from them (something like this), of which you had to respond within a 24 hour period.
Kraken tokens will be credited to your Kraken account after they have claimed them from the GNO dutch auction (once the waiting period is over).
I’ve claimed them. Where are they?
Well, you can’t until the waiting period is over. However, if you’re reading this after that time, you can see how many you have on etherscan.io at your account address. e.g. Gnosis team’s GNO token stash is here: https://etherscan.io/address/0x851b7f3ab81bd8df354f0d7640efcd7288553419 and click the link that says “[View Tokens Balance & Value]”
Other Links of Interest
The Gnosis Token Auction analysis
A graph view
The Gnosis token auction was over in 12 minutes. There is much discussion about what this implies. I don’t have a clear position regarding that, yet — but I can help with another question: Where did all the ETH come from?
Let’s have a look:
Download in full resolution
The illustration shows the second degree neighborhood graph of the Gnosis auction contract. It only includes Messages that were sent after Block 3.5M (about 2 weeks before the auction) to the end of the auction. The node in the center (###strong
/strong###) is the Gnosis Reverse Dutch Auction Contract Account.
- Round nodes represent External Accounts. Token buyers are white, Accounts that fund buyers are in grey.
- Red triangles represent Contract Accounts
- Purple squares represent exchanges
- Interactions between Accounts are grouped. That means if there were several interactions between two Accounts only 1 line is drawn.
- Blue connections are accepted bids to the Gnosis Auction (unsuccessful bids are not displayed) with the origin of the connection as the receiver of the GNO tokens bought. This is not the same as ether transfers to the auction because the sender of ether and the receiver of the GNO tokens are not necessarily the same Account.
- Interactions that fund Bidders are drawn in white.
- All other interactions are grey.
- The double lines represent Call Transactions and Call Contract Messages.
The clusters in (F/G5), (E6), (G6) and (I5) show buyers that received ETH from Poloniex, Kraken, Bittrex and yunbi before buying GNO.
The last accepted buyer is shown in blue (G7). The green arrow represents the ~14.5 ETH returned by the auction, because it was over the 250k ETH limit.
Some bids had the auction as a receiver (###strong
/strong###). These GNO are lost forever (72.3 ETH in 6 bids = ~400 GNO). However, I hear that Gnosis has decided to reimburse the unlucky buyers.
The biggest bids were done by contracts at the very beginning of the auction. The Bidding Ring contract (E3) bought ~78k ETH and the Proxy Sender contract (B5) bought round about 38k ETH. It was funded by 326 accounts. The accounts are arranged in several clusters, depending where they were funded from. The biggest cluster contains the nodes whose funding is older than 2 weeks (A4/5). Since no data older than 2 weeks is included in the graph, they cannot be grouped differently. The cluster in (B5/6) was funded by Kraken and the one in (C4/5) by Poloniex.
Many smaller buyers concentrated their funds before bidding. These Accounts are represented by the formations similar to the one in (J1).
This is an example of what is possible when graph analysis works hand in hand with ontology engineering. Of course, there is much more to see in the Graph than was discussed here. But there are limitations to what can be shown in a single image. One limitation of this illustration is that it doesn’t differentiate between the bidder (the Account that sent the actual bid) and the receiver of the GNO. When different, the receiver is shown in the image, not the bidder.
The strength of visualizations is that they provide a mental image of what happened to non-technical viewers. And this leads to good questions. Which can sometimes be answered by a simple graph query to the db.
If you have questions, ask in the comments of this article, I’ll try to answer them.
Sources and tools
The data for this illustration was created using an architecture provided by alethio, a baby ConsenSys spoke concerned with blockchain analytics. Thanks to everyone who helped build it! The alethio engine is powered by EthOn. The illustration was created using Cytoscape.
Some explanations were simplified to address a broader audience. If you have questions, please ask me.
The author is a member of ConsenSys and co-founder of alethio. The views expressed by the author above do not necessarily represent the views of Consensus Systems LLC DBA ConsenSys. ConsenSys is a decentralized community with ConsenSys Media being a platform for members to freely express their diverse ideas and perspectives. To learn more about ConsenSys and Ethereum, please visit our website.
Gnosis (GNO) Updated Exchange List:
Gnosis (GNO) Breaking the Silence
Part of the Gnosis Team in Gibraltar, July 2017
We know it’s been a while. And we’re sorry for the radio silence. After the token sale in April we went straight to work, hunkered down, and set out to make things happen. During the last four months, we’ve been working hard on several projects that we’re extremely excited to tell you all about in the weeks to come. When we last spoke, we were 7 people working on Gnosis. Today, we count 25 people to our team. While we’re starting to bring non-technical talent on board, the majority of our team members are extremely creative and sharp developers. Growing so fast allowed us to work on many different projects simultaneously. We were able to drive some major infrastructure development initiatives forward that turned out to become a necessity for both us and our community. From basic key infrastructure components on Ethereum, the Gnosis core development, interfaces and applications over business cases, organizational structure to legal efforts, we’ve been dealing with an armada of challenges. It would be impossible to tell you about all the interesting and elaborate projects we’ve worked on over the past few months in a single blog post and do them justice. That’s why we’ve decided to present Gnosis’ new structure in weekly chunks — every week, you’ll be introduced to one of the products we’ve been developing. Radio silence no more!
Gnosis' Organizational Structure—to be revealed in the coming weeks
To consolidate our efforts of these past months, we all gathered together in Gibraltar for a 5-day strategic retreat. Besides truly getting to know each other over some fantastic Paella and Tinto de Verano (most of us work remotely all over the world), we were able to have in-depth conversations around our overall company vision, goals, strategy, and culture. While chatting over Slack and video calling frequently makes us work together very effectively, it’s been magical to finally meet in person, work with and learn from each other, and discuss ideas face-to-face. We can’t wait to see the impact of our discussions in the months going forward. We’re super motivated for the rest of 2017 and are committed to achieve some great things together. The first is to be announced tomorrow! Stay tuned :)Impressions of our Gibraltar retreat
Gnosis Co-founders Stefan and Martin
The Gnosis MultiSig Wallet and our Commitment to Security
Pilots checking off the preflight checklist to ensure that no important tasks are forgotten. Similarly to aviation, we will require multiple experienced developers sign off that they checked for specific bugs in our MultiSig wallet (via Nasa QuickLaunch).
Recently, a critical bug was found in the MultiSig wallet implemented by the Parity team. A function that was meant to initially set the key holders was completely unprotected. Everyone could call it anytime and effectively take over control of any MultiSig wallet that was using this insecure code.
Tokens and Ether worth more than $200m were affected by this bug and could have been stolen by anyone. For us, the main question is now: Can we be 100% sure that such a bug can never make it into our MultiSig Wallet?
The realistic answer is: We can never be 100% sure. However, we do think that we can at least make these bugs very, very unlikely. When there’s a single person writing code, it is likely that bugs and errors sneak in during development. The key to preventing errors is a rigorous review process involving multiple developers. This process starts at the initial creation of the smart contract and extends to the actual release to catch all bugs before the contract is used in production.
Below is a list of absolutely minimal process requirements we defined for our smart contracts that intend to deal with millions of dollars of value.
- All contract code needs to be published multiple months before actual deployment.
- A natural language specification of the code should exist.
- A formal internal review process needs to be in place.
- Multiple experienced developers need to go through a checklist and sign off that they checked for specific bugs.
- At least two experienced developers undertook external audits of the smart contract.
- A public bug bounty program had been running for at least one month.
How does our MultiSig Wallet fare when held to these Standards?
- We published the code for the first time on September 8th.
- There is currently no natural language specification of the wallet. However, plenty of automated tests have been written and a natural language specification will be provided soon.
- As part of our review process we are following a checklist based on the best practices around contract security, created by a team of developers at ConsenSys. It is required that multiple developers check the contracts for known issues (Reentrancy, Integer Overflow, Issues around Gas, …) and document those checks.
- See previous point.
- Two full audits of the MultiSig wallet have been performed — one by Martin Holst Swende and the other one by ConsenSys. The results of the audits have been published here.
- We published a bug bounty program (see also this blog post) and got 5 substantial submissions.
The contracts for the Gnosis MultiSig wallet have been reviewed by at least 5 senior Solidity developers. The majority of teams that did ICOs over the last months are already using instances of the Gnosis MultiSig wallet, holding a combined value of over $1 billion worth of Ether and tokens (Gnosis Vault). We do believe that a strict formalization of those steps is required. In the future, we envision this formalization to be realized on the blockchain, so that we’ll be able to prove on the blockchain that a pre-defined set of standards was met. While the development of the MultiSig wallet is ongoing, we will release a standalone alpha version of the wallet as an electron app next week and give a detailed overview of its features.
Introducing the Alpha Release of the Gnosis MultiSig Wallet
Back in February, we first published our MultiSig wallet requiring multiple parties to agree on transactions before execution. Using their Ethereum account addresses, these parties are defined as MultiSig wallet owners in the smart contract. Only when a predefined number of these owners confirms a transaction, it will be executed. Hence, the single point of failure associated with private key-controlled accounts will be removed — losing or compromising the private key will no longer result in a loss of all funds controlled by the account. We’re proud to see that the majority of teams that did ICOs over the last months (Golem, Aragon, Civic, district0x for example) are already using instances of the Gnosis MultiSig wallet, holding a combined value of more than $2bn worth of Ether and tokens. While we’re continuously improving the Gnosis MultiSig wallet, we’re excited to introduce our desktop version today which allows you to create and import accounts, fully compatible with MyEtherWallet and MetaMask.New wallet creation, deployment as well as fund deposit in the Gnosis MultiSig wallet
Feature OverviewFeature Overview of the Gnosis MultiSig Wallet
- MultiSig Wallet Creation: You can create an unlimited number of MultiSig wallets.
- MultiSig Wallet Restore: You can load any wallet by holding its address. This means that everyone could deposit funds to a wallet, but only owners can execute transactions from it.
- MultiSig Owners Management: You can add, remove, and replace the owners of the MultiSig wallet. This will require the threshold of owners to confirm.
- Ethereum Tokens Support: Our MultiSig wallet supports all ERC20 tokens, such as GNO, STORJ, TENXPay, etc.
- Ledger Wallet Integration: The Gnosis MultiSig Wallet allows you to approve and execute transactions using hardware wallets like Ledger.
- Account Creation: You can create an Ethereum account along with the private key for this address on our MultiSig wallet.
- Account Import/Export: You can import an external V3 file as well as export accounts according to the Ethereum V3 format (compatible with MyEtherWallet and MetaMask).
- Signing User-User Transactions: Apart from multisig transactions, our MultiSig Wallet also allows you to send User-to-User transactions. For example, if Bob (owner of the MultiSig wallet) sends 5ETH to Claire (also owner of the MultiSig wallet), 5ETH will be deducted from Bob’s account balance.
- Transaction Simulator: The transaction simulator allows you to simulate the transaction execution result without actually sending the transaction. This includes transaction calls as well as ABI method calls.
- Transaction Decoder: Along with the list of transactions executed by both MultiSig wallets and the user, we have built an easily readable log of those transactions (f.ex “Bob has added Claire as an owner for the XYZ wallet”).
- Gnosis Alert Service: You can subscribe to the alerts service which looks for wallet events and sends a notification email whenever a certain event has been triggered. For example, if Bob creates a wallet and decides to activate the alerts service for that wallet when a deposit action happens, he’ll get notified via email when the ‘Deposit’ event is triggered.
- Signing Transactions Offline: Our interface enables offline signing of transactions. The Gnosis MultiSig Wallet UI detects if the user is on an offline computer and will adapt the interface accordingly to allow offline signing of any transaction. The signed transaction can then be transferred to an online computer and be sent to the Ethereum network.
- Custom Chain Support: You can provide a custom Ethereum node address by simply specifying it in the settings page, and just point the MultiSig app to the Ethereum node of your choice. Therefore, our MultiSig wallet is key provider agnostic and can be used with MetaMask, Mist, Parity, and more.
- Chain Detector: If wallets get created on other chains than the currently used one, you will be notified.
- Custom Transaction Sender: You can execute a transaction by specifying an ABI array, selecting a method and filling out the required parameters value.
Sounds good? Well, then try it out!
Download the Gnosis MultiSig wallet desktop standalone app for your operating system here.
- Transaction hashes for approval and buying/selling transactions now synchronized in convenience functions (#59)
- Limit margin parameter added to buying/selling convenience functions (#61)