I hereby claim:
- I am vbuterin on github.
- I am vbuterin (https://keybase.io/vbuterin) on keybase.
- I have a public key whose fingerprint is 84A3 E5B6 DAA2 DA53 26CC 86C3 49DF 1C60 79D8 3FAC
To claim this, I am signing this object:
Спасибо. Grazie. Obrigado. Gracias. Спасибо. Vielen Dank. E aí E aí Vielen Dank. Obrigada. E aí Obrigado. Grazie. E aí Obrigada. Vielen Dank. Grazie. E aí E aí Vielen Dank. Здравствуйте. Мило. Здрасте. Добрый день. Друзья поручили мне начать. И начну с того, что мы очень рады вас видеть. Еще, наверное, несколько дней назад все мы находились каждый в своем небольшом углу, клеточке. Кто-то в Смоленске, кто-то в Омске, кто-то в Карелии. И сейчас, видя перед собой такое огромное количество людей, испытываешь какие-то, знаете, неописуемые эмоции. И это очень здорово. И так как я начинаю, я хотел бы, конечно, сейчас благодарности. Вы знаете, мы очень благодарны всем тем, кто приложил усилия для того, чтобы это произошло. Начну, наверное, с Германии и канцлера, который вчера встречал нас в аэропорту. Это, конечно, было удивительно. И всем тем силам, которые приложили к этому усилия. Я верю, что их было много, кто-то находится снаружи, кто-то находится внутри. Это огромная работа и удивительная для всех нас, и тех, |
I contributed ... | |
Circuit: kzg16 | |
Contributor # 11 | |
Hash: 60188f70 ef3a30ed 144a2821 30059fbe | |
f110f7b7 a0898a16 ca1c1222 cd49b693 | |
371f93c1 58e3abd1 fe16f7c9 bba673c6 | |
ffc6c5b5 6bc6cfc3 3bc9f15b 859887e8 | |
vbuterin |
x1 = prompt("11.9 million ETH was given to the foundation + early contributors. Is this a premine? Answer Yes/No").toLowerCase() == "yes" ? 11.9 : 0 | |
x2 = prompt("61.1 million ETH was sold in an open widely publicized process where anyone could obtain ETH by sending bitcoin to a specific address. Is this a premine? Answer Yes/No").toLowerCase() == "yes" ? 61.1 : 0 | |
x3 = prompt("3.6 million ETH was economically reallocated during the DAO fork. Is this a premine? Answer Yes/No").toLowerCase() == "yes" ? 3.6 : 0 | |
x4 = prompt("36.1 million ETH was mined so far. Is this a premine? Answer Yes/No").toLowerCase() == "yes" ? 46.1 : 0 | |
alert((x1+x2+x3+x4)+" million out of 107.2 million ETH was premined!") |
## Code NOT run or tested or audited. For exposition purposes only. | |
latest_messages = [_ for i in range(len(validators))] | |
scores = {} | |
# Note re big O notation: N = messages, B = balance changes, T = history length | |
def update_latest_messages(new_messages: List[Tuple[int, int, bytes32]]): | |
# new_messages: (validator index, slot of new target, block_hash of new target) for each new message | |
starting_slot = 0 |
[{"name": "__init__", "outputs": [], "inputs": [{"type": "int128", "name": "_epoch_length"}, {"type": "int128", "name": "_withdrawal_delay"}, {"type": "address", "name": "_owner"}, {"type": "address", "name": "_sighasher"}, {"type": "address", "name": "_purity_checker"}, {"type": "decimal10", "name": "_base_interest_factor"}, {"type": "decimal10", "name": "_base_penalty_factor"}, {"type": "int128", "name": "_min_deposit_size"}], "constant": false, "payable": false, "type": "constructor"}, {"name": "get_main_hash_voted_frac", "outputs": [{"type": "decimal10", "name": "out"}], "inputs": [], "constant": true, "payable": false, "type": "function"}, {"name": "get_deposit_size", "outputs": [{"type": "int128", "name": "out"}], "inputs": [{"type": "int128", "name": "validator_index"}], "constant": true, "payable": false, "type": "function"}, {"name": "get_total_curdyn_deposits", "outputs": [{"type": "int128", "name": "out"}], "inputs": [], "constant": true, "payable": false, "type": "function"}, {"name": "get_total_p |
I hereby claim:
To claim this, I am signing this object:
We can create a simplified scalable consensus algorithm that attempts to provide guarantees of only data availability; that is, the basic "unit" of consensus is a data block, a small header that cryptographically points to, say, 1 MB of data, and the only purpose of this system is to provide only the guarantee that the data committed to by these block headers is readily available. This is a challenging problem to solve scalably because the usual technique for scalable validation, incentivized interactive verification with penalties, does not work well for data availability because a malicious attacker can always reveal data just before they are supposed to be penalized. However, using the mechanism described here we can combine rapid shuffling and a form of graceful degradation to solve the scalable data availability validator problem rather effectively.
We can model the protocol by assuming access to a "DHT oracle" where nodes can call DHTget(hash)
and get back the preimage if the preimage has been publis
The purpose of this note is to describe a modification to proof of stake algorithms, as well as a proof of work variant, which uses a notion of increasing timeouts to ensure convergence in a partially synchronous environment. It builds on Andrew Miller et al's work [here](http://nakamotoinstitute.org/static/docs/anonymous-byzantine-consensus.pdf), and its primary contribution is intended to be relaxing the network model from synchronous to partially synchronous. It also builds heavily on Sompolinsky and Zohar's work on [GHOST](https://eprint.iacr.org/2013/881.pdf). | |
Reminders: | |
* A synchronous network model is one where messages between correct nodes are guaranteed to arrive at the recipient within D seconds for some known D. Within that D, however, an attacker has absolute freedom to manipulate latencies of individual messages to attempt to prevent convergence. | |
* A partially synchronous model is similar, except D is unknown. | |
* GHOST is a blockchain fork choice rule that tries to determine the "head" of a cha |
// This is free and unencumbered software released into the public domain. | |
// | |
// Paste this function into the JavaScript console and execute like so: | |
// sendLots(eth.coinbase, eth.accounts[1]) | |
// This can be saved to a file and loaded with loadScript('/path/to/sendLots.js') | |
sendLots = function(fromAccount, toAccount) { | |
loops = 5; | |
txcount = 2; | |
waitBlocks = 1; | |
data = ""; |
Verifying myself: My Bitcoin username is +vitalik. https://onename.io/vitalik |