{"id":17484,"date":"2021-09-24T02:21:44","date_gmt":"2021-09-24T00:21:44","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=17484"},"modified":"2023-03-25T14:47:21","modified_gmt":"2023-03-25T13:47:21","slug":"intelligenzquotient-iq-auf-der-blockchain-sichern-und-smart-contract-verifizieren","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=17484","title":{"rendered":"Intelligenzquotient (IQ) auf der Blockchain sichern und Smart-Contract verifizieren"},"content":{"rendered":"<p>&#8222;Der Intelligenzquotient (IQ) ist eine durch einen Intelligenztest ermittelte Kenngr\u00f6\u00dfe zur Bewertung des intellektuellen Leistungsverm\u00f6gens im Allgemeinen &#8230;&#8220; wie in Wikipedia steht. Der IQ h\u00e4ngt von vielen Faktoren ab, unter anderem vom Alter der Person, Leistung der Testperson und Durchschnittsleistung der anderen Testpersonen. Der durchschnittliche IQ der Bev\u00f6lkerung wurde auf 100 festgelegt.<\/p>\n<p>Habe vor einigen Tagen eine Smart-Contract mit <a href=\"http:\/\/blog.wenzlaff.de\/?p=17449\" rel=\"noopener\" target=\"_blank\">Solidity<\/a> geschrieben, so das die IQ Werte in der Blockchain geschrieben und gelesen werden k\u00f6nnen. Der Smart-Contact f\u00fcr die Ethereum Blockchain hei\u00dft &#8222;Gehirn&#8220;.<\/p>\n<p>Wie kann der Sourcecode eines Smart-Contract verifizert werden? Erkennbar ist es an den <a href=\"https:\/\/rinkeby.etherscan.io\/address\/0x34745c517c29c79925940ff40e6c59ced5b6265e#code\" rel=\"noopener\" target=\"_blank\">gr\u00fcnen Kreis<\/a> auf den &#8222;Contract Tab&#8220;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/09\/rinkeby-verified.png\" alt=\"\" width=\"2204\" height=\"2050\" class=\"aligncenter size-full wp-image-17485\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/09\/rinkeby-verified.png 2204w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/09\/rinkeby-verified-300x279.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/09\/rinkeby-verified-1024x952.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/09\/rinkeby-verified-768x714.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/09\/rinkeby-verified-1536x1429.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2021\/09\/rinkeby-verified-2048x1905.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>1. Muss ein API Key auf etherscan.io unter API-Key angelegt werden und in der <strong>.env<\/strong> Datei exportiert werden z.B. <!--more--><br \/>\n<strong><br \/>\nexport ETHERSCAN_TOKEN=&#8217;123456789&#8242;<\/strong><\/p>\n<p>2. Wenn der Quellcode des Smart-Contract mit brownie hochgeladen werden soll, brauchen wir ein <strong>publish_source=True<\/strong> z.B.<\/p>\n<p>gehirn = Gehirn.deploy({&#8222;from&#8220;: account}, publish_source=True)<\/p>\n<p>3. Hochladen mit z.B. <strong>brownie run scripts\/deploy.py &#8211;network rinkeby<\/strong><\/p>\n<p>Das Ergebniss nach ein paar Sekunden:<\/p>\n<pre class=\"lang:default decode:true \" >erification submitted successfully. Waiting for result...\r\nVerification pending...\r\nVerification complete. Result: Pass - Verified<\/pre>\n<p>Auf der Seite, kann man sich dann auch den &#8222;Contract Creation Code&#8220; anschauen und auch den OptCode des Smart-Contract:<\/p>\n<pre class=\"minimize:true lang:default decode:true \" >PUSH1 0x80\r\nPUSH1 0x40\r\nMSTORE\r\nPUSH1 0x04\r\nCALLDATASIZE\r\nLT\r\nPUSH1 0x26\r\nJUMPI\r\nPUSH1 0x00\r\nCALLDATALOAD\r\nPUSH1 0xe0\r\n'1c'(Unknown Opcode)\r\nDUP1\r\nPUSH4 0x2e64cec1\r\nEQ\r\nPUSH1 0x2b\r\nJUMPI\r\nDUP1\r\nPUSH4 0x6057361d\r\nEQ\r\nPUSH1 0x4f\r\nJUMPI\r\nJUMPDEST\r\nPUSH1 0x00\r\nDUP1\r\nREVERT\r\nJUMPDEST\r\nCALLVALUE\r\nDUP1\r\nISZERO\r\nPUSH1 0x36\r\nJUMPI\r\nPUSH1 0x00\r\nDUP1\r\nREVERT\r\nJUMPDEST\r\nPOP\r\nPUSH1 0x3d\r\nPUSH1 0x6b\r\nJUMP\r\nJUMPDEST\r\nPUSH1 0x40\r\nDUP1\r\nMLOAD\r\nSWAP2\r\nDUP3\r\nMSTORE\r\nMLOAD\r\nSWAP1\r\nDUP2\r\nSWAP1\r\nSUB\r\nPUSH1 0x20\r\nADD\r\nSWAP1\r\nRETURN\r\nJUMPDEST\r\nPUSH1 0x69\r\nPUSH1 0x04\r\nDUP1\r\nCALLDATASIZE\r\nSUB\r\nPUSH1 0x20\r\nDUP2\r\nLT\r\nISZERO\r\nPUSH1 0x63\r\nJUMPI\r\nPUSH1 0x00\r\nDUP1\r\nREVERT\r\nJUMPDEST\r\nPOP\r\nCALLDATALOAD\r\nPUSH1 0x71\r\nJUMP\r\nJUMPDEST\r\nSTOP\r\nJUMPDEST\r\nPUSH1 0x00\r\nSLOAD\r\nSWAP1\r\nJUMP\r\nJUMPDEST\r\nPUSH1 0x00\r\nSSTORE\r\nJUMP\r\n'fe'(Unknown Opcode)\r\nLOG2\r\nPUSH5 0x6970667358\r\n'22'(Unknown Opcode)\r\nSLT\r\nSHA3\r\n'b3'(Unknown Opcode)\r\nCHAINID\r\nSWAP9\r\n'ae'(Unknown Opcode)\r\n'ce'(Unknown Opcode)\r\nGAS\r\n'df'(Unknown Opcode)\r\n'5d'(Unknown Opcode)\r\n'1e'(Unknown Opcode)\r\n'bb'(Unknown Opcode)\r\nCALLDATASIZE\r\nADDMOD\r\n'c5'(Unknown Opcode)\r\n'ed'(Unknown Opcode)\r\nSWAP6\r\nPC\r\n\r\nEthereum Logo<\/pre>\n<p>Wer will kann ja mal meinen IQ von 150 auf der Blockchain \u00fcber write Contract neu setzen (<a href=\"http:\/\/blog.wenzlaff.de\/?p=17458\" rel=\"noopener\" target=\"_blank\">ETH<\/a>). \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8222;Der Intelligenzquotient (IQ) ist eine durch einen Intelligenztest ermittelte Kenngr\u00f6\u00dfe zur Bewertung des intellektuellen Leistungsverm\u00f6gens im Allgemeinen &#8230;&#8220; wie in Wikipedia steht. Der IQ h\u00e4ngt von vielen Faktoren ab, unter anderem vom Alter der Person, Leistung der Testperson und Durchschnittsleistung der anderen Testpersonen. Der durchschnittliche IQ der Bev\u00f6lkerung wurde auf 100 festgelegt. Habe vor einigen &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=17484\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eIntelligenzquotient (IQ) auf der Blockchain sichern und Smart-Contract verifizieren\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,4606,5004],"tags":[5024,3496,5019,5023,4597,4990,5020,942,5022,5025,5021,5005,5006,4607,5026],"class_list":["post-17484","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-crypto","category-solidity","tag-abi","tag-blockchain","tag-brownie","tag-chain","tag-crypto","tag-eth","tag-ether","tag-gehirn","tag-iq","tag-opcode","tag-ringby","tag-smart","tag-smart-contract","tag-testnet","tag-verifizieren"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/17484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17484"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/17484\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17484"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}