Розробка методу виявлення та ідентифікації вузлів блокчейн мережі Rootstock
DOI:
https://doi.org/10.15587/1729-4061.2024.297903Ключові слова:
виявлення вузлів, краулінг мережі, peer-to-peer мережі, Rootstock блокчейн, Kademlia, децентралізаціяАнотація
Об’єктом дослідження є протокол виявлення вузлів блокчейн мережі Rootstock та засоби краулінгу. Протоколи пошуку вузлів є основою будь-якої децентралізованої peer-to-peer мережі. У блокчейн системах повні вузли зберігають і підтримують повну копію всіх транзакцій виконаних у мережі. Однак вони не зберігають інформацію про всі інші вузли в мережі, таку як їхні ідентифікатори або IP-адреси. Кожен вузол зазвичай підтримує неповний список вузлів, до яких він підключається з метою обміну блокчейн даними. У децентралізованих мережах вузли приєднуються до мережі та залишають її, а їхні IP-адреси можуть змінюватися, що робить непрактичним підтримувати повний актуальний список усіх вузлів. Тому, єдиний спосіб отримати список усіх вузлів мережі – це послідовно опитати кожен вузол.
Розроблений метод полягає у відправці спеціально сформованих повідомлень до вузлів для отримання їх сусідів. Алгоритм пошуку на графі застосовується для обходу усіх отриманих сусідніх вузлів. Це дозволяє послідовно виявити усі вузли мережі. Визначення потрібної послідовності повідомлень потребує попереднього аналізу програмного забезпечення вузла RSKj в частині протоколу пошуку вузлів.
Ефективність запропонованого методу перевірена за допомогою розробленого програмного забезпечення та експерименту у основній мережі. Розгорнуто 6 перевірочних вузлів у різних фізичних локаціях та у різний час. Усі перевірочні вузли були виявлені менше ніж за 10 хвилин. Розробленим методом виявлено 222 вузла, які мають 209 унікальних IP-адрес.
Результати цього дослідження показують як проводити аналіз протоколу виявлення вузлів для вибраної мережі. Вони надають засоби для отримання інформації про доступні вузли блокчейн системи Rootstock, що дозволяє аналізувати як блокчейн-мережу загалом, так і окремі вузли
Посилання
- Dorogiy, Y., Kolisnichenko, V. (2023). Application of logging in various participants of blockchain networks for de-anonymization of the end user. Herald of Khmelnytskyi national university, 1 (5), 60–66. Available at: http://journals.khnu.km.ua/vestnik/?p=20028
- Ethereum staking. Available at: https://ethereum.org/staking
- Smart contracts secured by Bitcoin. Available at: https://rootstock.io/
- Lerner, S. D. (2020). Building the Most Secure, Permissionless and Uncensorable Bitcoin Peg. Available at: https://medium.com/iovlabs-innovation-stories/building-the-most-secure-permissionless-and-uncensorable-bitcoin-peg-b5dc7020e5ec
- Howell, A., Saber, T., Bendechache, M. (2023). Measuring node decentralisation in blockchain peer to peer networks. Blockchain: Research and Applications, 4 (1), 100109. https://doi.org/10.1016/j.bcra.2022.100109
- Grundmann, M., Amberg, H., Hartenstein, H. (2021). On the Estimation of the Number of Unreachable Peers in the Bitcoin P2P Network by Observation of Peer Announcements. arXiv. Available at: https://doi.org/10.48550/ARXIV.2102.12774
- Eisenbarth, J.-P., Cholez, T., Perrin, O. (2022). Ethereum’s Peer-to-Peer Network Monitoring and Sybil Attack Prevention. Journal of Network and Systems Management, 30 (4). https://doi.org/10.1007/s10922-022-09676-2
- Henningsen, S., Teunis, D., Florian, M., Scheuermann, B. (2019). Eclipsing Ethereum Peers with False Friends. arXiv. Available at: https://doi.org/10.48550/ARXIV.1908.10141
- Deshpande, V., Badis, H., George, L. (2018). BTCmap: Mapping Bitcoin Peer-to-Peer Network Topology. 2018 IFIP/IEEE International Conference on Performance Evaluation and Modeling in Wired and Wireless Networks (PEMWN). https://doi.org/10.23919/pemwn.2018.8548904
- Xu, D., Gao, J., Zhu, L., Gao, F., Zhao, J. (2023). Statistical and clustering analysis of attributes of Bitcoin backbone nodes. PLOS ONE, 18 (11), e0292841. https://doi.org/10.1371/journal.pone.0292841
- Li, K., Tang, Y., Chen, J., Wang, Y., Liu, X. (2021). TopoShot: Uncovering Ethereum’s Network Topology Leveraging Replacement Transactions. arXiv. Available at: https://doi.org/10.48550/ARXIV.2109.14794
- Miller, A. K., Litton, J., Pachulski, A., Gupta, N., Levin, D., Spring, N., Bhattacharjee, B. (2015). Discovering Bitcoin’s Public Topology and Influential Nodes. Available at: https://www.cs.umd.edu/projects/coinscope/coinscope.pdf
- Rohrer, E., Tschorsch, F. (2019). Kadcast. Proceedings of the 1st ACM Conference on Advances in Financial Technologies. https://doi.org/10.1145/3318041.3355469
- Neudecker, T. (2019). Characterization of the Bitcoin Peer-to-Peer Network (2015-2018). Karlsruhe. Available at: https://doi.org/10.5445/IR/1000091933
- Eyong, M. (2019). Analyzing the Peer-to-Peer Network of Ethereum. Available at: https://www.researchgate.net/publication/354149867_Analyzing_the_Peer-to-Peer_Network_of_Ethereum
- Wang, T., Zhao, C., Yang, Q., Zhang, S., Liew, S. C. (2021). Ethna: Analyzing the Underlying Peer-to-Peer Network of Ethereum Blockchain. IEEE Transactions on Network Science and Engineering, 8 (3), 2131–2146. https://doi.org/10.1109/tnse.2021.3078181
- Wolchok, S., Halderman, J. (2010). Crawling BitTorrent DHTs for fun and profit. 4th USENIX Workshop on Offensive Technologies (WOOT ’10), Washington, D.C. Available at: https://jhalderm.com/pub/papers/dht-woot10.pdf
- rskj: RSKj is a Java implementation of the RSK protocol. Available at: https://github.com/rsksmart/rskj
- Node Discovery Protocol. Available at: https://github.com/ethereum/devp2p/blob/master/discv4.md
- Sedgewick, R., Wayne, K. (2011). Algorithms. Addison-Wesley Professional.
- SSD VPS Servers, Cloud Servers and Cloud Hosting. Available at: https://www.vultr.com/
- Vultr API. Available at: https://www.vultr.com/api/
- Hardware requirements. Available at: https://dev.rootstock.io/rsk/node/install/requirements/
- Maymounkov, P., Mazières, D. (2002). Kademlia: A Peer-to-Peer Information System Based on the XOR Metric. Lecture Notes in Computer Science, 53–65. https://doi.org/10.1007/3-540-45748-8_5
- PeerExplorer.java. Available at: https://github.com/rsksmart/rskj/blob/master/rskj-core/src/main/java/co/rsk/net/discovery/PeerExplorer.java
- NodeDistanceTable.java. Available at: https://github.com/rsksmart/rskj/blob/master/rskj-core/src/main/java/co/rsk/net/discovery/table/NodeDistanceTable.java
- KademliaOptions.java. Available at: https://github.com/rsksmart/rskj/blob/master/rskj-core/src/main/java/co/rsk/net/discovery/table/KademliaOptions.java
- ECKey.java. Available at: https://github.com/rsksmart/rskj/blob/6dde0cdeeb2138e61dc845810eaa8ce55a8d2b7f/rskj-core/src/main/java/org/ethereum/crypto/ECKey.java#L287
- DistanceCalculator.java. Available at: https://github.com/rsksmart/rskj/blob/master/rskj-core/src/main/java/co/rsk/net/discovery/table/DistanceCalculator.java
- PeerDiscoveryMessageFactory.java. Available at: https://github.com/rsksmart/rskj/blob/master/rskj-core/src/main/java/co/rsk/net/discovery/message/PeerDiscoveryMessageFactory.java
- PeerExplorer.java. L221. Available at: https://github.com/rsksmart/rskj/blob/e06686fe83554c6381db207857e13b6e76e79ace/rskj-core/src/main/java/co/rsk/net/discovery/PeerExplorer.java#L221
- PeerExplorer.java. L319. Available at: https://github.com/rsksmart/rskj/blob/e06686fe83554c6381db207857e13b6e76e79ace/rskj-core/src/main/java/co/rsk/net/discovery/PeerExplorer.java#L319
- main.conf. Available at: https://github.com/rsksmart/rskj/blob/master/rskj-core/src/main/resources/config/main.conf#L32
- Geolocation DB. Available at: https://geolocation-db.com/json/
- geojson.io. Available at: https://geojson.io/
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2024 Yaroslaw Dorogyy, Vadym Kolisnichenko
Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.
Закріплення та умови передачі авторських прав (ідентифікація авторства) здійснюється у Ліцензійному договорі. Зокрема, автори залишають за собою право на авторство свого рукопису та передають журналу право першої публікації цієї роботи на умовах ліцензії Creative Commons CC BY. При цьому вони мають право укладати самостійно додаткові угоди, що стосуються неексклюзивного поширення роботи у тому вигляді, в якому вона була опублікована цим журналом, але за умови збереження посилання на першу публікацію статті в цьому журналі.
Ліцензійний договір – це документ, в якому автор гарантує, що володіє усіма авторськими правами на твір (рукопис, статтю, тощо).
Автори, підписуючи Ліцензійний договір з ПП «ТЕХНОЛОГІЧНИЙ ЦЕНТР», мають усі права на подальше використання свого твору за умови посилання на наше видання, в якому твір опублікований. Відповідно до умов Ліцензійного договору, Видавець ПП «ТЕХНОЛОГІЧНИЙ ЦЕНТР» не забирає ваші авторські права та отримує від авторів дозвіл на використання та розповсюдження публікації через світові наукові ресурси (власні електронні ресурси, наукометричні бази даних, репозитарії, бібліотеки тощо).
За відсутності підписаного Ліцензійного договору або за відсутністю вказаних в цьому договорі ідентифікаторів, що дають змогу ідентифікувати особу автора, редакція не має права працювати з рукописом.
Важливо пам’ятати, що існує і інший тип угоди між авторами та видавцями – коли авторські права передаються від авторів до видавця. В такому разі автори втрачають права власності на свій твір та не можуть його використовувати в будь-який спосіб.