{"id":2439,"date":"2022-10-10T11:41:51","date_gmt":"2022-10-10T09:41:51","guid":{"rendered":"https:\/\/clone.nextrope.com\/?p=2439"},"modified":"2024-04-08T22:40:44","modified_gmt":"2024-04-08T20:40:44","slug":"bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy","status":"publish","type":"post","link":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/","title":{"rendered":"Bezpiecze\u0144stwo smart kontrakt\u00f3w &#8211; 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy"},"content":{"rendered":"<div class=\"wp-block-ht-block-toc  is-style-outline htoc htoc--position-wide toc-list-style-plain\" data-htoc-state=\"expanded\"><span class=\"htoc__title\"><span class=\"ht_toc_title\">Table of Contents<\/span><span class=\"htoc__toggle\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\"><g fill=\"#444\"><path d=\"M15 7H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1z\"><\/path><path d=\"M15 1H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1zM15 13H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1z\"><\/path><\/g><\/svg><\/span><\/span><div class=\"htoc__itemswrap\"><ul class=\"ht_toc_list\"><li class=\"\"><a href=\"#htoc-dlaczego-bezpiecze-stwo-smart-kontrakt-w-jest-szalenie-wa-ne\">Dlaczego bezpiecze\u0144stwo smart kontrakt\u00f3w jest wa\u017cne?<\/a><\/li><li class=\"\"><a href=\"#htoc-1\">1. Dok\u0142adne testowanie smart kontrakt\u00f3w<\/a><\/li><li class=\"\"><a href=\"#htoc-2\">2. Konfiguracja dodatkowych narz\u0119dzi<\/a><\/li><li class=\"\"><a href=\"#htoc-3\">3. Biblioteka smart kontrakt\u00f3w Openzeppelin<\/a><\/li><li class=\"\"><a href=\"#htoc-4-u-ywanie-nowych-wersji-j-zyka-solidity\">4. U\u017cywanie nowych wersji j\u0119zyka Solidity<\/a><\/li><li class=\"\"><a href=\"#htoc-5-nauka-na-cudzych-b-dach\">5. Nauka na cudzych b\u0142\u0119dach<\/a><\/li><li class=\"\"><a href=\"#htoc-summa\">Podsumowanie<\/a><\/li><\/ul><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"htoc-dlaczego-bezpiecze-stwo-smart-kontrakt-w-jest-szalenie-wa-ne\">Dlaczego bezpiecze\u0144stwo smart kontrakt\u00f3w jest wa\u017cne?<\/h2>\n\n\n\n<p>Smart kontrakty s\u0105 g\u0142\u00f3wn\u0105 cz\u0119\u015bci\u0105 aplikacji opartych o technologi\u0119 blockchain. W procesie developmentu smart kontrakt\u00f3w powinni\u015bmy zachowywa\u0107 najwy\u017csze standardy bezpiecze\u0144stwa z powodu czynnik\u00f3w takich jak:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>w wielu systemach odpowiadaj\u0105 one za najbardziej krytyczne funkcjonalno\u015bci, kt\u00f3rych niepoprawne dzia\u0142anie mo\u017ce si\u0119 wi\u0105za\u0107 z wieloma bardzo przykrymi konsekwencjami m.in nieodwracalna utrata \u015brodk\u00f3w, b\u0142\u0105d logiczny rujnuj\u0105cy dzia\u0142anie ca\u0142ej aplikacji\/protoko\u0142u.<\/li><li>smart kontrakt, kt\u00f3ry zosta\u0142 ju\u017c opublikowany na sieci nie mo\u017ce ulec modyfikacjom. Cecha ta powoduje, \u017ce b\u0142\u0119dy i podatno\u015bci, kt\u00f3re zostan\u0105 zdiagnozowane po uruchomieniu kontraktu produkcyjnie nie b\u0119d\u0105 mog\u0142y zosta\u0107 naprawione. (Istnieje zaawansowana technika pozwalaj\u0105ca na tworzenie \u201cupgradeable contracts\u201d, co pozwala na p\u00f3\u017aniejsz\u0105 modyfikacj\u0119 logiki kontraktu, lecz ma r\u00f3wnie\u017c szereg innych wad i ogranicze\u0144, kt\u00f3re nie zwalniaj\u0105 developera z pisania bezpiecznego kodu. Na potrzeby tego artyku\u0142u pominiemy szczeg\u00f3\u0142ow\u0105 analiz\u0119 tego rozwi\u0105zania.)<\/li><li>kod \u017ar\u00f3d\u0142owy wi\u0119kszo\u015bci kontrakt\u00f3w jest publicznie dost\u0119pny. Dobr\u0105 praktyk\u0105 jest to, aby publikowa\u0107 kod \u017arod\u0142owy w serwisach takich jak Etherscan co znacznie podnosi wiarygodno\u015b\u0107 danych aplikacji b\u0105d\u017a protoko\u0142\u00f3w defi. Publiczne udost\u0119pnienie kodu wi\u0105\u017ce si\u0119 jednak z tym, \u017ce ka\u017cdy mo\u017ce taki kod zweryfikowa\u0107 pod wzgl\u0119dem bezpiecze\u0144stwa, a ewentualne nieprawid\u0142owo\u015bci wykorzysta\u0107 na swoj\u0105 korzy\u015b\u0107.<\/li><\/ul>\n\n\n\n<p>Bezpiecze\u0144stwo smart kontrakt\u00f3w, a raczej nauka pisania bezpiecznych smart kontrakt\u00f3w jest procesem wymagaj\u0105cym poznania wielu zaawansowanych aspekt\u00f3w j\u0119zyka Solidity. W tym artykule przedstawimy 5 porad, kt\u00f3re pozwol\u0105 ten proces upro\u015bci\u0107 oraz zabezpiecz\u0105 nasze oprogramowanie przed najbardziej popularnymi b\u0142\u0119dami. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-1024x576.jpg\" alt=\"\" class=\"wp-image-2455\" srcset=\"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-1024x576.jpg 1024w, https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-300x169.jpg 300w, https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-768x432.jpg 768w, https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-1536x864.jpg 1536w, https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-18x10.jpg 18w, https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-450x253.jpg 450w, https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-600x338.jpg 600w, https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1-900x506.jpg 900w, https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1.jpg 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"htoc-1\">1. Dok\u0142adne testowanie smart kontrakt\u00f3w<\/h2>\n\n\n\n<p>Pierwszym, a za razem najwa\u017cniejszym czynnikiem pozwalaj\u0105cym nam na weryfikacj\u0119, czy nasz kontrakt dzia\u0142a poprawnie jest pisanie test\u00f3w automatycznych. Proces testowania najcz\u0119\u015bciej pozwala nam na wczesnym etapie developmentu ujawni\u0107 r\u00f3\u017cnego rodzaju luki bezpiecze\u0144stwa b\u0105d\u017a nieprawid\u0142owo\u015bci. Kolejn\u0105 zalet\u0105 test\u00f3w automatycznych jest zabezpieczene przed regresj\u0105 kodu, czyli sytuacj\u0105, gdy podczas implementacji nowych funkcjonalno\u015bci tworzone s\u0105 b\u0142\u0119dy w wcze\u015bniej napisanym kodzie. W takich testach powinni\u015bmy sprawdza\u0107 wszelkie mo\u017cliwe scenariusze, 100% pokrycia kodu testami nie powinno by\u0107 celem samym w sobie, lecz jedynie miar\u0105 pomagaj\u0105c\u0105 nam w upewnieniu si\u0119, \u017ce testy skrupulatnie sprawdzaj\u0105 ka\u017cd\u0105 metod\u0119 na naszym kontrakcie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"htoc-2\">2. Konfiguracja dodatkowych narz\u0119dzi<\/h2>\n\n\n\n<p>Warto posi\u0142kowa\u0107 si\u0119 narz\u0119dziami, kt\u00f3re s\u0105 w stanie mierzy\u0107 oraz sprawdza\u0107 jako\u015b\u0107 dostarczanego przez nas oprogramowania. Narz\u0119dzia, z kt\u00f3rych warto korzysta\u0107 w codziennej pracy to:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Plugin do mierzenia pokrycia kodu np. <a href=\"https:\/\/www.npmjs.com\/package\/solidity-coverage\" rel=\"nofollow\">solidity-coverage<\/a>. Rozwijaj\u0105c my\u015bl z pierwszego punktu, \u017ce pokrycie kodu nie powinno by\u0107 celem samym w sobie to mimo wszystko warto tak\u0105 analityk\u0119 w procesie testowania posiada\u0107. Dzi\u0119ki analizie pokrycia kodu testami jeste\u015bmy w stanie w \u0142atwy spos\u00f3b zobaczy\u0107, kt\u00f3re fragmenty kodu wymagaj\u0105 napisania przez nas dodatkowych test\u00f3w.<\/li><li>Framework do statycznej analizy kodu np. <a href=\"https:\/\/github.com\/crytic\/slither\" rel=\"nofollow\">slither<\/a>, <a href=\"https:\/\/github.com\/ConsenSys\/mythril\" rel=\"nofollow\">mythril<\/a>. S\u0105 to narz\u0119dzia, kt\u00f3re za pomoc\u0105 statycznej analizy s\u0105 w stanie nie tylko wskaza\u0107 miejsca w naszym kodzie, gdzie wyst\u0119puje jaka\u015b podatno\u015b\u0107 ale te\u017c zaproponowa\u0107 szereg wskaz\u00f3wek. Stosowanie si\u0119 do tych wskaz\u00f3wek mo\u017ce podnie\u015b\u0107 nie tylko bezpiecze\u0144stwo, ale r\u00f3wnie\u017c jako\u015b\u0107 naszego oprogramowania.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"htoc-3\">3. Biblioteka smart kontrakt\u00f3w Openzeppelin<\/h2>\n\n\n\n<p>Istnieje wiele bibliotek i gotowych kontrakt\u00f3w kt\u00f3re zosta\u0142y przygotowane w celu p\u00f3\u017aniejszego wykorzystania przez developer\u00f3w aplikacji blockchain. Ka\u017cda z tych bibliotek wymaga jednak przed u\u017cyciem zweryfikowania pod k\u0105tem tego czy posiada jakie\u015b podatno\u015bci. Najpopularniejsz\u0105 na ten moment bibliotek\u0105 jest <a href=\"https:\/\/www.openzeppelin.com\/contracts\" rel=\"nofollow\">openzeppelin<\/a>. Jest to zbi\u00f3r bezpiecznych, przetestowanych smart kontrakt\u00f3w, wykorzystywanych w wielu najbardziej popularnych protoko\u0142ach DeFi takich jak np. uniswap. Umo\u017cliwia nam korzystanie z najcz\u0119\u015bciej u\u017cywanych implementacji standard\u00f3w ERC (Ethereum Request For Comments) oraz reu\u017cywalnych kontrakt\u00f3w.<\/p>\n\n\n\n<p>Biblioteka ta posiada du\u017c\u0105 gam\u0119 komponent\u00f3w mo\u017cliwych do wykorzystania przy implementacji najbardziej popularnych funkcjonalno\u015bci po stronie smart kontrakt\u00f3w. Jako przyk\u0142ad podam dwa zastosowania biblioteki. Uwa\u017cam jednak, \u017ce warto pozna\u0107 wszystkie mo\u017cliwo\u015bci oraz kontrakty, kt\u00f3re s\u0105 tam udost\u0119pnione.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Rozszerzenie Ownable oraz AccessControl<\/li><\/ul>\n\n\n\n<p>Rozszerzenia te pozwalaj\u0105 nam w bardzo \u0142atwy spos\u00f3b na dodanie kontroli dost\u0119pu do funkcji, kt\u00f3re zgodnie z wymaganiami biznesowymi powinny by\u0107 dost\u0119pne do wykonania tylko dla uprawnionych adres\u00f3w. Przyk\u0142ad z dokumentacji pokazuj\u0105cy wykorzystanie rozszerzenia Ownable w praktyce:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pragma solidity ^0.8.0;\n \nimport \"@openzeppelin\/contracts\/access\/Ownable.sol\";\n \ncontract MyContract is Ownable {\n    function normalThing() public {\n        \/\/ anyone can call this normalThing()\n    }\n \n    function specialThing() public onlyOwner {\n        \/\/ only the owner can call specialThing()!\n    }\n}<\/code><\/pre>\n\n\n\n<p>Jak wida\u0107 korzystanie z biblioteki openzeppelin jest nie tylko bardzo proste, ale te\u017c pozwala na pisanie bardziej zwi\u0119z\u0142ego, zrozumia\u0142ego dla innych developer\u00f3w kodu.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Implementacje popularnych standard\u00f3w token\u00f3w ERC-20, ERC-721 oraz ERC-1155 <\/li><\/ul>\n\n\n\n<p>Wiele zdecentralizowanych aplikacji oraz protoko\u0142\u00f3w bazuje na tokenach ERC-20 b\u0105d\u017a NFT. Ka\u017cdy token musi posiada\u0107 zaimplementowany interfejs, dzia\u0142aj\u0105cy zgodnie z specyfikacj\u0105. Implementacja tokena w ca\u0142o\u015bci samodzielnie wi\u0105\u017ce si\u0119 z du\u017cym ryzykiem pope\u0142nienia b\u0142\u0119du przez co nasz token mo\u017ce posiada\u0107 luki bezpiecze\u0144stwa b\u0105d\u017a problemy z dzia\u0142aniem na r\u00f3\u017cnego rodzaju gie\u0142dach i portfelach. Z pomoc\u0105 biblioteki openzeppelin jeste\u015bmy w stanie przygotowa\u0107 standardowy, funkcjonalny token oraz wzbogaci\u0107 go o najpopularniejsze rozszerzenia ma\u0142ym nak\u0142adem pracy. Dobrym miejsce na start jest <a href=\"https:\/\/docs.openzeppelin.com\/contracts\/4.x\/wizard\" rel=\"nofollow\">interaktywny konfigurator token\u00f3w w dokumentacji openzeppelin<\/a>, pozwala on nam na wygenerowanie kodu \u017ar\u00f3d\u0142owego tokena, kt\u00f3ry spe\u0142nia\u0107 b\u0119dzie wymogi funkcjonalne oraz standardy bezpiecze\u0144stwa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"htoc-4-u-ywanie-nowych-wersji-j-zyka-solidity\">4. U\u017cywanie nowych wersji j\u0119zyka Solidity<\/h2>\n\n\n\n<p>Istotn\u0105 wskaz\u00f3wk\u0105 dotycz\u0105c\u0105 bezpiecze\u0144stwa jest to, \u017ceby w projektach korzysta\u0107 z nowych wersji j\u0119zyka Solidity. Kompilator wymaga od nas, aby na pocz\u0105tku ka\u017cdego pliku zr\u00f3d\u0142owego z rozszerzeniem .sol znajdowa\u0142a si\u0119 informacja o wersji Solidity:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pragma solidity 0.8.17;<\/code><\/pre>\n\n\n\n<p>W raz z nowymi wersjami j\u0119zyka s\u0105 wprowadzane nowe featury, ale opr\u00f3cz tego istotne jest to, \u017ce dodawane s\u0105 r\u00f3wnie\u017c poprawki do r\u00f3\u017cnego rodzaju znanych b\u0142\u0119d\u00f3w. Lista stwierdzonych b\u0142\u0119d\u00f3w w poszczeg\u00f3lnych wersjach znajduje si\u0119 <a href=\"https:\/\/github.com\/ethereum\/solidity\/blob\/develop\/docs\/bugs_by_version.json\" rel=\"nofollow\">w tym pliku<\/a>. Jak mo\u017cna zauwa\u017cy\u0107 wraz z nowszymi wersjami j\u0119zyka liczba b\u0142\u0119d\u00f3w maleje i jest sukcesywnie naprawiana.&nbsp;<\/p>\n\n\n\n<p>Tw\u00f3rcy j\u0119zyka w <a href=\"https:\/\/docs.soliditylang.org\/en\/latest\/index.html#solidity\" rel=\"nofollow\">oficjalnej dokumentacji<\/a> r\u00f3wnie\u017c rekomenduj\u0105 u\u017cywanie najnowszej wersji w nowo wdra\u017canych smart kontraktach: \u201c<em>Podczas wdra\u017cania kontrakt\u00f3w, nale\u017cy u\u017cywa\u0107 najnowszej wydanej wersji Solidity. Poza wyj\u0105tkowymi przypadkami, tylko najnowsza wersja otrzymuje <a href=\"https:\/\/github.com\/ethereum\/solidity\/security\/policy#supported-versions\" rel=\"nofollow\">poprawki bezpiecze\u0144stwa<\/a><\/em>&#8220;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"htoc-5-nauka-na-cudzych-b-dach\">5. Nauka na cudzych b\u0142\u0119dach<\/h2>\n\n\n\n<p>Niezb\u0119dnym czynnikiem, kt\u00f3ry pozwoli nam na dostarczanie bezpiecznego oprogramowania jest sama wiedza na temat zaawansowanych aspekt\u00f3w j\u0119zyka Solidity, a tak\u017ce \u015bwiadomo\u015b\u0107 potencjalnych zagro\u017ce\u0144. W przesz\u0142o\u015bci byli\u015bmy \u015bwiadkami wielu podatno\u015bci, gdzie \u0142upem atakuj\u0105cego pada\u0142y \u015brodki o <a href=\"https:\/\/decrypt.co\/93874\/biggest-defi-hacks-heists\" rel=\"nofollow\">warto\u015bci wielu milion\u00f3w dolar\u00f3w<\/a>. W internecie mo\u017cna znale\u017a\u0107 wiele przyk\u0142ad\u00f3w takich incydent\u00f3w wraz z dok\u0142adn\u0105 informacj\u0105, jaki b\u0142\u0105d zosta\u0142 pope\u0142niony przez developer\u00f3w oraz jak mo\u017cna by\u0142o temu zapobiec. Przyk\u0142adem powy\u017cszego jest artyku\u0142 wyja\u015bniaj\u0105cy atak typu \u201creentrancy\u201d, z pomoc\u0105 kt\u00f3rego <a href=\"https:\/\/blog.chain.link\/reentrancy-attacks-and-the-dao-hack\/\" rel=\"nofollow\">atakuj\u0105cy dokona\u0142 kradzie\u017cy ETH o warto\u015bci 150 milion\u00f3w dolar\u00f3w<\/a>. Lista mo\u017cliwo\u015bci zaatakowania smart kontrakt\u00f3w jest zdecydowanie d\u0142u\u017csza, warto zatem zapozna\u0107 si\u0119 z <a href=\"https:\/\/medium.com\/coinmonks\/smart-contracts-common-vulnerabilities-solidity-e64c5506b7f4\" rel=\"nofollow\">list\u0105 najpopularniejszych podatno\u015bci w j\u0119zyku Solidity<\/a>.&nbsp;Dobrym sposobem nauki bezpiecze\u0144stwa jest r\u00f3wnie\u017c wcielenie si\u0119 w rol\u0119 atakuj\u0105cego, w tym celu wartym uwagi jest serwis <a href=\"https:\/\/ethernaut.openzeppelin.com\/\" rel=\"nofollow\">ethernaut<\/a>. Znajdziemy tam zbi\u00f3r zada\u0144 polegaj\u0105cych na zhakowaniu r\u00f3\u017cnych smart kontrakt\u00f3w, zadania te pomog\u0105 utrwali\u0107 wcze\u015bniej zdobyt\u0105 wiedz\u0119 na temat bezpiecze\u0144stwa oraz pozna\u0107 nowe zaawansowane aspekty j\u0119zyka Solidity.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"htoc-summa\">Podsumowanie<\/h2>\n\n\n\n<p>Podsumowuj\u0105c, bezpiecze\u0144stwo smart kontrakt\u00f3w jest bardzo istotnym, ale te\u017c trudnym zagadnieniem wymagaj\u0105cym znajomo\u015bci nie tylko samego j\u0119zyka programowania. Wymagana jest r\u00f3wnie\u017c umiej\u0119tno\u015bci testowania, ch\u0119\u0107 do ci\u0105g\u0142ego explorowania tematyki podatno\u015bci smart kontrakt\u00f3w, wiedza na temat nowych bibliotek oraz narz\u0119dzi. Temat ten jest rozleg\u0142y i skomplikowany, a powy\u017csze 5 punkt\u00f3w to jedynie wskaz\u00f3wki, kt\u00f3re mog\u0105 pom\u00f3c w poprawie bezpiecze\u0144stwa naszego kodu oraz z zwi\u0105zan\u0105 z tym nauk\u0105. Koniecznie zajrzyjcie r\u00f3wnie\u017c do innych artyku\u0142\u00f3w z serii <a href=\"https:\/\/clone.nextrope.com\/pl\/jak-stworzyc-inteligentny-kontrakt-hello-world-za-pomoca-solidity\/\" rel=\"nofollow\">Nextrope Academy<\/a>, gdzie przybli\u017camy inne techniczne zagadnienia.<\/p>","protected":false},"excerpt":{"rendered":"<p>Dlaczego bezpiecze\u0144stwo smart kontrakt\u00f3w jest wa\u017cne? Smart kontrakty s\u0105 g\u0142\u00f3wn\u0105 cz\u0119\u015bci\u0105 aplikacji opartych o technologi\u0119 blockchain. W procesie developmentu smart kontrakt\u00f3w powinni\u015bmy zachowywa\u0107 najwy\u017csze standardy bezpiecze\u0144stwa z powodu czynnik\u00f3w takich jak:&nbsp; w wielu systemach odpowiadaj\u0105 one za najbardziej krytyczne funkcjonalno\u015bci, kt\u00f3rych niepoprawne dzia\u0142anie mo\u017ce si\u0119 wi\u0105za\u0107 z wieloma bardzo przykrymi konsekwencjami m.in nieodwracalna utrata \u015brodk\u00f3w, [&hellip;]<\/p>","protected":false},"author":16,"featured_media":2455,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"iawp_total_views":0,"footnotes":""},"categories":[1337,1353],"tags":[],"class_list":["post-2439","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bezpieczenstwo-blockchain","category-tutoriale"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bezpiecze\u0144stwo smart kontrakt\u00f3w - 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy - Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services<\/title>\n<meta name=\"description\" content=\"Bezpiecze\u0144stwo smart kontrakt\u00f3w, a raczej nauka pisania bezpiecznych smart kontrakt\u00f3w jest procesem wymagaj\u0105cym poznania wielu zaawansowanych aspekt\u00f3w j\u0119zyka Solidity.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bezpiecze\u0144stwo smart kontrakt\u00f3w - 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy - Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services\" \/>\n<meta property=\"og:description\" content=\"Bezpiecze\u0144stwo smart kontrakt\u00f3w, a raczej nauka pisania bezpiecznych smart kontrakt\u00f3w jest procesem wymagaj\u0105cym poznania wielu zaawansowanych aspekt\u00f3w j\u0119zyka Solidity.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/\" \/>\n<meta property=\"og:site_name\" content=\"Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/weknowtheropes\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-10T09:41:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-08T20:40:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paulina Lewandowska\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paulina Lewandowska\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/\"},\"author\":{\"name\":\"Paulina Lewandowska\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#\\\/schema\\\/person\\\/9e092eb5882f3c64bff1c90187bc7edd\"},\"headline\":\"Bezpiecze\u0144stwo smart kontrakt\u00f3w &#8211; 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy\",\"datePublished\":\"2022-10-10T09:41:51+00:00\",\"dateModified\":\"2024-04-08T20:40:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/\"},\"wordCount\":1434,\"publisher\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/clone.nextrope.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/5-rules-for-writing-safe-smart-contracts-1.jpg\",\"articleSection\":[\"Bezpiecze\u0144stwo Blockchain\",\"Tutoriale\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/\",\"url\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/\",\"name\":\"Bezpiecze\u0144stwo smart kontrakt\u00f3w - 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy - Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/clone.nextrope.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/5-rules-for-writing-safe-smart-contracts-1.jpg\",\"datePublished\":\"2022-10-10T09:41:51+00:00\",\"dateModified\":\"2024-04-08T20:40:44+00:00\",\"description\":\"Bezpiecze\u0144stwo smart kontrakt\u00f3w, a raczej nauka pisania bezpiecznych smart kontrakt\u00f3w jest procesem wymagaj\u0105cym poznania wielu zaawansowanych aspekt\u00f3w j\u0119zyka Solidity.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/#primaryimage\",\"url\":\"https:\\\/\\\/clone.nextrope.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/5-rules-for-writing-safe-smart-contracts-1.jpg\",\"contentUrl\":\"https:\\\/\\\/clone.nextrope.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/5-rules-for-writing-safe-smart-contracts-1.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/wsparcie-konsultacje-technologie-web3-blockchain-nextrope\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bezpiecze\u0144stwo smart kontrakt\u00f3w &#8211; 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#website\",\"url\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/\",\"name\":\"Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services\",\"description\":\"Fintech Software House\",\"publisher\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#organization\",\"name\":\"Nextrope\",\"url\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/clone.nextrope.com\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/logo-dark.png\",\"contentUrl\":\"https:\\\/\\\/clone.nextrope.com\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/logo-dark.png\",\"width\":180,\"height\":40,\"caption\":\"Nextrope\"},\"image\":{\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/weknowtheropes\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/nextrope\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/#\\\/schema\\\/person\\\/9e092eb5882f3c64bff1c90187bc7edd\",\"name\":\"Paulina Lewandowska\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a25208a624321c409516a1c2dc6a3e6501f015e1360e7769e49b6a87d5617e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a25208a624321c409516a1c2dc6a3e6501f015e1360e7769e49b6a87d5617e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a25208a624321c409516a1c2dc6a3e6501f015e1360e7769e49b6a87d5617e?s=96&d=mm&r=g\",\"caption\":\"Paulina Lewandowska\"},\"url\":\"https:\\\/\\\/clone.nextrope.com\\\/pl\\\/author\\\/p-lewandowska\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bezpiecze\u0144stwo smart kontrakt\u00f3w - 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy - Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services","description":"Bezpiecze\u0144stwo smart kontrakt\u00f3w, a raczej nauka pisania bezpiecznych smart kontrakt\u00f3w jest procesem wymagaj\u0105cym poznania wielu zaawansowanych aspekt\u00f3w j\u0119zyka Solidity.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/","og_locale":"pl_PL","og_type":"article","og_title":"Bezpiecze\u0144stwo smart kontrakt\u00f3w - 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy - Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services","og_description":"Bezpiecze\u0144stwo smart kontrakt\u00f3w, a raczej nauka pisania bezpiecznych smart kontrakt\u00f3w jest procesem wymagaj\u0105cym poznania wielu zaawansowanych aspekt\u00f3w j\u0119zyka Solidity.","og_url":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/","og_site_name":"Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services","article_publisher":"https:\/\/www.facebook.com\/weknowtheropes\/","article_published_time":"2022-10-10T09:41:51+00:00","article_modified_time":"2024-04-08T20:40:44+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1.jpg","type":"image\/jpeg"}],"author":"Paulina Lewandowska","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Paulina Lewandowska","Szacowany czas czytania":"6 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/#article","isPartOf":{"@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/"},"author":{"name":"Paulina Lewandowska","@id":"https:\/\/clone.nextrope.com\/pl\/#\/schema\/person\/9e092eb5882f3c64bff1c90187bc7edd"},"headline":"Bezpiecze\u0144stwo smart kontrakt\u00f3w &#8211; 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy","datePublished":"2022-10-10T09:41:51+00:00","dateModified":"2024-04-08T20:40:44+00:00","mainEntityOfPage":{"@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/"},"wordCount":1434,"publisher":{"@id":"https:\/\/clone.nextrope.com\/pl\/#organization"},"image":{"@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/#primaryimage"},"thumbnailUrl":"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1.jpg","articleSection":["Bezpiecze\u0144stwo Blockchain","Tutoriale"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/","url":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/","name":"Bezpiecze\u0144stwo smart kontrakt\u00f3w - 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy - Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services","isPartOf":{"@id":"https:\/\/clone.nextrope.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/#primaryimage"},"image":{"@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/#primaryimage"},"thumbnailUrl":"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1.jpg","datePublished":"2022-10-10T09:41:51+00:00","dateModified":"2024-04-08T20:40:44+00:00","description":"Bezpiecze\u0144stwo smart kontrakt\u00f3w, a raczej nauka pisania bezpiecznych smart kontrakt\u00f3w jest procesem wymagaj\u0105cym poznania wielu zaawansowanych aspekt\u00f3w j\u0119zyka Solidity.","breadcrumb":{"@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/#primaryimage","url":"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1.jpg","contentUrl":"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2022\/10\/5-rules-for-writing-safe-smart-contracts-1.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/clone.nextrope.com\/pl\/bezpieczenstwo-smart-kontraktow-5-zasad-pisania-bezpiecznych-smart-kontraktow-nextrope-academy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/clone.nextrope.com\/pl\/wsparcie-konsultacje-technologie-web3-blockchain-nextrope\/"},{"@type":"ListItem","position":2,"name":"Bezpiecze\u0144stwo smart kontrakt\u00f3w &#8211; 5 zasad pisania bezpiecznych smart kontrakt\u00f3w. | Nextrope Academy"}]},{"@type":"WebSite","@id":"https:\/\/clone.nextrope.com\/pl\/#website","url":"https:\/\/clone.nextrope.com\/pl\/","name":"Nextrope - Your Trusted Partner for Blockchain Development and Advisory Services","description":"Fintech Software House","publisher":{"@id":"https:\/\/clone.nextrope.com\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/clone.nextrope.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/clone.nextrope.com\/pl\/#organization","name":"Nextrope","url":"https:\/\/clone.nextrope.com\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/clone.nextrope.com\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2020\/07\/logo-dark.png","contentUrl":"https:\/\/clone.nextrope.com\/wp-content\/uploads\/2020\/07\/logo-dark.png","width":180,"height":40,"caption":"Nextrope"},"image":{"@id":"https:\/\/clone.nextrope.com\/pl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/weknowtheropes\/","https:\/\/www.linkedin.com\/company\/nextrope"]},{"@type":"Person","@id":"https:\/\/clone.nextrope.com\/pl\/#\/schema\/person\/9e092eb5882f3c64bff1c90187bc7edd","name":"Paulina Lewandowska","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/36a25208a624321c409516a1c2dc6a3e6501f015e1360e7769e49b6a87d5617e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/36a25208a624321c409516a1c2dc6a3e6501f015e1360e7769e49b6a87d5617e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/36a25208a624321c409516a1c2dc6a3e6501f015e1360e7769e49b6a87d5617e?s=96&d=mm&r=g","caption":"Paulina Lewandowska"},"url":"https:\/\/clone.nextrope.com\/pl\/author\/p-lewandowska\/"}]}},"_links":{"self":[{"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/posts\/2439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/comments?post=2439"}],"version-history":[{"count":6,"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/posts\/2439\/revisions"}],"predecessor-version":[{"id":2505,"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/posts\/2439\/revisions\/2505"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/media\/2455"}],"wp:attachment":[{"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/media?parent=2439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/categories?post=2439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/clone.nextrope.com\/pl\/wp-json\/wp\/v2\/tags?post=2439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}