CryptoCoinsInfoClub.com

Ethereum Protocol Specification

{set} Protocol - Collateralized Baskets Of Ethereum Erc20 Tokens

{set} Protocol - Collateralized Baskets Of Ethereum Erc20 Tokens

With ICOs and the digitization of assets, the world is being tokenized. We may find that in the next two decades that we have millions or billions of tokens. However, there are pains with dealing with the complexity of more tokens. Sending multiple tokens means multiple transactions With a growing number of tokens, there is no way to think about a group of tokens as a single token In computer science, abstraction is a tool that is used to focus on higher-level concepts and hide irrelevant details. Applying the concept to tokens, we introduce the {Set}, an abstract token that represents a basket of tokens. Like building blocks, {Set}s can be used to build other {Set}s {Set} Protocol is a set of smart contracts, tools, and specifications for issuing baskets of assets on blockchains. In a {Set} smart contract, tokens are issued by performing an atomic swap between the underlying tokens and the new {Set} token. The underlying tokens sent to the ownerless contract are trustlessly held as collateral. The new {Set} is an ERC20 token, which can be exchanged and traded like other tokens. Invest in a single {Set} that represents a basket of tokens like the S&P 500 or DJIA Continue reading >>

Application Binary Interface Specification

Application Binary Interface Specification

(T1,...,Tk) if any Ti is dynamic for 1 <= i <= k Definition: len(a) is the number of bytes in a binary string a.The type of len(a) is assumed to be uint256. We define enc, the actual encoding, as a mapping of values of the ABI types to binary strings suchthat len(enc(X)) depends on the value of X if and only if the type of X is dynamic. Definition: For any ABI value X, we recursively define enc(X), dependingon the type of X being (T1,...,Tk) for k >= 0 and any types T1, , Tk enc(X) = head(X(1)) ... head(X(k-1)) tail(X(0)) ... tail(X(k-1)) where X(i) is the ith component of the value, andhead and tail are defined for Ti being a static type as head(X(i)) = enc(X(i)) and tail(X(i)) = "" (the empty string) head(X(i)) = enc(len(head(X(0)) ... head(X(k-1)) tail(X(0)) ... tail(X(i-1))))tail(X(i)) = enc(X(i)) Note that in the dynamic case, head(X(i)) is well-defined since the lengths ofthe head parts only depend on the types and not the values. Its value is the offsetof the beginning of tail(X(i)) relative to the start of enc(X). i.e. it is encoded as if it were a tuple with k elementsof the same type. T[] where X has k elements (k is assumed to be of type uint256): i.e. it is encoded as if it were an array of static size k, prefixed withthe number of elements. bytes, of length k (which is assumed to be of type uint256): enc(X) = enc(k) pad_right(X), i.e. the number of bytes is encoded as a uint256 followed by the actual value of X as a byte sequence, followed bythe minimum number of zero-bytes such that len(enc(X)) is a multiple of 32. enc(X) = enc(enc_utf8(X)), i.e. X is utf-8 encoded and this value is interpreted as of bytes type and encoded further. Note that the length used in this subsequent encoding is the number of bytes of the utf-8 encoded string, not its number of c Continue reading >>

What Is Ethereum? Ethereum Homestead 0.1 Documentation

What Is Ethereum? Ethereum Homestead 0.1 Documentation

Ethereum is an open blockchain platform that lets anyone build and use decentralized applications that run on blockchain technology. Like Bitcoin, no one controls or owns Ethereum it is an open-source project built by many people around the world. But unlike the Bitcoin protocol, Ethereum was designed to be adaptable and flexible. It is easy to create new applications on the Ethereum platform, and with the Homestead release, it is now safe for anyone to use those applications. Blockchain technology is the technological basis of Bitcoin, first described by its mysterious author Satoshi Nakamoto in his white paper Bitcoin: A Peer-to-Peer Electronic Cash System, published in 2008. While the use of blockchains for more general uses was already discussed in the original paper, it was not until a few years later that blockchain technology emerged as a generic term. A blockchain is a distributed computing architecture where every network node executes and records the same transactions, which are grouped into blocks. Only one block can be added at a time, and every block contains a mathematical proof that verifies that it follows in sequence from the previous block. In this way, the blockchains distributed database is kept in consensus across the whole network. Individual user interactions with the ledger (transactions) are secured by strong cryptography. Nodes that maintain and verify the network are incentivized by mathematically enforced economic incentives coded into the protocol. In Bitcoins case the distributed database is conceived of as a table of account balances, a ledger, and transactions are transfers of the bitcoin token to facilitate trustless finance between individuals. But as bitcoin began attracting greater attention from developers and technologists, novel p Continue reading >>

Ethereum Wire Protocol

Ethereum Wire Protocol

Peer-to-peer communications between nodes running Ethereum clients run using the underlying Vp2p Wire Protocol . Two peers connect & say Hello and send their Status message. Status includes the Total Difficulty(TD) & hash of their best block. The client with the worst TD asks peer for full chain of just block hashes. Chain of hashes is stored in space shared by all peer connections, and used as a "work pool". While there are hashes in the chain of hashes that we don't have in our chain: Ask for N blocks from our peer using the hashes. Mark them as on their way so we don't get them from another peer. Status[+0x00: P, protocolVersion: P, networkId: P, td: P, bestHash: B_32, genesisHash: B_32] Inform a peer of its current ethereum state. This message should be sent after the initial handshake and prior to any ethereum related messages. networkId: 0=Olympic (disused), 1=Frontier (mainnet), 2=Morden (disused), 3=Ropsten (testnet), 4= Rinkeby td: Total Difficulty of the best chain. Integer, as found in block header. bestHash: The hash of the best (i.e. highest TD) known block. genesisHash: The hash of the Genesis block. NewBlockHashes[+0x01: P, hash1: B_32, hash2: B_32, ...] Specify one or more new blocks which have appeared on the network. The list may contain 256 hashes at most. To be maximally helpful, nodes should inform peers of all blocks that they may not be aware of. Including hashes that the sending peer could reasonably be considered to know (due to the fact they were previously informed of because that node has itself advertised knowledge of the hashes through NewBlockHashes) is considered Bad Form, and may reduce the reputation of the sending node. Including hashes that the sending node later refuses to honour with a proceeding GetBlocks message is considered Bad Continue reading >>

A Prehistory Of The Ethereum Protocol

A Prehistory Of The Ethereum Protocol

Although the ideas behind the current Ethereum protocol have largely been stable for two years, Ethereum did not emerge all at once, in its current conception and fully formed. Before the blockchain has launched, the protocol went through a number of significant evolutions and design decisions. The purpose of this article will be to go through the various evolutions that the protocol went through from start to launch; the countless work that was done on the implementations of the protocol such as Geth, cppethereum, pyethereum, and EthereumJ, as well as the history of applications and businesses in the Ethereum ecosystem, is deliberately out of scope. Also out of scope is the history of Casper and sharding research. While we can certainly make more blog posts talking about all of the various ideas Vlad, Gavin, myself and others came up with, and discarded, including proof of proof of work, hub-and-spoke chains, hypercubes , shadow chains (arguably a precursor to Plasma ), chain fibers , and various iterations of Casper , as well as Vlads rapidly evolving thoughts on reasoning about incentives of actors in consensus protocols and properties thereof, this would also be far too complex a story to go through in one post, so we will leave it out for now. Let us first begin with the very earliest version of what would eventually become Ethereum, back when it was not even called Ethereum. When I was visiting Israel in October 2013, I spent quite a bit of time with the Mastercoin team, and even suggested a few features for them. After spending a couple of times thinking about what they were doing, I sent the team a proposal to make their protocol more generalized and support more types of contracts without adding an equally large and complex set of features: Notice that this is Continue reading >>

Ethereum's Erc-20 Token Standard Has Been Formalized

Ethereum's Erc-20 Token Standard Has Been Formalized

Ethereum's ERC-20 Token Standard Has Been Formalized Sep 11, 2017 at 18:20 UTC|UpdatedSep 11, 2017 at 18:22 UTC The standard that governs how new cryptographic tokens can be launched on top of the ethereum blockchain has been been finalized. Revealed today by the open-source project's developer team, the ERC-20 standard establishes a common set of rules for tokens issued via ethereum smart contracts , and currently serves as the basis for the many tokens that have been released through initial coin offerings (ICOs). The standard has now been formalized on the ethereum GitHub page, meaningthat going forward, all tokens built on ethereum should conform to the standard. ERC-20 was previously unenforced, but it had been readily adopted by token developers since its introduction in late 2015. The standard ensures that ethereum-based tokens perform in a predictable way throughout the ecosystem, such that decentralized applications and smart contracts are interoperable across the platform, and that all tokens follow a fixed standard of security. A token is a script running on top of the ethereum blockchain, with an associated database keeping track of ether payments.The term has gained widespread use in ICOs, most of which already use ERC-20 tokens. The development comes as the roadmap for ethereum's next major upgrade, Metropolis, becomes clearer. Developers revealed last week that a new testnet will be launched a week from now. Pending the success of that process, ethereum's actual upgrade could come as early as October. The leader in blockchain news, CoinDesk is a media outlet that strives for the highest journalistic standards and abides by a strict set of editorial policies . CoinDesk is an independent operating subsidiary of Digital Currency Group, which invests in cryp Continue reading >>

Ethereum Bounty Program

Ethereum Bounty Program

The Ethereum Bounty Program provides bounties for bugs. We call on our community and all bug bounty hunters to help identify bugs in the protocols and clients. Earn rewards for finding a vulnerability and get a place on our leaderboard. See Rules & Rewards section for details. * No longer eligible for bounties, since October 2016. Martin now works for the Ethereum Foundation and, among other things, manages the bug bounty program. 2018-03-28: Several new entries on the leaderboard! Congratulations, and thanks! First off, we have awarded 10 000 points to the researchers from Boston University: Sharon Goldberg, Yuval Marcus and Ethan Heilman, for their research about eclipse attacks on geth nodes. The fixes were included in 1.8.0. Dominic Brtsch was awarded 7500 points for a vulnerability which could be used to trigger slow block processing in geth, which has been fixed in 1.8.3. Two DoS vulnerabilities in geth RPC methods were reported by Vasily Vasiliev, awarded 500 points each. We also awarded jazzybedi with 500 points for alerting us about DNS rebind vulnerabiliites, which were also fixed in 1.8.0. 2018-02-12: Barry Whitehat has been added to the leaderboard, for a discrepancy in how Geth vs Parity treated future blocks. The discrepancy could potentially cause a mining minority be at a disadvantage. This has been fixed by aligning how Geth and Parity treats such blocks. 2018-01-16: See the blog for a security announcement concerning the Mist Browser. The Mist browser is not considered production software, and we will not pay full rewards for upstream bugs. 2017-12-13: Yoonho Kim , of team Hithereum, has scored another 5000 points; again for an RCE in Mist/Electron. Also, Peter Stckli submitted a Mist-vulnerability which granted him 5000 points. Congratulations both! Continue reading >>

Introducing {set} Protocol {set} Protocol Medium

Introducing {set} Protocol {set} Protocol Medium

A Specification for a Decentralized Basket ofTokens Today, we are announcing {Set} protocol, a standard interface for a collateralized basket of ERC20 standard tokens. Our mission is to help build the decentralized world by utilizing the concept of abstraction in novel ways on the blockchain. Learn more at setprotocol.com , read the whitepaper , check out the code , or join us on slack . In the coming weeks, we will be launching a beta client that allows for the creation, issuance, redemption, and exchange of {Set}s. With the advent of Initial Coin Offerings (ICOs) and the tokenization of digital and non-digital assets, there is an explosion of new cryptographic tokens. We have thousands of tokens represented on CoinMarketCap, and a long tail of others that are not listed. As the ecosystem develops and more assets get tokenized at an increasing rate, it is possible that there will be millions or even billions of tokens. With more and more tokens, there is growing complexity and pains with dealing with these tokens. In addition, the transaction fees of dealing with a multitude of tokens grows linearly with the number of tokens that are needed to transfer. For example, if one wants to send 100 tokens one would need to broadcast 100 transactions and thus pay 100 transaction fees. The problem is that there has not been a standard for thinking about and dealing with a multitude of tokens as one token. We introduce the {Set} (the braces reminiscent of the mathematical set), a standard for an abstract token fully collateralized by its underlying tokens. {Set}s allow users to group together different tokens and synthesize them into a single higher-order token that represents its underlying parts. The reverse process, redemption, allows users to split a {Set} back into its unde Continue reading >>

Erc20 Token Standard

Erc20 Token Standard

The ERC20 token standard describes the functions and events that an Ethereum token contract has to implement. Following is an interface contract declaring the required functions and events to meet the ERC20 standard: 1 // 2 contract ERC20 { 3 function totalSupply() constant returns (uint totalSupply); 4 function balanceOf(address _owner) constant returns (uint balance); 5 function transfer(address _to, uint _value) returns (bool success); 6 function transferFrom(address _from, address _to, uint _value) returns (bool success); 7 function approve(address _spender, uint _value) returns (bool success); 8 function allowance(address _owner, address _spender) constant returns (uint remaining); 9 event Transfer(address indexed _from, address indexed _to, uint _value);10 event Approval(address indexed _owner, address indexed _spender, uint _value);11 } Most of the major tokens on the Ethereum blockchain are ERC20-compliant. The GNT Golem Network Token is only partially-ERC20-compliant as it does not implement the approve(...), allowance(..) and transferFrom(...) functions, and the Approval(...) event. Some of the tokens include further information describing the token contract: 1 string public constant name = "Token Name";2 string public constant symbol = "SYM";3 uint8 public constant decimals = 18; // 18 is the most common number of decimal places Following is a fragment of a token contract to demonstrate how a token contract maintains the token balance of Ethereum accounts: 1 contract TokenContractFragment { 2 3 // Balances for each account 4 mapping(address => uint256) balances; 5 6 // Owner of account approves the transfer of an amount to another account 7 mapping(address => mapping (address => uint256)) allowed; 8 9 // What is the balance of a particular account?10 functio Continue reading >>

The Big Ethereum Short By Tuurdemeester

The Big Ethereum Short By Tuurdemeester

When it passed a market cap of $1.5 billion, both in March and in May, Ethereum became the highest valued non-bitcoin cryptocurrency ever. The enigmatic project is no doubt the altcoin that has the most Bitcoin enthusiasts confusedor even rattled. People are wondering whether Ethereum could be Bitcoin 2.0, like Facebook versus Myspace, or VHS to Bitcoins Betamax. Others have stated that Ethereum is carving out its own space entirely, calling it the oil to Bitcoins gold. Ethereum is a competitor of Bitcoin, like a shark is a competitor of a lion. You can have two apex species in different niches not competing I dont share either opinion. In my view, Ethereum is in direct competition with Bitcoin, and going forward itll most likely lose market share against it. Just sold short $ETH /$BTC, with stop losses at abt BTC 0.028. Feel like #Ethereum disarray isnt properly priced in. pic.twitter.com/xIp44yYyn5 Tuur Demeester (@TuurDemeester) July 29, 2016 In this article I explain why I have a bearish outlook on Ethereums token $ETH, certainly when expressed in Bitcoin terms. I dont claim omniscience and I of course could be wrong. Still, I think the following list gives voice to substantially under-appreciated concerns about the Ethereum cryptocurrency and ecosystem. If after reading this article you feel inclined to also short ETH/BTC, I suggest keeping in mind the following: Professional traders risk less than 1% of their capital in a trade, 2% in a maximum commitment . This is also my personal rule of thumb. Trading positions can only be held by an exchange, which means you will be subject to (significant) risk of loss of funds in case of a hack . A number of smart people are ETH-bullishI suggest studying their arguments, maybe even their direct criticism of this article. Ev Continue reading >>

Vp2p Wire Protocol

Vp2p Wire Protocol

Peer-to-peer communications between nodes running Ethereum/Whisper/&c. clients are designed to be governed by a simple wire-protocol making use of existing V technologies and standards such as RLP wherever practical. This document is intended to specify this protocol comprehensively. Vp2p nodes communicate by sending messages using RLPx, an encrypted and authenticated transport protocol. Peers are free to advertise and accept connections on any TCP ports they wish, however, a default port on which the connection may be listened and made will be 30303.Though TCP provides a connection-oriented medium, Vp2p nodes communicate in terms of packets.RLPx provides facilities to send and receive packets. For more information about RLPx, refer to the protocol specification . Vp2p nodes find peers through the RLPx discovery protocol DHT. Peer connections can also be initiated by supplyingthe endpoint of a peer to a client-specific RPC API. There are a number of different types of payload that may be encoded within the RLP. This ''type'' is always determined by the first entry of the RLP, interpreted as an integer. Vp2p is designed to support arbitrary sub-protocols (aka capabilities) over the basic wire protocol. Each sub-protocol is given as much of the message-ID space as it needs (all such protocols must statically specify how many message IDs they require). On connection and reception of the Hello message, both peers have equivalent information about what subprotocols they share (including versions) and are able to form consensus over the composition of message ID space. Message IDs are assumed to be compact from ID 0x10 onwards (0x00-0x10 is reserved for Vp2p messages) and given to each shared (equal-version, equal name) sub-protocol in alphabetic order. Sub-protocols that ar Continue reading >>

Ocalog: The Original Content Catalog

Ocalog: The Original Content Catalog

Ethereum is a cryptocurrency where code can be executed on theblockchain. This capability allows "smart contracts" to be writtenwhich execute themselves automatically. About a year ago, a smartcontract called the DAO blew up spectacularly when someone figured outhow to manipulate it into giving them what was then $41 million worthof Eth. This caused a fracturing of the network when people decided to"fork" the blockchain to one where the DAO attack never happened.When I first heard about this, I thought "that sounds like so muchfun" but I haven't had time to gain a deep understanding of how itworks, until now. This is the first post in a series on the fullimplementation of the Ethereum protocol from a beginner's perspective.After this first post, I plan to write these posts in digestiblechunks so that you don't have to spend too much time reading themevery day, but over time you will gain a deeper understanding ofEthereum.I'm going to assume the reader has a basic understanding of Python,git, knowledge (not expertise) of network concepts like TCP and UDP,and no fear of working with raw bytes. Other than that I will try toassume nothing. Today I will start with a conceptual introduction tocryptocurrency, then set up a Python development environment, andfinally implement `ping` on the Ethereum network. Let's get started.### The concept of cryptocurrencyA cryptocurrency is a means of storing and transferring valueelectronically without a central settlement mechanism. A centralsettlement mechanism keeps track of all accounts, updates them foreach transaction, and acts as a trusted third party for alltransactions. In the United States, the Federal Reserve System is thecentral settlement mechanism. All banks have accounts at the Fed anduse its authority to settle transactions Continue reading >>

White Paper Ethereum/wiki Wiki Github

White Paper Ethereum/wiki Wiki Github

Introduction to Bitcoin and Existing Concepts The concept of decentralized digital currency, as well as alternative applications like property registries, has been around for decades. The anonymous e-cash protocols of the 1980s and the 1990s were mostly reliant on a cryptographic primitive known as Chaumian Blinding. [8] Chaumian Blinding provided these new currencies with high degrees of privacy, but their underlying protocols largely failed to gain traction because of their reliance on a centralized intermediary. In 1998, Wei Dai's b-money [9] became the first proposal to introduce the idea of creating money through solving computational puzzles as well as decentralized consensus, but the proposal was scant on details as to how decentralized consensus could actually be implemented. In 2005, Hal Finney introduced a concept of reusable proofs of work, [10] a system which uses ideas from b-money together with Adam Back's computationally difficult Hashcash [11] puzzles to create a concept for a cryptocurrency, but once again fell short of the ideal by relying on trusted computing as a backend. In 2009, a decentralized currency was for the first time implemented in practice by Satoshi Nakamoto, [1c] [1d] combining established primitives for managing ownership through public key cryptography with a consensus algorithm for keeping track of who owns coins, known as "proof of work." The mechanism behind proof of work was a breakthrough because it simultaneously solved two problems. First, it provided a simple and moderately effective consensus algorithm, allowing nodes in the network to collectively agree on a set of updates to the state of the Bitcoin ledger. Second, it provided a mechanism for allowing free entry into the consensus process, solving the political problem of Continue reading >>

Devp2p Protocol Spec | Ethereum Frontier Guide

Devp2p Protocol Spec | Ethereum Frontier Guide

Peer-to-peer communications between nodes running Ethereum/Whisper/&c. clients are designed to be governed by a simple wire-protocol making use of existing V technologies and standards such as RLP wherever practical. This document is intended to specify this protocol comprehensively. Vp2p nodes may connect to each other over TCP only. Peers are free to advertise and accept connections on any port(s) they wish, however, a default port on which the connection may be listened and made will be 30303. Though TCP provides a connection-oriented medium, Vp2p nodes communicate in terms of packets. These packets are formed as a 4-byte synchronisation token (0x22400891), a 4-byte "payload size", to be interpreted as a big-endian integer and finally an N-byte RLP-serialised data structure, where N is the aforementioned "payload size". To be clear, the payload size specifies the number of bytes in the packet ''following'' the first 8. There are a number of different types of payload that may be encoded within the RLP. This ''type'' is always determined by the first entry of the RLP, interpreted as an integer. Vp2p is designed to support arbitrary sub-protocols (aka capabilities) over the basic wire protocol. Each sub-protocol is given as much of the message-ID space as it needs (all such protocols must statically specify how many message IDs they require). On connection and reception of the Hello message, both peers have equivalent information about what subprotocols they share (including versions) and are able to form consensus over the composition of message ID space. Message IDs are assumed to be compact from ID 0x10 onwards (0x00-0x10 is reserved for Vp2p messages) and given to each shared (equal-version, equal name) sub-protocol in alphabetic order. Sub-protocols that are not Continue reading >>

The Ethereum Token Standards You Need Toknow

The Ethereum Token Standards You Need Toknow

ERC stands for Ethereum Request for Comment. This is Ethereums version of a Request for Comments (RFC), a concept devised by the Internet Engineering Task Force . Memos within an RFC contain technical and organizational notes. For ERCs, this includes some technical guidelines for the buildout of the Ethereum network. This was written by Ethereum developers for the Ethereum community. Thus, the workflow of generating an ERC includes a developer. To create standards for the Ethereum platform, a developer submits an Ethereum Improvement Proposal (EIP). This includes protocol specifications and contract standards. Once that EIP is approved by a committee and finalized, it becomes an ERC. The complete list of EIPs can be found here . The finalized EIPs give the Ethereum developers a set of implementable standards. This allows Smart Contracts to be built with these standards, which a common interface can access. ERC-20 is the most well-known of all the standards within the entire crypto community, and most tokens issued on top of the Ethereum platform use it. The ERC-20 standard includes the following functions: totalSupply(): returns total token supply balanceOf(address _owner): returns account balance of _owners account transfer(address _to, uint256 _value): takes in number _value and transfers that amount of tokens to address _to and triggers transfer event transferFrom(address _from, address _to, uint256 _value): transfers _value amount of tokens from the address _from to the address _to, and triggers the transfer event approve(address _spender, uint256 _value): allows _spender to withdraw any number up to _value amount allowance(address _owner, address _spender): returns the amount which the_spender is still allowed to withdraw from the _owner The following events are t Continue reading >>

More in ethereum