„Der Intelligenzquotient (IQ) ist eine durch einen Intelligenztest ermittelte Kenngröße zur Bewertung des intellektuellen Leistungsvermögens im Allgemeinen …“ wie in Wikipedia steht. Der IQ hängt von vielen Faktoren ab, unter anderem vom Alter der Person, Leistung der Testperson und Durchschnittsleistung der anderen Testpersonen. Der durchschnittliche IQ der Bevölkerung wurde auf 100 festgelegt.
Habe vor einigen Tagen eine Smart-Contract mit Solidity geschrieben, so das die IQ Werte in der Blockchain geschrieben und gelesen werden können. Der Smart-Contact für die Ethereum Blockchain heißt „Gehirn“.
Wie kann der Sourcecode eines Smart-Contract verifizert werden? Erkennbar ist es an den grünen Kreis auf den „Contract Tab“:
1. Muss ein API Key auf etherscan.io unter API-Key angelegt werden und in der .env Datei exportiert werden z.B.
export ETHERSCAN_TOKEN=’123456789′
2. Wenn der Quellcode des Smart-Contract mit brownie hochgeladen werden soll, brauchen wir ein publish_source=True z.B.
gehirn = Gehirn.deploy({„from“: account}, publish_source=True)
3. Hochladen mit z.B. brownie run scripts/deploy.py –network rinkeby
Das Ergebniss nach ein paar Sekunden:
1 2 3 |
erification submitted successfully. Waiting for result... Verification pending... Verification complete. Result: Pass - Verified |
Auf der Seite, kann man sich dann auch den „Contract Creation Code“ anschauen und auch den OptCode des Smart-Contract:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x04 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH1 0x00 CALLDATALOAD PUSH1 0xe0 '1c'(Unknown Opcode) DUP1 PUSH4 0x2e64cec1 EQ PUSH1 0x2b JUMPI DUP1 PUSH4 0x6057361d EQ PUSH1 0x4f JUMPI JUMPDEST PUSH1 0x00 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x36 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP PUSH1 0x3d PUSH1 0x6b JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x69 PUSH1 0x04 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x63 JUMPI PUSH1 0x00 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x71 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x00 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x00 SSTORE JUMP 'fe'(Unknown Opcode) LOG2 PUSH5 0x6970667358 '22'(Unknown Opcode) SLT SHA3 'b3'(Unknown Opcode) CHAINID SWAP9 'ae'(Unknown Opcode) 'ce'(Unknown Opcode) GAS 'df'(Unknown Opcode) '5d'(Unknown Opcode) '1e'(Unknown Opcode) 'bb'(Unknown Opcode) CALLDATASIZE ADDMOD 'c5'(Unknown Opcode) 'ed'(Unknown Opcode) SWAP6 PC Ethereum Logo |
Wer will kann ja mal meinen IQ von 150 auf der Blockchain über write Contract neu setzen (ETH). 😉