Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/HashMapsData2Value/AlgorandFAQ
FAQ for the /r/algorandOfficial and /r/algorand
https://github.com/HashMapsData2Value/AlgorandFAQ
Last synced: 3 months ago
JSON representation
FAQ for the /r/algorandOfficial and /r/algorand
- Host: GitHub
- URL: https://github.com/HashMapsData2Value/AlgorandFAQ
- Owner: HashMapsData2Value
- Created: 2021-05-08T19:22:16.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-28T09:28:38.000Z (5 months ago)
- Last Synced: 2024-05-29T14:07:16.075Z (5 months ago)
- Size: 755 KB
- Stars: 13
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-algorand - Unofficial Algorand FAQ - Unofficial FAQ maintained by the /r/AlgorandOfficial moderators (Websites and Resources)
README
# AlgorandFAQ
Welcome to the FAQ page for the /r/AlgorandOfficial subreddit.
Note that Algorand has an [official FAQ on their website](https://algorand.foundation/faq) and you are encouraged to check it out. This FAQ was compiled or written by the mods of the official subreddit on their own initiative.
**It has not been vetted or endorsed by Algorand Inc. or the Algorand Foundation**. Do Your Own Research (DYOR)!
# Topics
- [Algorand - Overview](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#algorand---overview)
- [Algorand - Protocol](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#algorand---protocol)
- [Tokens](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#tokens)
- [Developer](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#developer)
- [Wallet](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#wallet)
- [Network](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#network)
- [Ecosystem](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#ecosystem)
- [CBDCs](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#cbdcs)
- [Miscellaneous](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#miscelleanous)# Algorand - Overview
## What is Algorand?
Algorand is a blockchain-based cryptocurrency platform that aims to be secure, scalable, and decentralized. The Algorand platform supports smart contract functionality and its consensus algorithm is based on a proof-of-stake and Byzantine Agreement protocol. Algorand’s native cryptocurrency is called Algo.
From the [Wikipedia page](https://en.wikipedia.org/wiki/Algorand_(cryptocurrency_platform)).
## What are the benefits and Unique Selling Points of Algorand?
The heart of Algorand, and what makes it stick out, is its deceptively simple consensus mechanism that results in Pure Proof of Stake. This allows it to solve the "Blockchain Trilemma" as defined by Vitalik Buterin, co-founder of Ethereum and de-facto spokesperson. (For more on this part, refer to the [section on Pure Proof-of-Stake](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#pure-proof-of-stake).)
- Transactions per Second: ~1k (by end of 2021 -> 46k)
- Transaction Finality: ~4.5s (by end of 2021 -> ~2.5s)
- Transaction Cost: 1000 microAlgos/0.001 Algos, approximately $0.0015 or 0.15 cents (2021-05-14).
- Guaranteed to never fork!
- Layer 1 Smart Contracts, part of the consensus protocol
- Algorand Standard Assets being first-class citizens (Fungible & Non-Fungible Tokens)
- Carbon Neutrality
- Easy Staking
The combination of all of these properties makes Algorand uniquely suited for a number of applications.On a more subjective note, the following have also been praised by users on our subreddit:
- The quality of the developer docs.
- The UI of the official mobile Algorand app.## What are the drawbacks of Algorand?
The following threads discuss some of the things that are currently considered drawbacks:
- https://www.reddit.com/r/AlgorandOfficial/comments/o9lll6/why_should_we_not_buy_algorand/
- https://www.reddit.com/r/AlgorandOfficial/comments/n5tykg/algorand_negatives/
- https://www.reddit.com/r/AlgorandOfficial/comments/mghvrn/almost_seems_to_good_to_be_true_give_me_something/## Where can I view the metrics for the Algorand Mainnet?
View them [here](https://metrics.algorand.org/).
## Who are some noteworthy people associated with Algorand?
- Founder: Silvio Micali. Turing Award Winner (2012), RSA Award Winner (2004) Gödel Prize Winner (1993), ACM Fellow (2017). He is also known for his foundational work in Cryptography, including (but not limtied to) the fields of public-key cryposystems, pseudorandom functions, digital signatures, zero-knowledge proofs (co-inventor), oblivious transfers, and secure multiparty computaton. Currently a professor at MIT.
- Advisor: Shafrira Goldwasser. Turing Award Winner (2012), Gödel Prize Winner (1993), Gödel Prize Winner (2001), RSA Award Winner (1998), ACM Grace Murray Hopper Award Winner (1996), Suffrage Science Award (2016)...
- Advisor: Paul Milgrom. Nobel Prize (2020).These are just a few examples of the many prominent people associated with Algorand. The explore the list of people more, refer to the following pages:
- [Algorand Foundation](https://algorand.foundation/about-us/who-we-are)
- [Algorand Inc.](https://www.algorand.com/about/our-team)## Who is Silvio Micali?
Silvio Micali is the founder of Algorand.In 2017, Professor Micali published the [original Algorand paper](https://arxiv.org/abs/1607.01341v9) alongside Professor Jing Chen (陈婧).
He has been on the faculty at MIT, Electrical Engineering and Computer Science Department, since 1983. Silvio’s research interests are cryptography, zero knowledge, pseudorandom generation, secure protocols, and mechanism design and blockchain. In particular, Silvio is the co-inventor of probabilistic encryption, Zero-Knowledge Proofs, Verifiable Random Functions and many of the protocols that are the foundations of modern cryptography.
- [Silvio Micali | The Path to Algorand](https://www.youtube.com/watch?v=QOMpPZZeguQ)
- [Silvio Micali's Lecture on Algorand](https://www.youtube.com/watch?v=NykZ-ZSKkxM)
- [Silvio Micali: Cryptocurrency, Blockchain, Algorand, Bitcoin & Ethereum | Lex Fridman Podcast #168](https://www.youtube.com/watch?v=zNdhgOk4-fE)## What is the difference between Algorand Inc. and the Algorand Foundation?
The Algorand Foundation and Algorand Inc operate independently from each other.
- The Algorand Foundation: a not-for-profit, community organisation. Focuses on protocol governance and token dynamics, along with supporting grassroots, open-source development on the Algorand ecosystem.
- Algorand Inc: focuses on developing the Algorand Protocol on layer-1, and enabling Enterprise adoption of Algorand blockchain technology.## What is the tokenomics and distribution schedule?
10 billion Algo were minted at the start and represent the fixed and immutable maximum supply of Algo.
The smallest divisible unit of Algo is the microAlgo, of which 10^6 make up one Algo.
The long-term Algo Dynamics can be [viewed here](https://algorand.foundation/the-algo/algo-dynamics).
## What is Algorand's environmental impact?
[Algorand is Carbon Neutral](https://algorand.foundation/news/carbon-neutral).
Algorand uses a specific kind of Proof-of-Stake (PoS) in its block proposal and consensus mechanism which makes it far more efficient that not just the wildly inefficient Proof-of-Work, but also other blockchains that rely on PoS.
## I want to stay up to date on the latest, and talk to other Algonauts. Where do I go?
**Algorand Forums**
- https://community.algorand.org/**Facebook:**
- https://www.facebook.com/algorand/**Github**
- https://github.com/algorand/**Instagram:**
- https://www.instagram.com/algorandofficial/
- https://medium.com/algorand**Reddit:**
- [/r/AlgorandOfficial](https://www.reddit.com/r/AlgorandOfficial): The subreddit for official news and question, and is intentionally kept "serious" to ensure pertinent information gets out to the community.
- [/r/Algorand](https://www.reddit.com/r/Algorand): The unofficial subreddit, where price and trading discussion is allowed to take places. Not as serious as the official.
- [/r/AlgoNFTMarketplace](https://www.reddit.com/r/AlgoNFTMarketplace/): Trade NFTs (Non-Fungible Tokenss).
- [/r/WeAlgoTogether](https://www.reddit.com/r/WeAlgoTogether/): Subreddit for memes and low-effort (but fun) content**Discord:**
- [Algorand](https://discord.com/invite/YgPTCVk): Come here to chat with people, especially if you wish to consult with developers and get feedback faster.
- [Algorand Foundation](https://discord.com/channels/491256308461207573/491256308461207575)**LinkedIn:**
- https://www.linkedin.com/company/algorand/
- https://www.linkedin.com/company/algorandfoundation/**Telegram:**
- https://t.me/algorand**Twitter:**
- https://twitter.com/Algorand
- https://twitter.com/silviomicali
- https://twitter.com/KeliCallaghan
- https://twitter.com/AlgoFoundation**Youtube:**
- https://www.youtube.com/algorand
- https://www.youtube.com/channel/UCYqAUajjZd0PuHyHslY_8Ww## Why is Silvio and the team not Twitter verified?
Twitter's verification program was halted for some time. It is now up, but suffering from a big backlog.
# Algorand - Protocol
## Pure Proof-of-Stake
### What does "PURE" Proof-of-Stake mean?
Blockchains are just blocks of transactions cryptographically chained together. Blocks containing these transactions are proposed to the network, validated by the network, until consensus has been reached that the specific block is "correct" and everybody can move on to the next block to add.The challenge is - who gets to propose blocks? Why should we trust them? What is stopping a malicious actor from taking over a majority of the validation and compromising the integrity of the network? E.g., by creating fake transactions, stealing money from others, etc.
In PoS, we make the assumption that actors with a big personal stake in the blockchain should fundamentally be trusted over those without. Different variants of PoS exist, all trying to tackle this while at the same time trying to figure out the Blockchain Trilemma, which ([formulated by Vitalik](https://vitalik.ca/general/2021/04/07/sharding.html)) states that a crypto can only have two out of the following three:
- Decentralization
- Security
- ScalabilitySome networks, in order to get greater scalability and speed up things, delegate responsibility of block validation to some other actor - we call this Delegated Proof of Stake (DPoS). One example is EOS, which has 21 "delegates" that have been voted into power by the rest of the blockchain. But now you've created more centralization. These delegates basically have a massive target on their backs.
Some other networks use something called Bonded Proof of Stake (BPoS). This means that they set aside a portion of their funds, like a security deposit. Their voting power is proportional to the amount they're willing to set aside. Once the deposit is in place, it cannot be removed until a specified amount of time has passed. If these users are dishonest, they forfeit their deposit along with the privilege of participating in the consensus process. The problem is that you've reduced a user's ability to spend their coins by holding it hostage. Also, if you can trick the network and gain more, or do a looot more damage, in proportion to what you have staked in your deposit, there is still an incentive to do bad stuff (even if it is super hard or infeasible).
Algorand claims that it is "Pure" PoS because it does not suffer from these issues.
- There is a [lottery](https://www.algorand.com/resources/blog/algorand-releases-first-open-source-code-of-verifiable-random-function) that takes place, where every single Algo among those running the participatory nods can be chosen. And anyone is free to partake in the consensus. When a block is proposed to the blockchain, a series of committees of voters are selected to vote on the block proposal. If a super majority of the votes are from honest participants, the block can be certified. Committees are made up of pseudorandomly selected accounts with voting power dependent on their online stake. Therefore, it is feasible and probable that some accounts will have a higher number of votes than other members on the committee. Using randomly selected committees allows the protocol to still be performant while allowing anyone in the network to participate. [For the details on the nitty gritty of this, refer to this paper.](https://www.algorand.com/Algorand%20Protocol.pdf)
- A small subset of the blockchain (of the participatory nodes) are chosen. It's not that there is a central authority telling each holder of the winning Algo, rather, everyone figures out for themselves if they won. Because the lottery takes place by running a Verifiable Random Function. They are a magical cryptographic thing that means that if you win, you are able to prove to the rest of the network that you won, while also having proof that you won the lottery legitimately (you didn't "manufacture a golden ticket")..
- The participants that have won are able to disseminated their opinion through the network and allow everybody to move on, that by the time a bad actor to try to find the owner and try to corrupt them, it is already too late. There is no point in trying to attack or corrupt a winner. In other words, the incentives to corrupt or attack any specific Algo holder is removed.
- Instead of assuming that a specific group of whales who we have delegated power to are supposed to be honest (as in Delegated PoS), we assume that at least 2/3 of the ENTIRE ECONOMY is honest. We are constantly taking a random subset of the economy of the participatory nodes and placing them on jury duty, and this is much more powerful. The only way to corrupt the blockchain is by malicious actors owning more than 1/3 of all the participatory nodes' Algos.
- Note that users running the participatory nodes are also free to spend their Algos at any time. There's no need to tie up a bunch of your coins indefinitely.
Hence, Algorand calls itself the "Pure" Proof-of-Stake blockchain.
### How does Algorand solve the Blockchain Trilemma?
[Refer to this talk](https://www.youtube.com/watch?v=Lbje18-zxc8) by Silvio Micali at the Algorand Boston Meetup.
**SECURITY:**
- Random selection of block proposer and block validators, with likelihood based on Algo stake. No way to know beforehand ever if you will be put into position of privilege, which secures against corruption.- Note that everyone runs a "lottery" (a verified random function) on their own devices, to see if they were "selected", and in the "same breathe" that the lottery winners announce themselves to the world, they are also proposing the block/voting on a block (block validation step). This means that there is no incentive for a malicious actor to target these people, because once they have made their announcement and paint huge targets on their backs, they have already lost their power as the blockchain will continue on to the next round. Instead, a malicious actor would have to prevent the entire network from gossipping those messages, but history has shown that even a powerful entity like the United States government was unable to prevent Wikileaks' documents from being virally shared.
**SCALABILITY:**
- Fixed commitee sizes at around ~1000 entities (simplified), regardless of how the network scales with users. It means you get the benefits that a centralized blockchain has, since it's a relatively small number of entities that have to reach consensus with each other in each round, without the drawbacks that come with centralized blockchains due to the previous point about randomness.
- This is going off of the assumption that 2/3 of "the economy" (the participation nodes and the relative stake they have) is made up of honest actors, and that we are grabbing a random sample of that. This is not as strong of an assumption as, for example, the assumption that 1/2 of Bitcoin miners are honest actors. But Algorand has bunch of other benefits, such as a much lower barrier of entry to take part in consensus in the first place.
**DECENTRALITY:**
- No heavy mining. In fact, computing the verified random function (i.e., running the "lottery") is trival. Thus, a participation node involved in consensus can be run on very simple hardware, e.g. a Raspberry Pi 4, and as consumer electronics improves over time, the cost of such a device will decrease as well. This lowers barriers of entry and ensures decentralization (as well as being good for the environment), with the bottleneck placed at actually spreading the messages around the network.
- In Algorand, we do have relay nodes, and these have much higher hardware requirements, especially when it comes to networking. However, these are "dumb gossipers", they only contribute to speeding up the Algorand network. They do NOT take part in the consensus itself.
- Note however that the relay nodes are currently whitelisted (only their IPs are explicitly allowed to serve as relay nodes) by Algorand. They are composed of early investors. Obviously this is a big point against decentralization, even though relay nodes are separate from the consensus mechanism itself, and is being addressed. The Algorand Foundation have announced a [pilot programme for community relay node running](https://algorand.foundation/news/community-relay-node-running-pilot/) as a first step toward allowing the community at large to run a relay node.### Does Algorand suffer from "front-running" and "Miner Extractable Value"?
Miner Extractable Value (MEV) is a problem that Algorand is able to mitigate, though not get rid off completely.
What is MEV? Consider a dApp that auctions out tickets to an event. You wish to put a bid, so you announce a transaction on the blockchain. A miner (in Proof-of-Work terminology, but generally anyone eligible to aggregate up pending transactions and propose a block containing it) sees this and declines to include your transaction. Instead, the miner itself goes to buy the ticket up, so they can then sell it to you at a higher price. Or, consider an auction where you are bidding on a house. One of the oppnsing bidders bribes the miners to avoid including you or any other bid for the house, so that they may get it for cheaper without competition.
This problem fundamentally exists because block proposers can arbitrarily choose which transactions to include in a block. In theory, in something like Ethereum, miners are supposed to go off of who pays the highest transaction fee, but there is no way to enforce this.
Note however that front running requires some aspect of planning, of predictability regarding who will be the block proposer in the coming rounds. A malicious actor needs to know *before* a round who the block proposer(s) is/are going to be, so they can collude with them. Even if the miners themselves are the bad actors, they still need to be sure they will indeed be in a position of power the next coming rounds.
In Algorand, the block proposer is **always random each round**. There is no way for anyone to know whether or not they will be the block proposer before it happens. The ability to do front running and for someone to "extract value" out of their privileged position is thus mitigated. And as more and more join in on Algorand participation, the group of entities that would need to be contacted for bribing grows, making it more difficult.
Still, it can still happen.
## On Forking
### How is Algorand guaranteed to never fork?The probability of a network fork occurring is a function of a parameter that the team behind Algorand set at its creation. It was decided to set it to have a 1 in 1 000 000 000 000 000 000 (1/10^-18) risk of a fork. Note that the the age of the Universe is estimated at around 4.3 x 10^17 seconds. Thus, the probability of a fork taking place is pretty much non-existent.
Refer to the [paper](https://www.algorand.com/Algorand_%20A%20secure%20and%20efficient%20distributed%20ledger.pdf) for more information.
### Okay, so it cannot fork. Why should I care?
- Hard forks can be very damaging to the blockchain. Any kind of suggestion or expectaton of a fork can divide a community and alter stakeholder incentives. The value of a blockchain, like any marketplace or network technology, is not proportional to the number of connected users but the square of that number (Metcalfe's Law). In other words, if a network is split into two, the value of each resulting half is 1/4th. If there are _n_ users, they can make _n_(_n_-1)/2 connections. Consider that 2 users can make 1 connection, 5 users can make 10 connections, and 10 users can make 45 connections.
- Following a hard fork, tokens exist in multiple places. If you cannot fork, there will always only be ONE version of a token. For NFTs, which can be used as proofs of ownership of some property (physical, intellectual, both), this is fundamental. Consider the intellectual property of a creative or inventor being represented on the blockchain by an NFT. A network fork would mean that the intellectual property would be split in two, and any transfer of the property to another entity would require two transactions. Even worse, two different entities (e.g., record label A and record label B) might each buy the NFT on each respective fork and confusion would arrise as to who is the actual owner. Or consider a USD stablecoin that can be exchanged for real $ fiat - suddenly, the company behind it has to decide on which fork they will reimburse.
- Algorand do not "soft fork" either as part of its consensus mechanism, meaning that it has instant transactional finality.
## Regarding Transactions
### What is transaction finality?
So transaction finality means "how long do I have to wait until I am sure my transaction went through?".
**TLDR**: Blockchains = blocks of transactions, chained together on top of each other. When someone makes a transaction, it gets included in a block. With Algorand, you know immediately if the block containing your transaction has "won" and been accepted by the world at large. With something like Bitcoin, you cannot be sure until several blocks in, which can take hours.
A longer answer is as follows.
You could imagine a blockchain like a book or ledger, where each page contains transactions that look like this: "transfer 10 coins from Alice to Bob, signed Alice". Everyone in the world is in possession of the same book, so we can all see what transactions have been made, what people have, etc.
This is all well and good, if you want to know what happened in the past. The problem comes when we need to add a new page of transactions into this book. This is where blockchains differ.
Imagine that you are in a big hall with a bunch of people and you all need to agree on a new page (an analogy for computers in a network). You have a transaction you wish to make, so you yell out into this garbled mess that you wish to send 10 coins to your friend.
If you are a *block proposer,* you are listening to these transactions and trying to write them down on a piece of paper. Then, once you've finished your paper, you try to pass it around to everyone. Because you might have been a dishonest actor, there will be *block validators* that will double check everything. For example, you might have forged a signature, and they need to make sure you are not sending someone else's money to yourself. Or, you might be spending more money than you actually have!
Or you give slightly different pages to different group, with the differences being that in one you transact your 10 coins to Charlie, and in the other you transacted the same coins to Douglas. So the validators also need to talk to each other and come to some kind of consensus on which one to go for and which one to avoid. Consensus needs to be REACHED, and it needs to be global too! You don't want a one guy in Chile to add one page to their ledger, and someone in Indonesia to add a different page to their ledger. That is called **forking**.
There's also a question of *who gets to be the block proposer*, whose blocks we trust. You have all the people in the entire
Algorand has a very unique property in that it doesn't fork. Basically, ONE block proposer is picked, and they self-select themselves by running a lottery the. They get to propose ONE block that they share with the world. Similarly, a committee of say a 1000 are chosen by a random process to validate the block. This random mechanism (the RAND in Algorand) means there is always new groups of people. The randomness isn't completely random though, we want the likelihood of anyone being given the privilege to make these very important decisions to be based on how much stake they have in this economy, i.e. by how much Algo they own. The more Algo you have, the more we trust you not to screw over everybody, either by being a bad proposer or by validating fraudulent blocks.
Through this process, we can be sure that if our transaction gets into the block proposer's block, and the block in its entirety gets confirmed by the validators as a legit block, we know that our transaction has "made it". THAT page with our transaction was added to the book, and that version of the book has been accepted by the world. It's done.
As a counter example, Bitcoin and its Nakamoto Consensus has notoriously long transaction finality.
First of all, block proposers are not randomly picked, they have to compete with each other by solving a cryptographic puzzle. One person will win and they will distribute their block of transactions + the proof of it. Let's say that your transaction was added into block alpha, which is in the process of being shared with the world. At almost the same time, another block beta gets released by a different miner who solved the puzzle. Now, it's a race - will block alpha or block beta be accepted as the block to go ahead with?
The way it gets solved is that as soon as a miner gets the next block, let's say it is alpha, they have a block of new transactions they are trying to send out. So they immediately start trying to solve this difficult puzzle to add a block to a chain that includes all previous blocks + block alpha. If we assume that 60% of the miners heard of alpha first, and the rest of the 40% heard of beta first, it is more likely that the block after will be on top of a chain that includes alpha. It's not guaranteed, but the assumption is that it is.
Let's say that happens. A miner solves the puzzle with a block "delta" (+ block alpha, + all previous blocks...) and distributes that. The miners see this and continue all over again.
Meanwhile, the miners that accepted block beta are still trying to build on top of it, but they are fewer and they are seeing that the rest of the world is converging on delta-alpha-.... So they abandon the fork of the chain that has block beta and instead accept delta-alpha.... and start to work on top of that. By work I mean mining, solving the cryptographic puzzle. It's expensive too so they're very incentivized to NOT build on it.
Now, what does that mean for the people who had their transactions in block beta? It means that those transactions disappear. No one will have lost any coins, it'll rather be as if the transactions had never been proposed in the first place! It's like in movies when you have time travel, different timelines, and so on and eventually one wins out and no one will have any recollection of the others.
So, with bitcoin, even if you send out your transaction, and it gets accepted by a miner, you have no way of knowing if it will get included. You have to wait. And wait. And wait. It might be that after the majority of miners have agreed to build upon the block with your transaction + 5 more blocks, and are now working on the 7th, only then can you be VERY sure.
Thus, Bitcoin has much much much longer transaction finality. Even if you could stuff a lot lot more transactions into a Bitcoin block, you are still left with no one being confident that their transaction even having gone through until a significant time later.
### How is the transactions per seconds (TPS) metric decided?
Put simply, in each block round, a block needs to be:
- proposed,
- validated
- shared across the network.Each block can contain a certain number of transactions. The size of a block will affect the time required for the mentioned steps.
Note that it is not simply a case of making a block "bigger". If it is made too big (in an effort to contain more), it will affect the metrics of each step - some of which are dependent on network bottlenecks, other by the minimum computer hardware is exptected to be required to participate in the steps mentioned.
Currently, participation in the consensus is determined by participation nodes that can be run on hardware as simple as a Raspberry Pi 4. To speed up the flow of information, powerful relay nodes are used to "gossip" the network packets around the world. This division of labour means that it is possible to scale the performance of the system with better compute and networking hardware, while the consensus itself remains simple and easy for anyone to run. By keeping the barrier of entry low, decentrality is maintained.
You might test out different configurations and realise that your system can handle around 115000 transactions per block, and have the block time be as low as 2.5 seconds. 115000 transactions per block / 2.5 seconds per block = 46000 transactions per second.
It is also worth pointing out that making the block time too fast is not ideal either. If it is too fast, certain off-chain IT systems relying on on-chain balances will not be able to work properly as the state of the blockchain will be changing too fast for them to be able to keep up.
#### How will co-chains affect the TPS?
It is expected that there will be additional co-chains running alongside the main network, offered to for example countries to run their [Central Bank Digital Currencies (CBDCs)](https://github.com/HashMapsData2Value/AlgorandFAQ/blob/main/README.md#cbdcs), for large industry consortiums, or to other entities/arrangements. These co-chains will be permissioned and will be much freer to set the parameters of their blockchains. For example, they might demand very powerful hardware and run on high performant private networks. They might make certain assumptions on the consumers of the blockchain data, and they might eschew certain functionality.
These factors mean that the co-chains could reach a lot higher theoretical TPS, with the number of transactions inter-chain being a smaller part of that.
### Why is the transaction fee set at 0.001 Algos?
The fee, as it is currently implemented, is primarily to prevent adversaries spamming the network with fake transactions in order to bog it down. This is also why a certain amount of Algo needs to be kept to hold an asset.
Algos are "actually" denominated in microAlgos - 1 microAlgos is the smallest unit of currency. The fee is set at 1000 microAlgos, but UIs present it as 0.001.
Presumably, 1000 microAlgos seemed like a fair and round number at the time.
### Where does the transaction fee go?
Unlike in many other blockchains, where the fee is used as a reward for block proposers and verifiers, this does not happen. Running a Participation Node is not rewarded, and the entities currently running the whitelisted Relay Nodes are rewarded by the Algorand Foundation with Algo directly. However, it is presumed that Relay Nodes will receive a portion of the transaction fees. Refer to the section on Nodes for more answers on questions regarding this.
The fees are not "burnt", rather they all currently accumulate in the FeeSink account, which was specified in the genesis block. The FeeSink account can ONLY be sent to a RewardsPool account, from which rewards can be sent.
FeeSink Address: [Y76M3MSY6DKBRHBL7C3NNDXGS5IIMQVQVUAB6MP4XEMMGVF2QWNPL226CA](https://algoexplorer.io/address/Y76M3MSY6DKBRHBL7C3NNDXGS5IIMQVQVUAB6MP4XEMMGVF2QWNPL226CA)
RewardsPool Address: [737777777777777777777777777777777777777777777777777UFEJ2CI](https://algoexplorer.io/address/737777777777777777777777777777777777777777777777777UFEJ2CI)
https://developer.algorand.org/docs/reference/algorand-networks/mainnet/#rewardspool-address### Can we change the fee?
Yes, we can. It is specified in the Algorand protocol, and as such, can be changed like any other thing in the protocol. The community could vote on it and then the protocl could be changed.
If Algorand goes 10x, we can reduce it to 100 microAlgos. If it goes 1000x, we can take it down to 1 microAlgo.
Note that there are 10 billion Algos in total. If the price 1000x:ed from today's values (2021-05-23), it would have a market cap on the order of 10 trillion dollars, a considerable amount.
## What is the procedure for updating the Algorand Protocol
Taken from [the following](https://raw.githubusercontent.com/algorandfoundation/specs/master/overview/Algorand_v1_spec-2.pdf).
The Foundation governs the development of the blockchain, and updates to the core blockchainprotocol are done in a few steps:
1. Algorand Foundation announces and posts a specification of the protocol in a public git repository. The URL of the repository commit is used as a “protocol version” identifier. This URL must contain a hash that corresponds to the git commit.
2. Any update to the protocol must be supported by the community on chain via voting by the block proposers. A block proposer “supports” a proposal by including it as the next protocol version. An update is accepted if for an interval of 10000 rounds, at least 8000 of the finalized blocks support the same next protocol version.
3. After the end of the 10000-round voting interval, users are given another 10000 rounds to update their software. The new specification then takes effect and, from that point on, blocks are produced based on the updated protocol rules.
# Tokens
## What is a token?
A token is a blockchain primitive. Blockchains have a native currency, its _coin_, but it is also useful to be able to represent other things on the blockchain.
## What is an ASA?
ASA stands for Algorand Standard Asset. It's the official Algorand name for tokens on its blockchain.
## What is a Fungible Token?
Fungible means "interchangeable". A fungible token is an asset class whose amount is more than 1. Could be 10, 1000, 100000, 10^9, etc. Many different users can each own a part of the asset.
## What is a Non-Fungible Token?
Non-Fungible means that there is no "interchangeability". Concretely, it means there is only 1 token in the asset class. If user A transacts that 1 token to user B, they have traded that entire asset.
## Why should I create tokens on Algorand specifically?
Algorand has a number of advantages:
- Scalability: It can handle thousands of transactions per second.
- Cheap: Transaction fees are low, at 1000 microALGOs (0.001 ALGOs).
- Fast: Transaction finality at around ~4.5 seconds.
- Uniqueness: Guaranteed to not fork.The last benefit is very important, as tokens - especially Non-Fungible Tokens - should only exist in one place, and with Algorand you can be confident whatever tokens you create will be the only ones in existence.
The first three benefits mean that an organization that wishes to mint thousands, tens of thousands, or even millions of tokens can do so _reliabily_. In fact, the Italian[ SIAE launched over 4 million NFTs](https://www.algorand.com/ecosystem/use-cases/siae) on Algorand representing the creative rights of 100000+ creators it represents. Algorand was able to absorb that with no issues.
Refer to [this blog post](https://www.algorand.com/resources/blog/role-of-transaction-finality-speed-in-nft-minting/) for more information.
## Why should I care about tokens (FTs and NFTs) at all? What's the big deal?
The first Internet can be described as the Internet of Information - it allows us to reliably share data representing text, audio, video and more in a decentralized web of computers that stretches all over the world. One of the innovations that blockchain technologies give us is that it allows the digital sharing, storing and transacting of value.
Algo, the native currency of Algorand, is the digital equivalent of "money". The fact that we could represent it digitally is a big achievement. But in this world, there are other things of value that you might own: property, vehicles, securities (e.g. stocks), commodities, membership reward points, intellectual property, etc - to name a few. Anything of value can be represented on the blockchain by minting a token of it.
One might ask themselves why you'd want to do that, why not use traditional web and database technologies? There are a two main advantages of representing these things on a blockchain:
1) Atomic Swaps
An atomic swap is a transaction where a set of coins or tokens are swaped for another set of coins or tokens in one single transaction such that one cannot be transferred without the other also being transferred.
Consider buying a car second-hand in the "Pre-Blockchain World". There are two transfers that take place: money and ownership. The buyer transfers money to the seller, and in return the seller transfers the ownership. The former might involve the use of a bank, or it is just a straight up cash transaction. The latter might involve a governmental agency in charge of vehicle registration.
You might also consider the risk that the seller might take the money and disappear with it, without giving you the rights of the car, or even the car at all. In real life we try to solve this by meeting up in a public place, perhaps doing the transaction outside a police station.
In the "Post-Blockchain World", this type of insecurity will no longer exist. The money is represented as coins (Algos), and the ownership is represented as an NFT. Then, an atomic swap is made, using a smart contract, such that both transactions happen simultaneously, without the possibility of one transferring without the other also transferring. It is embedded as a functionality into the payment layer of society itself.
This has some profound implications. It means that we do not have to put our trust into other people who might or might not have malicious intentions. It means we also do not have to rely on a trusted 3rd party to serve as an intermediary - it is a decentralized process only involving the two relevant parties. Middle-men have a tendency to store our data and collect economic rents that add to the cost.
In fact, we don't even need to contact the governmental agency in charge of vehicle ownership registration - the ownership is public on the blockchain. If you extend this beyond just vehicles, but all kinds of property, a lot of governmental buraucracy can be cut. Note that just because the person transferred ownership, does not mean they will give you the keys (in our example). But if they were to refuse that, they would be commiting Grand Theft Auto in the eyes of the "Post-Blockchain Law". Not only can whatever remaining buraucracy can use the blockchain as their distributed ledger, but also law enforcement to enforce the rights of property owners.
2) Control
With tokens, there is a distinction between who owns it at any given point in time, and who created it. The person who created it can sell it while at the same time raiting certain rights. Algorand notably has a clawback function, meaning that if specified, any token could be brought back to the owner of the clawback address. E.g., if a user of am membership rewards program broke some kind of code of conduct.
Algorand also offers the freeze function. An asset being frozen means that it cannot be transferred anywhere, so the owner can own it but not send it to anyone else. Consider a music artist minting an NFT of a song they made, representing the rights to it. They sell it off to Record Label A, which starts to collect revenue on it, but the artist could choose to freeze it in the label's account. One day, Record Label A decides to sell it off to Record Label B. With smart contracts, a chain of logic could be set that measn the artist will unfreeze the asset for transfer, but only if they receive some kind of reward for it.
This way, the artist is able to moneitze the song again and again everytime the rights are sold. For government, if they had minted the NFT representing the registration and ownership of car mentioned in the previous part, they could do the same and thus force citizens to pay a form of "tax" to allow this to happen.
# Developer
## How do I develop on Algorand?
Check out the [Developer Portal](https://developer.algorand.org/).
## Smart Contracts
### What are smart contracts?
The basic operation any blockchain since Bitcoin can do is the _transaction_, the transferal of coins from one party to another.
Smart contracts allows you to add _logic_ regarding how a transaction could take place. A smart contract can be in charge of tokens, have its own account, store information, be given control over some other account, and more.
One common non-digital analogy given is that of a vending machine. A vendine machine is a form of "smart contract" that specifies the following logic:
- Pick a choice of drink and provide the proper amount of money. These serve as your input.
- If the amount of money match the cost of the product, receive product. Transaction success.
- If the amount of money provided is too low, the transaction fails and you receive your money again (if you provided any).
- If the amount of money provided is too high, the transaction succeed but you receive the difference.The vending machine, unless broken, will NOT for example:
- Randomly give out a product for no reason.
- Fail to give a product even if the money is correct.
- Give out the wrong product.
- Give out 2+ products if only the money for 1 product was provided.### What is TEAL?
TEAL stands for Transaction Execution Approval Language. The Algorand-native smart contract language.
### Do I have to use TEAL?
No, there are other languages you can use:
- [PyTEAL](https://developer.algorand.org/docs/features/asc1/teal/pyteal/): provides Python bindings around TEAL.
- [Reach](reach.sh): allows you to write code that can be compiled to either Algorand or Ethereum (Solidity). Provides formal verification.
- [Clarity](https://clarity-lang.org/): originally used to bring smart contract to Bitcoin. Is decideable.
- [Tealang](https://github.com/pzbitskiy/tealang): Aims to be a high-level language on top of TEAL, providing Go/JS/Python-like syntax.### What is the AVM?
AVM = Algorand Virtual Machine
The AVM is the execution environment in which smart contracts are evaluated, run on the nodes of the block proposer and the block validation committees.
### Is TEAL Turing Complete?
With the TEAL v4 (AVM v0.9) update came loops, recursion and more, making the TEAL language itself became TC. However, there are execution limits based on the opcodes (specific operations/methods that can be called) that mean that limit in practice what can be done.
### Does Algorand have "gas"?
In some languages, like Ethereum, since there is an understanding that smart contracts consume computation, in order to compensate a node runner, some kind of reward should be given to the node runner.
Algorand does not have gas. Noderunners of participation nodes do not collect any fee. To prevent smart contracts that run away and take up too much resources, affecting the performance of the network itself, there are execution limits.
## How do I run a node?
If you are planning to operate a node, you should know that there are different types of nodes: relay nodes and non-relay nodes. You can find more information about this here. You will probably want to run a participation node. The first thing you need to do is to set up a node. This is a simple copy and paste process. [Here](https://developer.algorand.org/docs/run-a-node/setup/install/) you can find a tutorial. For Windows there is an [example program](https://github.com/randlabs/algorand-windows-node) or you can [compile Algorand node software](https://developer.algorand.org/tutorials/compile-and-run-the-algorand-node-natively-windows/#1-environment-setup) for yourself and then run it.
To participate in the consensus protocol, one must also register a participation key and perform a key registration transaction. [Here](https://developer.algorand.org/docs/run-a-node/participate/) you can find more information. This is again a simple copy and paste process, but there are some small changes you need to make, adding your address and changing roundFirstValid and roundLastValid at addpartkey and firstvalid and lastvalid at changeonlinestatus to a block number in the future. For security reasons I would recommend to authorize the key registration transaction offline on a different machine than the participation node.
In case someone wonders how much the costs are. u/cysec_ uses Linode to host his participation node. The cost is currently 20 USD/EUR per month (Shared CPU - Linode 4GB). You can also run a participation node using a Raspberry Pi. At least two CPU cores and 4 GB of RAM are recommended. Hardware requirements may increase over time.
Currently there are no rewards for running a participation node.
You can find more tutorials here:
- Here a Youtube tutorial from a community member: https://youtu.be/ahCqIE7Ih_0, https://youtu.be/sbGoXaWOIcA.
- Tutorial Development using Raspberry Pi shows in the first two parts how to set up a participation node. ([Part 1](https://developer.algorand.org/tutorials/development-on-algorand-using-raspberry-pi-part-1/), [Part 2](https://developer.algorand.org/tutorials/development-on-algorand-using-raspberry-pi-part-2/))
- [Participate in Consensus from Ledger Nano S/X](https://developer.algorand.org/tutorials/participate-consensus-ledger-nano/).## Where can I view transactions and other activity on the blockchain?
https://algoexplorer.io/
# Wallet
## What is a wallet?
On Algorand, there are accounts. These accounts can hold a balance and tokens, participate in consensus, and more.
Each account has a public address and a private key. The private key is associated with a set of words, 25 of them. These words are taken from [BIP-39](https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt) English wordlist.
Each word is associated with a number between 1 and 2048, and 24 words can be randomly chosen, with a 25th word calculated from the first 24 as a checksum. (Meaning that if you type in one of the first 24 words incorrectly, you will get an error.) This means there are as many as 2048^24 different combinations of seedphrases, or roughly 3 * 10^79. As a point of comparison, some estimates place the number of atoms in the entire known Universe at ~10^80.
The seed phrase is associated with the private key that is used to sign transactions and other activity from your account. The public key (with which the account address is associated with) can be used to verify that signature, such that others can confirm it was indeed you who authorized a certain transaction.
While the terminology can be somewhat confusing, as people use the same words in different contexts to refer to different things. For example, a "user", "wallet", "account", "public key", etc could refer to the same things or different things in different context. [Algorand's official developer docs even has a note and an Interpretation Guide about this](https://developer.algorand.org/docs/features/accounts/#a-note-about-term-usage-in-these-docs).
But roughly, it can be said that a wallet is the interface with which a user will interact with their account on the blockchain.
### How are accounts created?
1. Generate the seed phrase, 25 words. We assume that no one has ever generated that exact combination.
2. Get the public address for which that seed phrase corresponds to.
3. Get anyone with ALGO to send ALGO to that account. This could be yourself from an exchange.Congratulations.
### I don't understand this seed phrase stuff, could you elaborate? What should I do with it?
First of all, **BE VERY CAREFUL WHAT YOU DO WITH YOUR SEED PHRASE**. Keep it written in different places, guard it with everything, because anyone who has it can recreate your wallet anywhere!!!
If you download the official Algorand app, generate a seed phrase, write it down, and then somehow lose your phone, you can always recreate your wallet on a second phone. There are also wallets like MyAlgo, which are accessed in your browser.
### I have inputed my seed phrase into multiple wallets, how does that work? How can I have multiple wallets with the same seed phrase? And those wallets have different passwords, how can they control the same funds?
From the perspective of the blockchain, even if you have inputed your seed phrase into multiple wallets, there is only one account.
To give an illustrative analogy, consider a treasure map, like those supposedly used by pirates. To give a true sense of scale, let's imagine that we are space pirates instead.
We take our treasure, board into our space ship and take off from Earth into the stars. We find a remote area of the universe and dump the treasure there, perhaps in the orbit of a star, in a galaxy far far far away. The "space coordinates" of that treasure are written down on a piece of paper, to serve as the map with the big "X for treasure" on it.
When you get back to Earth, you go to your home and deposit the map into a safe with a password. The map represents your seed phrase, the password-protected safe your wallet.
You are free to make a copy of your map and store it in a second safe. You can do this however many times you want. However, there will always only be one treasure. And if anyone gets their hands on a map, they are free to jump into their space ship and collect your treasure. If they do, they can then travel off to some other random place in the universe and dump it there, making their own map for this new location.
Note that it is also possible for anyone to stumble upon your treasure (i.e., generate the same seedphrase that you have)... but the risk of it happening is astronomically low. (Unless you did not generate the seedphrase in a truly random way.)
### How does Algorand nodes actually store account data?
Anyone in possession of the entire blockchain, from genesis to the current block, can calculate exactly the current "financial state of the world" in Algorand.
However, Algorand uses a system called [Vault](https://www.mit.edu/~yossigi/vault.pdf) to optimize the storage of network data, and the bootstrapping costs for participants.
Here is the abstract:
> Decentralized cryptocurrencies rely on participants to keep track of the state of the system in order to verify newtransactions. As the number of users and transactions grows,this requirement becomes a significant burden, requiring users todownload, verify, and store a large amount of data to participate.
> Vault is a new cryptocurrency design based on Algorand that minimizes these storage and bootstrapping costs for participants.Vault’s design is based on Algorand’s proof-of-stake consensusprotocol and uses several techniques to achieve its goals.
> First, Vault decouples the storage of recent transactions from thestorage of account balances, which enables Vault to delete old account state. Second, Vault allows sharding state acrossparticipants in a way that preserves strong security guarantees. Finally, Vault introduces the notion of stamping certificates, which allow a new client to catch up securely and efficiently in a proof-of-stake system without having to verify every single block.
> Experiments with a prototype implementation of Vault’s datastructures show that Vault’s design reduces the bandwidth costof joining the network as a full client by 99.7% compared to Bitcoin and 90.5% compared to Ethereum when downloading aledger containing 500 million transactions.
## How do I keep my coins safe?
**DO NOT SHARE YOUR SEED PHRASE!!!**.
**DO NOT SHARE YOUR SEED PHRASE!!!**.
**DO NOT SHARE YOUR SEED PHRASE!!!**.
**DO NOT SHARE YOUR SEED PHRASE!!!**.If anyone asks you to do it...
**DO NOT SHARE YOUR SEED PHRASE!!!**.Whatever you do **DO NOT SHARE YOUR SEED PHRASE!!!**.
With that said, some services like Algodesk.io will require you to enter a seed phrase to a wallet if you want to create an Algorand Standard Asset (FT/NFT). It provides a web graphical user interface and abstracts away the underlying blockchain interactions. They, and others, claim that they do not store your keys, and only provide a dumb client-web app.
The best practice here is to go to create a new account (i.e., generate a NEW 24/25 seed phrase), and send the necessary amount (e.g., 0.5 Algo) to that account.
Then, you can enter the seed phrase for that into the NFT-minting service. After minting, you can transfer the asset to any other account you have. If, on the other hand, it is a scam, or it is unsecure, or your computer had gotten hacked just efore, you will only have lost the <0.5 Algos you put in. It also goes without saying that you should consider that account "tainted" and never use it to store any significant amount of Algos.But remember...
**DO NOT SHARE YOUR SEED PHRASE!!!**
**DO NOT SHARE YOUR SEED PHRASE!!!**
**DO NOT SHARE YOUR SEED PHRASE!!!**
**DO NOT SHARE YOUR SEED PHRASE!!!**If you ever find yourself typing the words in your phrase, STOP! It should feel sketchy!
## How do I keep my privacy on a public, permissionless blockchain like Algorand?
As the question suggest, everything on Algorand is open. Unlike Monero or Z-Cash, there is no inherent mechanism for obfuscating transactions and their contents. They could add privacy features - in fact, Silvio has explicitly said hat he does want to, one day. One of the ways is to use Zero-Knowledge Proofs, an entire branch of computer science [Silvio co-founded in the 80s](https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf). The problem is that if Algorand is too privacy-preserving, it will be hurt its adoption and perhaps even see it be delisted from exchanges.
If you wish to send Algos from address A to address B, without any other observer being able to create the link, the best way to do so is to use an intermediary, like an exchange. Since the exchange processes thousands of transactions in and out, it will be difficult to pinpoint that it was you.
You receive Algos in one account, perhaps one of many "receive" accounts you have, send it to the exchange, e.g. Coinbase, where it will blend in as one of thousands of transactions. Then, you send out a slightly different amount from your Coinbase account to your main "storage" account. Perhaps you would send it out in parts, over time, with the point being to make it difficult for anyone doing transaction graph to make a connection.
For law enforcement, they are free to subpoena Coinbase for your information. And since Coinbase is a legitimate, trusted authority, you also feel confident sending your Algos to their custodial wallet. It's what is acceptable right now.
### Will Algorand one day be more privacy-preserving?
[Silvio has said that he believes in privacy, but that the timing is not right.](https://www.youtube.com/watch?v=zNdhgOk4-fE&t=3284s)
Currently, there is a huge concern from the establishment (government, law enforcement, tax agencies, etc) that a private blockchain technology could be used for illegal activity (trafficking, terrorism, money laundering, etc). However, if blockchain receives more adoption from business and citizens at large, the general understanding regarding blockchain will have evolved, and it might then be of greater priority to preserve the privacy of everyone's holdings and transactions, as the ratio of legitimate vs illegitimate activity on the blockchain will be different.
## What's the deal with Algorand, BIP39 and Ledger hardware wallets?
When you create an account, e.g. on the official mobile app, you will receive a 25 word seed phrase. The final 25th word is a checksum derived from the initial 24 and is only a way to make quickly verify whether the address is correctly formatted or not.
However, while Algorand uses the BIP-39 wordlist (which maps each word to a number from 1 to 2048), it **does not use the same mnemonic generation scheme as many other cryptocurrencies.**
This means that the recovery phrase you get for your Ledger Nano hardware wallet cannot be directly entered into an Algorand software wallet (with the 25th word checksum calculated), as the derivation path is different.
This is an issue if you lose your Ledger Nano, or something happens to it, and you quickly need to reach or transfer the ALGO from your accounts - you will have to get your hands on another Ledger Nano and recovery from that. Which can take days, weeks or even months depending on your location.
The following threads have discussed this:
- https://www.reddit.com/r/AlgorandOfficial/comments/nocvff/algorand_official_wallet_does_not_use_the/
- https://www.reddit.com/r/AlgorandOfficial/comments/mckb2f/no_bip39_compatible_algorand_wallet/
- https://www.reddit.com/r/AlgorandOfficial/comments/nrusdc/what_happens_to_my_algos_if_i_lose_my_ledger/Members of the community have contributed with the following tools to assist you in the conversion, at least until the feature has been added to the official app and other Algorand-native tools.
***WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING***
***NOTE THAT YOU USE THESE AT YOUR OWN RISK! WE IN THE MOD TEAM ASSUME NO RESPONSIBILITY FOR ANY TOOL OUT THERE!***
These require you to type in your secret phrase and are thus a ***LAST RESORT***.
- Be sure to have a new account ready, e.g. one generated with the official mobile wallet app. Make sure to keep the Algorand-compliant phrase stored somewhere safe.
- Disconnect your computer from the Internet to ensure that no traffic leaves your computer.
- *If* you manage to access your ALGO be QUICK to transfer them to the new account.
- BEFORE you turn on the Internet again, CLOSE the browser window and make sure to overwrite the clipboard in case you did a copy-paste.- /u/abeliabedelia: https://goplay.space/#BhrW4QZ3Sty <- Grab the code, then compile and run on [Go](https://golang.org/) LOCALLY!
- /u/Ok-Cryptographer2706: https://algorand.oortnet.com/
- https://github.com/Coinomi/bip39-coinomi (claims to have added support for Algorand)## Help, I am trying to send Algo from one account to another but it is giving a "minimum balance" error!
You need to keep 0.1 Algo per ASA opted into, as well as some for each (stateful) smart contract opted into. There is also a [minimum balance of 0.1 Algo necessary for basic functionality](https://developer.algorand.org/docs/features/accounts/#minimum-balance). Any transaction that results in your account possessing less Algo than required will not be considered valid by the network and fail.
The solution is to either transact less, or to opt-out of the ASAs and/or smart contracts.
In a blockchain there is a need to keep track of every transaction that has ever taken place, and the holdings of every account as a result of those transactions, If there was no "stake" in opting into ASAs and SCs, adversaries could mint a lot of assets and clog up storage that way. Now you need to keep some Algo, and there is also a limit to how many ASAs one account can contain.
In the future, if the price of Algo goes, these limits can be lowered.
# Network
## How many nodes are participating in consensus?
The current number can be viewed on the Algorand website: https://metrics.algorand.org/
## What does it mean to "stake"?
## Where should I store my ALGO?
Any arrangement where **you** own the keys will ensure you get 100% of the rewards. This includes the official mobile wallet and any hardware wallet (e.g. Ledger).
Some exchanges run various schemes where they might or might not add to that sum of rewards. It is up to you to understand the specifics your exchange. Some, e.g. Coinbase PRO (not to be confused with normal Coinbase) gives no rewards at all. In some cases the exchange might be speculating that the price of ALGO will go down and needs ALGO to short it, so it will offer higher rewards.
## What is Governance staking?
You will receive governance rewards for locking a fixed number of ALGOs for at least 3 months and voting on each proposal in that quarter. Rewards are determined by the number of algos pledged and calculated as the ratio of total algos pledged to the total reward pool for that period. The document provides an example: "For example, in 2022, approximately 300 million algo will be allocated for Governance Rewards, which means approximately 75 million reward algo in each quarter." If only you commit your ALGOs to the governance process, you would get 75M ALGOs for that quarter. The more people participate, the less rewards for everyone. In 2022, participation rewards will be phased out and replaced with governance rewards. This also means that the staking rewards you get from simply holding ALGOs will be phased out for now. The governance process will be rolled out in Q4 2021, so there will be a brief opportunity to earn both staking and governance rewards for that quarter. Technical details on how to participate in the governance process will be announced in advance. However, you will be able to participate via the app. Anyone can participate in the governance process. You also have the option to delegate your voting rights to the foundation if you lack expertise in a topic or do not have time to look at the proposals beforehand. Later, other institutions will follow to which you can delegate your voting rights.For more information on governance:
- Website: [Decentralizing Algorand Governance](https://algorand.foundation/the-algo/algo-governance). [FAQ](https://algorand.foundation/gov-faq).
- Video: [April Community All-Hands: Decentralizing Algorand Governance](https://www.youtube.com/watch?v=-t7pARZYrr0), [Blockchain Acceleration Foundation: Decentralizing Algorand Governance](https://www.youtube.com/watch?v=FWRrEiYYNyA)# Ecosystem
## Where can I see a list of companies using Algorand?
https://www.algorand.com/ecosystem
https://www.algorand.com/ecosystem/use-casesAlso, user /u/BioRobotTch compiled [the following thread](https://www.reddit.com/r/AlgorandOfficial/comments/pfo434/algorand_ecosystem_of_applications/).
## Where can I buy Algorand?
At the big exchanges, like Coinbase.
## Where do I buy NFTs?
Currently you have to do it by trust on Reddit, Discord, Telegram, etc. DEX:es are coming.
## Is there a tool I can use to create my own token?
You can do it in the [MyAlgo browser wallet](https://wallet.myalgo.com/).
## How do I buy USD stable coins?
## What is ISO 20022 and what does it mean that Algorand is part of setting it?
https://en.wikipedia.org/wiki/ISO_20022# CBDCs
## What is a CBDC?
CBDC stands for Central Bank Digital Currency. Basically, a cryptocurrency created/managed by the central bank of a country.
## Why would a Central Bank wish to institute a CBDC?
For thousands of years, humans relied on physical objects to do transactions of value with each other. With the advent of the Internet, this has changed.
The criteria for good money are:
- scarcity
- durability
- divisibility
- portability
- uniformity
- acceptabilityPhysical goods are inherently "scarce" due to physics. If someone gives something to someone else, they by default no longer have it. On the other hand, with the demand for online purchases, cash has ceased to be "portable", in the sense that it is not possible to easily send it.
The advent of digital payment services and online banking has been very good for the economy, with the global e-commerce market valued in 10+ trillions of USD. However, the way things are setup are FAR from ideal.
Money exists as entries in a database in banks. It is not "inherently scarce" in the way physical goods are, because digital information can be copy/pasted and manipulated ad infinitum. We trust that our banks do not make up money out of thin air.
Consider making a transaction online. If you and the recipient both share the same bank, we trust the bank to perform the relevant database operations. If however you have two different banks, those banks need to talk to each other. One way is to have the banks keep accounts for each other at each other's banks, such that a transaction from you to the other person entails a transaction from you to the bank's account in your bank, and then the other bank handling things with your recipient's account.
This gets very tricky very fast. Two banks might have thousands of transactions per day between each other, and keeping track of that is very wasteful. So it is better to simply handle transactions a few times per day, or maybe even once, and only the "sum difference" of all the transactions. But you also need to consider that there can be many banks in a jurisdiction. So a solution then is to operate a centralized database managed by the central bank, for _settling_ funds.
Of course, this is difficult to do across jurisdictions, between antions and currencies. Every bank cannot have an account with every bank, and trust every bank. Instead, a transaction from one bank to another internationally might need to go through a number of intermediary banks, who also charge for that work, resulting in transaction fees. Not to mention, slow speeds.
Satoshi Nakamoto was the first to solve this issue with Bitcoin and his/her/their contribution: Nakamoto Consensus. Blockchains are the truly Internet-native way to store and transact value, without relying on trusted parties.
With blockchain, a central bank would not have to engage in this elaborate dance. Managing fiscal policy will also be easier. Transactions can flow freely without any trusted 3rd parties.
## I thought Crypto was about creating a new world and smashing our institutions, not enabling them further?
Crypto means a lot of things to a lot of people. It is true that Bitcoin has its roots in the cypherpunk world and in specific political movements. Bitcoin was a child of the Great Regression, and in his/her/their first transaction of Bitcoin, Satoshi quoted a New York Times headline in the transaction note field: "Chancellor on brink of second bailout for banks".
Blockchain technologies can either usher in a new world, with a borderless economy, where the citizens of the world are not trapped by centralized "digital empires" owned by few; or enable a level of totalitarianism never seen before: the complete supervision of all financial activity in a country. It is very important that it is done right. Central Bank Digital Currencies _will_ be implemented, and people need to be educated on them to even be in a position to make any kinds of demands regarding the fairness, transparency, etc; of their national blockchains.
With that said, the team behind Algorand has chosen to market itself towards central banks and first tier financial insitutions. These are really looking to address the settlement issues that are inherent to the current financial system, and Algorand has chosen to offer themselves as a choice.
## What is Algorand's connection with CBDCs?
Algorand's COO stated in this [interview on 2021-04-27](https://www.youtube.com/watch?v=oX8D6TcQjXM) with Paul Barron Network that they are in talks with 15-20 central banks.
Algorand is also, in its marketing and the blog content they produce, orienting themselves as an obvious CBDC candidate, e.g. [this report](https://info.algorand.com/cbdc-algorand).
## How could you institute a CBDC on Algorand?
There are two ways CBDCs could be created with Algorand:
### As a stablecoin (fungible token) on the main chain.
When a fungible token is minted, there is the option to "partially" mint it by specifying a Reserve Address. A max total number is set and some of it is minted it, the Reserve Address is free to mint it. The [total is an uint64](https://developer.algorand.org/docs/reference/transactions/#total), so a maximum number of 2^64 tokens (\~1.8\*10\^19) can be specified. Then, the CBDC is free to inflate or deflate the circulating supply by adding or taking tokens out of circulation.
The advantage of doing this is that the CBDC automatically inherits the strength of the Algorand mainnet, which include the many participation nodes and the ecosystem that is emerging. The disadvantage is that, while using the ASA fungible token addresses gives the CBDC some control, holding and transacting the CBDC token will still require the ALGO currency, which the central bank has little to no control over. Furthermore, there are specific design decisions of the Algorand protocol that the CBDC will also have little to no control over, e.g. regarding privacy, aspects affecting hardware requirements, and so on.
### As a co-chain.
A separate blockchain would be set up based off of the Algorand protocol. Instead of 10B ALGO, the CBDC would mint their own native token, and have full control over all aspects of the blockchain. They could specifiy who gets to participate in consensus (permissioned), how the protocol should look like, and so forth.
To illustrate, consider that ALGO serves the following purpose in the mainchain:
- stake in consensus, for the VRF (PoS)
- vote for governance/protocol upgrades
- transaction fee (spam prevention, for rewards later)
- ASA opt-in (spam prevention)
- smart contract opt-in (spam prevention)
- moneyIt is entirely conceivable that a CBDC might want to create multiple native coins relevant across these areas.
Other aspects of the Algorand protocol that a CBDC might be interested in playing with:
- privacy of transactions
- inflation of coin over time
- minimum expected hardware requirements (e.g. the smart contract opcode execution limits)There are also advantages for the mainchain, in that transactions will be off-loaded and kept off chain. The mainchain is set to be able to handle 46k transactions (~4b a day).
# Miscelleanous
## What is the connection between Silvio and the SEC?
The current head of the SEC, Gary Gensler, was previously a professor at MIT teaching the course [MIT 15.S12 Blockchain and Money](https://ocw.mit.edu/courses/sloan-school-of-management/15-s12-blockchain-and-money-fall-2018/). Silvio Micali was also at MIT at the same time and Gensler mentions him and Algorand on at least two occassions in the lecture series. Thus, it can be concluded that Gensler is aware of Algorand and its unique selling points.
## What role did DARPA have in the development of Algorand?
The American Defense Advanced Research Projects Agency (DARPA) provided Silvio with a grant. This was stated by Barry Finkelstein [in this video](https://www.youtube.com/watch?v=0_xQwCWxbgE&t=179s).
## Who are Algorand's "University Partners" and "Key Stakeholders"?
From the [Ecosystems page](https://www.algorand.com/ecosystem):
[![Screenshot of the Ecosystem Overview Page](https://raw.githubusercontent.com/HashMapsData2Value/AlgorandFAQ/main/media/Ecosystem%20Overview%20Algorand.png)](https://www.algorand.com/ecosystem)
**University Partners:**
- [Massachusett Institute of Technology (MIT)](https://web.mit.edu/)
- [Peking University/北京大学](https://english.pku.edu.cn/)
- [Stony Brook University](https://www.stonybrook.edu/)
- [Sapienza Università di Roma](https://www.uniroma1.it/en/pagina-strutturale/home)
- [Imperial College London - Centre for Blockchains and Cryptotechnologies](https://www.imperial.ac.uk/cryptocurrency/)
- [Imperial College Business School](https://www.imperial.ac.uk/business-school/)
- [Università degli Studi di Salerno](http://www.unisa.it/)
- [University of Waterloo](https://uwaterloo.ca/)
- [Tel Aviv University](https://english.tau.ac.il/)
- [UC Berkeley](https://www.berkeley.edu/) - Hackbridge
- [Tsinghua University/清华大学](https://www.tsinghua.edu.cn/en/index.htm)
- [Università della Svizzera italiana](https://www.usi.ch/en)
- Cambridge University - [CUCES?](https://www.ceb.cam.ac.uk/undergraduates/cuces-chem-eng-soc)
- [HULT International Business School](https://www.hult.edu/)
- [Warwick Entrepreneurs](https://www.entrepreneurs-warwick.com/)
- [OXVC (Oxford Venture Capital Network)](https://oxvcnetwork.com/)
- [TiE Atlanta](https://hub.tie.org/c/tieatlanta)
- [UCLFinTech (University College London)](https://uclfintechsociety.com/)
- [LSESU Business & Investment Group (London School of Economics)](https://www.lsesu.com/)
- [LUUCABS (Leeds University Union - Cryptocurrency & Blockchain Society)](https://www.linkedin.com/company/luucabsoc/)**Key Partners:**
- [3.0 Capital](https://www.crunchbase.com/organization/3-0-capital)
- [11-11 Ventures](http://11-11ventures.com/)
- [AlgoInvestor](https://www.algo-investor.com/)
- [Lvna Capital](https://lvnacapital.com/)
- [Amber Ai Group](https://www.ambergroup.io/)
- [Applied Crypto Ventures](https://sites.google.com/appliedcrypto.vc/acvcfund/acvc)
- [Arrington XRP Capital](https://arringtonxrpcapital.com/)
- [Bixin Capital](http://bixincapital.com/)
- [P2P Capital](https://www.p2pcap.com/)
- [Union Square Ventures](https://www.usv.com/)
- [Brainchild (Kal Vepuri)](https://www.bloomberg.com/profile/person/20094835)
- [CPChain - Cyber Physical Chain](https://cpchain.io/)
- [Cumberland Advisors](https://www.cumber.com/)
- [Eterna](https://www.eternacapital.com/)
- [CMB International Ltd](https://www.cmbi.com.hk/en-US/)
- [Foundation Capital](https://foundationcapital.com/)
- [Genesis Capital](https://genesis-capital.com/)
- [Hex Capital](https://hex-capitals.com/)
- [Neo Global Capital](https://www.ngc.fund/)
- [IMO Ventures](https://www.imo.vc/)
- [MetaStable Capital](https://www.metastablecapital.com/)
- [Kosmos Asset Management](http://www.kosmoscapital.com/)
- [Lemniscap](https://lemniscap.com/)
- [SparkPool](https://www.sparkpool.com/en/)
- [Nirvana Capital](http://nirvana.capital/)
- [新湃资本 NewStyle Capital](https://www.linkedin.com/company/newstylecapital/about/)
- [Pillar Venture Capital](https://www.pillar.vc/portfolio/)
- [QCP Capital](https://qcp.capital/)
- [Polybius Capital](https://www.polybiuscapital.com/)
- [回向基金 Transference Fund](https://www.crunchbase.com/organization/transference-fund)
- Mosaic (Link?)An interactive map can be found here: https://www.zeemaps.com/view?group=4173941&x=-1425.746026&y=37.108757&z=15
## Algorand vs Solana?
A number of threads have been made regarding this:
- [ALGORAND V SOLANA](https://www.reddit.com/r/AlgorandOfficial/comments/pfypbo/algorand_v_solana/) (/u/begoodifalwaysright)
- [Algorand Vs. Solana](https://www.reddit.com/r/AlgorandOfficial/comments/ogdlz4/algorand_vs_solana/) (/u/DoU92)
- [Algorand vs Solana?](https://www.reddit.com/r/AlgorandOfficial/comments/n1ybp1/algorand_vs_solana/) (/u/quickswitch123)
- [Solana vs algorand](https://www.reddit.com/r/AlgorandOfficial/comments/lq566t/solana_vs_algorand/) (/u/mavestic)
- [Solana vs Algorand](https://www.reddit.com/r/AlgorandOfficial/comments/lyplrl/solana_vs_algorand/) (/u/ewemalts)