{"id":413843,"date":"2024-06-29T23:23:02","date_gmt":"2024-06-29T23:23:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=413843"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T23:23:02","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=413843","title":{"rendered":"<span>\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e Solana \u0438 ed25519<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/e2c\/680\/970\/e2c6809706dc8aa5c3d0bf143d9dc72b.jpg\" alt=\"\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0438\u043b\u044c\u043d\u043e\" title=\"\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0438\u043b\u044c\u043d\u043e\" width=\"1140\" height=\"760\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e2c\/680\/970\/e2c6809706dc8aa5c3d0bf143d9dc72b.jpg\" data-blurred=\"true\"\/><figcaption>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0438\u043b\u044c\u043d\u043e<\/figcaption><\/figure>\n<p>\u0414\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0451 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0440\u0430\u0441\u0442\u0443\u0442, \u0440\u044b\u043d\u043e\u043a \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u043c\u0438 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u044f\u043c\u0438. \u041d\u0435\u0442 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0444\u0435\u0440\u0430 \u0443\u0436\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u043c\u0438\u0440. \u041e\u0431 \u044d\u0442\u043e\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043b\u0433\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0442\u044c, \u043d\u043e \u043c\u043e\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e \u0434\u0440\u0443\u0433\u043e\u043c. \u0412 \u0444\u043e\u043a\u0443\u0441\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u0432\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0435\u0449\u0438: on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Solana \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 ed25519. \u041a \u0447\u044c\u0435\u043c\u0443-\u0442\u043e \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0439 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u0445. \u0417\u0430\u0442\u043e \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 Solana, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u043d\u0435\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 ed25519 \u0438 \u043a\u0430\u043a \u043e\u043d \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h2>Solana<\/h2>\n<p><a href=\"https:\/\/solana.com\" rel=\"noopener noreferrer nofollow\">Solana<\/a> &#8212; \u044d\u0442\u043e \u043c\u043e\u043b\u043e\u0434\u043e\u0439 \u0431\u044b\u0441\u0442\u0440\u043e\u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439 Solana \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0442\u0438, \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439. \u0420\u043e\u0434\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a\u043e\u043c \u0438\u0434\u0435\u0439, \u043b\u0435\u0436\u0430\u0449\u0438\u0445 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Solana, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u043c CEO Solana Foundation \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u042f\u043a\u043e\u0432\u0435\u043d\u043a\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u043b\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 Qualcomm. \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d \u0441\u0435\u0442\u0438 \u043d\u043e\u0441\u0438\u0442 \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043a\u0440\u0430\u0442\u043a\u043e SOL), \u0430 \u0435\u0433\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 &#8212; lamport <em>(\u0440\u0443. \u043b\u044d\u043c\u043f\u043e\u0440\u0442),<\/em> \u0440\u0430\u0432\u043d\u044b\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"10^{-9}\" alt=\"10^{-9}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c35\/cf1\/0c8\/c35cf10c88aa92f8f53e086403142fb7.svg\"\/>SOL. Solana \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Proof-of-Stake \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Proof-of-History \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043a \u0441\u043b\u043e\u0432\u0443, \u0434\u043b\u044f Solana \u0438 \u0431\u044b\u043b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d.<\/p>\n<h2>Account<\/h2>\n<p>\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446 Solana \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442 &#8212; \u044d\u0442\u043e \u043f\u0430\u0440\u0430 \u0438\u0437 32-\u0431\u0430\u0439\u0442\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u043e\u043c, \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443. \u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"rust\">pub struct Account {     pub lamports: u64,     pub data: Vec&lt;u8>,     pub owner: Pubkey,     pub executable: bool,   pub rent_epoch: Epoch, }<\/code><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 \u043f\u043e\u043b\u0435\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u0411\u0430\u043b\u0430\u043d\u0441 \u0432 \u043b\u044d\u043c\u043f\u043e\u0440\u0442\u0430\u0445 lamports<\/p>\n<\/li>\n<li>\n<p>\u0412\u0435\u043a\u0442\u043e\u0440 \u0431\u0430\u0439\u0442\u043e\u0432 data, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e (\u0438\u043b\u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e) \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e<\/p>\n<\/li>\n<li>\n<p>\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446 owner &#8212; 32-\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u043c (\u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0430\u043b\u0435\u0435)<\/p>\n<\/li>\n<li>\n<p>\u0424\u043b\u0430\u0433 executable, \u0440\u0430\u0432\u043d\u044b\u0439 true, \u0435\u0441\u043b\u0438 \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u0435 rent_epoch \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0442\u0430\u0442\u044c\u0438. \u0417\u0430\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0442\u0438\u043f Pubkey \u044f \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u043b 32-\u0431\u0430\u0439\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c. \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b \u044d\u0442\u0438\u0445 32 \u0431\u0430\u0439\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442 \u043f\u043e\u0437\u0436\u0435, \u0430 \u043f\u043e\u043a\u0430 \u0431\u0443\u0434\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0430\u0434\u0440\u0435\u0441\u043e\u043c.<\/p>\n<h2>On-chain program<\/h2>\n<p>On-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 Solana &#8212; \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u0430\u044f <em>\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e<\/em>. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 (\u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u0430\u043c\u0438) \u0441\u0435\u0442\u0438, \u0438 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u0451\u043c \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430. \u0412 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0442\u044f\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 Ethereum \u0438 Near) \u044d\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\u043c\u0438. On-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Solana \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust (\u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u043d\u0430 C), \u043e\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b BPF. \u041a\u0430\u0436\u0434\u0430\u044f on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u0447\u043a\u0443 \u0432\u0445\u043e\u0434\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"rust\">entrypoint!(process_instruction); pub fn process_instruction(     program_id: &amp;Pubkey,     accounts: &amp;[AccountInfo],     instruction_data: &amp;[u8], ) -> ProgramResult {     process_somehow(program_id, accounts, instruction_data) }<\/code><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>program_id &#8212; \u0430\u0434\u0440\u0435\u0441 \u044d\u0442\u043e\u0439<em> <\/em>\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/p>\n<\/li>\n<li>\n<p>accounts &#8212; \u043c\u0430\u0441\u0441\u0438\u0432 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 (\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438) \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430<\/p>\n<\/li>\n<li>\n<p>instruction_data &#8212; \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u043b\u044e\u0431\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u044b\u0437\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0432 \u0441\u0435\u0442\u044c. \u041b\u044e\u0431\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442, \u0437\u043d\u0430\u044f \u0430\u0434\u0440\u0435\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0447\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0439, \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 RPC \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0441\u0435\u0442\u0438 Solana &#171;\u0432\u044b\u0437\u0432\u0430\u0442\u044c&#187; \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 AccountInfo, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435:   <\/p>\n<pre><code class=\"rust\">pub struct AccountInfo&lt;'a> {     pub key: &amp;'a Pubkey,     pub is_signer: bool,     pub is_writable: bool,     pub lamports: Rc&lt;RefCell&lt;&amp;'a mut u64>>,     pub data: Rc&lt;RefCell&lt;&amp;'a mut [u8]>>,     pub owner: &amp;'a Pubkey,     pub executable: bool,     pub rent_epoch: u64, }<\/code><\/pre>\n<p>\u041c\u043d\u043e\u0433\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0441 Rust. \u042d\u0442\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u044f\u0437\u044b\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0441\u0441\u044b\u043b\u043e\u043a, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f &#171;\u043f\u0440\u043e\u0433\u0443\u043b\u043a\u0438&#187; \u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e \u0441\u0442\u0435\u043a\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0435\u0435. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0440\u0438 \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Account:<\/p>\n<ul>\n<li>\n<p>key &#8212; \u0430\u0434\u0440\u0435\u0441 \u044d\u0442\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>is_signer &#8212; \u0444\u043b\u0430\u0433, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u0444\u0430\u043a\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u044d\u0442\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>is_writable &#8212; \u0444\u043b\u0430\u0433, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<p>is_signer \u0438 is_writable \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 Solana \u043c\u043e\u0436\u043d\u043e \u0433\u0438\u0431\u043a\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0443\u044e \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 is_writable, \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f owner&#8217;\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430, \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u043f\u043e\u043b\u0435 lamports \u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 data (\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435 lamports \u043c\u043e\u0436\u0435\u0442 \u043b\u044e\u0431\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0435 is_signer \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0432\u044b\u0437\u0432\u0430\u043b \u043b\u0438 \u0435\u0451 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0442\u043e\u0438\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a Pubkey, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0434\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u0430\u0434\u0440\u0435\u0441\u043e\u043c, \u0438 \u043f\u0440\u043e\u044f\u0441\u043d\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432 Solana \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 <em><u>\u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e<\/u><\/em> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0438\u0437 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 ed25519. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 (\u0431\u0443\u0434\u044c \u0442\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0439 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0443 \u0441\u0435\u0431\u044f \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435, \u0438\u043b\u0438 \u0440\u043e\u0431\u043e\u0442, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043a\u043b\u044e\u0447\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438) \u043c\u043e\u0436\u043d\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043f\u043e\u0434\u043b\u043e\u0436\u0438\u0432 \u0435\u0439 \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043b\u044e\u0431\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b. \u041d\u043e \u0444\u0430\u043a\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443. \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c ed25519. \u042f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0435\u0433\u043e \u0448\u0430\u0433\u0438 \u0438 \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>&#171;\u0441\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0440\u0443\u043a\u0430\u043c\u0438&#187;, <\/em>\u0431\u0435\u0437 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0439. \u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043d\u0430 \u043a\u043e\u043d\u0447\u0438\u043a\u0430\u0445 \u043f\u0430\u043b\u044c\u0446\u0435\u0432 \u043f\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c  \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Solana, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443.<\/p>\n<h2>ed25519<\/h2>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c ed25519, \u043a\u0440\u043e\u043c\u0435 \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u043a\u0440\u0430\u0441\u0438\u0432 \u0442\u0435\u043c, \u0447\u0442\u043e \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c <em>\u0431\u044b\u0441\u0442\u0440\u043e\u0439<\/em>. \u0412\u043e\u0442 \u0440\u044f\u0434 \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432, <em>\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445<\/em> \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b<\/p>\n<details class=\"spoiler\">\n<summary>\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0437\u0430\u0442\u043e\u0447\u0438\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 x86_64 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445 Intel.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0415\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u0437 64 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0437\u0430 \u0441\u0447\u0451\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 \u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f\u0445. \u0422\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u043e \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u0434 \/ \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 iL1 \/ dL1 \u043a\u044d\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0447\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u043e\u0439\u043d\u0443 \u0437\u0430 \u043a\u044d\u0448\u0438 (<em>cache contention<\/em>) \u043f\u0440\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0412\u0432\u0438\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0442\u043e\u043d\u043a\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u0434 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u0443, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432 \u041f\u041e \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0447\u0438\u0441\u043b\u0430 \u0442\u0430\u043a\u0442\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0438\u0437 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u043c. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u0430\u0451\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 Linux, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041d\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043a \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u041f\u041e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0431\u044b\u043b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c, \u0430 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0443\u0442\u0435\u0447\u044c \u0447\u0435\u0440\u0435\u0437 \u043a\u044d\u0448. <\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041d\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0430\u0442\u0442\u0435\u0440\u043d \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c, \u041f\u041e \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043e \u043e\u0442 \u0443\u0442\u0435\u0447\u0435\u043a \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u043e\u0434\u043f\u0438\u0441\u044c \u0432 \u0441\u0436\u0430\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u0438\u043c\u0435\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 64 \u0431\u0430\u0439\u0442\u0430<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043a\u043b\u044e\u0447\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 (\u0432 \u0441\u0436\u0430\u0442\u043e\u043c \u0432\u0438\u0434\u0435) \u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447\u0438 \u0438\u043c\u0435\u044e\u0442 \u0434\u043b\u0438\u043d\u0443 \u043f\u043e 32 \u0431\u0430\u0439\u0442\u0430 \u043a\u0430\u0436\u0434\u044b\u0439<\/p>\n<\/div>\n<\/details>\n<p>\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u0430 &#8212; \u0448\u0442\u0443\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f, \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043b\u0433\u043e. \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 ed25519 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0431\u043e\u0440\u043e\u043c 7 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432:<\/p>\n<ol>\n<li>\n<p>\u0426\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <img decoding=\"async\" class=\"formula inline\" source=\"b  \\geqslant 10\" alt=\"b  \\geqslant 10\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/079\/c10\/da5\/079c10da5329723c1a8777f78481503d.svg\"\/><\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0445\u044d\u0448-\u0444\u0443\u043d\u043a\u0446\u0438\u044f H, \u0434\u0430\u044e\u0449\u0430\u044f \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"2b\" alt=\"2b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c41\/e95\/041\/c41e950415733c56f4031d2618c2b612.svg\"\/>&#8212; \u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <img decoding=\"async\" class=\"formula inline\" source=\"q \\cong 1 \\ (mod\\ 4)\" alt=\"q \\cong 1 \\ (mod\\ 4)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6de\/b06\/ba2\/6deb06ba20e225af12761ef17c53b13a.svg\"\/>, \u0437\u0430\u0434\u0430\u044e\u0449\u0435\u0435 \u043f\u043e\u043b\u0435 \u0413\u0430\u043b\u0443\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"GF(q)\" alt=\"GF(q)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e7c\/21e\/f4a\/e7c21ef4ab2045bdcb90183a557e27b4.svg\"\/><\/p>\n<\/li>\n<li>\n<p>\u0427\u0438\u0441\u043b\u043e <img decoding=\"async\" class=\"formula inline\" source=\"d \\in GF(q)\" alt=\"d \\in GF(q)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/00a\/d9d\/9b6\/00ad9d9b6a899684f6df510951570fcb.svg\"\/>, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0435\u0441\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u043c \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u0435 (\u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 <em>\u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u043d\u0435\u0432\u044b\u0447\u0435\u0442<\/em>)<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u0447\u043a\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"B \\in E, B \\neq (0, 1)\" alt=\"B \\in E, B \\neq (0, 1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ce7\/cd7\/7f1\/ce7cd77f11b3cf413bc5357ed99c5285.svg\"\/>, \u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"E\" alt=\"E\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2fb\/a22\/6af\/2fba226af867b1803fb0d820df68ced0.svg\"\/>&#8212; \u044d\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430 \u0442\u043e\u0447\u0435\u043a \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439 \u043d\u0430\u0434 <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"E = \\{(x, y) \\in GF(q) \\times GF(q) : -x^2 + y^2 = 1 + dx^2y^2\\}\" alt=\"E = \\{(x, y) \\in GF(q) \\times GF(q) : -x^2 + y^2 = 1 + dx^2y^2\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/654\/dc1\/5b4\/654dc15b43e2c2e285ee3466c90ede0d.svg\" width=\"465\" height=\"25\"\/><\/li>\n<li>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"l \\in [2^{b-4};\\  2^{b-3}]\" alt=\"l \\in [2^{b-4};\\  2^{b-3}]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/272\/a0a\/110\/272a0a11069f33c1ac388ee55c3f121b.svg\"\/>\u0442\u0430\u043a\u043e\u0435, \u0447\u0442\u043e <img decoding=\"async\" class=\"formula inline\" source=\"lB = (0, 1)\" alt=\"lB = (0, 1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d40\/1b6\/7e9\/d401b67e9fc43233ddc98f34d893aa17.svg\"\/>(\u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0433\u0440\u0443\u043f\u043f\u044b)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431 <img decoding=\"async\" class=\"formula inline\" source=\"b-1\" alt=\"b-1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/168\/035\/d0a\/168035d0a3b5af212575ee87bdae7629.svg\"\/>&#8212; \u0431\u0438\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <img decoding=\"async\" class=\"formula inline\" source=\"GF(q)\" alt=\"GF(q)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f88\/7ee\/0ef\/f887ee0efdc9fc8390ab6aedc8154eaa.svg\"\/><\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0440\u0438\u0432\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0440\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439 \u042d\u0434\u0432\u0430\u0440\u0434\u0441\u0430 (Twisted Edwards Curve). \u0413\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0437\u0430\u043a\u043e\u043d \u043d\u0430 \u043d\u0435\u0439 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(x_1, y_1) + (x_2, y_2) = \\left(\\frac{x_1y_2 + x_2y_1}{1 + dx_1x_2y_1y_2}, \\frac{y_1y_2 + x_1x_2}{1 - dx_1x_2y_1y_2}\\right)\" alt=\"(x_1, y_1) + (x_2, y_2) = \\left(\\frac{x_1y_2 + x_2y_1}{1 + dx_1x_2y_1y_2}, \\frac{y_1y_2 + x_1x_2}{1 - dx_1x_2y_1y_2}\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/672\/d74\/c87\/672d74c8722c5fc513dabb454ab26c14.svg\" width=\"469\" height=\"50\"\/><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438\u0437 <img decoding=\"async\" class=\"formula inline\" source=\"GF(q)\" alt=\"GF(q)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ce\/1b9\/cfd\/0ce1b9cfd907836315aaba0144df5200.svg\"\/>, \u043a\u0430\u043a \u201c\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435\u201d. \u0414\u043b\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ed0\/21a\/5d2\/ed021a5d2d991bece55bc20f37200251.svg\"\/> \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/616\/51b\/d85\/61651bd85910e074d06fba34b1bd8a01.svg\"\/> \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"q-x\" alt=\"q-x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/399\/a45\/e14\/399a45e148bd15ddbbaf194659517fb2.svg\"\/>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f <img decoding=\"async\" class=\"formula inline\" source=\"q=13\" alt=\"q=13\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a31\/1ec\/f61\/a311ecf61167ed8291f7680d49b44de3.svg\"\/> \u0432 \u043f\u043e\u043b\u0435<img decoding=\"async\" class=\"formula inline\" source=\"GF(q) = \\{0, 1, 2, 3, 4, 5, .., 12\\}\" alt=\"GF(q) = \\{0, 1, 2, 3, 4, 5, .., 12\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aa2\/457\/463\/aa2457463b7313e3879fd523a679cc08.svg\"\/>\u043f\u0440\u0438 little-endian \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f <img decoding=\"async\" class=\"formula inline\" source=\"\\{1, 3, 5, 7, 9, 11\\}\" alt=\"\\{1, 3, 5, 7, 9, 11\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/567\/39f\/cb8\/56739fcb8fc663b98d6d1f7e3a430998.svg\"\/>. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u043a\u0440\u0438\u0432\u043e\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"(x, y) \" alt=\"(x, y) \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/22c\/7c0\/852\/22c7c085223a092a4337d832bc390ced.svg\"\/>\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e <img decoding=\"async\" class=\"formula inline\" source=\"b\" alt=\"b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b88\/efa\/632\/b88efa632b455cc0eba0f0a06ddde21f.svg\"\/> \u0431\u0438\u0442: <img decoding=\"async\" class=\"formula inline\" source=\"b-1\" alt=\"b-1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/633\/cf9\/d53\/633cf9d53598ed560d107d78e958b6ba.svg\"\/> \u0431\u0438\u0442 \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"y\" alt=\"y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a4c\/59a\/9fa\/a4c59a9fad9f0ce1d125d4c0bc91bf3c.svg\"\/> \u0438 \u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d5d\/0d8\/674\/d5d0d8674f7cd3965d4a59a979c424a0.svg\"\/>, \u0430 \u0441\u0430\u043c <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cb1\/3ca\/674\/cb13ca674ca5f99547e13f4f489c1de3.svg\"\/> \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c (\u0432 \u043f\u043e\u043b\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"GF(q)\" alt=\"GF(q)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/063\/a25\/0bf\/063a250bf37d7650cdb7b2088db4a2c2.svg\"\/>, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x = \\pm \\sqrt{(y^2 - 1) \/ (dy^2 + 1)}\" alt=\"x = \\pm \\sqrt{(y^2 - 1) \/ (dy^2 + 1)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/516\/e66\/57e\/516e6657e235d65034035af3023604f3.svg\" width=\"227\" height=\"39\"\/><\/p>\n<h2>\u041a\u043b\u044e\u0447\u0438, \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/h2>\n<p>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c <img decoding=\"async\" class=\"formula inline\" source=\"b\" alt=\"b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5fe\/a52\/173\/5fea52173d086cc5e9e3d1edfc38b0e3.svg\"\/>-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9e1\/13e\/d0a\/9e113ed0a5c5a580ab48f7ef3e120d32.svg\"\/>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c. \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043e\u0442 \u043d\u0435\u0433\u043e \u0445\u044d\u0448 <img decoding=\"async\" class=\"formula inline\" source=\"H(k) = (h_0, h_1, h_2, ..., h_{2b-1})\" alt=\"H(k) = (h_0, h_1, h_2, ..., h_{2b-1})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/569\/97c\/a9f\/56997ca9f72fcf9eb461d9025b44adf7.svg\"\/>, \u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"h_i\" alt=\"h_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d18\/e94\/c24\/d18e94c247e697e5154474cf55a5af9b.svg\"\/> &#8212; \u0431\u0438\u0442\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u044d\u0448\u0430. \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0447\u0438\u0441\u043b\u043e <img decoding=\"async\" class=\"formula inline\" source=\"a\" alt=\"a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e9a\/492\/bac\/e9a492bac17e5ae6ba0516c1daf15c2a.svg\"\/> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a = 2^{b-2} + \\sum_{ 3\\leqslant i \\leqslant b-3}{2^ih_i}\" alt=\"a = 2^{b-2} + \\sum_{ 3\\leqslant i \\leqslant b-3}{2^ih_i}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/018\/1f6\/492\/0181f6492c2a392f66aa1571ccea8ed5.svg\" width=\"190\" height=\"47\"\/><\/p>\n<p>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c <img decoding=\"async\" class=\"formula inline\" source=\"\\underline{A}\" alt=\"\\underline{A}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5cd\/8c2\/67e\/5cd8c267e988c271323979221eb270a2.svg\"\/>\u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"A = aB\" alt=\"A = aB\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/269\/985\/cf2\/269985cf2d65a8c7d7104dd4321c248c.svg\"\/>(\u0434\u0430\u043b\u0435\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u0435\u043a \u0431\u0443\u0434\u0443 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c <u>\u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435\u043c<\/u>). \u0412\u0432\u0438\u0434\u0443 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2b5\/062\/49a\/2b506249a2ec38e9c63f4692faf41ce5.svg\"\/> \u0442\u0430\u043a\u0436\u0435 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u044d\u0442\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439. \u0414\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"M\" alt=\"M\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d2e\/811\/570\/d2e81157023a5cd8294304413176c5ec.svg\"\/>:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0447\u0438\u0441\u043b\u043e <img decoding=\"async\" class=\"formula inline\" source=\"r = H(h_b, h_{b+1}, ..., h{2b-1}, M)\" alt=\"r = H(h_b, h_{b+1}, ..., h{2b-1}, M)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b32\/95e\/e27\/b3295ee27d54b072a6b204f53836e15e.svg\"\/><\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0439\u0434\u0451\u043c \u0442\u043e\u0447\u043a\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"R = rB\" alt=\"R = rB\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7fd\/90d\/e6d\/7fd90de6db4ba98963bf280af9836874.svg\"\/><\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0439\u0434\u0451\u043c \u0447\u0438\u0441\u043b\u043e <img decoding=\"async\" class=\"formula inline\" source=\"S = (r + H(\\underline{R}, \\underline{A}, M))\\ mod\\ l\" alt=\"S = (r + H(\\underline{R}, \\underline{A}, M))\\ mod\\ l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/64a\/c1f\/05f\/64ac1f05fa22fd8b16990140c4c8a530.svg\"\/><\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"2b\" alt=\"2b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bcd\/177\/f88\/bcd177f88f9a08767dc3b8456360b690.svg\"\/>&#8212;\u00a0\u0431\u0438\u0442\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"(\\underline{R}, \\underline{S})\" alt=\"(\\underline{R}, \\underline{S})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f63\/b45\/ad3\/f63b45ad3ab66bb03b33e3d644fefb32.svg\"\/><\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u043b\u044f \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430:<\/p>\n<ol>\n<li>\n<p>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"R \\in E\" alt=\"R \\in E\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ef\/3ee\/9a0\/7ef3ee9a0499bb3253a02f0858eda6da.svg\"\/><\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"A \\in E\" alt=\"A \\in E\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ea\/659\/701\/7ea65970147e8362bbfda5d6a8ef449f.svg\"\/><\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <img decoding=\"async\" class=\"formula inline\" source=\"S \\in[0; l-1]\" alt=\"S \\in[0; l-1]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bf7\/2cf\/32e\/bf72cf32eb3fcfead0ac723a7ca944e1.svg\"\/><\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e <img decoding=\"async\" class=\"formula inline\" source=\"SB = R + H(\\underline{R}, \\underline{A}, M)A\" alt=\"SB = R + H(\\underline{R}, \\underline{A}, M)A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/592\/021\/8c2\/5920218c2bd5dd167318079e8ad289fd.svg\"\/><\/p>\n<\/li>\n<\/ol>\n<p>\u0412\u044b\u044f\u0441\u043d\u0438\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438.<\/p>\n<p>\u0414\u043e\u043c\u043d\u043e\u0436\u0438\u043c <img decoding=\"async\" class=\"formula inline\" source=\"B\" alt=\"B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/29c\/e27\/67f\/29ce2767f1fb3e65caf28071cbfec171.svg\"\/> \u043d\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"S\" alt=\"S\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b1c\/7b8\/87b\/b1c7b887bc95c4b2d349ebc83ef7361f.svg\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"SB = ((r +  H(\\underline{R}, \\underline{A}, M)a)\\ mod \\ l)B\" alt=\"SB = ((r +  H(\\underline{R}, \\underline{A}, M)a)\\ mod \\ l)B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8d8\/89b\/b1f\/8d889bb1f92bf58002720b4da7e1fcb1.svg\" width=\"295\" height=\"27\"\/><\/p>\n<p>\u041f\u0443\u0441\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"S^* = r + H(\\underline{R}, \\underline{A}, M)a\" alt=\"S^* = r + H(\\underline{R}, \\underline{A}, M)a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/161\/137\/fb7\/161137fb738a6c5e909d6ffc5d247c1c.svg\"\/>, \u0442\u043e\u0433\u0434\u0430 \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e <img decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/70e\/9df\/bef\/70e9dfbef3eba0d3cd40ac8b0d3ab734.svg\"\/> \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"S^* = nl + S^* \\ mod \\ l\\\\S^*\\ mod \\ l = S^* - nl\" alt=\"S^* = nl + S^* \\ mod \\ l\\\\S^*\\ mod \\ l = S^* - nl\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/825\/9d6\/569\/8259d6569f99f50db58df4305e2f9675.svg\" width=\"685\" height=\"44\"\/><\/p>\n<p>\u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 <img decoding=\"async\" class=\"formula inline\" source=\"S^*\" alt=\"S^*\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/24e\/464\/19d\/24e46419daaa9d1070385f82373589d9.svg\"\/> \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"SB = (S^* - nl)B\\\\SB=S^*B-nlB\" alt=\"SB = (S^* - nl)B\\\\SB=S^*B-nlB\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/406\/fff\/264\/406fff2645a6902ac47563ccfc765092.svg\" width=\"685\" height=\"47\"\/><\/p>\n<p>\u041d\u043e <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fde\/5a1\/0a7\/fde5a10a7e4f2d1ee5870eb71c1f773b.svg\"\/>\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"B\" alt=\"B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/477\/de7\/cd1\/477de7cd14e4fb30574d7ebed12985be.svg\"\/> \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0442\u0430\u043a, \u0447\u0442\u043e <img decoding=\"async\" class=\"formula inline\" source=\"lB = (0,1) \" alt=\"lB = (0,1) \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ad\/0f6\/89a\/7ad0f689af439b7cfd71551e6eaf5e80.svg\"\/>&#8212; \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"SB = S^*B\\\\SB=rB + H(\\underline{R}, \\underline{A}, M)aB\\\\SB=R+H(\\underline{R}, \\underline{A}, M)A\" alt=\"SB = S^*B\\\\SB=rB + H(\\underline{R}, \\underline{A}, M)aB\\\\SB=R+H(\\underline{R}, \\underline{A}, M)A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a76\/09e\/efc\/a7609eefc2f23051fd5da3994cc46581.svg\" width=\"685\" height=\"79\"\/><\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e\u0442 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e, \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ul>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"b = 256\" alt=\"b = 256\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d48\/112\/8ce\/d481128cefceac797d6c779aa2e5a1b4.svg\"\/><\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"q = 2^{255} - 19\" alt=\"q = 2^{255} - 19\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d38\/8f9\/cee\/d388f9ceecd758b8c0af9ea2ddeec487.svg\"\/><\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"H = \" alt=\"H = \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e6b\/cb8\/441\/e6bcb844166f427ddaf8e9caf1caf576.svg\"\/>SHA-512<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b \u0438\u0437 <img decoding=\"async\" class=\"formula inline\" source=\"GF(q)\" alt=\"GF(q)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9d2\/e03\/7ea\/9d2e037eab63545fb94e8efe9e8665d0.svg\"\/> &#8212; \u043f\u0440\u043e\u0441\u0442\u043e\u0439 little-endian<\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"l = 2^{252} + 27742317777372353535851937790883648493\" alt=\"l = 2^{252} + 27742317777372353535851937790883648493\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e56\/092\/d3f\/e56092d3fd901174b91f58e82688414a.svg\"\/><\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"d = \u2212121665\/121666\u00a0\u2208\u00a0GF(q)\" alt=\"d = \u2212121665\/121666\u00a0\u2208\u00a0GF(q)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d05\/46d\/54a\/d0546d54a5ae05aab18a93a15a7649f9.svg\"\/><\/p>\n<\/li>\n<li>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"B = \\left(x,\u00a0\\frac{4}{5}\\right)\" alt=\"B = \\left(x,\u00a0\\frac{4}{5}\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fe6\/358\/91a\/fe635891a78daa905b8653be79426340.svg\"\/>, <img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c4\/567\/3a5\/3c45673a540da0b42eedfd22ea463867.svg\"\/> \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u0432\u043e\u0442 (\u043d\u0435)\u0445\u0438\u0442\u0440\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c ed25519.  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u043a\u0440\u0438\u0432\u043e\u0439. \u041d\u043e \u0432 Solana \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u0430 Pubkey \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u043a\u0440\u0438\u0432\u043e\u0439. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u043c\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 Solana, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <em>Program Derived Addresses (PDA).<\/em><\/p>\n<h2>PDA<\/h2>\n<p>\u0424\u0430\u043a\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0442\u043e\u0447\u043a\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e8c\/a02\/563\/e8ca02563be62f3d9a8fb9b3ef9dd77b.svg\"\/>\u043d\u0435 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u043a\u0440\u0438\u0432\u043e\u0439, \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f ed25519 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0442\u0430\u043a\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0430 \u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"\\underline{A}\" alt=\"\\underline{A}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f34\/2e1\/ca5\/f342e1ca5d2f84044939da55ebb6824a.svg\"\/>. \u0412 Solana \u044d\u0442\u043e \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0434\u0435\u043b\u0438\u0442\u044c on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u044f\u043a\u043e\u0431\u044b \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e. \u0421\u043f\u0435\u0440\u0432\u0430 \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"P_1\" alt=\"P_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4ac\/741\/998\/4ac7419983235940253667a623ab9826.svg\"\/>\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a\u0438\u043c-\u0442\u043e off-chain \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c. \u041e\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 <img decoding=\"async\" class=\"formula inline\" source=\"P_2\" alt=\"P_2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0c7\/d6f\/de2\/0c7d6fde2657059c33e8d167d1a59b9d.svg\"\/>. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c <img decoding=\"async\" class=\"formula inline\" source=\"P_1\" alt=\"P_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/352\/6d4\/7d1\/3526d47d185ed9ff02b53b23d2f18eae.svg\"\/>\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 <img decoding=\"async\" class=\"formula inline\" source=\"P_2\" alt=\"P_2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/445\/63f\/06b\/44563f06b8648a5a762aea9afb6c4abc.svg\"\/>\u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u0435 \u0435\u0441\u0442\u044c \u0441\u0440\u0435\u0434\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0432 <img decoding=\"async\" class=\"formula inline\" source=\"P_1\" alt=\"P_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/720\/e00\/acf\/720e00acf90803a2ebb17f76aae1865e.svg\"\/>. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u0432 <img decoding=\"async\" class=\"formula inline\" source=\"P_1\" alt=\"P_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/279\/5ae\/062\/2795ae062b892f4fd1486d0da6ede17d.svg\"\/>\u0431\u044b\u043b \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0430\u043a\u043a\u0430\u0443\u043d\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/541\/722\/a82\/541722a82735ecc7625b228c74ce0b72.svg\"\/>, \u043f\u043e\u043b\u0435 is_signer \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0432\u043d\u043e false. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 <em>\u043e\u0441\u043e\u0431\u044b\u043c<\/em> \u0430\u0434\u0440\u0435\u0441\u043e\u043c, \u0442\u043e <img decoding=\"async\" class=\"formula inline\" source=\"P_1\" alt=\"P_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/533\/851\/128\/533851128ce0518746efa33553cc6366.svg\"\/>\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u0432 <img decoding=\"async\" class=\"formula inline\" source=\"P_2\" alt=\"P_2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5ef\/d6a\/957\/5efd6a9575c47440c97a48bc228c0ccc.svg\"\/>c is_signer: true. <em>\u041e\u0441\u043e\u0431\u044b\u0439<\/em> \u0430\u0434\u0440\u0435\u0441 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0431\u0435\u0440\u0435\u043c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0441\u0438\u0434 <em>seed<\/em> (\u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\u043e\u0432), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0439\u0434\u0451\u043c \u0442\u0430\u043a\u043e\u0435 8-\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <em>bump_seed<\/em>, \u0447\u0442\u043e <em>SHA256(p1_id, seed, bump_seed) <\/em>\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 32-\u0431\u0430\u0439\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432 \u0442\u043e\u0447\u043a\u0443<em><img decoding=\"async\" class=\"formula inline\" source=\"(x, y)\" alt=\"(x, y)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/478\/d7a\/70e\/478d7a70e3ce37d96b6486402e172351.svg\"\/><\/em>\u043d\u0430 \u043a\u0440\u0438\u0432\u043e\u0439<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u0434 <em>p1_id <\/em>\u0437\u0434\u0435\u0441\u044c \u044f \u0438\u043c\u0435\u044e \u0432 \u0432\u0438\u0434\u0443 \u0430\u0434\u0440\u0435\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b <img decoding=\"async\" class=\"formula inline\" source=\"P_1\" alt=\"P_1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ce2\/b90\/b36\/ce2b90b363adc5c7dacacb5393feef94.svg\"\/>. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u043d \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0420\u0430\u043d\u0442\u0430\u0439\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e <u>\u0430\u0434\u0440\u0435\u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/u> \u0441 \u043f\u043e\u043b\u0435\u043c is_signer: false \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 <u>\u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/u> \u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0438\u0434\u043e\u0432, \u0438 <u>\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435<\/u> \u044d\u0442\u043e\u0442 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0441 \u043f\u043e\u043b\u0435\u043c is_signer: true. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432 Solana \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430. \u041d\u043e \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u0430\u0440\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 32-\u0431\u0430\u0439\u0442\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"(x,y)\" alt=\"(x,y)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f6e\/d3b\/18b\/f6ed3b18bf58dcbf35ab7a66b8801164.svg\"\/>?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u043d\u0430\u0439\u0442\u0438 <em>bump_seed<\/em>?<\/p>\n<\/li>\n<\/ul>\n<p>32-\u0431\u0430\u0439\u0442\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u0442\u043e\u0447\u043a\u0443 \u0432\u0432\u0438\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <em><img decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ac\/cee\/c23\/0acceec23fa269cef6da6b18d61bfb6d.svg\"\/>, <\/em>\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b \u0432\u044b\u0448\u0435, \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043c\u043e \u043d\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e <em><img decoding=\"async\" class=\"formula inline\" source=\"y\" alt=\"y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eea\/463\/4db\/eea4634db0cd62951b7917e5f9c29ff7.svg\"\/>, <\/em>\u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u043f\u043e\u043b\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"q\" alt=\"q\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/408\/c29\/eeb\/408c29eebc2d9b2667bbeec4d0a41849.svg\"\/> \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u043e\u0440\u0435\u043d\u044c. \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044f, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u043e\u0440\u0435\u043d\u044c, \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f <em>\u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u044b\u043c\u0438 \u0432\u044b\u0447\u0435\u0442\u0430\u043c\u0438<\/em>. \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e <img decoding=\"async\" class=\"formula inline\" source=\"(x, y)\" alt=\"(x, y)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f07\/442\/130\/f074421308cd3a99f262215d2d89e5a2.svg\"\/>\u043d\u0435\u043b\u044c\u0437\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0437 32-\u0431\u0430\u0439\u0442\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043c\u043e\u0436\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <em>\u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u043c \u042d\u0439\u043b\u0435\u0440\u0430<\/em>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a^{{(q-1)\/2}}\\cong -1\\ mod\\ q,\\\\a = \\frac{y^2 - 1}{dy^2 + 1}\" alt=\"a^{{(q-1)\/2}}\\cong -1\\ mod\\ q,\\\\a = \\frac{y^2 - 1}{dy^2 + 1}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cdf\/395\/129\/cdf395129c1a523ba049ad46d3ba8e13.svg\" width=\"665\" height=\"82\"\/><\/p>\n<p>\u0412\u043e\u0442 \u043a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 Solana \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438:<\/p>\n<pre><code class=\"rust\">pub fn decompress(&amp;self) -> Option&lt;EdwardsPoint> {   let Y = FieldElement::from_bytes(self.as_bytes());   let Z = FieldElement::one();   let YY = Y.square();   let u = &amp;YY - &amp;Z;                            \/\/ u =  y\u00b2-1   let v = &amp;(&amp;YY * &amp;constants::EDWARDS_D) + &amp;Z; \/\/ v = dy\u00b2+1   let (is_valid_y_coord, mut X) = FieldElement::sqrt_ratio(&amp;u, &amp;v);    if is_valid_y_coord.unwrap_u8() != 1u8 { return None; }    \/\/ FieldElement::sqrt_ratio always returns   \/\/ the nonnegative square root,   \/\/ so we negate according to the supplied sign bit.   let compressed_sign_bit = Choice::from(self.as_bytes()[31] >> 7);   X.conditional_negate(compressed_sign_bit);    Some(EdwardsPoint{ X, Y, Z, T: &amp;X * &amp;Y }) }<\/code><\/pre>\n<p>\u041e\u043d\u0430 \u0432\u0435\u0440\u043d\u0451\u0442 <code>None<\/code>, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043a\u043e\u0440\u0435\u043d\u044c. \u041d\u0438\u0436\u0435 \u043a\u043e\u0434 \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u043d\u044f. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0430\u0439\u0442, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043b\u0438 \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u0440\u0435\u043d\u044c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0430\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<pre><code class=\"rust\">pub fn sqrt_ratio(   u: &amp;FieldElement,   v: &amp;FieldElement ) -> (u8, FieldElement) {   \/\/ Using the same trick as in ed25519 decoding, we merge the   \/\/ inversion, the square root, and the square test as follows.   \/\/   \/\/ To compute sqrt(\u03b1), we can compute \u03b2 = \u03b1^((p+3)\/8).   \/\/ Then \u03b2^2 = \u00b1\u03b1, so multiplying \u03b2 by sqrt(-1) if necessary   \/\/ gives sqrt(\u03b1).   \/\/   \/\/ To compute 1\/sqrt(\u03b1), we observe that   \/\/    1\/\u03b2 = \u03b1^(p-1 - (p+3)\/8) = \u03b1^((7p-11)\/8)   \/\/                            = \u03b1^3 * (\u03b1^7)^((p-5)\/8).   \/\/   \/\/ We can therefore compute sqrt(u\/v) = sqrt(u)\/sqrt(v)   \/\/ by first computing   \/\/    r = u^((p+3)\/8) v^(p-1-(p+3)\/8)   \/\/      = u u^((p-5)\/8) v^3 (v^7)^((p-5)\/8)   \/\/      = (uv^3) (uv^7)^((p-5)\/8).   \/\/   \/\/ If v is nonzero and u\/v is square, then r^2 = \u00b1u\/v,   \/\/                                     so vr^2 = \u00b1u.   \/\/ If vr^2 =  u, then sqrt(u\/v) = r.   \/\/ If vr^2 = -u, then sqrt(u\/v) = r*sqrt(-1).   \/\/   \/\/ If v is zero, r is also zero.    let v3 = &amp;v.square()  * v;   let v7 = &amp;v3.square() * v;   let mut r = &amp;(u * &amp;v3) * &amp;(u * &amp;v7).pow_p58();   let check = v * &amp;r.square();    let correct_sign_sqrt = check.ct_eq(   u);   let flipped_sign_sqrt = check.ct_eq(&amp;(-u));    let r_prime = &amp;constants::SQRT_M1 * &amp;r;   r.conditional_assign(&amp;r_prime, flipped_sign_sqrt);    let was_nonzero_square = correct_sign_sqrt | flipped_sign_sqrt;    (was_nonzero_square, r) } <\/code><\/pre>\n<p>\u0422\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u044e\u043a\u0438 \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u043d\u0438\u0445 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f. \u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043d\u044f\u043b\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0434\u0435\u0438 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 Solana. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u043d\u0430\u0439\u0442\u0438 bump_seed. \u041a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0443\u043c\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043d\u0435\u0442, \u043d\u043e \u043e\u043d \u0438 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u0446\u0438\u043a\u043b\u0435 \u043e\u0442 255 \u0434\u043e 0 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0438\u0434\u044b, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044f \u043d\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044f, \u043b\u0435\u0436\u0438\u0442 \u043b\u0438 \u043e\u043d \u043d\u0430 \u043a\u0440\u0438\u0432\u043e\u0439. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u043e\u0438\u0441\u043a \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 255 \u0438\u043b\u0438 254.<\/p>\n<pre><code class=\"rust\">pub fn try_find_program_address(   seeds: &amp;[&amp;[u8]],   program_id: &amp;Pubkey ) -> Option&lt;(Pubkey, u8)> {   let mut bump_seed = [std::u8::MAX];   for _ in 0..std::u8::MAX {     let mut seeds_with_bump = seeds.to_vec();     seeds_with_bump.push(&amp;bump_seed);     match Self::create_program_address(&amp;seeds_with_bump, program_id) {       Ok(address) => return Some((address, bump_seed[0])),       Err(PubkeyError::InvalidSeeds) => (),       _ => break,     }   bump_seed[0] -= 1;   } None }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 PDA \u0438 \u0437\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e. \u0412 \u0446\u0435\u043b\u043e\u043c \u044f \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0442 \u0432\u0441\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 Solana. \u041f\u0435\u0440\u0435\u0439\u0434\u0443 \u043a \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e Solana &#8212; \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u0421\u0440\u0435\u0434\u0438 \u0441\u0430\u043c\u044b\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 Solana, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c <a href=\"https:\/\/www.metaplex.com\" rel=\"noopener noreferrer nofollow\">Metaplex<\/a> &#8212; \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u043c\u0438\u043d\u0442\u0430 \u0438 \u043f\u0440\u043e\u0434\u0430\u0436\u0438 NFT, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/docs.projectserum.com\/appendix\/serum-core\" rel=\"noopener noreferrer nofollow\">Serum<\/a> &#8212; \u043f\u0435\u0440\u0432\u0443\u044e \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0431\u0438\u0440\u0436\u0443, \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044f \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0440\u0434\u0435\u0431\u0443\u043a\u0430 (\u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0441\u0435\u0431\u044f, \u043a\u0430\u043a Serum Core &#8212; \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 DeFi \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 Solana). \u041e\u0431\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u043c\u0435\u044e\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043e\u0433\u0430\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u041d\u0430 \u044d\u0442\u043e\u043c \u0443 \u043c\u0435\u043d\u044f \u0432\u0441\u0451.<\/p>\n<p>\u041c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e-\u0441\u0432\u043e\u0435\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430. \u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e Solana, \u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0435\u0439:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/docs.solana.com\/developing\/programming-model\/overview\" rel=\"noopener noreferrer nofollow\">\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Solana<\/a><\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/github.com\/solana-labs\/example-helloworld\" rel=\"noopener noreferrer nofollow\">example-helloworld<\/a> &#8212; \u0442\u043e, \u0441 \u0447\u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442 \u043d\u0430\u0447\u0430\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/github.com\/solana-labs\/solana-program-library\" rel=\"noopener noreferrer nofollow\">Solana Program Library<\/a> &#8212; \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 Solana<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/metaplex-foundation\/metaplex\" rel=\"noopener noreferrer nofollow\">Metaplex<\/a> \u0438 <a href=\"https:\/\/github.com\/Bonfida\/agnostic-orderbook\" rel=\"noopener noreferrer nofollow\">Agonostic orderbook<\/a> (on-chain \u043e\u0440\u0434\u0435\u0440\u0431\u0443\u043a \u043e\u0442 Serum)<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0438 <a href=\"https:\/\/github.com\/vadimpy\/solanastocksim\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438<\/a> \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u0430 Solana. \u0425\u043e\u0442\u044f \u044f \u0431\u044b\u043b <em>\u043c\u043e\u043b\u043e\u0434 \u0438 \u0433\u043b\u0443\u043f<\/em>, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e \u0447\u0430\u0441\u0442\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b, \u043c\u043e\u0433\u0443 \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b:<\/p>\n<ul>\n<li>\n<p>\u041d\u0438\u0433\u0435\u043b\u044c \u0421\u043c\u0430\u0440\u0442 &#171;\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f&#187; &#8212; \u043a\u043d\u0438\u0433\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u044b<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/335906\/\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043d\u0430 \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u0440\u0438\u0432\u044b\u0445<\/a> &#8212; \u0434\u043b\u0438\u043d\u043d\u0430\u044f, \u043d\u043e \u043b\u0435\u0433\u043a\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f, \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u0443\u0442\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/company\/near\/blog\/522202\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a> \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438\u0437 Near \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 ed25519. \u0412 \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u0418, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, <a href=\"https:\/\/ed25519.cr.yp.to\/ed25519-20110926.pdf\" rel=\"noopener noreferrer nofollow\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e ed25519<\/a> \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0438\u043c\u043e\u043b\u0451\u0442\u043d\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u043b \u043e\u0431 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 &#171;\u0434\u0440\u0443\u0436\u0435\u043b\u044e\u0431\u043d\u043e\u0441\u0442\u0438&#187; ed25519 \u0438 \u043e \u0435\u0433\u043e \u0441\u0442\u043e\u0439\u043a\u043e\u0441\u0442\u0438 \u043a \u0443\u0442\u0435\u0447\u043a\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u044d\u0448\u0438 \u0438\u043b\u0438 \u043c\u0438\u0441\u043f\u0440\u0435\u0434\u0438\u043a\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u043d\u0438\u0433\u0430\u0445:<\/p>\n<ul>\n<li>\n<p>\u0414\u044d\u0432\u0438\u0434 \u041c.\u00a0\u0425\u0430\u0440\u0440\u0438\u0441\u00a0\u0438 \u0421\u0430\u0440\u0430 \u041b.\u00a0\u0425\u0430\u0440\u0440\u0438\u0441 &#171;\u0426\u0438\u0444\u0440\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u043e\u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430&#187;<\/p>\n<\/li>\n<li>\n<p>David A. Patterson, John L. Hennessy &#171;Computer Organization and Design: Hardware \/ Software Interface&#187;<\/p>\n<\/li>\n<li>\n<p>David A. Patterson, John L. Hennessy &#171;Computer Architecture: A Quantitative Approach&#187;<\/p>\n<\/li>\n<\/ul>\n<p>\u0410 \u043f\u043e \u044f\u0437\u044b\u043a\u0443 Rust \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0443\u0447\u0448\u0438\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 &#8212; \u044d\u0442\u043e:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/doc.rust-lang.org\/rust-by-example\/\" rel=\"noopener noreferrer nofollow\">Rust by examples<\/a> &#8212; \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0442 Rust community<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/doc.rust-lang.org\/book\/title-page.html\" rel=\"noopener noreferrer nofollow\">The Rust Programming Language<\/a> &#8212; \u043a\u043d\u0438\u0433\u0430, \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f (\u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435) \u0432\u0441\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u044f\u0437\u044b\u043a\u0430 (\u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0442\u0431\u0443\u043a)<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/rust-in-action\/code\" rel=\"noopener noreferrer nofollow\">Rust in Action<\/a> &#8212; \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 Rust \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u043c \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u043a\u043d\u0438\u0433\u0438<\/p>\n<\/li>\n<li>\n<p>Jim Blandy,\u00a0Jason Orendorff,\u00a0Leonora F .S. Tindall &#171;Programming Rust&#187; &#8212; \u043f\u043e\u043b\u043d\u044b\u0439 \u0443\u0447\u0435\u0431\u043d\u0438\u043a, \u0430\u043d\u0430\u043b\u043e\u0433 \u0440\u0430\u0441\u0442\u0431\u0443\u043a\u0430<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/595617\/\"> https:\/\/habr.com\/ru\/articles\/595617\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0438\u043b\u044c\u043d\u043e<\/figcaption><\/figure>\n<p>\u0414\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0451 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0440\u0430\u0441\u0442\u0443\u0442, \u0440\u044b\u043d\u043e\u043a \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u043c\u0438 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u044f\u043c\u0438. \u041d\u0435\u0442 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0444\u0435\u0440\u0430 \u0443\u0436\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u043c\u0438\u0440. \u041e\u0431 \u044d\u0442\u043e\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043b\u0433\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0442\u044c, \u043d\u043e \u043c\u043e\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e \u0434\u0440\u0443\u0433\u043e\u043c. \u0412 \u0444\u043e\u043a\u0443\u0441\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u0432\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0435\u0449\u0438: on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Solana \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 ed25519. \u041a \u0447\u044c\u0435\u043c\u0443-\u0442\u043e \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0439 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u0445. \u0417\u0430\u0442\u043e \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 Solana, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u043d\u0435\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 ed25519 \u0438 \u043a\u0430\u043a \u043e\u043d \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h2>Solana<\/h2>\n<p><a href=\"https:\/\/solana.com\" rel=\"noopener noreferrer nofollow\">Solana<\/a> &#8212; \u044d\u0442\u043e \u043c\u043e\u043b\u043e\u0434\u043e\u0439 \u0431\u044b\u0441\u0442\u0440\u043e\u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439 Solana \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0442\u0438, \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439. \u0420\u043e\u0434\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a\u043e\u043c \u0438\u0434\u0435\u0439, \u043b\u0435\u0436\u0430\u0449\u0438\u0445 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Solana, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u043c CEO Solana Foundation \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u042f\u043a\u043e\u0432\u0435\u043d\u043a\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u043b\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 Qualcomm. \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d \u0441\u0435\u0442\u0438 \u043d\u043e\u0441\u0438\u0442 \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043a\u0440\u0430\u0442\u043a\u043e SOL), \u0430 \u0435\u0433\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 &#8212; lamport <em>(\u0440\u0443. \u043b\u044d\u043c\u043f\u043e\u0440\u0442),<\/em> \u0440\u0430\u0432\u043d\u044b\u0439 SOL. Solana \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Proof-of-Stake \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Proof-of-History \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043a \u0441\u043b\u043e\u0432\u0443, \u0434\u043b\u044f Solana \u0438 \u0431\u044b\u043b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d.<\/p>\n<h2>Account<\/h2>\n<p>\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446 Solana \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442 &#8212; \u044d\u0442\u043e \u043f\u0430\u0440\u0430 \u0438\u0437 32-\u0431\u0430\u0439\u0442\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u043e\u043c, \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443. \u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"rust\">pub struct Account {     pub lamports: u64,     pub data: Vec&lt;u8>,     pub owner: Pubkey,     pub executable: bool,   pub rent_epoch: Epoch, }<\/code><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 \u043f\u043e\u043b\u0435\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u0411\u0430\u043b\u0430\u043d\u0441 \u0432 \u043b\u044d\u043c\u043f\u043e\u0440\u0442\u0430\u0445 lamports<\/p>\n<\/li>\n<li>\n<p>\u0412\u0435\u043a\u0442\u043e\u0440 \u0431\u0430\u0439\u0442\u043e\u0432 data, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e (\u0438\u043b\u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e) \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e<\/p>\n<\/li>\n<li>\n<p>\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446 owner &#8212; 32-\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u043c (\u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0430\u043b\u0435\u0435)<\/p>\n<\/li>\n<li>\n<p>\u0424\u043b\u0430\u0433 executable, \u0440\u0430\u0432\u043d\u044b\u0439 true, \u0435\u0441\u043b\u0438 \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u0435 rent_epoch \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0442\u0430\u0442\u044c\u0438. \u0417\u0430\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0442\u0438\u043f Pubkey \u044f \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u043b 32-\u0431\u0430\u0439\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c. \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b \u044d\u0442\u0438\u0445 32 \u0431\u0430\u0439\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442 \u043f\u043e\u0437\u0436\u0435, \u0430 \u043f\u043e\u043a\u0430 \u0431\u0443\u0434\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0430\u0434\u0440\u0435\u0441\u043e\u043c.<\/p>\n<h2>On-chain program<\/h2>\n<p>On-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 Solana &#8212; \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u0430\u044f <em>\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e<\/em>. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 (\u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u0430\u043c\u0438) \u0441\u0435\u0442\u0438, \u0438 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u0451\u043c \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430. \u0412 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0442\u044f\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 Ethereum \u0438 Near) \u044d\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\u043c\u0438. On-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Solana \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust (\u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u043d\u0430 C), \u043e\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b BPF. \u041a\u0430\u0436\u0434\u0430\u044f on-chain \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u0447\u043a\u0443 \u0432\u0445\u043e\u0434\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"rust\">entrypoint!(process_instruction); pub fn process_instruction(     program_id: &amp;Pubkey,     accounts: &amp;[AccountInfo],     instruction_data: &amp;[u8], ) -> ProgramResult {     process_somehow(program_id, accounts, instruction_data) }<\/code><\/pre>\n<p>\u0421\u0440\u0435\u0434\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>program_id &#8212; \u0430\u0434\u0440\u0435\u0441 \u044d\u0442\u043e\u0439<em> <\/em>\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/p>\n<\/li>\n<li>\n<p>accounts &#8212; \u043c\u0430\u0441\u0441\u0438\u0432 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 (\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438) \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430<\/p>\n<\/li>\n<li>\n<p>instruction_data &#8212; \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u043b\u044e\u0431\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u044b\u0437\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0432 \u0441\u0435\u0442\u044c. \u041b\u044e\u0431\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442, \u0437\u043d\u0430\u044f \u0430\u0434\u0440\u0435\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0447\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0439, \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 RPC \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0441\u0435\u0442\u0438 Solana &#171;\u0432\u044b\u0437\u0432\u0430\u0442\u044c&#187; \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 AccountInfo, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435:   <\/p>\n<pre><code class=\"rust\">pub struct AccountInfo&lt;'a> {     pub key: &amp;'a Pubkey,     pub is_signer: bool,     pub is_writable: bool,     pub lamports: Rc&lt;RefCell&lt;&amp;'a mut u64>>,     pub data: Rc&lt;RefCell&lt;&amp;'a mut [u8]>>,     pub owner: &amp;'a Pubkey,     pub executable: bool,     pub rent_epoch: u64, }<\/code><\/pre>\n<p>\u041c\u043d\u043e\u0433\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0441 Rust. \u042d\u0442\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u044f\u0437\u044b\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0441\u0441\u044b\u043b\u043e\u043a, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f &#171;\u043f\u0440\u043e\u0433\u0443\u043b\u043a\u0438&#187; \u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e \u0441\u0442\u0435\u043a\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0435\u0435. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0440\u0438 \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Account:<\/p>\n<ul>\n<li>\n<p>key &#8212; \u0430\u0434\u0440\u0435\u0441 \u044d\u0442\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>is_signer &#8212; \u0444\u043b\u0430\u0433, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u0444\u0430\u043a\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u044d\u0442\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>is_writable &#8212; \u0444\u043b\u0430\u0433, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<p>is_signer \u0438 is_writable \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 Solana \u043c\u043e\u0436\u043d\u043e \u0433\u0438\u0431\u043a\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0443\u044e \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 is_writable, \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f owner&#8217;\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430, \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u043f\u043e\u043b\u0435 lamports \u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 data (\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435 lamports \u043c\u043e\u0436\u0435\u0442 \u043b\u044e\u0431\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0435 is_signer \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0432\u044b\u0437\u0432\u0430\u043b \u043b\u0438 \u0435\u0451 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0442\u043e\u0438\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a Pubkey, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0434\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u0430\u0434\u0440\u0435\u0441\u043e\u043c, \u0438 \u043f\u0440\u043e\u044f\u0441\u043d\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432 Solana \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 <em><u>\u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e<\/u><\/em> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0438\u0437 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 ed25519. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 (\u0431\u0443\u0434\u044c \u0442\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0439 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0443 \u0441\u0435\u0431\u044f \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435, \u0438\u043b\u0438 \u0440\u043e\u0431\u043e\u0442, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043a\u043b\u044e\u0447\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438) \u043c\u043e\u0436\u043d\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043f\u043e\u0434\u043b\u043e\u0436\u0438\u0432 \u0435\u0439 \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043b\u044e\u0431\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b. \u041d\u043e \u0444\u0430\u043a\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443. \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c ed25519. \u042f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0435\u0433\u043e \u0448\u0430\u0433\u0438 \u0438 \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>&#171;\u0441\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0440\u0443\u043a\u0430\u043c\u0438&#187;, <\/em>\u0431\u0435\u0437 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0439. \u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043d\u0430 \u043a\u043e\u043d\u0447\u0438\u043a\u0430\u0445 \u043f\u0430\u043b\u044c\u0446\u0435\u0432 \u043f\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c  \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Solana, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443.<\/p>\n<h2>ed25519<\/h2>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c ed25519, \u043a\u0440\u043e\u043c\u0435 \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u043a\u0440\u0430\u0441\u0438\u0432 \u0442\u0435\u043c, \u0447\u0442\u043e \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c <em>\u0431\u044b\u0441\u0442\u0440\u043e\u0439<\/em>. \u0412\u043e\u0442 \u0440\u044f\u0434 \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432, <em>\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445<\/em> \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b<\/p>\n<details class=\"spoiler\">\n<summary>\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0437\u0430\u0442\u043e\u0447\u0438\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 x86_64 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445 Intel.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0415\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u0437 64 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0437\u0430 \u0441\u0447\u0451\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 \u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f\u0445. \u0422\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u043e \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u0434 \/ \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 iL1 \/ dL1 \u043a\u044d\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0447\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u043e\u0439\u043d\u0443 \u0437\u0430 \u043a\u044d\u0448\u0438 (<em>cache contention<\/em>) \u043f\u0440\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0412\u0432\u0438\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0442\u043e\u043d\u043a\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u0434 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u0443, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432 \u041f\u041e \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0447\u0438\u0441\u043b\u0430 \u0442\u0430\u043a\u0442\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0438\u0437 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u043c. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u0430\u0451\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 Linux, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041d\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043a \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u041f\u041e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0431\u044b\u043b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c, \u0430 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0443\u0442\u0435\u0447\u044c \u0447\u0435\u0440\u0435\u0437 \u043a\u044d\u0448. <\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041d\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0430\u0442\u0442\u0435\u0440\u043d \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c, \u041f\u041e \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043e \u043e\u0442 \u0443\u0442\u0435\u0447\u0435\u043a \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u043e\u0434\u043f\u0438\u0441\u044c \u0432 \u0441\u0436\u0430\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u0438\u043c\u0435\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 64 \u0431\u0430\u0439\u0442\u0430<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043a\u043b\u044e\u0447\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 (\u0432 \u0441\u0436\u0430\u0442\u043e\u043c \u0432\u0438\u0434\u0435) \u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447\u0438 \u0438\u043c\u0435\u044e\u0442 \u0434\u043b\u0438\u043d\u0443 \u043f\u043e 32 \u0431\u0430\u0439\u0442\u0430 \u043a\u0430\u0436\u0434\u044b\u0439<\/p>\n<\/div>\n<\/details>\n<p>\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u0430 &#8212; \u0448\u0442\u0443\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f, \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043b\u0433\u043e. \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 ed25519 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0431\u043e\u0440\u043e\u043c 7 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432:<\/p>\n<ol>\n<li>\n<p>\u0426\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0445\u044d\u0448-\u0444\u0443\u043d\u043a\u0446\u0438\u044f H, \u0434\u0430\u044e\u0449\u0430\u044f \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 &#8212; \u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0447\u0438\u0441\u043b\u043e , \u0437\u0430\u0434\u0430\u044e\u0449\u0435\u0435 \u043f\u043e\u043b\u0435 \u0413\u0430\u043b\u0443\u0430 <\/p>\n<\/li>\n<li>\n<p>\u0427\u0438\u0441\u043b\u043e , \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0435\u0441\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u043c \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u0435 (\u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 <em>\u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u043d\u0435\u0432\u044b\u0447\u0435\u0442<\/em>)<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u0447\u043a\u0430 , \u0433\u0434\u0435 &#8212; \u044d\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430 \u0442\u043e\u0447\u0435\u043a \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439 \u043d\u0430\u0434 <\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0442\u0430\u043a\u043e\u0435, \u0447\u0442\u043e (\u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0433\u0440\u0443\u043f\u043f\u044b)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431 &#8212; \u0431\u0438\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0440\u0438\u0432\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0440\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439 \u042d\u0434\u0432\u0430\u0440\u0434\u0441\u0430 (Twisted Edwards Curve). \u0413\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0437\u0430\u043a\u043e\u043d \u043d\u0430 \u043d\u0435\u0439 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438\u0437 , \u043a\u0430\u043a \u201c\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435\u201d. \u0414\u043b\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c  \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435  \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f . \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f  \u0432 \u043f\u043e\u043b\u0435\u043f\u0440\u0438 little-endian \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f . \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u043a\u0440\u0438\u0432\u043e\u0439 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e  \u0431\u0438\u0442:  \u0431\u0438\u0442 \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f  \u0438 \u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u0430 , \u0430 \u0441\u0430\u043c  \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c (\u0432 \u043f\u043e\u043b\u0435 , \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f):<\/p>\n<h2>\u041a\u043b\u044e\u0447\u0438, \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/h2>\n<p>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c -\u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e , \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c. \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043e\u0442 \u043d\u0435\u0433\u043e \u0445\u044d\u0448 , \u0433\u0434\u0435  &#8212; \u0431\u0438\u0442\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u044d\u0448\u0430. \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0447\u0438\u0441\u043b\u043e  \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 (\u0434\u0430\u043b\u0435\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u0435\u043a \u0431\u0443\u0434\u0443 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c <u>\u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435\u043c<\/u>). \u0412\u0432\u0438\u0434\u0443 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0430  \u0442\u0430\u043a\u0436\u0435 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u044d\u0442\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439. \u0414\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f :<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0447\u0438\u0441\u043b\u043e <\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0439\u0434\u0451\u043c \u0442\u043e\u0447\u043a\u0443 <\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0439\u0434\u0451\u043c \u0447\u0438\u0441\u043b\u043e <\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c &#8212;\u00a0\u0431\u0438\u0442\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 <\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u043b\u044f \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430:<\/p>\n<ol>\n<li>\n<p>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0443 <\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0443 <\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e <\/p>\n<\/li>\n<\/ol>\n<p>\u0412\u044b\u044f\u0441\u043d\u0438\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438.<\/p>\n<p>\u0414\u043e\u043c\u043d\u043e\u0436\u0438\u043c  \u043d\u0430 :<\/p>\n<p>\u041f\u0443\u0441\u0442\u044c , \u0442\u043e\u0433\u0434\u0430 \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e  \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e:<\/p>\n<p>\u0412 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445  \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434:<\/p>\n<p>\u041d\u043e \u0438  \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0442\u0430\u043a, \u0447\u0442\u043e &#8212; \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e\u0442 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e, \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ul>\n<li>\n<\/li>\n<li>\n<\/li>\n<li>\n<p>SHA-512<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b \u0438\u0437  &#8212; \u043f\u0440\u043e\u0441\u0442\u043e\u0439 little-endian<\/p>\n<\/li>\n<li>\n<\/li>\n<li>\n<\/li>\n<li>\n<p>,<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-413843","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/413843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=413843"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/413843\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=413843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=413843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=413843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}