498 lines
25 KiB
TypeScript
498 lines
25 KiB
TypeScript
import * as _ from 'lodash';
|
||
import * as React from 'react';
|
||
import * as DocumentTitle from 'react-document-title';
|
||
import RaisedButton from 'material-ui/RaisedButton';
|
||
import {colors} from 'material-ui/styles';
|
||
import {Styles, FAQSection, FAQQuestion, WebsitePaths} from 'ts/types';
|
||
import {Link} from 'react-router-dom';
|
||
import {Footer} from 'ts/components/footer';
|
||
import {TopBar} from 'ts/components/top_bar';
|
||
import {Question} from 'ts/pages/faq/question';
|
||
import {configs} from 'ts/utils/configs';
|
||
import {constants} from 'ts/utils/constants';
|
||
|
||
export interface FAQProps {
|
||
source: string;
|
||
location: Location;
|
||
}
|
||
|
||
interface FAQState {}
|
||
|
||
const styles: Styles = {
|
||
thin: {
|
||
fontWeight: 100,
|
||
},
|
||
};
|
||
|
||
const sections: FAQSection[] = [
|
||
{
|
||
name: '0x Protocol',
|
||
questions: [
|
||
{
|
||
prompt: 'What is 0x?',
|
||
answer: (
|
||
<div>
|
||
At its core, 0x is an open and non-rent seeking protocol that facilitates trustless,
|
||
low friction exchange of Ethereum-based assets. Developers can use 0x as a platform
|
||
to build exchange applications on top of{' '}
|
||
(<a href={`${configs.BASE_URL}${WebsitePaths.ZeroExJs}#introduction`} target="blank">0x.js</a>
|
||
{' '}is a Javascript library for interacting with the 0x protocol). For end users, 0x will be
|
||
the infrastructure of a wide variety of user-facing applications i.e.{' '}
|
||
<a href={`${configs.BASE_URL}${WebsitePaths.Portal}`} target="blank">0x Portal</a>,
|
||
a decentralized application that facilitates trustless trading of Ethereum-based tokens
|
||
between known counterparties.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'What problem does 0x solve?',
|
||
answer: (
|
||
<div>
|
||
In the two years since the Ethereum blockchain’s genesis block, numerous decentralized
|
||
applications (dApps) have created Ethereum smart contracts for peer-to-peer exchange.
|
||
Rapid iteration and a lack of best practices have left the blockchain scattered with
|
||
proprietary and application-specific implementations. As a result, end users are
|
||
exposed to numerous smart contracts of varying quality and security, with unique
|
||
configuration processes and learning curves, all of which implement the same
|
||
functionality. This approach imposes unnecessary costs on the network by fragmenting
|
||
end users according to the particular dApp each user happens to be using, eliminating
|
||
valuable network effects around liquidity. 0x is the solution to this problem by
|
||
acting as modular, unopinionated building blocks that may be assembled and reconfigured.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'How is 0x different from a centralized exchange like Poloniex or ShapeShift?',
|
||
answer: (
|
||
<div>
|
||
<ul>
|
||
<li>
|
||
0x is a protocol for exchange, not a user-facing exchange application.
|
||
</li>
|
||
<li>
|
||
0x is decentralized and trustless; there is no central party which can be
|
||
hacked, run away with customer funds or be subjected to government regulations.
|
||
Hacks of Mt. Gox, Shapeshift and Bitfinex have demonstrated that these types of
|
||
systemic risks are palpable.
|
||
</li>
|
||
<li>
|
||
Rather than a proprietary system that exists to extract rent for its owners,
|
||
0x is public infrastructure that is funded by a globally distributed community
|
||
of stakeholders. While the protocol is free to use, it enables for-profit
|
||
user-facing exchange applications to be built on top of the protocol.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'If 0x protocol is free to use, where do transaction fees come in?',
|
||
answer: (
|
||
<div>
|
||
0x protocol uses off-chain order books to massively reduce friction costs for
|
||
market makers and ensure that the blockchain is only used for trade settlement.
|
||
Hosting and maintaining an off-chain order book is a service; to incent “Relayers”
|
||
to provide this service they must be able to charge transaction fees on trading
|
||
activity. Relayers are free to set their transaction fees to any value they desire.
|
||
We expect Relayers to be highly competitive and transaction fees to approach an
|
||
efficient economic equilibrium over time.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'What are the differences between 0x protocol and state channels?',
|
||
answer: (
|
||
<div>
|
||
<div>
|
||
Participants in a state channel pass cryptographically signed messages back and
|
||
forth, accumulating intermediate state changes without publishing them to the
|
||
canonical chain until the channel is closed. State channels are ideal for “bar tab”
|
||
applications where numerous intermediate state changes may be accumulated off-chain
|
||
before being settled by a final on-chain transaction (i.e. day trading, poker,
|
||
turn-based games).
|
||
</div>
|
||
<ul>
|
||
<li>
|
||
While state channels drastically reduce the number of on-chain transactions
|
||
for specific use cases, numerous on-chain transactions and a security deposit
|
||
are required to open and safely close a state channel making them less efficient
|
||
than 0x for executing one-time trades.
|
||
</li>
|
||
<li>
|
||
State channels are isolated from the Ethereum blockchain meaning that
|
||
they cannot interact with smart contracts. 0x is designed to be integrated
|
||
directly into smart contracts so trades can be executed programmatically
|
||
in a single line of Solidity code.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'What types of digital assets are supported by 0x?',
|
||
answer: (
|
||
<div>
|
||
0x supports all Ethereum-based assets that adhere to the ERC20 token standard.
|
||
There are many ERC20 tokens, worth a combined $2.2B, and more tokens are created
|
||
each month. We believe that, by 2020, thousands of assets will be tokenized and
|
||
moved onto the Ethereum blockchain including traditional securities such as equities,
|
||
bonds and derivatives, fiat currencies and scarce digital goods such as video game
|
||
items. In the future, cross-blockchain solutions such as{' '}
|
||
<a href="https://cosmos.network/" target="_blank">Cosmos</a> and{' '}
|
||
<a href="http://polkadot.io/" target="_blank">Polkadot</a> will allow cryptocurrencies
|
||
to freely move between blockchains and, naturally, currencies such as Bitcoin will
|
||
end up being represented as ERC20 tokens on the Ethereum blockchain.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: '0x is open source: what prevents someone from forking the protocol?',
|
||
answer: (
|
||
<div>
|
||
Ethereum and Bitcoin are both open source protocols. Each protocol has been forked,
|
||
but the resulting clone networks have seen little adoption (as measured by transaction
|
||
count or market cap). This is because users have little to no incentive to switch
|
||
over to a clone network if the original has initial network effects and a talented
|
||
developer team behind it.
|
||
An exception is in the case that a protocol includes a controversial feature such as
|
||
a method of rent extraction or a monetary policy that favors one group of users over
|
||
another (Zcash developer subsidy - for better or worse - resulted in Zclassic).
|
||
Perceived inequality can provide a strong enough incentive that users will fork the
|
||
original protocol’s codebase and spin up a new network that eliminates the controversial
|
||
feature. In the case of 0x, there is no rent extraction and no users are given
|
||
special permissions.
|
||
|
||
0x protocol is upgradable. Cutting-edge technical capabilities can be integrated
|
||
into 0x via decentralized governance (see section below), eliminating incentives
|
||
to fork off of the original protocol and sacrifice the network effects surrounding
|
||
liquidity that result from the shared protocol and settlement layer.
|
||
</div>
|
||
),
|
||
},
|
||
],
|
||
},
|
||
{
|
||
name: '0x Token (ZRX)',
|
||
questions: [
|
||
{
|
||
prompt: 'Explain how the 0x protocol token (zrx) works.',
|
||
answer: (
|
||
<div>
|
||
<div>
|
||
0x protocol token (ZRX) is utilized in two ways: 1) to solve the{' '}
|
||
<a href="https://en.wikipedia.org/wiki/Coordination_game" target="_blank">
|
||
coordination problem
|
||
</a> and drive network effects around liquidity, creating a feedback loop
|
||
where early adopters of the protocol benefit from wider adoption and 2) to
|
||
be used for decentralized governance over 0x protocol's update mechanism.
|
||
In more detail:
|
||
</div>
|
||
<ul>
|
||
<li>
|
||
ZRX tokens are used by Makers and Takers (market participants that generate
|
||
and consume orders, respectively) to pay transaction fees to Relayers
|
||
(entities that host and maintain public order books).
|
||
</li>
|
||
<li>
|
||
ZRX tokens are used for decentralized governance over 0x protocol’s update
|
||
mechanism which allows its underlying smart contracts to be replaced and
|
||
improved over time. An update mechanism is needed because 0x is built upon
|
||
Ethereum’s rapidly evolving technology stack, decentralized governance is
|
||
needed because 0x protocol’s smart contracts will have access to user funds
|
||
and numerous dApps will need to plug into 0x smart contracts. Decentralized
|
||
governance ensures that this update process is secure and minimizes disruption
|
||
to the network.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'Why must transaction fees be denominated in 0x token (ZRX) rather than ETH?',
|
||
answer: (
|
||
<div>
|
||
0x protocol’s decentralized update mechanism is analogous to proof-of-stake.
|
||
To maximize the alignment of stakeholder and end user incentives, the staked
|
||
asset must provide utility within the protocol.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'How will decentralized governance work?',
|
||
answer: (
|
||
<div>
|
||
Decentralized governance is an ongoing focus of research; it will involve token
|
||
voting with ZRX. Ultimately the solution will maximize security while also maximizing
|
||
the protocol’s ability to absorb new innovations. Until the governance structure is
|
||
formalized and encoded within 0x DAO, a multi-sig will be used as a placeholder.
|
||
</div>
|
||
),
|
||
},
|
||
],
|
||
},
|
||
{
|
||
name: 'ZRX Token Launch and Fund Use',
|
||
questions: [
|
||
{
|
||
prompt: 'What is the total supply of ZRX tokens?',
|
||
answer: (
|
||
<div>
|
||
1,000,000,000 ZRX. Fixed supply.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'When is the Token Launch? will there be a pre-sale?',
|
||
answer: (
|
||
<div>
|
||
The token launch will be on August 15th, 2017. There will not be a pre-sale.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'What will the token launch proceeds be used for?',
|
||
answer: (
|
||
<div>
|
||
100% of the proceeds raised in the token launch will be used to fund the development
|
||
of free and open source software, tools and infrastructure that support the protocol
|
||
and surrounding ecosystem. Check out our{' '}
|
||
<a
|
||
href="https://docs.google.com/document/d/1_RVa-_bkU92fWRsC8eNy4vYjcTt-WC8GtqyyjbTd-oY"
|
||
target="_blank"
|
||
>
|
||
development roadmap
|
||
</a>.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'What will be the initial distribution of ZRX tokens?',
|
||
answer: (
|
||
<div>
|
||
<div className="center" style={{width: '100%'}}>
|
||
<img
|
||
style={{width: 350}}
|
||
src="/images/zrx_pie_chart.png"
|
||
/>
|
||
</div>
|
||
<div className="py1">
|
||
<div className="bold pb1">
|
||
Token Launch (50%)
|
||
</div>
|
||
<div>
|
||
ZRX is inherently a governance token that plays a critical role in the
|
||
process of upgrading 0x protocol. We are fully committed to formulating
|
||
a functional and theoretically sound governance model and we plan to dedicate
|
||
significant resources to R&D.
|
||
</div>
|
||
</div>
|
||
<div className="py1">
|
||
<div className="bold pb1">
|
||
Retained by 0x (15%)
|
||
</div>
|
||
<div>
|
||
The 0x core development team will be able to sustain itself for approximately
|
||
five years using funds raised through the token launch. If 0x protocol
|
||
proves to be as foundational a technology as we believe it to be, the
|
||
retained ZRX tokens will allow the 0x core development team to sustain
|
||
operations beyond the first 5 years.
|
||
</div>
|
||
</div>
|
||
<div className="py1">
|
||
<div className="bold pb1">
|
||
Developer Fund (15%)
|
||
</div>
|
||
<div>
|
||
The Developer Fund will be used to make targeted capital injections
|
||
into high potential projects and teams that are attempting to grow
|
||
the 0x ecosystem, strategic partnerships, hackathon prizes and community
|
||
development activities.
|
||
</div>
|
||
</div>
|
||
<div className="py1">
|
||
<div className="bold pb1">
|
||
Founding Team (10%)
|
||
</div>
|
||
<div>
|
||
The founding team’s allocation of ZRX will vest over a traditional 4
|
||
year vesting schedule with a one year cliff. We believe this should
|
||
be standard practice for any team that is committed to making their
|
||
project a long term success.
|
||
</div>
|
||
</div>
|
||
<div className="py1">
|
||
<div className="bold pb1">
|
||
Early Backers & Advisors (10%)
|
||
</div>
|
||
<div>
|
||
Our backers and advisors have provided capital, resources and guidance
|
||
that have allowed us to fill out our team, setup a robust legal entity
|
||
and build a fully functional product before launching a token. As a result,
|
||
we have a proven track record and can offer a token that holds genuine utility.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'Can I mine ZRX tokens?',
|
||
answer: (
|
||
<div>
|
||
No, the total supply of ZRX tokens is fixed and there is no continuous issuance
|
||
model. Users that facilitate trading over 0x protocol by operating a Relayer
|
||
earn transaction fees denominated in ZRX; as more trading activity is generated,
|
||
more transaction fees are earned.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'Will there be a lockup period for ZRX tokens sold in the token launch?',
|
||
answer: (
|
||
<div>
|
||
No, ZRX tokens sold in the token launch will immediately be liquid.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'Will there be a lockup period for tokens allocated to the founding team?',
|
||
answer: (
|
||
<div>
|
||
Yes. ZRX tokens allocated to founders, advisors and staff members will be released
|
||
over a 4 year vesting schedule with a 25% cliff upon completion of the initial
|
||
token launch and 25% released each subsequent year in monthly installments. Staff
|
||
members hired after the token launch will have a 4 year vesting schedule with a
|
||
one year cliff.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'Which cryptocurrencies will be accepted in the token launch?',
|
||
answer: (
|
||
<div>ETH.</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'When will 0x be live?',
|
||
answer: (
|
||
<div>
|
||
An alpha version of 0x has been live on our private test network since January
|
||
2017. Version 1.0 of 0x protocol will be deployed to the canonical Ethereum
|
||
blockchain after a round of security audits and prior to the public token launch.
|
||
0x will be using the 0x protocol during our token launch.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'Where can I find a development roadmap?',
|
||
answer: (
|
||
<div>
|
||
Check it out{' '}
|
||
<a
|
||
href="https://drive.google.com/open?id=14IP1N8mt3YdsAoqYTyruMnZswpklUs3THyS1VXx71fo"
|
||
target="_blank"
|
||
>
|
||
here
|
||
</a>.
|
||
</div>
|
||
),
|
||
},
|
||
],
|
||
},
|
||
{
|
||
name: 'Team',
|
||
questions: [
|
||
{
|
||
prompt: 'Where is 0x based?',
|
||
answer: (
|
||
<div>
|
||
0x was founded in SF and is driven by a diverse group of contributors.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'How can I get involved?',
|
||
answer: (
|
||
<div>
|
||
Join our <a href={constants.ZEROEX_CHAT_URL} target="_blank">Rocket.chat</a>!
|
||
As an open source project, 0x will rely on a worldwide community of passionate
|
||
developers to contribute proposals, ideas and code.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'Why the name 0x?',
|
||
answer: (
|
||
<div>
|
||
0x is the prefix for hexadecimal numeric constants including Ethereum addresses.
|
||
In a more abstract context, as the first open protocol for exchange 0x represents
|
||
the beginning of the end for the exchange industry’s rent seeking oligopoly:
|
||
zero exchange.
|
||
</div>
|
||
),
|
||
},
|
||
{
|
||
prompt: 'How do you pronounce 0x?',
|
||
answer: (
|
||
<div>
|
||
We pronounce 0x as “zero-ex,” but you are free to pronounce it however you please.
|
||
</div>
|
||
),
|
||
},
|
||
],
|
||
},
|
||
];
|
||
|
||
export class FAQ extends React.Component<FAQProps, FAQState> {
|
||
public componentDidMount() {
|
||
window.scrollTo(0, 0);
|
||
}
|
||
public render() {
|
||
return (
|
||
<div>
|
||
<DocumentTitle title="0x FAQ"/>
|
||
<TopBar
|
||
blockchainIsLoaded={false}
|
||
location={this.props.location}
|
||
/>
|
||
<div
|
||
id="faq"
|
||
className="mx-auto max-width-4 pt4"
|
||
style={{color: colors.grey800}}
|
||
>
|
||
<h1 className="center" style={{...styles.thin}}>0x FAQ</h1>
|
||
<div className="sm-px2 md-px2 lg-px0 pb4">
|
||
{this.renderSections()}
|
||
</div>
|
||
</div>
|
||
<Footer location={this.props.location} />
|
||
</div>
|
||
);
|
||
}
|
||
private renderSections() {
|
||
const renderedSections = _.map(sections, (section: FAQSection, i: number) => {
|
||
const isFirstSection = i === 0;
|
||
return (
|
||
<div key={section.name}>
|
||
<h3>{section.name}</h3>
|
||
{this.renderQuestions(section.questions, isFirstSection)}
|
||
</div>
|
||
);
|
||
});
|
||
return renderedSections;
|
||
}
|
||
private renderQuestions(questions: FAQQuestion[], isFirstSection: boolean) {
|
||
const renderedQuestions = _.map(questions, (question: FAQQuestion, i: number) => {
|
||
const isFirstQuestion = i === 0;
|
||
return (
|
||
<Question
|
||
key={question.prompt}
|
||
prompt={question.prompt}
|
||
answer={question.answer}
|
||
shouldDisplayExpanded={isFirstSection && isFirstQuestion}
|
||
/>
|
||
);
|
||
});
|
||
return renderedQuestions;
|
||
}
|
||
}
|