From b73b20cc062c6198f7ae51440a512d954e38cf6a Mon Sep 17 00:00:00 2001 From: Vitalik Buterin Date: Thu, 21 Nov 2024 17:06:15 +0700 Subject: [PATCH] Added vyper sublinear staking example --- .gitignore | 0 99fault/consensus.py | 0 LICENSE | 0 README.md | 0 .../barycentric_low_degree_check.py | 0 barycentric_low_degree_check/poly_utils.py | 0 beacon_chain_impl/bls.py | 0 beacon_chain_impl/full_pos.py | 0 beacon_chain_impl/progressive_merkle_tree.py | 0 beacon_chain_impl/simpleserialize.py | 0 beacon_chain_impl/test.py | 0 beacon_chain_impl/test_full_pos.py | 0 binary_fft.py | 0 binary_fft/binary_fft.py | 0 binary_fft/ethereum_data_root.py | 0 binary_fft/fast_binary_fft.pyx | 0 binary_fft/test_binary_fft.py | 0 binary_fft/test_ethereum_data_root.py | 0 binius/binary_fields.py | 0 binius/binary_ntt.py | 0 binius/merkle.py | 0 binius/optimized_binius.py | 0 binius/optimized_utils.py | 0 binius/packed_binius.py | 0 binius/simple_binius.py | 0 binius/test.py | 0 binius/utils.py | 0 bitcoin_unlimited_style_sizelimits.py | 0 blind_and_swap/blind_and_swap.py | 0 blind_and_swap/swapsim.py | 0 blind_and_swap/swapsim2.py | 0 bulletproofs/ipa_commitments.py | 0 bulletproofs/multicombs.py | 0 casper4/basic_validation_code.se.py | 0 casper4/diag1.png | Bin casper4/diag2.png | Bin casper4/fixed_address_creator.py | 0 casper4/griefing_factor_calculator.py | 0 .../griefing_one_third_offline_simulator.py | 0 casper4/rlp_decoder.se.py | 0 casper4/sighash.se.py | 0 casper4/simple_casper.v.py | 0 casper4/simple_casper_tester.py | 0 casper4/simulator.py | 0 casper4/sqrt.se.py | 0 casper4/surround_checker.py | 0 circlestark/arithmetization_builder.py | 0 circlestark/fast_fft.py | 0 circlestark/fast_fri.py | 0 circlestark/fast_stark.py | 0 circlestark/fft.py | 0 circlestark/fields.py | 0 circlestark/fri.py | 0 circlestark/line_functions.py | 0 circlestark/merkle.py | 0 circlestark/poseidon.py | 12 +- circlestark/precomputes.py | 0 circlestark/test.py | 0 circlestark/utils.py | 0 clock_disparity/distributions.py | 0 clock_disparity/ghost_node.py | 0 clock_disparity/ghost_test.py | 0 clock_disparity/lmd_node.py | 0 clock_disparity/lmd_test.py | 0 clock_disparity/networksim.py | 0 clock_disparity/pos_node.py | 0 clock_disparity/pow_node.py | 0 clock_disparity/test.py | 0 community_notes_analysis/basic_algo.py | 0 correlation_analysis/analyze_attestations.py | 0 correlation_analysis/new_analyze.py | 0 cycle_finding_function_collision_generator.py | 0 dao_tests/bytecode.txt | 0 dao_tests/dao_dump.json | 0 dao_tests/fork_tester.py | 0 defrag/defrag_sim.py | 0 defrag/permutation2.py | 0 defrag/permutation_bfs.py | 0 defrag/send_bfs.py | 0 diffadjust/blkdiff.py | 0 diffadjust/hashpower.csv | 0 economic_analysis/censorship_sim.py | 0 eip86/eip_86_basic_account.se | 0 eip96/eip_96_blockhash_getter.se.py | 0 eip96/eip_96_test_script.py | 0 elasticity/analyzer.py | 0 elasticity/data.csv | 0 elasticity/data.png | Bin erasure_code/2d_recovery/recover.py | 0 erasure_code/ec256/share.cpp | 0 erasure_code/ec256/share.go | 0 erasure_code/ec256/share.h | 0 erasure_code/ec256/share.js | 0 erasure_code/ec256/test.py | 0 erasure_code/ec256/utils.h | 0 erasure_code/ec65536/LICENSE | 0 erasure_code/ec65536/README.md | 0 erasure_code/ec65536/ec65536/__init__.py | 0 erasure_code/ec65536/ec65536/ec65536.py | 0 erasure_code/ec65536/ec65536/poly_utils.py | 0 .../ec65536/subquadratic_poly_utils.py | 0 erasure_code/ec65536/faster_poly_utils.cpp | 0 erasure_code/ec65536/poly_utils.cpp | 0 erasure_code/ec65536/setup.py | 0 erasure_code/ec65536/tests/test_basic_ops.py | 0 erasure_code/ec65536/tests/test_ec65536.py | 0 erc4337/compression_schemes.py | 0 eth1_simple_custody/poly_utils.py | 0 eth1_simple_custody/simple_custody.py | 0 exit_queue_tests/exit_queue_tester.py | 0 .../optimistic_dependency_test.py | 0 fast_linear_combinations/multicombs.py | 0 generic_in_place_tree/tree.py | 0 ghost/ghost.py | 0 graph_cbc/graph_cbc.py | 0 iceage.py | 0 impurity/check_for_impurity.se | 0 impurity/impurity_tester.py | 0 interface_generator/README.md | 0 interface_generator/example.py | 0 interface_generator/examples/addresses.json | 0 .../examples/foundation_abi.json | 0 .../examples/foundation_instructions.json | 0 .../examples/foundation_out.html | 0 interface_generator/examples/uniswap_abi.json | 0 .../examples/uniswap_instructions.json | 0 interface_generator/examples/uniswap_out.html | 0 interface_generator/interface_generator.py | 0 kzg_data_availability/README.md | 0 kzg_data_availability/blst/__init__.py | 0 kzg_data_availability/fft.py | 0 kzg_data_availability/fk20_multi.py | 0 kzg_data_availability/fk20_single.py | 0 kzg_data_availability/kzg_proofs.py | 0 kzg_data_availability/multicombs.py | 0 kzg_data_availability/timer.py | 0 merkle_tree/merk.py | 0 merkle_tree/merktest.py | 0 mimc_stark/README.md | 0 mimc_stark/better_lagrange.py | 0 mimc_stark/fft.py | 0 mimc_stark/fri.py | 0 mimc_stark/merkle_tree.py | 0 mimc_stark/mimc_stark.py | 0 mimc_stark/permuted_tree.py | 0 mimc_stark/poly_utils.py | 0 mimc_stark/recovery.py | 0 mimc_stark/test.py | 0 mimc_stark/test_multi_merkle.py | 0 mimc_stark/test_recovery.py | 0 mimc_stark/utils.py | 0 minimal_utxo/utxo_tester.py | 0 minimal_utxo/utxos.v.py | 0 mining/arpow_miner.py | 0 mining/compute_probabilities_of_finality.py | 0 mining/finality_probability_sim.py | 0 mining/hashimoto.py | 0 mining/mining.go | 0 mining/mining.py | 0 mining/python_sha3.py | 0 newssz/foo.py | 0 newssz/test_foo.py | 0 old_consensus_by_bet/README.md | 0 old_consensus_by_bet/casper.py | 0 old_consensus_by_bet/distributions.py | 0 old_consensus_by_bet/networksim.py | 0 old_consensus_by_bet/run.py | 0 old_consensus_by_bet/voting_strategy.py | 0 papers/CasperTFG/CasperTFG.pdf | Bin papers/CasperTFG/CasperTFG.tex | 0 papers/CasperTFG/eth_header.tex | 0 papers/CasperTFG/ethereum.bib | 0 papers/CasperTFG/figures/3binary.png | Bin .../CasperTFG/figures/3nodeblockchain-fix.png | Bin papers/CasperTFG/figures/3nodeblockchain.png | Bin papers/CasperTFG/figures/blockchainsafety.png | Bin papers/CasperTFG/figures/roundrobin.png | Bin papers/CasperTFG/nips_2017.sty | 0 papers/casper-basics/casper_basics.pdf | Bin papers/casper-basics/casper_basics.tex | 0 papers/casper-basics/eth_header.tex | 0 papers/casper-basics/ethereum.bib | 0 .../figs/attacks.graffle/data.plist | Bin .../figs/attacks.graffle/image12.pdf | Bin .../figs/attacks.graffle/image13.pdf | Bin .../figs/attacks.graffle/image14.pdf | Bin .../figs/attacks.graffle/image6.pdf | Bin .../figs/attacks.graffle/image8.pdf | Bin papers/casper-basics/figs/bigcrash.pdf | Bin .../figs/checkpoint-trees.graffle/data.plist | Bin .../figs/checkpoint-trees.graffle/image10.pdf | Bin .../figs/checkpoint-trees.graffle/image12.pdf | Bin .../figs/checkpoint-trees.graffle/image13.pdf | Bin .../figs/checkpoint-trees.graffle/image14.pdf | Bin .../figs/checkpoint-trees.graffle/image15.pdf | Bin .../figs/checkpoint-trees.graffle/image16.pdf | Bin .../figs/checkpoint-trees.graffle/image18.pdf | Bin .../figs/checkpoint-trees.graffle/image19.pdf | Bin .../figs/checkpoint-trees.graffle/image5.pdf | Bin .../figs/checkpoint-trees.graffle/image6.pdf | Bin .../figs/checkpoint-trees.graffle/image7.pdf | Bin .../figs/checkpoint-trees.graffle/image8.pdf | Bin .../figs/checkpoint-trees.graffle/image9.pdf | Bin .../figs/checkpoints_checkpoints.pdf | Bin .../figs/checkpoints_justifiedchain.pdf | Bin .../figs/checkpoints_lengths.pdf | Bin .../casper-basics/figs/checkpoints_proof1.pdf | Bin papers/casper-basics/figs/conclusion-new.pdf | Bin papers/casper-basics/figs/conclusion-old.pdf | Bin papers/casper-basics/figs/conclusion.graffle | Bin .../figs/dynamic_validator_sets-v3.pdf | Bin .../dynamic_validator_sets.graffle/data.plist | Bin .../image10.png | Bin .../image11.pdf | Bin .../image12.pdf | Bin .../image14.pdf | Bin .../dynamic_validator_sets.graffle/image8.pdf | Bin .../dynamic_validator_sets.graffle/image9.pdf | Bin .../figs/dynamic_validator_sets.pdf | Bin papers/casper-basics/figs/longrange.pdf | Bin .../figs/oz-figure-test.graffle/data.plist | Bin .../figs/oz-figure-test.graffle/image13.pdf | Bin .../figs/oz-figure-test.graffle/image14.pdf | Bin .../figs/oz-figure-test.graffle/image17.pdf | Bin .../figs/oz-figure-test.graffle/image18.pdf | Bin .../figs/oz-figure-test.graffle/image19.pdf | Bin .../figs/oz-figure-test.graffle/image26.pdf | Bin .../figs/oz-figure-test.graffle/image27.pdf | Bin .../figs/oz-figure-test.graffle/image28.pdf | Bin .../figs/oz-figure-test.graffle/image29.pdf | Bin .../figs/oz-figure-test.graffle/image30.pdf | Bin .../figs/oz-figure-test.graffle/image31.pdf | Bin .../figs/oz-figure-test.graffle/image32.pdf | Bin .../misc/leak function derivation.pdf | Bin papers/casper-basics/nips_2017.sty | 0 papers/casper-economics/appendix.tex | 0 .../casper_economics_basic.pdf | Bin .../casper_economics_basic.tex | 0 papers/casper-economics/eth_header.tex | 0 papers/casper-economics/ethereum.bib | 0 papers/casper-economics/figs/cs.pdf | Bin .../figs/goodness-with-p.graffle | Bin .../casper-economics/figs/goodness-with-p.pdf | Bin papers/casper-economics/nips10submit_e.sty | 0 papers/cbc-consensus/AbstractCBC.pdf | Bin papers/cbc-consensus/AbstractCBC.tex | 0 papers/cbc-consensus/eth_header.tex | 0 .../cbc-consensus/figures/sharedfutures.jpg | Bin papers/cbc-consensus/nips_2017.sty | 0 papers/discouragement/disc_chart1.png | Bin papers/discouragement/disc_chart2.png | Bin papers/discouragement/disc_chart3.png | Bin papers/discouragement/disc_chart4.png | Bin papers/discouragement/discouragement.pdf | Bin papers/discouragement/discouragement.tex | 0 papers/ffg+ghost/paper.pdf | Bin .../censorship_rejection/Censorship1.png | Bin .../censorship_rejection/Censorship2.png | Bin .../censorship_rejection/Censorship3.png | Bin .../censorship_rejection/Censorship3p5.png | Bin .../censorship_rejection/Censorship4.png | Bin .../censorship_rejection/Censorship5.png | Bin .../censorship_rejection/Censorship6.png | Bin .../censorship_rejection/Censorship6b.png | Bin .../censorship_rejection/Censorship6c.png | Bin .../censorship_rejection/Censorship6d.png | Bin .../censorship_rejection/Censorship7.png | Bin .../censorship_rejection.aux | 0 .../censorship_rejection.log | 0 .../censorship_rejection.pdf | Bin .../censorship_rejection.tex | 0 papers/pricing/FeesAndETH.ods | Bin papers/pricing/GaspriceInGwei.png | Bin papers/pricing/PriceAndFees.png | Bin papers/pricing/Triangle1.png | Bin papers/pricing/Triangle2.png | Bin papers/pricing/Triangle3.png | Bin papers/pricing/arydshln.sty | 0 papers/pricing/bitcoin1.png | Bin papers/pricing/bitcoin2.png | Bin papers/pricing/blocksize_fullnodes.png | Bin papers/pricing/commath.sty | 0 papers/pricing/etherchain_correlation.png | Bin papers/pricing/etherchain_correlation_2.png | Bin papers/pricing/ethpricing.bib | 0 papers/pricing/ethpricing.pdf | Bin papers/pricing/ethpricing.tex | 0 papers/pricing/fig1a.png | Bin papers/pricing/fig1b.png | Bin papers/pricing/fig1c.png | Bin papers/pricing/fig1d.png | Bin papers/pricing/kth_price_revenue.png | Bin papers/pricing/marvosym.sty | 0 papers/pricing/nips10submit_e.sty | 0 papers/pricing/plos2009.bst | 0 papers/pricing/sleepwake.png | Bin papers/pricing/subfigure.sty | 0 papers/pricing/total_social_cost.png | Bin papers/pricing/units.sty | 0 papers/pricing/virgil_env.sty | 0 papers/pricing/wrapfig.sty | 0 polynomial_reconstruction/fft.py | 0 .../interpolate_polynomial_without_zeroes.py | 0 polynomial_reconstruction/poly_gcd.py | 0 polynomial_reconstruction/poly_utils.py | 0 .../polynomial_reconstruction.py | 0 .../polynomial_reconstruction_danksharding.py | 0 pow_research/ghost.py | 0 pow_research/multi_uncle_ghost.py | 0 pow_research/random_circuit.py | 0 pow_research/random_graphs.py | 0 pow_research/selfish_mining.py | 0 pow_research/selfish_mining_strats.py | 0 price_analysis/csvgen.py | 0 price_analysis/diff_and_price.csv | 0 price_analysis/fit.py | 0 price_analysis/price_analyzer.py | 0 price_analysis/price_grabber.py | 0 price_analysis/spread.py | 0 proof_of_custody/bls_sign.mpc | 0 proof_of_custody/khovratovich_algorithm.py | 0 proof_of_custody/legendre_uhf.mpc | 0 proof_of_custody/legendre_uhf.py | 0 proof_of_custody/uhf_oursourcing.py | 0 proof_of_solvency/crazy_merkle_tree.py | 0 proof_of_solvency/merkle_sum_tree.py | 0 py_plonk/README.md | 0 py_plonk/compiler.py | 0 py_plonk/main.plonk.vkey-58.json | 0 py_plonk/main.plonk.vkey-59.json | 0 py_plonk/main.plonk.vkey.json | 0 py_plonk/mini_poseidon.py | 0 py_plonk/multicombs.py | 0 py_plonk/powersOfTau28_hez_final_11.ptau | Bin py_plonk/prover.py | 0 py_plonk/rc.json | 0 py_plonk/test.py | 0 py_plonk/utils.py | 0 py_plonk/verifier.py | 0 py_ssz/LICENSE | 0 py_ssz/README.md | 0 py_ssz/py_ssz/__init__.py | 0 py_ssz/py_ssz/py_ssz.py | 0 py_ssz/py_ssz/serializers.py | 0 py_ssz/py_ssz/utils.py | 0 py_ssz/requirements.txt | 0 py_ssz/setup.py | 0 py_ssz/tests/tests.py | 0 randao_analysis/low_influence/2of3.py | 0 randao_analysis/low_influence/tribes.py | 0 randao_analysis/paths.py | 0 rollup_compression/4844_compress_complex.py | 0 rollup_compression/4844_compress_simple.py | 0 rollup_compression/compressor.py | 0 rollup_compression/dicts.py | 0 rsa_moduli/bach_random_factored_numbers.py | 0 rsa_moduli/find_optimal_bit_size.py | 0 ...andom_numbers_with_multiplicative_group.py | 0 rsa_moduli/requirements.txt | 0 sendmany/mk_sendmany.py | 0 sendmany/sendmany_tester.py | 0 sharding_fork_choice_poc/distributions.py | 0 sharding_fork_choice_poc/networksim.py | 0 sharding_fork_choice_poc/test.py | 0 shuffling/feistel_shuffle.py | 0 shuffling/fisher_yates_shuffle.py | 0 shuffling/prime_shuffle.py | 0 shuffling/swap_or_not_shuffle.py | 0 shuffling/test_shuffle.py | 0 sparse_merkle_tree/bintrie_test.py | 0 sparse_merkle_tree/new_bintrie.py | 0 sparse_merkle_tree/new_bintrie_hex.py | 0 sparse_merkle_tree/new_bintrie_optimized.py | 0 sparse_merkle_tree/new_bintrie_test.py | 0 spec_pythonizer/.gitignore | 0 spec_pythonizer/README.md | 0 spec_pythonizer/apply_test_suite.py | 0 spec_pythonizer/bls_stub.py | 0 spec_pythonizer/function_puller.py | 0 spec_pythonizer/jsonize.py | 0 spec_pythonizer/minimal_ssz.py | 0 spec_pythonizer/monkey_patches.py | 0 spec_pythonizer/requirements.txt | 0 spec_pythonizer/sanity_check.py | 0 spec_pythonizer/spec.md | 0 spec_pythonizer/state_test_gen.py | 0 spec_pythonizer/state_transition.py | 0 spec_pythonizer/utils/hash.py | 0 spec_pythonizer/utils/merkle_minimal.py | 0 ssz_research/partials/README.md | 0 ssz_research/partials/hash_function.py | 0 ssz_research/partials/minimal_ssz.py | 0 ssz_research/partials/ssz_partial.py | 0 ssz_research/partials/test_ssz_partial.py | 0 .../ssz_hashable_list/hashable_list.py | 0 .../ssz_hashable_list/test_hashable_list.py | 0 sublinear_staking/code.vy | 101 +++++++++++++++ sublinear_staking/erc1155.vy | 11 ++ sublinear_staking/erc20.vy | 40 ++++++ sublinear_staking/test_sublinear.py | 121 ++++++++++++++++++ test_binary_fft.py | 0 trusted_setup/test.py | 0 trusted_setup/trusted_setup.py | 0 uncle_regressions/attack_gas.csv | 0 uncle_regressions/attack_gas_regression.py | 0 uncle_regressions/base_regression.py | 0 uncle_regressions/block_datadump_generator.py | 0 uncle_regressions/time_regression.py | 0 uncle_regressions/tx_and_bytes_regression.py | 0 variable_balance_sampling/sampling.py | 0 verkle/fft.py | 0 verkle/fk20.py | 0 verkle/multicombs.py | 0 verkle/poly_utils.py | 0 verkle/verkle.py | 0 verkle/verkle_precompute.py | 0 verkle_trie/fft.py | 0 verkle_trie/kzg_utils.py | 0 verkle_trie/pippenger.py | 0 verkle_trie/poly_utils.py | 0 verkle_trie/verkle_trie.py | 0 verkle_trie_eip/ipa_utils.py | 0 verkle_trie_eip/poly_utils.py | 0 verkle_trie_eip/verkle_trie.py | 0 verkle_trie_pedersen/blst.py | 0 verkle_trie_pedersen/ipa_utils.py | 0 verkle_trie_pedersen/poly_utils.py | 0 verkle_trie_pedersen/verkle_trie.py | 0 whisk_csidh/fish.sage | 0 whisk_csidh/relation_lattices.py | 0 zksnark/code_to_r1cs.py | 0 zksnark/false_tests.txt | 0 zksnark/qap_creator.py | 0 zksnark/true_tests.txt | 0 zkstark/quadratic_prover_test.py | 0 zkstark/quadratic_provers.py | 0 436 files changed, 279 insertions(+), 6 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 99fault/consensus.py mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 barycentric_low_degree_check/barycentric_low_degree_check.py mode change 100644 => 100755 barycentric_low_degree_check/poly_utils.py mode change 100644 => 100755 beacon_chain_impl/bls.py mode change 100644 => 100755 beacon_chain_impl/full_pos.py mode change 100644 => 100755 beacon_chain_impl/progressive_merkle_tree.py mode change 100644 => 100755 beacon_chain_impl/simpleserialize.py mode change 100644 => 100755 beacon_chain_impl/test.py mode change 100644 => 100755 beacon_chain_impl/test_full_pos.py mode change 100644 => 100755 binary_fft.py mode change 100644 => 100755 binary_fft/binary_fft.py mode change 100644 => 100755 binary_fft/ethereum_data_root.py mode change 100644 => 100755 binary_fft/fast_binary_fft.pyx mode change 100644 => 100755 binary_fft/test_binary_fft.py mode change 100644 => 100755 binary_fft/test_ethereum_data_root.py mode change 100644 => 100755 binius/binary_fields.py mode change 100644 => 100755 binius/binary_ntt.py mode change 100644 => 100755 binius/merkle.py mode change 100644 => 100755 binius/optimized_binius.py mode change 100644 => 100755 binius/optimized_utils.py mode change 100644 => 100755 binius/packed_binius.py mode change 100644 => 100755 binius/simple_binius.py mode change 100644 => 100755 binius/test.py mode change 100644 => 100755 binius/utils.py mode change 100644 => 100755 bitcoin_unlimited_style_sizelimits.py mode change 100644 => 100755 blind_and_swap/blind_and_swap.py mode change 100644 => 100755 blind_and_swap/swapsim.py mode change 100644 => 100755 blind_and_swap/swapsim2.py mode change 100644 => 100755 bulletproofs/ipa_commitments.py mode change 100644 => 100755 bulletproofs/multicombs.py mode change 100644 => 100755 casper4/basic_validation_code.se.py mode change 100644 => 100755 casper4/diag1.png mode change 100644 => 100755 casper4/diag2.png mode change 100644 => 100755 casper4/fixed_address_creator.py mode change 100644 => 100755 casper4/griefing_factor_calculator.py mode change 100644 => 100755 casper4/griefing_one_third_offline_simulator.py mode change 100644 => 100755 casper4/rlp_decoder.se.py mode change 100644 => 100755 casper4/sighash.se.py mode change 100644 => 100755 casper4/simple_casper.v.py mode change 100644 => 100755 casper4/simple_casper_tester.py mode change 100644 => 100755 casper4/simulator.py mode change 100644 => 100755 casper4/sqrt.se.py mode change 100644 => 100755 casper4/surround_checker.py mode change 100644 => 100755 circlestark/arithmetization_builder.py mode change 100644 => 100755 circlestark/fast_fft.py mode change 100644 => 100755 circlestark/fast_fri.py mode change 100644 => 100755 circlestark/fast_stark.py mode change 100644 => 100755 circlestark/fft.py mode change 100644 => 100755 circlestark/fields.py mode change 100644 => 100755 circlestark/fri.py mode change 100644 => 100755 circlestark/line_functions.py mode change 100644 => 100755 circlestark/merkle.py mode change 100644 => 100755 circlestark/poseidon.py mode change 100644 => 100755 circlestark/precomputes.py mode change 100644 => 100755 circlestark/test.py mode change 100644 => 100755 circlestark/utils.py mode change 100644 => 100755 clock_disparity/distributions.py mode change 100644 => 100755 clock_disparity/ghost_node.py mode change 100644 => 100755 clock_disparity/ghost_test.py mode change 100644 => 100755 clock_disparity/lmd_node.py mode change 100644 => 100755 clock_disparity/lmd_test.py mode change 100644 => 100755 clock_disparity/networksim.py mode change 100644 => 100755 clock_disparity/pos_node.py mode change 100644 => 100755 clock_disparity/pow_node.py mode change 100644 => 100755 clock_disparity/test.py mode change 100644 => 100755 community_notes_analysis/basic_algo.py mode change 100644 => 100755 correlation_analysis/analyze_attestations.py mode change 100644 => 100755 correlation_analysis/new_analyze.py mode change 100644 => 100755 cycle_finding_function_collision_generator.py mode change 100644 => 100755 dao_tests/bytecode.txt mode change 100644 => 100755 dao_tests/dao_dump.json mode change 100644 => 100755 dao_tests/fork_tester.py mode change 100644 => 100755 defrag/defrag_sim.py mode change 100644 => 100755 defrag/permutation2.py mode change 100644 => 100755 defrag/permutation_bfs.py mode change 100644 => 100755 defrag/send_bfs.py mode change 100644 => 100755 diffadjust/blkdiff.py mode change 100644 => 100755 diffadjust/hashpower.csv mode change 100644 => 100755 economic_analysis/censorship_sim.py mode change 100644 => 100755 eip86/eip_86_basic_account.se mode change 100644 => 100755 eip96/eip_96_blockhash_getter.se.py mode change 100644 => 100755 eip96/eip_96_test_script.py mode change 100644 => 100755 elasticity/analyzer.py mode change 100644 => 100755 elasticity/data.csv mode change 100644 => 100755 elasticity/data.png mode change 100644 => 100755 erasure_code/2d_recovery/recover.py mode change 100644 => 100755 erasure_code/ec256/share.cpp mode change 100644 => 100755 erasure_code/ec256/share.go mode change 100644 => 100755 erasure_code/ec256/share.h mode change 100644 => 100755 erasure_code/ec256/share.js mode change 100644 => 100755 erasure_code/ec256/test.py mode change 100644 => 100755 erasure_code/ec256/utils.h mode change 100644 => 100755 erasure_code/ec65536/LICENSE mode change 100644 => 100755 erasure_code/ec65536/README.md mode change 100644 => 100755 erasure_code/ec65536/ec65536/__init__.py mode change 100644 => 100755 erasure_code/ec65536/ec65536/ec65536.py mode change 100644 => 100755 erasure_code/ec65536/ec65536/poly_utils.py mode change 100644 => 100755 erasure_code/ec65536/ec65536/subquadratic_poly_utils.py mode change 100644 => 100755 erasure_code/ec65536/faster_poly_utils.cpp mode change 100644 => 100755 erasure_code/ec65536/poly_utils.cpp mode change 100644 => 100755 erasure_code/ec65536/setup.py mode change 100644 => 100755 erasure_code/ec65536/tests/test_basic_ops.py mode change 100644 => 100755 erasure_code/ec65536/tests/test_ec65536.py mode change 100644 => 100755 erc4337/compression_schemes.py mode change 100644 => 100755 eth1_simple_custody/poly_utils.py mode change 100644 => 100755 eth1_simple_custody/simple_custody.py mode change 100644 => 100755 exit_queue_tests/exit_queue_tester.py mode change 100644 => 100755 fast_cross_shard_execution/optimistic_dependency_test.py mode change 100644 => 100755 fast_linear_combinations/multicombs.py mode change 100644 => 100755 generic_in_place_tree/tree.py mode change 100644 => 100755 ghost/ghost.py mode change 100644 => 100755 graph_cbc/graph_cbc.py mode change 100644 => 100755 iceage.py mode change 100644 => 100755 impurity/check_for_impurity.se mode change 100644 => 100755 impurity/impurity_tester.py mode change 100644 => 100755 interface_generator/README.md mode change 100644 => 100755 interface_generator/example.py mode change 100644 => 100755 interface_generator/examples/addresses.json mode change 100644 => 100755 interface_generator/examples/foundation_abi.json mode change 100644 => 100755 interface_generator/examples/foundation_instructions.json mode change 100644 => 100755 interface_generator/examples/foundation_out.html mode change 100644 => 100755 interface_generator/examples/uniswap_abi.json mode change 100644 => 100755 interface_generator/examples/uniswap_instructions.json mode change 100644 => 100755 interface_generator/examples/uniswap_out.html mode change 100644 => 100755 interface_generator/interface_generator.py mode change 100644 => 100755 kzg_data_availability/README.md mode change 100644 => 100755 kzg_data_availability/blst/__init__.py mode change 100644 => 100755 kzg_data_availability/fft.py mode change 100644 => 100755 kzg_data_availability/fk20_multi.py mode change 100644 => 100755 kzg_data_availability/fk20_single.py mode change 100644 => 100755 kzg_data_availability/kzg_proofs.py mode change 100644 => 100755 kzg_data_availability/multicombs.py mode change 100644 => 100755 kzg_data_availability/timer.py mode change 100644 => 100755 merkle_tree/merk.py mode change 100644 => 100755 merkle_tree/merktest.py mode change 100644 => 100755 mimc_stark/README.md mode change 100644 => 100755 mimc_stark/better_lagrange.py mode change 100644 => 100755 mimc_stark/fft.py mode change 100644 => 100755 mimc_stark/fri.py mode change 100644 => 100755 mimc_stark/merkle_tree.py mode change 100644 => 100755 mimc_stark/mimc_stark.py mode change 100644 => 100755 mimc_stark/permuted_tree.py mode change 100644 => 100755 mimc_stark/poly_utils.py mode change 100644 => 100755 mimc_stark/recovery.py mode change 100644 => 100755 mimc_stark/test.py mode change 100644 => 100755 mimc_stark/test_multi_merkle.py mode change 100644 => 100755 mimc_stark/test_recovery.py mode change 100644 => 100755 mimc_stark/utils.py mode change 100644 => 100755 minimal_utxo/utxo_tester.py mode change 100644 => 100755 minimal_utxo/utxos.v.py mode change 100644 => 100755 mining/arpow_miner.py mode change 100644 => 100755 mining/compute_probabilities_of_finality.py mode change 100644 => 100755 mining/finality_probability_sim.py mode change 100644 => 100755 mining/hashimoto.py mode change 100644 => 100755 mining/mining.go mode change 100644 => 100755 mining/mining.py mode change 100644 => 100755 mining/python_sha3.py mode change 100644 => 100755 newssz/foo.py mode change 100644 => 100755 newssz/test_foo.py mode change 100644 => 100755 old_consensus_by_bet/README.md mode change 100644 => 100755 old_consensus_by_bet/casper.py mode change 100644 => 100755 old_consensus_by_bet/distributions.py mode change 100644 => 100755 old_consensus_by_bet/networksim.py mode change 100644 => 100755 old_consensus_by_bet/run.py mode change 100644 => 100755 old_consensus_by_bet/voting_strategy.py mode change 100644 => 100755 papers/CasperTFG/CasperTFG.pdf mode change 100644 => 100755 papers/CasperTFG/CasperTFG.tex mode change 100644 => 100755 papers/CasperTFG/eth_header.tex mode change 100644 => 100755 papers/CasperTFG/ethereum.bib mode change 100644 => 100755 papers/CasperTFG/figures/3binary.png mode change 100644 => 100755 papers/CasperTFG/figures/3nodeblockchain-fix.png mode change 100644 => 100755 papers/CasperTFG/figures/3nodeblockchain.png mode change 100644 => 100755 papers/CasperTFG/figures/blockchainsafety.png mode change 100644 => 100755 papers/CasperTFG/figures/roundrobin.png mode change 100644 => 100755 papers/CasperTFG/nips_2017.sty mode change 100644 => 100755 papers/casper-basics/casper_basics.pdf mode change 100644 => 100755 papers/casper-basics/casper_basics.tex mode change 100644 => 100755 papers/casper-basics/eth_header.tex mode change 100644 => 100755 papers/casper-basics/ethereum.bib mode change 100644 => 100755 papers/casper-basics/figs/attacks.graffle/data.plist mode change 100644 => 100755 papers/casper-basics/figs/attacks.graffle/image12.pdf mode change 100644 => 100755 papers/casper-basics/figs/attacks.graffle/image13.pdf mode change 100644 => 100755 papers/casper-basics/figs/attacks.graffle/image14.pdf mode change 100644 => 100755 papers/casper-basics/figs/attacks.graffle/image6.pdf mode change 100644 => 100755 papers/casper-basics/figs/attacks.graffle/image8.pdf mode change 100644 => 100755 papers/casper-basics/figs/bigcrash.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/data.plist mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image10.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image12.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image13.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image14.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image15.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image16.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image18.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image19.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image5.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image6.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image7.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image8.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoint-trees.graffle/image9.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoints_checkpoints.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoints_justifiedchain.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoints_lengths.pdf mode change 100644 => 100755 papers/casper-basics/figs/checkpoints_proof1.pdf mode change 100644 => 100755 papers/casper-basics/figs/conclusion-new.pdf mode change 100644 => 100755 papers/casper-basics/figs/conclusion-old.pdf mode change 100644 => 100755 papers/casper-basics/figs/conclusion.graffle mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets-v3.pdf mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets.graffle/data.plist mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets.graffle/image10.png mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets.graffle/image11.pdf mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets.graffle/image12.pdf mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets.graffle/image14.pdf mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets.graffle/image8.pdf mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets.graffle/image9.pdf mode change 100644 => 100755 papers/casper-basics/figs/dynamic_validator_sets.pdf mode change 100644 => 100755 papers/casper-basics/figs/longrange.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/data.plist mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image13.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image14.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image17.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image18.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image19.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image26.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image27.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image28.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image29.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image30.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image31.pdf mode change 100644 => 100755 papers/casper-basics/figs/oz-figure-test.graffle/image32.pdf mode change 100644 => 100755 papers/casper-basics/misc/leak function derivation.pdf mode change 100644 => 100755 papers/casper-basics/nips_2017.sty mode change 100644 => 100755 papers/casper-economics/appendix.tex mode change 100644 => 100755 papers/casper-economics/casper_economics_basic.pdf mode change 100644 => 100755 papers/casper-economics/casper_economics_basic.tex mode change 100644 => 100755 papers/casper-economics/eth_header.tex mode change 100644 => 100755 papers/casper-economics/ethereum.bib mode change 100644 => 100755 papers/casper-economics/figs/cs.pdf mode change 100644 => 100755 papers/casper-economics/figs/goodness-with-p.graffle mode change 100644 => 100755 papers/casper-economics/figs/goodness-with-p.pdf mode change 100644 => 100755 papers/casper-economics/nips10submit_e.sty mode change 100644 => 100755 papers/cbc-consensus/AbstractCBC.pdf mode change 100644 => 100755 papers/cbc-consensus/AbstractCBC.tex mode change 100644 => 100755 papers/cbc-consensus/eth_header.tex mode change 100644 => 100755 papers/cbc-consensus/figures/sharedfutures.jpg mode change 100644 => 100755 papers/cbc-consensus/nips_2017.sty mode change 100644 => 100755 papers/discouragement/disc_chart1.png mode change 100644 => 100755 papers/discouragement/disc_chart2.png mode change 100644 => 100755 papers/discouragement/disc_chart3.png mode change 100644 => 100755 papers/discouragement/disc_chart4.png mode change 100644 => 100755 papers/discouragement/discouragement.pdf mode change 100644 => 100755 papers/discouragement/discouragement.tex mode change 100644 => 100755 papers/ffg+ghost/paper.pdf mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship1.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship2.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship3.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship3p5.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship4.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship5.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship6.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship6b.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship6c.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship6d.png mode change 100644 => 100755 papers/outdated/censorship_rejection/Censorship7.png mode change 100644 => 100755 papers/outdated/censorship_rejection/censorship_rejection.aux mode change 100644 => 100755 papers/outdated/censorship_rejection/censorship_rejection.log mode change 100644 => 100755 papers/outdated/censorship_rejection/censorship_rejection.pdf mode change 100644 => 100755 papers/outdated/censorship_rejection/censorship_rejection.tex mode change 100644 => 100755 papers/pricing/FeesAndETH.ods mode change 100644 => 100755 papers/pricing/GaspriceInGwei.png mode change 100644 => 100755 papers/pricing/PriceAndFees.png mode change 100644 => 100755 papers/pricing/Triangle1.png mode change 100644 => 100755 papers/pricing/Triangle2.png mode change 100644 => 100755 papers/pricing/Triangle3.png mode change 100644 => 100755 papers/pricing/arydshln.sty mode change 100644 => 100755 papers/pricing/bitcoin1.png mode change 100644 => 100755 papers/pricing/bitcoin2.png mode change 100644 => 100755 papers/pricing/blocksize_fullnodes.png mode change 100644 => 100755 papers/pricing/commath.sty mode change 100644 => 100755 papers/pricing/etherchain_correlation.png mode change 100644 => 100755 papers/pricing/etherchain_correlation_2.png mode change 100644 => 100755 papers/pricing/ethpricing.bib mode change 100644 => 100755 papers/pricing/ethpricing.pdf mode change 100644 => 100755 papers/pricing/ethpricing.tex mode change 100644 => 100755 papers/pricing/fig1a.png mode change 100644 => 100755 papers/pricing/fig1b.png mode change 100644 => 100755 papers/pricing/fig1c.png mode change 100644 => 100755 papers/pricing/fig1d.png mode change 100644 => 100755 papers/pricing/kth_price_revenue.png mode change 100644 => 100755 papers/pricing/marvosym.sty mode change 100644 => 100755 papers/pricing/nips10submit_e.sty mode change 100644 => 100755 papers/pricing/plos2009.bst mode change 100644 => 100755 papers/pricing/sleepwake.png mode change 100644 => 100755 papers/pricing/subfigure.sty mode change 100644 => 100755 papers/pricing/total_social_cost.png mode change 100644 => 100755 papers/pricing/units.sty mode change 100644 => 100755 papers/pricing/virgil_env.sty mode change 100644 => 100755 papers/pricing/wrapfig.sty mode change 100644 => 100755 polynomial_reconstruction/fft.py mode change 100644 => 100755 polynomial_reconstruction/interpolate_polynomial_without_zeroes.py mode change 100644 => 100755 polynomial_reconstruction/poly_gcd.py mode change 100644 => 100755 polynomial_reconstruction/poly_utils.py mode change 100644 => 100755 polynomial_reconstruction/polynomial_reconstruction.py mode change 100644 => 100755 polynomial_reconstruction/polynomial_reconstruction_danksharding.py mode change 100644 => 100755 pow_research/ghost.py mode change 100644 => 100755 pow_research/multi_uncle_ghost.py mode change 100644 => 100755 pow_research/random_circuit.py mode change 100644 => 100755 pow_research/random_graphs.py mode change 100644 => 100755 pow_research/selfish_mining.py mode change 100644 => 100755 pow_research/selfish_mining_strats.py mode change 100644 => 100755 price_analysis/csvgen.py mode change 100644 => 100755 price_analysis/diff_and_price.csv mode change 100644 => 100755 price_analysis/fit.py mode change 100644 => 100755 price_analysis/price_analyzer.py mode change 100644 => 100755 price_analysis/price_grabber.py mode change 100644 => 100755 price_analysis/spread.py mode change 100644 => 100755 proof_of_custody/bls_sign.mpc mode change 100644 => 100755 proof_of_custody/khovratovich_algorithm.py mode change 100644 => 100755 proof_of_custody/legendre_uhf.mpc mode change 100644 => 100755 proof_of_custody/legendre_uhf.py mode change 100644 => 100755 proof_of_custody/uhf_oursourcing.py mode change 100644 => 100755 proof_of_solvency/crazy_merkle_tree.py mode change 100644 => 100755 proof_of_solvency/merkle_sum_tree.py mode change 100644 => 100755 py_plonk/README.md mode change 100644 => 100755 py_plonk/compiler.py mode change 100644 => 100755 py_plonk/main.plonk.vkey-58.json mode change 100644 => 100755 py_plonk/main.plonk.vkey-59.json mode change 100644 => 100755 py_plonk/main.plonk.vkey.json mode change 100644 => 100755 py_plonk/mini_poseidon.py mode change 100644 => 100755 py_plonk/multicombs.py mode change 100644 => 100755 py_plonk/powersOfTau28_hez_final_11.ptau mode change 100644 => 100755 py_plonk/prover.py mode change 100644 => 100755 py_plonk/rc.json mode change 100644 => 100755 py_plonk/test.py mode change 100644 => 100755 py_plonk/utils.py mode change 100644 => 100755 py_plonk/verifier.py mode change 100644 => 100755 py_ssz/LICENSE mode change 100644 => 100755 py_ssz/README.md mode change 100644 => 100755 py_ssz/py_ssz/__init__.py mode change 100644 => 100755 py_ssz/py_ssz/py_ssz.py mode change 100644 => 100755 py_ssz/py_ssz/serializers.py mode change 100644 => 100755 py_ssz/py_ssz/utils.py mode change 100644 => 100755 py_ssz/requirements.txt mode change 100644 => 100755 py_ssz/setup.py mode change 100644 => 100755 py_ssz/tests/tests.py mode change 100644 => 100755 randao_analysis/low_influence/2of3.py mode change 100644 => 100755 randao_analysis/low_influence/tribes.py mode change 100644 => 100755 randao_analysis/paths.py mode change 100644 => 100755 rollup_compression/4844_compress_complex.py mode change 100644 => 100755 rollup_compression/4844_compress_simple.py mode change 100644 => 100755 rollup_compression/compressor.py mode change 100644 => 100755 rollup_compression/dicts.py mode change 100644 => 100755 rsa_moduli/bach_random_factored_numbers.py mode change 100644 => 100755 rsa_moduli/find_optimal_bit_size.py mode change 100644 => 100755 rsa_moduli/random_numbers_with_multiplicative_group.py mode change 100644 => 100755 rsa_moduli/requirements.txt mode change 100644 => 100755 sendmany/mk_sendmany.py mode change 100644 => 100755 sendmany/sendmany_tester.py mode change 100644 => 100755 sharding_fork_choice_poc/distributions.py mode change 100644 => 100755 sharding_fork_choice_poc/networksim.py mode change 100644 => 100755 sharding_fork_choice_poc/test.py mode change 100644 => 100755 shuffling/feistel_shuffle.py mode change 100644 => 100755 shuffling/fisher_yates_shuffle.py mode change 100644 => 100755 shuffling/prime_shuffle.py mode change 100644 => 100755 shuffling/swap_or_not_shuffle.py mode change 100644 => 100755 shuffling/test_shuffle.py mode change 100644 => 100755 sparse_merkle_tree/bintrie_test.py mode change 100644 => 100755 sparse_merkle_tree/new_bintrie.py mode change 100644 => 100755 sparse_merkle_tree/new_bintrie_hex.py mode change 100644 => 100755 sparse_merkle_tree/new_bintrie_optimized.py mode change 100644 => 100755 sparse_merkle_tree/new_bintrie_test.py mode change 100644 => 100755 spec_pythonizer/.gitignore mode change 100644 => 100755 spec_pythonizer/README.md mode change 100644 => 100755 spec_pythonizer/apply_test_suite.py mode change 100644 => 100755 spec_pythonizer/bls_stub.py mode change 100644 => 100755 spec_pythonizer/function_puller.py mode change 100644 => 100755 spec_pythonizer/jsonize.py mode change 100644 => 100755 spec_pythonizer/minimal_ssz.py mode change 100644 => 100755 spec_pythonizer/monkey_patches.py mode change 100644 => 100755 spec_pythonizer/requirements.txt mode change 100644 => 100755 spec_pythonizer/sanity_check.py mode change 100644 => 100755 spec_pythonizer/spec.md mode change 100644 => 100755 spec_pythonizer/state_test_gen.py mode change 100644 => 100755 spec_pythonizer/state_transition.py mode change 100644 => 100755 spec_pythonizer/utils/hash.py mode change 100644 => 100755 spec_pythonizer/utils/merkle_minimal.py mode change 100644 => 100755 ssz_research/partials/README.md mode change 100644 => 100755 ssz_research/partials/hash_function.py mode change 100644 => 100755 ssz_research/partials/minimal_ssz.py mode change 100644 => 100755 ssz_research/partials/ssz_partial.py mode change 100644 => 100755 ssz_research/partials/test_ssz_partial.py mode change 100644 => 100755 ssz_research/ssz_hashable_list/hashable_list.py mode change 100644 => 100755 ssz_research/ssz_hashable_list/test_hashable_list.py create mode 100644 sublinear_staking/code.vy create mode 100644 sublinear_staking/erc1155.vy create mode 100644 sublinear_staking/erc20.vy create mode 100644 sublinear_staking/test_sublinear.py mode change 100644 => 100755 test_binary_fft.py mode change 100644 => 100755 trusted_setup/test.py mode change 100644 => 100755 trusted_setup/trusted_setup.py mode change 100644 => 100755 uncle_regressions/attack_gas.csv mode change 100644 => 100755 uncle_regressions/attack_gas_regression.py mode change 100644 => 100755 uncle_regressions/base_regression.py mode change 100644 => 100755 uncle_regressions/block_datadump_generator.py mode change 100644 => 100755 uncle_regressions/time_regression.py mode change 100644 => 100755 uncle_regressions/tx_and_bytes_regression.py mode change 100644 => 100755 variable_balance_sampling/sampling.py mode change 100644 => 100755 verkle/fft.py mode change 100644 => 100755 verkle/fk20.py mode change 100644 => 100755 verkle/multicombs.py mode change 100644 => 100755 verkle/poly_utils.py mode change 100644 => 100755 verkle/verkle.py mode change 100644 => 100755 verkle/verkle_precompute.py mode change 100644 => 100755 verkle_trie/fft.py mode change 100644 => 100755 verkle_trie/kzg_utils.py mode change 100644 => 100755 verkle_trie/pippenger.py mode change 100644 => 100755 verkle_trie/poly_utils.py mode change 100644 => 100755 verkle_trie/verkle_trie.py mode change 100644 => 100755 verkle_trie_eip/ipa_utils.py mode change 100644 => 100755 verkle_trie_eip/poly_utils.py mode change 100644 => 100755 verkle_trie_eip/verkle_trie.py mode change 100644 => 100755 verkle_trie_pedersen/blst.py mode change 100644 => 100755 verkle_trie_pedersen/ipa_utils.py mode change 100644 => 100755 verkle_trie_pedersen/poly_utils.py mode change 100644 => 100755 verkle_trie_pedersen/verkle_trie.py mode change 100644 => 100755 whisk_csidh/fish.sage mode change 100644 => 100755 whisk_csidh/relation_lattices.py mode change 100644 => 100755 zksnark/code_to_r1cs.py mode change 100644 => 100755 zksnark/false_tests.txt mode change 100644 => 100755 zksnark/qap_creator.py mode change 100644 => 100755 zksnark/true_tests.txt mode change 100644 => 100755 zkstark/quadratic_prover_test.py mode change 100644 => 100755 zkstark/quadratic_provers.py diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/99fault/consensus.py b/99fault/consensus.py old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/barycentric_low_degree_check/barycentric_low_degree_check.py b/barycentric_low_degree_check/barycentric_low_degree_check.py old mode 100644 new mode 100755 diff --git a/barycentric_low_degree_check/poly_utils.py b/barycentric_low_degree_check/poly_utils.py old mode 100644 new mode 100755 diff --git a/beacon_chain_impl/bls.py b/beacon_chain_impl/bls.py old mode 100644 new mode 100755 diff --git a/beacon_chain_impl/full_pos.py b/beacon_chain_impl/full_pos.py old mode 100644 new mode 100755 diff --git a/beacon_chain_impl/progressive_merkle_tree.py b/beacon_chain_impl/progressive_merkle_tree.py old mode 100644 new mode 100755 diff --git a/beacon_chain_impl/simpleserialize.py b/beacon_chain_impl/simpleserialize.py old mode 100644 new mode 100755 diff --git a/beacon_chain_impl/test.py b/beacon_chain_impl/test.py old mode 100644 new mode 100755 diff --git a/beacon_chain_impl/test_full_pos.py b/beacon_chain_impl/test_full_pos.py old mode 100644 new mode 100755 diff --git a/binary_fft.py b/binary_fft.py old mode 100644 new mode 100755 diff --git a/binary_fft/binary_fft.py b/binary_fft/binary_fft.py old mode 100644 new mode 100755 diff --git a/binary_fft/ethereum_data_root.py b/binary_fft/ethereum_data_root.py old mode 100644 new mode 100755 diff --git a/binary_fft/fast_binary_fft.pyx b/binary_fft/fast_binary_fft.pyx old mode 100644 new mode 100755 diff --git a/binary_fft/test_binary_fft.py b/binary_fft/test_binary_fft.py old mode 100644 new mode 100755 diff --git a/binary_fft/test_ethereum_data_root.py b/binary_fft/test_ethereum_data_root.py old mode 100644 new mode 100755 diff --git a/binius/binary_fields.py b/binius/binary_fields.py old mode 100644 new mode 100755 diff --git a/binius/binary_ntt.py b/binius/binary_ntt.py old mode 100644 new mode 100755 diff --git a/binius/merkle.py b/binius/merkle.py old mode 100644 new mode 100755 diff --git a/binius/optimized_binius.py b/binius/optimized_binius.py old mode 100644 new mode 100755 diff --git a/binius/optimized_utils.py b/binius/optimized_utils.py old mode 100644 new mode 100755 diff --git a/binius/packed_binius.py b/binius/packed_binius.py old mode 100644 new mode 100755 diff --git a/binius/simple_binius.py b/binius/simple_binius.py old mode 100644 new mode 100755 diff --git a/binius/test.py b/binius/test.py old mode 100644 new mode 100755 diff --git a/binius/utils.py b/binius/utils.py old mode 100644 new mode 100755 diff --git a/bitcoin_unlimited_style_sizelimits.py b/bitcoin_unlimited_style_sizelimits.py old mode 100644 new mode 100755 diff --git a/blind_and_swap/blind_and_swap.py b/blind_and_swap/blind_and_swap.py old mode 100644 new mode 100755 diff --git a/blind_and_swap/swapsim.py b/blind_and_swap/swapsim.py old mode 100644 new mode 100755 diff --git a/blind_and_swap/swapsim2.py b/blind_and_swap/swapsim2.py old mode 100644 new mode 100755 diff --git a/bulletproofs/ipa_commitments.py b/bulletproofs/ipa_commitments.py old mode 100644 new mode 100755 diff --git a/bulletproofs/multicombs.py b/bulletproofs/multicombs.py old mode 100644 new mode 100755 diff --git a/casper4/basic_validation_code.se.py b/casper4/basic_validation_code.se.py old mode 100644 new mode 100755 diff --git a/casper4/diag1.png b/casper4/diag1.png old mode 100644 new mode 100755 diff --git a/casper4/diag2.png b/casper4/diag2.png old mode 100644 new mode 100755 diff --git a/casper4/fixed_address_creator.py b/casper4/fixed_address_creator.py old mode 100644 new mode 100755 diff --git a/casper4/griefing_factor_calculator.py b/casper4/griefing_factor_calculator.py old mode 100644 new mode 100755 diff --git a/casper4/griefing_one_third_offline_simulator.py b/casper4/griefing_one_third_offline_simulator.py old mode 100644 new mode 100755 diff --git a/casper4/rlp_decoder.se.py b/casper4/rlp_decoder.se.py old mode 100644 new mode 100755 diff --git a/casper4/sighash.se.py b/casper4/sighash.se.py old mode 100644 new mode 100755 diff --git a/casper4/simple_casper.v.py b/casper4/simple_casper.v.py old mode 100644 new mode 100755 diff --git a/casper4/simple_casper_tester.py b/casper4/simple_casper_tester.py old mode 100644 new mode 100755 diff --git a/casper4/simulator.py b/casper4/simulator.py old mode 100644 new mode 100755 diff --git a/casper4/sqrt.se.py b/casper4/sqrt.se.py old mode 100644 new mode 100755 diff --git a/casper4/surround_checker.py b/casper4/surround_checker.py old mode 100644 new mode 100755 diff --git a/circlestark/arithmetization_builder.py b/circlestark/arithmetization_builder.py old mode 100644 new mode 100755 diff --git a/circlestark/fast_fft.py b/circlestark/fast_fft.py old mode 100644 new mode 100755 diff --git a/circlestark/fast_fri.py b/circlestark/fast_fri.py old mode 100644 new mode 100755 diff --git a/circlestark/fast_stark.py b/circlestark/fast_stark.py old mode 100644 new mode 100755 diff --git a/circlestark/fft.py b/circlestark/fft.py old mode 100644 new mode 100755 diff --git a/circlestark/fields.py b/circlestark/fields.py old mode 100644 new mode 100755 diff --git a/circlestark/fri.py b/circlestark/fri.py old mode 100644 new mode 100755 diff --git a/circlestark/line_functions.py b/circlestark/line_functions.py old mode 100644 new mode 100755 diff --git a/circlestark/merkle.py b/circlestark/merkle.py old mode 100644 new mode 100755 diff --git a/circlestark/poseidon.py b/circlestark/poseidon.py old mode 100644 new mode 100755 index 3f865cdd..920e80fe --- a/circlestark/poseidon.py +++ b/circlestark/poseidon.py @@ -66,16 +66,16 @@ def poseidon_hash(in1, in2): state[...,8:16] = in2 for i in range(64): if i >= 4 and i < 60: - state[...,0] = pow5(add(state[...,0], round_constants[i, 0])) - state = add( - mul(state, innerdiag), - m31_sum(state, axis=-1).reshape(state.shape[:-1]+(1,)) + state[...,0] = (state[...,0] + round_constants[i, 0]) ** 5 + state = ( + (state * innerdiag) + + M31.sum(state, axis=-1).reshape(state.shape[:-1]+(1,)) ) else: - mul_input = pow5(add(state, round_constants[i])) + mul_input = (state + round_constants[i]) ** 5 state = mul_by_mds(mul_input) - return add(state[...,8:16], in2) + return state[...,8:16] + in2 # We're proving a STARK of a series of Merkle branches, each 32 long def fill_poseidon_trace(hash_inputs, positions): diff --git a/circlestark/precomputes.py b/circlestark/precomputes.py old mode 100644 new mode 100755 diff --git a/circlestark/test.py b/circlestark/test.py old mode 100644 new mode 100755 diff --git a/circlestark/utils.py b/circlestark/utils.py old mode 100644 new mode 100755 diff --git a/clock_disparity/distributions.py b/clock_disparity/distributions.py old mode 100644 new mode 100755 diff --git a/clock_disparity/ghost_node.py b/clock_disparity/ghost_node.py old mode 100644 new mode 100755 diff --git a/clock_disparity/ghost_test.py b/clock_disparity/ghost_test.py old mode 100644 new mode 100755 diff --git a/clock_disparity/lmd_node.py b/clock_disparity/lmd_node.py old mode 100644 new mode 100755 diff --git a/clock_disparity/lmd_test.py b/clock_disparity/lmd_test.py old mode 100644 new mode 100755 diff --git a/clock_disparity/networksim.py b/clock_disparity/networksim.py old mode 100644 new mode 100755 diff --git a/clock_disparity/pos_node.py b/clock_disparity/pos_node.py old mode 100644 new mode 100755 diff --git a/clock_disparity/pow_node.py b/clock_disparity/pow_node.py old mode 100644 new mode 100755 diff --git a/clock_disparity/test.py b/clock_disparity/test.py old mode 100644 new mode 100755 diff --git a/community_notes_analysis/basic_algo.py b/community_notes_analysis/basic_algo.py old mode 100644 new mode 100755 diff --git a/correlation_analysis/analyze_attestations.py b/correlation_analysis/analyze_attestations.py old mode 100644 new mode 100755 diff --git a/correlation_analysis/new_analyze.py b/correlation_analysis/new_analyze.py old mode 100644 new mode 100755 diff --git a/cycle_finding_function_collision_generator.py b/cycle_finding_function_collision_generator.py old mode 100644 new mode 100755 diff --git a/dao_tests/bytecode.txt b/dao_tests/bytecode.txt old mode 100644 new mode 100755 diff --git a/dao_tests/dao_dump.json b/dao_tests/dao_dump.json old mode 100644 new mode 100755 diff --git a/dao_tests/fork_tester.py b/dao_tests/fork_tester.py old mode 100644 new mode 100755 diff --git a/defrag/defrag_sim.py b/defrag/defrag_sim.py old mode 100644 new mode 100755 diff --git a/defrag/permutation2.py b/defrag/permutation2.py old mode 100644 new mode 100755 diff --git a/defrag/permutation_bfs.py b/defrag/permutation_bfs.py old mode 100644 new mode 100755 diff --git a/defrag/send_bfs.py b/defrag/send_bfs.py old mode 100644 new mode 100755 diff --git a/diffadjust/blkdiff.py b/diffadjust/blkdiff.py old mode 100644 new mode 100755 diff --git a/diffadjust/hashpower.csv b/diffadjust/hashpower.csv old mode 100644 new mode 100755 diff --git a/economic_analysis/censorship_sim.py b/economic_analysis/censorship_sim.py old mode 100644 new mode 100755 diff --git a/eip86/eip_86_basic_account.se b/eip86/eip_86_basic_account.se old mode 100644 new mode 100755 diff --git a/eip96/eip_96_blockhash_getter.se.py b/eip96/eip_96_blockhash_getter.se.py old mode 100644 new mode 100755 diff --git a/eip96/eip_96_test_script.py b/eip96/eip_96_test_script.py old mode 100644 new mode 100755 diff --git a/elasticity/analyzer.py b/elasticity/analyzer.py old mode 100644 new mode 100755 diff --git a/elasticity/data.csv b/elasticity/data.csv old mode 100644 new mode 100755 diff --git a/elasticity/data.png b/elasticity/data.png old mode 100644 new mode 100755 diff --git a/erasure_code/2d_recovery/recover.py b/erasure_code/2d_recovery/recover.py old mode 100644 new mode 100755 diff --git a/erasure_code/ec256/share.cpp b/erasure_code/ec256/share.cpp old mode 100644 new mode 100755 diff --git a/erasure_code/ec256/share.go b/erasure_code/ec256/share.go old mode 100644 new mode 100755 diff --git a/erasure_code/ec256/share.h b/erasure_code/ec256/share.h old mode 100644 new mode 100755 diff --git a/erasure_code/ec256/share.js b/erasure_code/ec256/share.js old mode 100644 new mode 100755 diff --git a/erasure_code/ec256/test.py b/erasure_code/ec256/test.py old mode 100644 new mode 100755 diff --git a/erasure_code/ec256/utils.h b/erasure_code/ec256/utils.h old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/LICENSE b/erasure_code/ec65536/LICENSE old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/README.md b/erasure_code/ec65536/README.md old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/ec65536/__init__.py b/erasure_code/ec65536/ec65536/__init__.py old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/ec65536/ec65536.py b/erasure_code/ec65536/ec65536/ec65536.py old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/ec65536/poly_utils.py b/erasure_code/ec65536/ec65536/poly_utils.py old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/ec65536/subquadratic_poly_utils.py b/erasure_code/ec65536/ec65536/subquadratic_poly_utils.py old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/faster_poly_utils.cpp b/erasure_code/ec65536/faster_poly_utils.cpp old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/poly_utils.cpp b/erasure_code/ec65536/poly_utils.cpp old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/setup.py b/erasure_code/ec65536/setup.py old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/tests/test_basic_ops.py b/erasure_code/ec65536/tests/test_basic_ops.py old mode 100644 new mode 100755 diff --git a/erasure_code/ec65536/tests/test_ec65536.py b/erasure_code/ec65536/tests/test_ec65536.py old mode 100644 new mode 100755 diff --git a/erc4337/compression_schemes.py b/erc4337/compression_schemes.py old mode 100644 new mode 100755 diff --git a/eth1_simple_custody/poly_utils.py b/eth1_simple_custody/poly_utils.py old mode 100644 new mode 100755 diff --git a/eth1_simple_custody/simple_custody.py b/eth1_simple_custody/simple_custody.py old mode 100644 new mode 100755 diff --git a/exit_queue_tests/exit_queue_tester.py b/exit_queue_tests/exit_queue_tester.py old mode 100644 new mode 100755 diff --git a/fast_cross_shard_execution/optimistic_dependency_test.py b/fast_cross_shard_execution/optimistic_dependency_test.py old mode 100644 new mode 100755 diff --git a/fast_linear_combinations/multicombs.py b/fast_linear_combinations/multicombs.py old mode 100644 new mode 100755 diff --git a/generic_in_place_tree/tree.py b/generic_in_place_tree/tree.py old mode 100644 new mode 100755 diff --git a/ghost/ghost.py b/ghost/ghost.py old mode 100644 new mode 100755 diff --git a/graph_cbc/graph_cbc.py b/graph_cbc/graph_cbc.py old mode 100644 new mode 100755 diff --git a/iceage.py b/iceage.py old mode 100644 new mode 100755 diff --git a/impurity/check_for_impurity.se b/impurity/check_for_impurity.se old mode 100644 new mode 100755 diff --git a/impurity/impurity_tester.py b/impurity/impurity_tester.py old mode 100644 new mode 100755 diff --git a/interface_generator/README.md b/interface_generator/README.md old mode 100644 new mode 100755 diff --git a/interface_generator/example.py b/interface_generator/example.py old mode 100644 new mode 100755 diff --git a/interface_generator/examples/addresses.json b/interface_generator/examples/addresses.json old mode 100644 new mode 100755 diff --git a/interface_generator/examples/foundation_abi.json b/interface_generator/examples/foundation_abi.json old mode 100644 new mode 100755 diff --git a/interface_generator/examples/foundation_instructions.json b/interface_generator/examples/foundation_instructions.json old mode 100644 new mode 100755 diff --git a/interface_generator/examples/foundation_out.html b/interface_generator/examples/foundation_out.html old mode 100644 new mode 100755 diff --git a/interface_generator/examples/uniswap_abi.json b/interface_generator/examples/uniswap_abi.json old mode 100644 new mode 100755 diff --git a/interface_generator/examples/uniswap_instructions.json b/interface_generator/examples/uniswap_instructions.json old mode 100644 new mode 100755 diff --git a/interface_generator/examples/uniswap_out.html b/interface_generator/examples/uniswap_out.html old mode 100644 new mode 100755 diff --git a/interface_generator/interface_generator.py b/interface_generator/interface_generator.py old mode 100644 new mode 100755 diff --git a/kzg_data_availability/README.md b/kzg_data_availability/README.md old mode 100644 new mode 100755 diff --git a/kzg_data_availability/blst/__init__.py b/kzg_data_availability/blst/__init__.py old mode 100644 new mode 100755 diff --git a/kzg_data_availability/fft.py b/kzg_data_availability/fft.py old mode 100644 new mode 100755 diff --git a/kzg_data_availability/fk20_multi.py b/kzg_data_availability/fk20_multi.py old mode 100644 new mode 100755 diff --git a/kzg_data_availability/fk20_single.py b/kzg_data_availability/fk20_single.py old mode 100644 new mode 100755 diff --git a/kzg_data_availability/kzg_proofs.py b/kzg_data_availability/kzg_proofs.py old mode 100644 new mode 100755 diff --git a/kzg_data_availability/multicombs.py b/kzg_data_availability/multicombs.py old mode 100644 new mode 100755 diff --git a/kzg_data_availability/timer.py b/kzg_data_availability/timer.py old mode 100644 new mode 100755 diff --git a/merkle_tree/merk.py b/merkle_tree/merk.py old mode 100644 new mode 100755 diff --git a/merkle_tree/merktest.py b/merkle_tree/merktest.py old mode 100644 new mode 100755 diff --git a/mimc_stark/README.md b/mimc_stark/README.md old mode 100644 new mode 100755 diff --git a/mimc_stark/better_lagrange.py b/mimc_stark/better_lagrange.py old mode 100644 new mode 100755 diff --git a/mimc_stark/fft.py b/mimc_stark/fft.py old mode 100644 new mode 100755 diff --git a/mimc_stark/fri.py b/mimc_stark/fri.py old mode 100644 new mode 100755 diff --git a/mimc_stark/merkle_tree.py b/mimc_stark/merkle_tree.py old mode 100644 new mode 100755 diff --git a/mimc_stark/mimc_stark.py b/mimc_stark/mimc_stark.py old mode 100644 new mode 100755 diff --git a/mimc_stark/permuted_tree.py b/mimc_stark/permuted_tree.py old mode 100644 new mode 100755 diff --git a/mimc_stark/poly_utils.py b/mimc_stark/poly_utils.py old mode 100644 new mode 100755 diff --git a/mimc_stark/recovery.py b/mimc_stark/recovery.py old mode 100644 new mode 100755 diff --git a/mimc_stark/test.py b/mimc_stark/test.py old mode 100644 new mode 100755 diff --git a/mimc_stark/test_multi_merkle.py b/mimc_stark/test_multi_merkle.py old mode 100644 new mode 100755 diff --git a/mimc_stark/test_recovery.py b/mimc_stark/test_recovery.py old mode 100644 new mode 100755 diff --git a/mimc_stark/utils.py b/mimc_stark/utils.py old mode 100644 new mode 100755 diff --git a/minimal_utxo/utxo_tester.py b/minimal_utxo/utxo_tester.py old mode 100644 new mode 100755 diff --git a/minimal_utxo/utxos.v.py b/minimal_utxo/utxos.v.py old mode 100644 new mode 100755 diff --git a/mining/arpow_miner.py b/mining/arpow_miner.py old mode 100644 new mode 100755 diff --git a/mining/compute_probabilities_of_finality.py b/mining/compute_probabilities_of_finality.py old mode 100644 new mode 100755 diff --git a/mining/finality_probability_sim.py b/mining/finality_probability_sim.py old mode 100644 new mode 100755 diff --git a/mining/hashimoto.py b/mining/hashimoto.py old mode 100644 new mode 100755 diff --git a/mining/mining.go b/mining/mining.go old mode 100644 new mode 100755 diff --git a/mining/mining.py b/mining/mining.py old mode 100644 new mode 100755 diff --git a/mining/python_sha3.py b/mining/python_sha3.py old mode 100644 new mode 100755 diff --git a/newssz/foo.py b/newssz/foo.py old mode 100644 new mode 100755 diff --git a/newssz/test_foo.py b/newssz/test_foo.py old mode 100644 new mode 100755 diff --git a/old_consensus_by_bet/README.md b/old_consensus_by_bet/README.md old mode 100644 new mode 100755 diff --git a/old_consensus_by_bet/casper.py b/old_consensus_by_bet/casper.py old mode 100644 new mode 100755 diff --git a/old_consensus_by_bet/distributions.py b/old_consensus_by_bet/distributions.py old mode 100644 new mode 100755 diff --git a/old_consensus_by_bet/networksim.py b/old_consensus_by_bet/networksim.py old mode 100644 new mode 100755 diff --git a/old_consensus_by_bet/run.py b/old_consensus_by_bet/run.py old mode 100644 new mode 100755 diff --git a/old_consensus_by_bet/voting_strategy.py b/old_consensus_by_bet/voting_strategy.py old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/CasperTFG.pdf b/papers/CasperTFG/CasperTFG.pdf old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/CasperTFG.tex b/papers/CasperTFG/CasperTFG.tex old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/eth_header.tex b/papers/CasperTFG/eth_header.tex old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/ethereum.bib b/papers/CasperTFG/ethereum.bib old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/figures/3binary.png b/papers/CasperTFG/figures/3binary.png old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/figures/3nodeblockchain-fix.png b/papers/CasperTFG/figures/3nodeblockchain-fix.png old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/figures/3nodeblockchain.png b/papers/CasperTFG/figures/3nodeblockchain.png old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/figures/blockchainsafety.png b/papers/CasperTFG/figures/blockchainsafety.png old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/figures/roundrobin.png b/papers/CasperTFG/figures/roundrobin.png old mode 100644 new mode 100755 diff --git a/papers/CasperTFG/nips_2017.sty b/papers/CasperTFG/nips_2017.sty old mode 100644 new mode 100755 diff --git a/papers/casper-basics/casper_basics.pdf b/papers/casper-basics/casper_basics.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/casper_basics.tex b/papers/casper-basics/casper_basics.tex old mode 100644 new mode 100755 diff --git a/papers/casper-basics/eth_header.tex b/papers/casper-basics/eth_header.tex old mode 100644 new mode 100755 diff --git a/papers/casper-basics/ethereum.bib b/papers/casper-basics/ethereum.bib old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/attacks.graffle/data.plist b/papers/casper-basics/figs/attacks.graffle/data.plist old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/attacks.graffle/image12.pdf b/papers/casper-basics/figs/attacks.graffle/image12.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/attacks.graffle/image13.pdf b/papers/casper-basics/figs/attacks.graffle/image13.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/attacks.graffle/image14.pdf b/papers/casper-basics/figs/attacks.graffle/image14.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/attacks.graffle/image6.pdf b/papers/casper-basics/figs/attacks.graffle/image6.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/attacks.graffle/image8.pdf b/papers/casper-basics/figs/attacks.graffle/image8.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/bigcrash.pdf b/papers/casper-basics/figs/bigcrash.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/data.plist b/papers/casper-basics/figs/checkpoint-trees.graffle/data.plist old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image10.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image10.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image12.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image12.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image13.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image13.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image14.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image14.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image15.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image15.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image16.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image16.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image18.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image18.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image19.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image19.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image5.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image5.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image6.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image6.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image7.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image7.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image8.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image8.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoint-trees.graffle/image9.pdf b/papers/casper-basics/figs/checkpoint-trees.graffle/image9.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoints_checkpoints.pdf b/papers/casper-basics/figs/checkpoints_checkpoints.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoints_justifiedchain.pdf b/papers/casper-basics/figs/checkpoints_justifiedchain.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoints_lengths.pdf b/papers/casper-basics/figs/checkpoints_lengths.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/checkpoints_proof1.pdf b/papers/casper-basics/figs/checkpoints_proof1.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/conclusion-new.pdf b/papers/casper-basics/figs/conclusion-new.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/conclusion-old.pdf b/papers/casper-basics/figs/conclusion-old.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/conclusion.graffle b/papers/casper-basics/figs/conclusion.graffle old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets-v3.pdf b/papers/casper-basics/figs/dynamic_validator_sets-v3.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets.graffle/data.plist b/papers/casper-basics/figs/dynamic_validator_sets.graffle/data.plist old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets.graffle/image10.png b/papers/casper-basics/figs/dynamic_validator_sets.graffle/image10.png old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets.graffle/image11.pdf b/papers/casper-basics/figs/dynamic_validator_sets.graffle/image11.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets.graffle/image12.pdf b/papers/casper-basics/figs/dynamic_validator_sets.graffle/image12.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets.graffle/image14.pdf b/papers/casper-basics/figs/dynamic_validator_sets.graffle/image14.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets.graffle/image8.pdf b/papers/casper-basics/figs/dynamic_validator_sets.graffle/image8.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets.graffle/image9.pdf b/papers/casper-basics/figs/dynamic_validator_sets.graffle/image9.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/dynamic_validator_sets.pdf b/papers/casper-basics/figs/dynamic_validator_sets.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/longrange.pdf b/papers/casper-basics/figs/longrange.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/data.plist b/papers/casper-basics/figs/oz-figure-test.graffle/data.plist old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image13.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image13.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image14.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image14.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image17.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image17.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image18.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image18.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image19.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image19.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image26.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image26.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image27.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image27.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image28.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image28.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image29.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image29.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image30.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image30.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image31.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image31.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/figs/oz-figure-test.graffle/image32.pdf b/papers/casper-basics/figs/oz-figure-test.graffle/image32.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/misc/leak function derivation.pdf b/papers/casper-basics/misc/leak function derivation.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-basics/nips_2017.sty b/papers/casper-basics/nips_2017.sty old mode 100644 new mode 100755 diff --git a/papers/casper-economics/appendix.tex b/papers/casper-economics/appendix.tex old mode 100644 new mode 100755 diff --git a/papers/casper-economics/casper_economics_basic.pdf b/papers/casper-economics/casper_economics_basic.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-economics/casper_economics_basic.tex b/papers/casper-economics/casper_economics_basic.tex old mode 100644 new mode 100755 diff --git a/papers/casper-economics/eth_header.tex b/papers/casper-economics/eth_header.tex old mode 100644 new mode 100755 diff --git a/papers/casper-economics/ethereum.bib b/papers/casper-economics/ethereum.bib old mode 100644 new mode 100755 diff --git a/papers/casper-economics/figs/cs.pdf b/papers/casper-economics/figs/cs.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-economics/figs/goodness-with-p.graffle b/papers/casper-economics/figs/goodness-with-p.graffle old mode 100644 new mode 100755 diff --git a/papers/casper-economics/figs/goodness-with-p.pdf b/papers/casper-economics/figs/goodness-with-p.pdf old mode 100644 new mode 100755 diff --git a/papers/casper-economics/nips10submit_e.sty b/papers/casper-economics/nips10submit_e.sty old mode 100644 new mode 100755 diff --git a/papers/cbc-consensus/AbstractCBC.pdf b/papers/cbc-consensus/AbstractCBC.pdf old mode 100644 new mode 100755 diff --git a/papers/cbc-consensus/AbstractCBC.tex b/papers/cbc-consensus/AbstractCBC.tex old mode 100644 new mode 100755 diff --git a/papers/cbc-consensus/eth_header.tex b/papers/cbc-consensus/eth_header.tex old mode 100644 new mode 100755 diff --git a/papers/cbc-consensus/figures/sharedfutures.jpg b/papers/cbc-consensus/figures/sharedfutures.jpg old mode 100644 new mode 100755 diff --git a/papers/cbc-consensus/nips_2017.sty b/papers/cbc-consensus/nips_2017.sty old mode 100644 new mode 100755 diff --git a/papers/discouragement/disc_chart1.png b/papers/discouragement/disc_chart1.png old mode 100644 new mode 100755 diff --git a/papers/discouragement/disc_chart2.png b/papers/discouragement/disc_chart2.png old mode 100644 new mode 100755 diff --git a/papers/discouragement/disc_chart3.png b/papers/discouragement/disc_chart3.png old mode 100644 new mode 100755 diff --git a/papers/discouragement/disc_chart4.png b/papers/discouragement/disc_chart4.png old mode 100644 new mode 100755 diff --git a/papers/discouragement/discouragement.pdf b/papers/discouragement/discouragement.pdf old mode 100644 new mode 100755 diff --git a/papers/discouragement/discouragement.tex b/papers/discouragement/discouragement.tex old mode 100644 new mode 100755 diff --git a/papers/ffg+ghost/paper.pdf b/papers/ffg+ghost/paper.pdf old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship1.png b/papers/outdated/censorship_rejection/Censorship1.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship2.png b/papers/outdated/censorship_rejection/Censorship2.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship3.png b/papers/outdated/censorship_rejection/Censorship3.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship3p5.png b/papers/outdated/censorship_rejection/Censorship3p5.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship4.png b/papers/outdated/censorship_rejection/Censorship4.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship5.png b/papers/outdated/censorship_rejection/Censorship5.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship6.png b/papers/outdated/censorship_rejection/Censorship6.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship6b.png b/papers/outdated/censorship_rejection/Censorship6b.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship6c.png b/papers/outdated/censorship_rejection/Censorship6c.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship6d.png b/papers/outdated/censorship_rejection/Censorship6d.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/Censorship7.png b/papers/outdated/censorship_rejection/Censorship7.png old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/censorship_rejection.aux b/papers/outdated/censorship_rejection/censorship_rejection.aux old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/censorship_rejection.log b/papers/outdated/censorship_rejection/censorship_rejection.log old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/censorship_rejection.pdf b/papers/outdated/censorship_rejection/censorship_rejection.pdf old mode 100644 new mode 100755 diff --git a/papers/outdated/censorship_rejection/censorship_rejection.tex b/papers/outdated/censorship_rejection/censorship_rejection.tex old mode 100644 new mode 100755 diff --git a/papers/pricing/FeesAndETH.ods b/papers/pricing/FeesAndETH.ods old mode 100644 new mode 100755 diff --git a/papers/pricing/GaspriceInGwei.png b/papers/pricing/GaspriceInGwei.png old mode 100644 new mode 100755 diff --git a/papers/pricing/PriceAndFees.png b/papers/pricing/PriceAndFees.png old mode 100644 new mode 100755 diff --git a/papers/pricing/Triangle1.png b/papers/pricing/Triangle1.png old mode 100644 new mode 100755 diff --git a/papers/pricing/Triangle2.png b/papers/pricing/Triangle2.png old mode 100644 new mode 100755 diff --git a/papers/pricing/Triangle3.png b/papers/pricing/Triangle3.png old mode 100644 new mode 100755 diff --git a/papers/pricing/arydshln.sty b/papers/pricing/arydshln.sty old mode 100644 new mode 100755 diff --git a/papers/pricing/bitcoin1.png b/papers/pricing/bitcoin1.png old mode 100644 new mode 100755 diff --git a/papers/pricing/bitcoin2.png b/papers/pricing/bitcoin2.png old mode 100644 new mode 100755 diff --git a/papers/pricing/blocksize_fullnodes.png b/papers/pricing/blocksize_fullnodes.png old mode 100644 new mode 100755 diff --git a/papers/pricing/commath.sty b/papers/pricing/commath.sty old mode 100644 new mode 100755 diff --git a/papers/pricing/etherchain_correlation.png b/papers/pricing/etherchain_correlation.png old mode 100644 new mode 100755 diff --git a/papers/pricing/etherchain_correlation_2.png b/papers/pricing/etherchain_correlation_2.png old mode 100644 new mode 100755 diff --git a/papers/pricing/ethpricing.bib b/papers/pricing/ethpricing.bib old mode 100644 new mode 100755 diff --git a/papers/pricing/ethpricing.pdf b/papers/pricing/ethpricing.pdf old mode 100644 new mode 100755 diff --git a/papers/pricing/ethpricing.tex b/papers/pricing/ethpricing.tex old mode 100644 new mode 100755 diff --git a/papers/pricing/fig1a.png b/papers/pricing/fig1a.png old mode 100644 new mode 100755 diff --git a/papers/pricing/fig1b.png b/papers/pricing/fig1b.png old mode 100644 new mode 100755 diff --git a/papers/pricing/fig1c.png b/papers/pricing/fig1c.png old mode 100644 new mode 100755 diff --git a/papers/pricing/fig1d.png b/papers/pricing/fig1d.png old mode 100644 new mode 100755 diff --git a/papers/pricing/kth_price_revenue.png b/papers/pricing/kth_price_revenue.png old mode 100644 new mode 100755 diff --git a/papers/pricing/marvosym.sty b/papers/pricing/marvosym.sty old mode 100644 new mode 100755 diff --git a/papers/pricing/nips10submit_e.sty b/papers/pricing/nips10submit_e.sty old mode 100644 new mode 100755 diff --git a/papers/pricing/plos2009.bst b/papers/pricing/plos2009.bst old mode 100644 new mode 100755 diff --git a/papers/pricing/sleepwake.png b/papers/pricing/sleepwake.png old mode 100644 new mode 100755 diff --git a/papers/pricing/subfigure.sty b/papers/pricing/subfigure.sty old mode 100644 new mode 100755 diff --git a/papers/pricing/total_social_cost.png b/papers/pricing/total_social_cost.png old mode 100644 new mode 100755 diff --git a/papers/pricing/units.sty b/papers/pricing/units.sty old mode 100644 new mode 100755 diff --git a/papers/pricing/virgil_env.sty b/papers/pricing/virgil_env.sty old mode 100644 new mode 100755 diff --git a/papers/pricing/wrapfig.sty b/papers/pricing/wrapfig.sty old mode 100644 new mode 100755 diff --git a/polynomial_reconstruction/fft.py b/polynomial_reconstruction/fft.py old mode 100644 new mode 100755 diff --git a/polynomial_reconstruction/interpolate_polynomial_without_zeroes.py b/polynomial_reconstruction/interpolate_polynomial_without_zeroes.py old mode 100644 new mode 100755 diff --git a/polynomial_reconstruction/poly_gcd.py b/polynomial_reconstruction/poly_gcd.py old mode 100644 new mode 100755 diff --git a/polynomial_reconstruction/poly_utils.py b/polynomial_reconstruction/poly_utils.py old mode 100644 new mode 100755 diff --git a/polynomial_reconstruction/polynomial_reconstruction.py b/polynomial_reconstruction/polynomial_reconstruction.py old mode 100644 new mode 100755 diff --git a/polynomial_reconstruction/polynomial_reconstruction_danksharding.py b/polynomial_reconstruction/polynomial_reconstruction_danksharding.py old mode 100644 new mode 100755 diff --git a/pow_research/ghost.py b/pow_research/ghost.py old mode 100644 new mode 100755 diff --git a/pow_research/multi_uncle_ghost.py b/pow_research/multi_uncle_ghost.py old mode 100644 new mode 100755 diff --git a/pow_research/random_circuit.py b/pow_research/random_circuit.py old mode 100644 new mode 100755 diff --git a/pow_research/random_graphs.py b/pow_research/random_graphs.py old mode 100644 new mode 100755 diff --git a/pow_research/selfish_mining.py b/pow_research/selfish_mining.py old mode 100644 new mode 100755 diff --git a/pow_research/selfish_mining_strats.py b/pow_research/selfish_mining_strats.py old mode 100644 new mode 100755 diff --git a/price_analysis/csvgen.py b/price_analysis/csvgen.py old mode 100644 new mode 100755 diff --git a/price_analysis/diff_and_price.csv b/price_analysis/diff_and_price.csv old mode 100644 new mode 100755 diff --git a/price_analysis/fit.py b/price_analysis/fit.py old mode 100644 new mode 100755 diff --git a/price_analysis/price_analyzer.py b/price_analysis/price_analyzer.py old mode 100644 new mode 100755 diff --git a/price_analysis/price_grabber.py b/price_analysis/price_grabber.py old mode 100644 new mode 100755 diff --git a/price_analysis/spread.py b/price_analysis/spread.py old mode 100644 new mode 100755 diff --git a/proof_of_custody/bls_sign.mpc b/proof_of_custody/bls_sign.mpc old mode 100644 new mode 100755 diff --git a/proof_of_custody/khovratovich_algorithm.py b/proof_of_custody/khovratovich_algorithm.py old mode 100644 new mode 100755 diff --git a/proof_of_custody/legendre_uhf.mpc b/proof_of_custody/legendre_uhf.mpc old mode 100644 new mode 100755 diff --git a/proof_of_custody/legendre_uhf.py b/proof_of_custody/legendre_uhf.py old mode 100644 new mode 100755 diff --git a/proof_of_custody/uhf_oursourcing.py b/proof_of_custody/uhf_oursourcing.py old mode 100644 new mode 100755 diff --git a/proof_of_solvency/crazy_merkle_tree.py b/proof_of_solvency/crazy_merkle_tree.py old mode 100644 new mode 100755 diff --git a/proof_of_solvency/merkle_sum_tree.py b/proof_of_solvency/merkle_sum_tree.py old mode 100644 new mode 100755 diff --git a/py_plonk/README.md b/py_plonk/README.md old mode 100644 new mode 100755 diff --git a/py_plonk/compiler.py b/py_plonk/compiler.py old mode 100644 new mode 100755 diff --git a/py_plonk/main.plonk.vkey-58.json b/py_plonk/main.plonk.vkey-58.json old mode 100644 new mode 100755 diff --git a/py_plonk/main.plonk.vkey-59.json b/py_plonk/main.plonk.vkey-59.json old mode 100644 new mode 100755 diff --git a/py_plonk/main.plonk.vkey.json b/py_plonk/main.plonk.vkey.json old mode 100644 new mode 100755 diff --git a/py_plonk/mini_poseidon.py b/py_plonk/mini_poseidon.py old mode 100644 new mode 100755 diff --git a/py_plonk/multicombs.py b/py_plonk/multicombs.py old mode 100644 new mode 100755 diff --git a/py_plonk/powersOfTau28_hez_final_11.ptau b/py_plonk/powersOfTau28_hez_final_11.ptau old mode 100644 new mode 100755 diff --git a/py_plonk/prover.py b/py_plonk/prover.py old mode 100644 new mode 100755 diff --git a/py_plonk/rc.json b/py_plonk/rc.json old mode 100644 new mode 100755 diff --git a/py_plonk/test.py b/py_plonk/test.py old mode 100644 new mode 100755 diff --git a/py_plonk/utils.py b/py_plonk/utils.py old mode 100644 new mode 100755 diff --git a/py_plonk/verifier.py b/py_plonk/verifier.py old mode 100644 new mode 100755 diff --git a/py_ssz/LICENSE b/py_ssz/LICENSE old mode 100644 new mode 100755 diff --git a/py_ssz/README.md b/py_ssz/README.md old mode 100644 new mode 100755 diff --git a/py_ssz/py_ssz/__init__.py b/py_ssz/py_ssz/__init__.py old mode 100644 new mode 100755 diff --git a/py_ssz/py_ssz/py_ssz.py b/py_ssz/py_ssz/py_ssz.py old mode 100644 new mode 100755 diff --git a/py_ssz/py_ssz/serializers.py b/py_ssz/py_ssz/serializers.py old mode 100644 new mode 100755 diff --git a/py_ssz/py_ssz/utils.py b/py_ssz/py_ssz/utils.py old mode 100644 new mode 100755 diff --git a/py_ssz/requirements.txt b/py_ssz/requirements.txt old mode 100644 new mode 100755 diff --git a/py_ssz/setup.py b/py_ssz/setup.py old mode 100644 new mode 100755 diff --git a/py_ssz/tests/tests.py b/py_ssz/tests/tests.py old mode 100644 new mode 100755 diff --git a/randao_analysis/low_influence/2of3.py b/randao_analysis/low_influence/2of3.py old mode 100644 new mode 100755 diff --git a/randao_analysis/low_influence/tribes.py b/randao_analysis/low_influence/tribes.py old mode 100644 new mode 100755 diff --git a/randao_analysis/paths.py b/randao_analysis/paths.py old mode 100644 new mode 100755 diff --git a/rollup_compression/4844_compress_complex.py b/rollup_compression/4844_compress_complex.py old mode 100644 new mode 100755 diff --git a/rollup_compression/4844_compress_simple.py b/rollup_compression/4844_compress_simple.py old mode 100644 new mode 100755 diff --git a/rollup_compression/compressor.py b/rollup_compression/compressor.py old mode 100644 new mode 100755 diff --git a/rollup_compression/dicts.py b/rollup_compression/dicts.py old mode 100644 new mode 100755 diff --git a/rsa_moduli/bach_random_factored_numbers.py b/rsa_moduli/bach_random_factored_numbers.py old mode 100644 new mode 100755 diff --git a/rsa_moduli/find_optimal_bit_size.py b/rsa_moduli/find_optimal_bit_size.py old mode 100644 new mode 100755 diff --git a/rsa_moduli/random_numbers_with_multiplicative_group.py b/rsa_moduli/random_numbers_with_multiplicative_group.py old mode 100644 new mode 100755 diff --git a/rsa_moduli/requirements.txt b/rsa_moduli/requirements.txt old mode 100644 new mode 100755 diff --git a/sendmany/mk_sendmany.py b/sendmany/mk_sendmany.py old mode 100644 new mode 100755 diff --git a/sendmany/sendmany_tester.py b/sendmany/sendmany_tester.py old mode 100644 new mode 100755 diff --git a/sharding_fork_choice_poc/distributions.py b/sharding_fork_choice_poc/distributions.py old mode 100644 new mode 100755 diff --git a/sharding_fork_choice_poc/networksim.py b/sharding_fork_choice_poc/networksim.py old mode 100644 new mode 100755 diff --git a/sharding_fork_choice_poc/test.py b/sharding_fork_choice_poc/test.py old mode 100644 new mode 100755 diff --git a/shuffling/feistel_shuffle.py b/shuffling/feistel_shuffle.py old mode 100644 new mode 100755 diff --git a/shuffling/fisher_yates_shuffle.py b/shuffling/fisher_yates_shuffle.py old mode 100644 new mode 100755 diff --git a/shuffling/prime_shuffle.py b/shuffling/prime_shuffle.py old mode 100644 new mode 100755 diff --git a/shuffling/swap_or_not_shuffle.py b/shuffling/swap_or_not_shuffle.py old mode 100644 new mode 100755 diff --git a/shuffling/test_shuffle.py b/shuffling/test_shuffle.py old mode 100644 new mode 100755 diff --git a/sparse_merkle_tree/bintrie_test.py b/sparse_merkle_tree/bintrie_test.py old mode 100644 new mode 100755 diff --git a/sparse_merkle_tree/new_bintrie.py b/sparse_merkle_tree/new_bintrie.py old mode 100644 new mode 100755 diff --git a/sparse_merkle_tree/new_bintrie_hex.py b/sparse_merkle_tree/new_bintrie_hex.py old mode 100644 new mode 100755 diff --git a/sparse_merkle_tree/new_bintrie_optimized.py b/sparse_merkle_tree/new_bintrie_optimized.py old mode 100644 new mode 100755 diff --git a/sparse_merkle_tree/new_bintrie_test.py b/sparse_merkle_tree/new_bintrie_test.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/.gitignore b/spec_pythonizer/.gitignore old mode 100644 new mode 100755 diff --git a/spec_pythonizer/README.md b/spec_pythonizer/README.md old mode 100644 new mode 100755 diff --git a/spec_pythonizer/apply_test_suite.py b/spec_pythonizer/apply_test_suite.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/bls_stub.py b/spec_pythonizer/bls_stub.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/function_puller.py b/spec_pythonizer/function_puller.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/jsonize.py b/spec_pythonizer/jsonize.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/minimal_ssz.py b/spec_pythonizer/minimal_ssz.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/monkey_patches.py b/spec_pythonizer/monkey_patches.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/requirements.txt b/spec_pythonizer/requirements.txt old mode 100644 new mode 100755 diff --git a/spec_pythonizer/sanity_check.py b/spec_pythonizer/sanity_check.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/spec.md b/spec_pythonizer/spec.md old mode 100644 new mode 100755 diff --git a/spec_pythonizer/state_test_gen.py b/spec_pythonizer/state_test_gen.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/state_transition.py b/spec_pythonizer/state_transition.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/utils/hash.py b/spec_pythonizer/utils/hash.py old mode 100644 new mode 100755 diff --git a/spec_pythonizer/utils/merkle_minimal.py b/spec_pythonizer/utils/merkle_minimal.py old mode 100644 new mode 100755 diff --git a/ssz_research/partials/README.md b/ssz_research/partials/README.md old mode 100644 new mode 100755 diff --git a/ssz_research/partials/hash_function.py b/ssz_research/partials/hash_function.py old mode 100644 new mode 100755 diff --git a/ssz_research/partials/minimal_ssz.py b/ssz_research/partials/minimal_ssz.py old mode 100644 new mode 100755 diff --git a/ssz_research/partials/ssz_partial.py b/ssz_research/partials/ssz_partial.py old mode 100644 new mode 100755 diff --git a/ssz_research/partials/test_ssz_partial.py b/ssz_research/partials/test_ssz_partial.py old mode 100644 new mode 100755 diff --git a/ssz_research/ssz_hashable_list/hashable_list.py b/ssz_research/ssz_hashable_list/hashable_list.py old mode 100644 new mode 100755 diff --git a/ssz_research/ssz_hashable_list/test_hashable_list.py b/ssz_research/ssz_hashable_list/test_hashable_list.py old mode 100644 new mode 100755 diff --git a/sublinear_staking/code.vy b/sublinear_staking/code.vy new file mode 100644 index 00000000..3fc8edae --- /dev/null +++ b/sublinear_staking/code.vy @@ -0,0 +1,101 @@ +#pragma version >0.3.10 + +# Basic implementation of a sublinear staking contract. Stake coins, and you get +# return proportional to coins staked ** 0.75. Returns last as long as coins last + +stakedAmount: public(HashMap[address, uint256]) +stakeLastUpdated: public(HashMap[address, uint256]) +stakedTokenAddress: address +uniqueidTokenAddress: address +uniqueidTokenCollection: uint256 +totalPayoutPerSlot: uint256 +liabilities: uint256 +liabilitiesLastUpdated: uint256 + +@view +def intSqrt(input: uint256) -> uint256: + o: uint256 = input + if o == 0: + return 0 + for i:uint256 in range(32): + o = (o + input // o) // 2 + return o + +@view +def getReturnPerSlot(x: uint256) -> uint256: + sqrtX: uint256 = self.intSqrt(x) + return sqrtX * self.intSqrt(sqrtX) + +# Define the interface for the ERC-1155 contract +interface ERC1155: + def balanceOf(_owner: address, _id: uint256) -> uint256: view + +# ERC-20 Interface in Vyper +interface ERC20: + def transfer(_to: address, _value: uint256) -> bool: nonpayable + def transferFrom(_from: address, _to: address, _value: uint256) -> bool: nonpayable + def balanceOf(_owner: address) -> uint256: view + +@view +def isEligible(user: address) -> bool: +# Create an instance of the ERC-1155 contract + c: ERC1155 = ERC1155(self.uniqueidTokenAddress) + + # Get the balance of the user for the specified token ID + balance: uint256 = staticcall c.balanceOf(user, self.uniqueidTokenCollection) + + # Return True if balance is greater than zero, else False + return balance > 0 + +# Setup global variables +@deploy +def __init__(stakedTokenAddress: address, + uniqueidTokenAddress: address, + uniqueidTokenCollection: uint256): + self.stakedTokenAddress = stakedTokenAddress + self.uniqueidTokenAddress = uniqueidTokenAddress + self.uniqueidTokenCollection = uniqueidTokenCollection + +@external +def stake(amount: uint256): + assert self.isEligible(msg.sender) + token: ERC20 = ERC20(self.stakedTokenAddress) + if self.stakedAmount[msg.sender] > 0: + self._unstake() + returnPerSlot: uint256 = self.getReturnPerSlot(amount) + self.stakedAmount[msg.sender] = amount + self.stakeLastUpdated[msg.sender] = block.timestamp + self.liabilities += (block.timestamp - self.liabilitiesLastUpdated) * self.totalPayoutPerSlot + self.liabilities += amount + self.liabilitiesLastUpdated = block.timestamp + self.totalPayoutPerSlot += returnPerSlot + success: bool = extcall token.transferFrom(msg.sender, self, amount) + assert success + +def _unstake(): + token: ERC20 = ERC20(self.stakedTokenAddress) + returnPerSlot: uint256 = self.getReturnPerSlot(self.stakedAmount[msg.sender]) + deadline: uint256 = self.liabilitiesLastUpdated + (staticcall token.balanceOf(self) - self.liabilities) // max(self.totalPayoutPerSlot, 1) + correctedNow: uint256 = min(block.timestamp, deadline) + timeElapsed: uint256 = correctedNow - self.stakeLastUpdated[msg.sender] + totalOut: uint256 = self.stakedAmount[msg.sender] + timeElapsed * returnPerSlot + self.stakedAmount[msg.sender] = 0 + self.liabilities += (correctedNow - self.liabilitiesLastUpdated) * self.totalPayoutPerSlot + self.liabilitiesLastUpdated = correctedNow + self.totalPayoutPerSlot -= returnPerSlot + self.liabilities -= totalOut + extcall token.transfer(msg.sender, totalOut) + +@external +def unstake(): + self._unstake() + +@external +@view +def deadline() -> uint256: + token: ERC20 = ERC20(self.stakedTokenAddress) + return ( + self.liabilitiesLastUpdated + + (staticcall token.balanceOf(self) - self.liabilities) // + max(self.totalPayoutPerSlot, 1) + ) diff --git a/sublinear_staking/erc1155.vy b/sublinear_staking/erc1155.vy new file mode 100644 index 00000000..ef27488e --- /dev/null +++ b/sublinear_staking/erc1155.vy @@ -0,0 +1,11 @@ +# Minimal ERC-1155 contract + +balances: HashMap[address, HashMap[uint256, uint256]] + +@external +def balanceOf(_owner: address, _id: uint256) -> uint256: + return self.balances[_owner][_id] + +@external +def mint(_to: address, _id: uint256, _amount: uint256): + self.balances[_to][_id] += _amount diff --git a/sublinear_staking/erc20.vy b/sublinear_staking/erc20.vy new file mode 100644 index 00000000..d3684e7a --- /dev/null +++ b/sublinear_staking/erc20.vy @@ -0,0 +1,40 @@ +# Minimal ERC-20 contract + +balances: HashMap[address, uint256] +allowances: HashMap[address, HashMap[address, uint256]] +total_supply: uint256 + +@external +def balanceOf(_owner: address) -> uint256: + return self.balances[_owner] + +@external +def transfer(_to: address, _value: uint256) -> bool: + assert self.balances[msg.sender] >= _value, "Insufficient balance" + self.balances[msg.sender] -= _value + self.balances[_to] += _value + return True + +@external +def transferFrom(_from: address, _to: address, _value: uint256) -> bool: + assert self.balances[_from] >= _value, "Insufficient balance" + assert self.allowances[_from][msg.sender] >= _value, "Insufficient allowance" + self.allowances[_from][msg.sender] -= _value + self.balances[_from] -= _value + self.balances[_to] += _value + return True + +@external +def approve(_spender: address, _value: uint256) -> bool: + self.allowances[msg.sender][_spender] = _value + return True + +@external +def mint(_to: address, _value: uint256): + self.balances[_to] += _value + self.total_supply += _value + +@external +def totalSupply() -> uint256: + return self.total_supply + diff --git a/sublinear_staking/test_sublinear.py b/sublinear_staking/test_sublinear.py new file mode 100644 index 00000000..81605351 --- /dev/null +++ b/sublinear_staking/test_sublinear.py @@ -0,0 +1,121 @@ +from web3 import Web3 +from web3.providers.eth_tester import EthereumTesterProvider +from eth_tester import EthereumTester +from vyper import compile_code + +# Set up Web3 and Ethereum Tester +eth_tester = EthereumTester() +w3 = Web3(EthereumTesterProvider(eth_tester)) + +# Accounts +accounts = w3.eth.accounts +a1, a2, a3, a4 = accounts[0], accounts[1], accounts[2], accounts[3] + +# Vyper code for the main staking contract +staking_source_code = open('code.vy').read() +erc20_vyper_code = open('erc20.vy').read() +erc1155_vyper_code = open('erc1155.vy').read() + +# Compile the staking contract +compiled_staking_contract = compile_code(staking_source_code, output_formats=['abi', 'bytecode']) +staking_contract_interface = { + 'abi': compiled_staking_contract['abi'], + 'bytecode': compiled_staking_contract['bytecode'] +} + +# Compile the ERC-1155 contract +compiled_erc1155 = compile_code(erc1155_vyper_code, output_formats=['abi', 'bytecode']) +erc1155_interface = { + 'abi': compiled_erc1155['abi'], + 'bytecode': compiled_erc1155['bytecode'] +} + +# Compile the ERC-20 contract +compiled_erc20 = compile_code(erc20_vyper_code, output_formats=['abi', 'bytecode']) +erc20_interface = { + 'abi': compiled_erc20['abi'], + 'bytecode': compiled_erc20['bytecode'] +} + +# Helper function to deploy contracts +def deploy_contract(w3, abi, bytecode, constructor_args=(), deployer=a1): + Contract = w3.eth.contract(abi=abi, bytecode=bytecode) + tx_hash = Contract.constructor(*constructor_args).transact({'from': deployer}) + tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash) + return w3.eth.contract(address=tx_receipt.contractAddress, abi=abi) + +# Step 3: Deploy ERC-1155 contract and mint tokens +erc1155_contract = deploy_contract(w3, erc1155_interface['abi'], erc1155_interface['bytecode']) +A = erc1155_contract.address +cID = 1 # Collection ID + +# Mint 1 unit of token ID cID to a1, a2, a3 +for account in [a1, a2, a3]: + tx_hash = erc1155_contract.functions.mint(account, cID, 1).transact({'from': a1}) + w3.eth.wait_for_transaction_receipt(tx_hash) + +# Step 4: Deploy ERC-20 contract and mint tokens +erc20_contract = deploy_contract(w3, erc20_interface['abi'], erc20_interface['bytecode']) +T = erc20_contract.address + +# Mint 10**18 units to a1, a2, a3, a4 +initial_balance = 10**18 +for account in [a1, a2, a3, a4]: + tx_hash = erc20_contract.functions.mint(account, initial_balance).transact({'from': a1}) + w3.eth.wait_for_transaction_receipt(tx_hash) + +# Step 5: Deploy the staking contract (C) with T, A, cID +staking_contract = deploy_contract( + w3, + staking_contract_interface['abi'], + staking_contract_interface['bytecode'], + constructor_args=(T, A, cID) +) +C = staking_contract.address + +# Mint 10**18 units to the staking contract C +tx_hash = erc20_contract.functions.mint(C, 3 * 10**16).transact({'from': a1}) +w3.eth.wait_for_transaction_receipt(tx_hash) + +# Step 6: Approve the staking contract to spend tokens for each account +for account in [a1, a2, a3, a4]: + tx_hash = erc20_contract.functions.approve(C, initial_balance).transact({'from': account}) + w3.eth.wait_for_transaction_receipt(tx_hash) + +# Step 7: Each account attempts to stake tokens +stake_amounts = { + a1: 1, + a2: 10**9, + a3: 10**18, + a4: 10**18, +} + +print("\nStaking attempts:") +for account in [a1, a2, a3, a4]: + amount = stake_amounts[account] + try: + tx_hash = staking_contract.functions.stake(amount).transact({'from': account}) + w3.eth.wait_for_transaction_receipt(tx_hash) + print(f"Stake successful for account {account} with amount {amount}") + except Exception as e: + print(f"Stake failed for account {account} with amount {amount}: {e}") + +# Step 8: Fast forward 1000 blocks +eth_tester = w3.provider.ethereum_tester +now = w3.eth.get_block('latest')['timestamp'] +print(f"Before fast forward: {now}") +eth_tester.mine_blocks(1000) +now = w3.eth.get_block('latest')['timestamp'] +print(f"After fast forward: {now}") +deadline = staking_contract.functions.deadline().call() +print(f"Deadline: {deadline}") +# Step 9: Each account unstakes their tokens and prints the amounts +print("\nUnstaking attempts:") +for account in [a1, a2, a3]: + tx_hash = staking_contract.functions.unstake().transact({'from': account}) + w3.eth.wait_for_transaction_receipt(tx_hash) + # Get the new balance + balance = erc20_contract.functions.balanceOf(account).call() + print(f"Account {account} unstaked {amount}, new balance is {balance}") +contract_balance = erc20_contract.functions.balanceOf(staking_contract.address).call() +print(f"Remaining balance: {contract_balance}") diff --git a/test_binary_fft.py b/test_binary_fft.py old mode 100644 new mode 100755 diff --git a/trusted_setup/test.py b/trusted_setup/test.py old mode 100644 new mode 100755 diff --git a/trusted_setup/trusted_setup.py b/trusted_setup/trusted_setup.py old mode 100644 new mode 100755 diff --git a/uncle_regressions/attack_gas.csv b/uncle_regressions/attack_gas.csv old mode 100644 new mode 100755 diff --git a/uncle_regressions/attack_gas_regression.py b/uncle_regressions/attack_gas_regression.py old mode 100644 new mode 100755 diff --git a/uncle_regressions/base_regression.py b/uncle_regressions/base_regression.py old mode 100644 new mode 100755 diff --git a/uncle_regressions/block_datadump_generator.py b/uncle_regressions/block_datadump_generator.py old mode 100644 new mode 100755 diff --git a/uncle_regressions/time_regression.py b/uncle_regressions/time_regression.py old mode 100644 new mode 100755 diff --git a/uncle_regressions/tx_and_bytes_regression.py b/uncle_regressions/tx_and_bytes_regression.py old mode 100644 new mode 100755 diff --git a/variable_balance_sampling/sampling.py b/variable_balance_sampling/sampling.py old mode 100644 new mode 100755 diff --git a/verkle/fft.py b/verkle/fft.py old mode 100644 new mode 100755 diff --git a/verkle/fk20.py b/verkle/fk20.py old mode 100644 new mode 100755 diff --git a/verkle/multicombs.py b/verkle/multicombs.py old mode 100644 new mode 100755 diff --git a/verkle/poly_utils.py b/verkle/poly_utils.py old mode 100644 new mode 100755 diff --git a/verkle/verkle.py b/verkle/verkle.py old mode 100644 new mode 100755 diff --git a/verkle/verkle_precompute.py b/verkle/verkle_precompute.py old mode 100644 new mode 100755 diff --git a/verkle_trie/fft.py b/verkle_trie/fft.py old mode 100644 new mode 100755 diff --git a/verkle_trie/kzg_utils.py b/verkle_trie/kzg_utils.py old mode 100644 new mode 100755 diff --git a/verkle_trie/pippenger.py b/verkle_trie/pippenger.py old mode 100644 new mode 100755 diff --git a/verkle_trie/poly_utils.py b/verkle_trie/poly_utils.py old mode 100644 new mode 100755 diff --git a/verkle_trie/verkle_trie.py b/verkle_trie/verkle_trie.py old mode 100644 new mode 100755 diff --git a/verkle_trie_eip/ipa_utils.py b/verkle_trie_eip/ipa_utils.py old mode 100644 new mode 100755 diff --git a/verkle_trie_eip/poly_utils.py b/verkle_trie_eip/poly_utils.py old mode 100644 new mode 100755 diff --git a/verkle_trie_eip/verkle_trie.py b/verkle_trie_eip/verkle_trie.py old mode 100644 new mode 100755 diff --git a/verkle_trie_pedersen/blst.py b/verkle_trie_pedersen/blst.py old mode 100644 new mode 100755 diff --git a/verkle_trie_pedersen/ipa_utils.py b/verkle_trie_pedersen/ipa_utils.py old mode 100644 new mode 100755 diff --git a/verkle_trie_pedersen/poly_utils.py b/verkle_trie_pedersen/poly_utils.py old mode 100644 new mode 100755 diff --git a/verkle_trie_pedersen/verkle_trie.py b/verkle_trie_pedersen/verkle_trie.py old mode 100644 new mode 100755 diff --git a/whisk_csidh/fish.sage b/whisk_csidh/fish.sage old mode 100644 new mode 100755 diff --git a/whisk_csidh/relation_lattices.py b/whisk_csidh/relation_lattices.py old mode 100644 new mode 100755 diff --git a/zksnark/code_to_r1cs.py b/zksnark/code_to_r1cs.py old mode 100644 new mode 100755 diff --git a/zksnark/false_tests.txt b/zksnark/false_tests.txt old mode 100644 new mode 100755 diff --git a/zksnark/qap_creator.py b/zksnark/qap_creator.py old mode 100644 new mode 100755 diff --git a/zksnark/true_tests.txt b/zksnark/true_tests.txt old mode 100644 new mode 100755 diff --git a/zkstark/quadratic_prover_test.py b/zkstark/quadratic_prover_test.py old mode 100644 new mode 100755 diff --git a/zkstark/quadratic_provers.py b/zkstark/quadratic_provers.py old mode 100644 new mode 100755