Цены на блокчейн: влияние происхождения на стоимость

На каких языках программирования пишут блокчейны

Выбор зависит от конкретной задачи. Допустим, вам надо написать блокчейн-сеть с нуля. Для этого лучше использовать языки низкого уровня вроде Rust, Go и C++. Они дают программисту полный доступ к «железу» и памяти, поэтому хорошо подходят для создания высоконагруженных систем.

Помимо этого, есть две группы языков, на которых обычно пишут блокчейны.

Языки общего назначения: Java, C#, Python или Kotlin. Это универсальный вариант: можно создать новую сеть, а можно написать приложение для какой-то платформы. Например, Java-код легко компилируется под Ethereum, Hyperledger и Quorum. При этом на базе Java работают некоторые известные платформы — скажем, NEM и IOTA.

Языки, заточенные под блокчейн. Если нужно написать приложение в рамках какой-то платформы, часто используют специальные блокчейн-языки. Делают их обычно так: берут за основу популярный язык, урезают некоторые функции и добавляют фишки для создания умных контрактов. В результате можно писать хороший код для блокчейн-сетей, но где-то ещё его запустить очень сложно.

Возьмём, к примеру, язык Solidity для платформы Ethereum. Так как создатели взяли синтаксис от JavaScript, внешне языки очень похожи:


Скриншот: Skillbox Media

Разница в том, что JavaScript исполняется в браузере, а Solidity — в виртуальной машине Ethereum. Если этой машины нет, код на Solidity работать не будет. Поэтому его редко запускают где-то кроме блокчейн-платформы — для этого пришлось бы под каждое «железо» писать свою машину. Проще взять язык вроде Java, чья виртуалка есть на любом утюге.

Latest L1→L2 Transactions

Tx

Bk
L1 Tx# 0x0870589d3b8592a6b90520b1fba58edbb8d0d4f2d504a9571832342e105ed5a8L2 Tx# 0xc437035db49f2135c37193eb4310b7d81d74147029093f5566bdead59ec72fe6

Tx

Bk
L1 Tx# 0x875116e6423164e4394e93209ec8a32eb7d033e701f0709dc4fbe239271c3f6aL2 Tx# 0xdafefcfa8d121f919acacb0e122054c5592c863aea4c659bf8919d6ebd4c64d0

Tx

Bk
L1 Tx# 0x45c023cb17f406a065d1beffd7df521b62f183459e0d65c7ad968046e43220ddL2 Tx# 0x971b55b888306730bec6287e42cb63bff5cec8076398c967e922fb179eff9fbb

Tx

Bk
L1 Tx# 0x359150086cd39e0f01275664c6d6dd3bf779d7bb828549e570eab09bf09d4e8bL2 Tx# 0xf2d826bf3440efd10e851668509f273a31ea5ff18596f7c3c9e9dce08be80882

Tx

Bk
L1 Tx# 0x69d7906d4abacc5548f29f79f9ddefc3c2683dc6b0ba24dfabd4cec2c9146a41L2 Tx# 0x067520ca3af141c8171f3136a457a98786785b7794ce7ad4e25835ee8757b97c

Tx

Bk
L1 Tx# 0x09806f35f12ce2daf5fd8dd1dd612c0322e44e6aa044e791c1bb071a20f8c683L2 Tx# 0x76f68efd85fba3d9bc803d019356e579515b3fdb0f1c48aafca1cb551b8627d3

Tx

Bk
L1 Tx# 0x54d36b7144c2e5fd3b6a9e3ab4e3d4eba3b81016cfb0c393b55bb1eadab5bce5L2 Tx# 0xf22ce2d33718dca842afef9f6d442aaf1dc258f2171e971f113bbdd0a404f2c8

Tx

Bk
L1 Tx# 0xf282ff33d2c1544b03d94f2db8311b22da3fc60b9ab7352c06614b287a863a9eL2 Tx# 0x588771ac110179bcca63a04504300207dbe04c04de90c44de5cde1cfea58a24c

Tx

Bk
L1 Tx# 0x2c7c34a90058c2d9976058d7589a0244ae9890bc00a294e1f8cd964e8e50e554L2 Tx# 0x374245d35a3d6099eae3fabb5362f61dcf02f14f54f2d6656771f4dd76550709

Tx

Bk
L1 Tx# 0x816b8cd1562b5a17105ef824c0488b7aa3d26e2dc57368d9a58efc4d0d6df269L2 Tx# 0x801b68164432ef127aa8bf650b9bde514911932311afd3f8e25c1aeb5e19f56f

View all L1→L2 transactions

Из чего состоит блокчейн

Итак, мы оформили перевод — в цепочке сразу появился новый блок. Если бабушка захочет отправить вам деньги обратно, это будет уже новый блок — мы помним, что удалять и редактировать записи в блокчейне нельзя.

Чтобы соединять между собой звенья цепочки, разработчики придумали хитрость — в каждый новый блок добавляется хеш предыдущего блока. Хеш — это зашифрованные данные о сделке в виде уникального набора букв и цифр. Если поменять какую-то запись, хеши у блоков не совпадут, и сеть не примет изменения.

Например, в биткоине все операции хешируются алгоритмом SHA-256. Он превращает любую информацию в строку размером 256 бит. Без разницы, будет ли это «Война и мир» Толстого или строчка из песни Михаила Боярского — на выходе получится шифрованная колбаса весом в 256 бит. Выглядит она примерно так:

c9f9053e2fb3fcec35ceeafab7bda50ece7d924f886c117b142dfa2df1d63574

В нашем случае, если перевести эту колбасу на русский, выйдет что-то вроде: «Петя Иванов отправил Зинаиде Степановне Ивановой 5000 рублей 1 октября 2022 года в 14:30».

Тут есть нюанс: если Петю заменить, скажем, на Диму, получится совершенно другой хеш. Следующий блок заметит изменения и отправит сигнал всем участникам сети: «Что-то тут нечисто, нас хотят взломать». И если большинство компьютеров знать не знают никакого Диму, блок останется неизменным.

Вернёмся к нашей Зинаиде Степановне. Предположим, деньги ей не особо нужны, и она решает отправить их вашему брату, который учится на первом курсе в Москве. Вот как система будет работать в таком случае:

Шаг 1. Блокчейн возьмёт хеш предыдущего блока.

Шаг 2. Добавит к нему новые данные:

3e84907df11600de355a07de0e255fcae469522c418f4f12945b586f619bedc6

+

«Данные о сделке Зинаиды Степановны и Васи».

Шаг 3. В таком виде запись снова хешируется, и получится ещё один блок:

0118b7211febd23303ed123e3c441301dba8062fa1dcaaa4bb682ef4b8fcc3fe

Этот процесс можно сравнить со старой детской игрой в снежный ком, когда каждый по очереди называет своё имя плюс имена предыдущих участников. Если кто-то сбился или назвал не все имена, цепочка прерывается и игрок выбывает.

Latest Transactions

Tx

Tx# 0xe935e8c1270c91d27467215b7feb665f97dc500d2624a9db006318e4b0b3a1fb
From 0x3a21ab1ea060adef7ed0fc296128fea047d91866To 0xaaaaaaaacb71bf2c8cae522ea5fa455571a74106

6 secs ago0 ETH

Tx

Tx# 0xfa0416d93dd8e7a59c81b4c38846dab0e7b9973987e181cc2b295cdc6ed38398
From 0x8b4a11ac01dd3e2fbeb8c6bbbfc2bc67d988a005To 0x28172c477519a13daaa96ad5810ab2dcfcdd4c0a

6 secs ago0 ETH

Tx

Tx# 0xe2859ea66c86c8c1587aa5e24747cf99de008a7811a7b9668bdadffd731e395b
From 0xf21a31137099c59c46d0c1991b15a49b6b23b2a0To 0xec53c830f4444a8a56455c6836b5d2aa794289aa

6 secs ago0 ETH

Tx

Tx# 0x0123fe365d9710e14b70034dc8ebc23361cc9dff7c25ffce9a4a93369f2fd4f6
From 0x26fcf8c06df857f67edaba93f5f6c99830c92f61To 0x6131b5fae19ea4f9d964eac0408e4408b66337b5

6 secs ago0 ETH

Tx

Tx# 0xfe4a27e91e6f5ab3e3a11ff53e8ab6799680f8895ce4abb9cbbfbf858f36b38a
From 0x336fc05dfa7c9038c9aaad43698fbf4e7a1b1df5To 0x2db0afd0045f3518c77ec6591a542e326befd3d7

6 secs ago0 ETH

Tx

Tx# 0xf810b52174d8135e5657ffac6dc414c6976bb39737f9b039c3e202f5e57f6803
From 0xb279f9950207cb80f60a0b713f623667b1e04189To 0xf55bec9cafdbe8730f096aa55dad6d22d44099df

6 secs ago0 ETH

Tx

Tx# 0x5af57c32e487a61d1fdcaa5361327af76fb70310af2852fc418fed928516d1d8
From 0x214989340f5e18a012ee213230c535367d3e290aTo 0x47fbe95e981c0df9737b6971b451fb15fdc989d9

6 secs ago0 ETH

Tx

Tx# 0xf1b06d7cb1491e6adc84c9afa4ed28e23f85d4af9efb73b9a8b9d74e0c9900b4
From 0xd93736d3d92a915e8947e28fc6c8171a2bb5c64bTo 0xfd541d0e2773a189450a70f06bc7edd3c1dc9115

6 secs ago0.015 ETH

Tx

Tx# 0xf896b703832385fd89b8136338214a9d039d4f9e1a9b9de33c8cc5e3d2c68b92
From 0x88ac88252890e8613b79becb3264b970a9fdf3daTo 0x0cab6977a9c70e04458b740476b498b214019641

6 secs ago0.025 ETH

Tx

Tx# 0xcb4333710469835f51eb4e3f8949a9da085066f19d2c4bedbf8459a48ccc5b4c
From 0xda0b59c429c208885e2955ec3e894a86a045ec04To 0xb80deaecd7f4bca934de201b11a8711644156a0a

6 secs ago0.063 ETH

Latest Blocks

BK

Block 6 secs ago

Sequenced By Scroll: Sequencer15 txns in 3 secs

BK

Block 9 secs ago

Sequenced By Scroll: Sequencer8 txns in 3 secs

BK

Block 12 secs ago

Sequenced By Scroll: Sequencer9 txns in 3 secs

BK

Block 15 secs ago

Sequenced By Scroll: Sequencer12 txns in 3 secs

BK

Block 18 secs ago

Sequenced By Scroll: Sequencer11 txns in 3 secs

BK

Block 21 secs ago

Sequenced By Scroll: Sequencer16 txns in 3 secs

BK

Block 24 secs ago

Sequenced By Scroll: Sequencer8 txns in 3 secs

BK

Block 27 secs ago

Sequenced By Scroll: Sequencer12 txns in 3 secs

BK

Block 30 secs ago

Sequenced By Scroll: Sequencer14 txns in 3 secs

BK

Block 33 secs ago

Sequenced By Scroll: Sequencer25 txns in 3 secs

Понравилась статья? Поделиться с друзьями: