Author

Topic: Приватность биткоина (Read 966 times)

hero member
Activity: 491
Merit: 1259
Nihil impunitum
September 24, 2019, 04:59:18 AM
#23
В англоразделе поднята тема полезности выбора ручками правильных входов (UTXO) в своих транзакциях для того, чтобы оставаться анонимным.   Я там расписал все что нужно, и кому интересно могут  посмотреть в оригинале. А смысл там  такой. 1)Хранить все в кошельках, которые позволяют управлять своими входами. 2) В одной  своей транзакции не объединять входы, полученные от источников, где вы были деанонимизированы ( например из-за необходимости КИСа)  - обозначу их для дальнейшего, как  входы группы (d), с теми входами, которые шли от источников, где вы оставались анонимными - группа входов (а) 3) входы (d) можно будет использовать в транзакциях где вам  надо будет раскрываться - ведь вы уже и так  были идентифицированы, входы (а) - в транзакциях туда,  где КИСа ну или подобной процедуры не требуется (4) (d) и (а) ни коим образом не должны между собой пересекаться - т.е. ни через адреса, ни через транзакции,ни любым другим путем.  

Мне кажется ты уже что-то с этими входами/выходами немного запарился. Я тебе открою тайну, если ты прошел верификацию на бирже, и отправил оттуда деньги на адрес1, то никакое манипулирование входами адреса1 тебе не поможет, так как он залинкован с тобой уже.

Твои махинации имеют смысл если были транзакции на разные адреса, и ты занимаешься менеджментом чтобы случайно их не линконуть между собой.


Привет, тавтология и тайна полишинеля. Прочти внимательно 1 -2 - 10 раз все то что было мною сказано и особенно вот это;

~(4) (d) и (а) ни коим образом не должны между собой пересекаться - т.е. ни через адреса, ни через транзакции,ни любым другим путем.  

Все что было мною сказано адресовано скорее к тем, кто любит заниматься консолидацией и делают это со всеми входами подряд  + к тем кто не в теме ( а не к продвинутым юзерам подобных Джони) ,  и + показывает как можно использовать входы группы (d), которые конечно же должны быть на своих отдельных адресах.
newbie
Activity: 1
Merit: 0
January 08, 2021, 05:51:24 PM
#21
Огромная работа, замечательная статья. Спасибо автору!
Небольшое замечание по стилистике:
думаю, что надо заменить такие названия, как "Плохой пример приватности" на более логичный и грамотный "Пример плохой приватности".
Смысл в том, что вы приводите НЕ ПЛОХОЙ ПРИМЕР, а как раз ХОРОШИЙ ПРИМЕР, но пример именно ПЛОХОЙ ПРИВАТНОСТИ.
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
September 24, 2019, 04:18:44 AM
#20
В англоразделе поднята тема полезности выбора ручками правильных входов (UTXO) в своих транзакциях для того, чтобы оставаться анонимным.   Я там расписал все что нужно, и кому интересно могут  посмотреть в оригинале. А смысл там  такой. 1)Хранить все в кошельках, которые позволяют управлять своими входами. 2) В одной  своей транзакции не объединять входы, полученные от источников, где вы были деанонимизированы ( например из-за необходимости КИСа)  - обозначу их для дальнейшего, как  входы группы (d), с теми входами, которые шли от источников, где вы оставались анонимными - группа входов (а) 3) входы (d) можно будет использовать в транзакциях где вам  надо будет раскрываться - ведь вы уже и так  были идентифицированы, входы (а) - в транзакциях туда,  где КИСа ну или подобной процедуры не требуется (4) (d) и (а) ни коим образом не должны между собой пересекаться - т.е. ни через адреса, ни через транзакции,ни любым другим путем. 

Мне кажется ты уже что-то с этими входами/выходами немного запарился. Я тебе открою тайну, если ты прошел верификацию на бирже, и отправил оттуда деньги на адрес1, то никакое манипулирование входами адреса1 тебе не поможет, так как он залинкован с тобой уже.

Твои махинации имеют смысл если были транзакции на разные адреса, и ты занимаешься менеджментом чтобы случайно их не линконуть между собой.
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
August 16, 2019, 04:28:14 PM
#19
Хорошая статья.

Например, широко бытующее мнение, что все что делается через ТОР, абсолютно конфиденциально, перенесено и сюда, в сферу биткойна. Но этот посыл в данном случае не работает . Особенности 2-х сетевых протоколов, а именно для узлов  ТОР и узлов  биткойн, делает последний уязвимым для атак, которые не требуют больших ресурсных  затрат. Поэтому использование ТОР для транзакций в сеть биткойна не желательны. Впервые  на это указал Ivan Pustogarov:

Ну на самом деле, я вот сел и прочитал весь документ. Статья за 2015й год, и речь там идет о работе core ноды из под Тора. Так как основной вектор атаки - отсылка биткоин нодой злоумышленника специальных address cookie ноде жертвы (ноды могут запрашивать базы адресов друг у друга и передавать) и последующая деанонимизация. Сомневаюсь что что-то кроме полных нод обладает таким функционалом.

Да и это опять таки, работает для не модифицированных полных нод. К примеру можно скомпилить ноду которая не будет отвечать на GETADDR, что обрушит всю атаку. Но здесь кстати да, чтобы такое сделать, надо понимать возможный вектор атаки. А я вот о таком векторе только сейчас узнал, например.
legendary
Activity: 2464
Merit: 2377
August 11, 2019, 12:32:11 PM
#18
~snip~

Очень приятно. Также хочу выразить огромную благодарность за поправки к переводу xenon131.
hero member
Activity: 784
Merit: 814
August 11, 2019, 11:52:36 AM
#17
madnessteat  xenon131 спасибо за огромную проделанную работу по переводу. Очень интересная статья, прочитал все, буду повторно читать и уже детально вникать в разные аспекты статьи. Думаю, некоторые вопросы могут быть дискуссионными среди технически подкованных людей, но даже на первый взгляд, многие рекомендации являются однозначно полезными. Лично я узнал много нового и получил направление для дальнейшего изучения. Заинтересовала инструкция по созданию сервера электрума и кошелек васаби, потому что его позиционируют, как несложный в эксплуатации и относительно приватный способ использования монет.

Мне кажется тема достойна закрепа в разделе. Если не закрепят, апайте периодически.
legendary
Activity: 2464
Merit: 2377
August 10, 2019, 09:11:24 AM
#16
Резерв
legendary
Activity: 2464
Merit: 2377
August 10, 2019, 09:11:02 AM
#15
Статья является отличным примером отслеживания транзакций. Исследователи очень осторожны в своих выводах, так как при анализе блокчейна иногда легко обмануть себя, думая, что вы знаете больше, чем знаете на самом деле. Это стоит прочитать всем, кто заинтересован в приватности при использовании биткоина.

Программы-вымогатели является настоящей угрозой. Всегда храните резервные копии важных данных.

Ссылки:

  1. Bitcoin Milan Meetup 46 - Talk by Adam Gibson https://www.youtube.com/watch?v=IKSSWUBqMCM&t=2448
  2. https://bitcointalksearch.org/topic/m.3588908
  3. Neudecker, Till & Hartenstein, Hannes. (2018). Network Layer Aspects of Permissionless Blockchains. IEEE Communications Surveys & Tutorials. PP. 1-1. 10.1109/COMST.2018.2852480.
  4. Harrigan, Martin & Fretter, Christoph. (2016). The Unreasonable Effectiveness of Address Clustering.
  5. Sarah Meiklejohn, Marjori Pomarole, Grant Jordan, Kirill Levchenko, Damon McCoy, Geoffrey M. Voelker, and Stefan Savage. 2013. A fistful of bitcoins: characterizing payments among men with no names. In Proceedings of the 2013 conference on Internet measurement conference (IMC '13). ACM, New York, NY, USA, 127-140. DOI: https://doi.org/10.1145/2504730.2504747 https://cseweb.ucsd.edu/~smeiklejohn/files/imc13.pdf
  6. Bitcoin Privacy: Theory and Practice - Jonas Nick (Blockstream) - Zurich, March 2016 https://www.youtube.com/watch?v=HScK4pkDNds
  7. Nick, Jonas David. “Data-Driven De-Anonymization in Bitcoin.” (2015).
  8. https://github.com/bitcoin/bitcoin/pull/13666
  9. https://bitcoinops.org/en/newsletters/2018/08/14/
 10. https://bitcoin.stackexchange.com/questions/3059/what-is-a-compressed-bitcoin-key
 11. Harrigan, Martin & Fretter, Christoph. (2016). The Unreasonable Effectiveness of Address Clustering.
 12. Meiklejohn, Sarah & Orlandi, Claudio. (2015). Privacy-Enhancing Overlays in Bitcoin. 127-141. 10.1007/978-3-662-48051-9_10. https://fc15.ifca.ai/preproceedings/bitcoin/paper_5.pdf
 13. Gervais A., Ritzdorf H., Lucic M., Lenders V., Capkun S. (2016) Quantifying Location Privacy Leakage from Transaction Prices. In: Askoxylakis I., Ioannidis S., Katsikas S., Meadows C. (eds) Computer Security – ESORICS 2016. ESORICS 2016. Lecture Notes in Computer Science, vol 9879. Springer, Cham https://eprint.iacr.org/2015/496
 14. https://medium.com/@octskyward/merge-avoidance-7f95a386692f
 15. https://bitcointechtalk.com/saving-up-to-80-on-bitcoin-transaction-fees-by-batching-payments-4147ab7009fb
 16. https://www.reddit.com/r/Bitcoin/comments/3a1hte/psa_dust_being_sent_to_your_addresses_might_help/
 17. https://www.reddit.com/r/Bitcoin/comments/9r9qud/if_you_have_recently_received_a_very_small_amount/
 18. https://www.reddit.com/r/Bitcoin/comments/2yvy6b/a_regulatory_compliance_service_is_sybil/
 19. Alex Biryukov, Dmitry Khovratovich, and Ivan Pustogarov. 2014. Deanonymisation of Clients in Bitcoin P2P Network. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security (CCS '14). ACM, New York, NY, USA, 15-29. DOI: 10.1145/2660267.2660379 https://arxiv.org/abs/1405.7418
 20. Koshy, Philip & Koshy, Diana & McDaniel, Patrick. (2014). An Analysis of Anonymity in Bitcoin Using P2P Network Traffic. 8437. 469-485. 10.1007/978-3-662-45472-5_30. http://ifca.ai/fc14/papers/fc14_submission_71.pdf
 21. https://github.com/bitcoin/bitcoin/issues/3828
 22. https://twitter.com/waxwing__/status/983258474040774657
 23. https://twitter.com/thegrugq/status/1062194678089404421
 24. https://motherboard.vice.com/en_us/article/3k9zzk/hacking-team-hacker-phineas-fisher-has-gotten-away-with-it
 25. https://motherboard.vice.com/en_us/article/nzeg5x/here-are-all-the-sketchy-government-agencies-buying-hacking-teams-spy-tech
 26. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-June/016062.html
 27. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009510.html
 28. https://bitcoin.stackexchange.com/questions/61151/eclipse-attack-vs-sybil-attack
 29. https://github.com/bitcoin/bitcoin/pull/8282
 30. https://github.com/bitcoin/bitcoin/pull/5941
 31. https://github.com/bitcoin/bitcoin/pull/9037
 32. https://github.com/bitcoin/bitcoin/pull/8594
 33. https://github.com/bitcoin/bitcoin/pull/12626
 34. https://bitcoin.stackexchange.com/questions/83018/transaction-relay-and-trickling-in-bitcoin
 35. https://github.com/bitcoin/bitcoin/issues/13298
 36. https://github.com/bitcoin/bitcoin/pull/7125
 37. https://github.com/bitcoin/bitcoin/pull/7840
 38. https://bitcointalksearch.org/topic/m.264
 39. https://github.com/bitcoin/bitcoin/pull/5951
 40. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-June/014571.html
 41. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/015030.html
 42. https://bitcoinmagazine.com/articles/anatomy-anonymity-how-dandelion-could-make-bitcoin-more-private/
 43. https://www.youtube.com/watch?v=XORDEX-RrAI&t=7h34m35s
 44. https://blockstream.com/satellite/
 45. https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md#partial-spend-avoidance
 46. https://github.com/petertodd/dust-b-gone
 47. https://medium.com/@octskyward/merge-avoidance-7f95a386692f
 48. https://medium.com/@nopara73/coin-control-is-must-learn-if-you-care-about-your-privacy-in-bitcoin-33b9a5f224a2
 49. https://p2sh.info/
 50. Scaling Bitcoin conference 2018 Tokyo. Conner Fromknecht (Lightning Labs) Instantiating [Scriptless] 2P-ECDSA: Fungible 2-of-2 MultiSigs for Today's Bitcoin. https://www.youtube.com/watch?v=3mJURLD2XS8&t=3623 https://diyhpl.us/wiki/transcripts/scalingbitcoin/tokyo-2018/scriptless-ecdsa/
 51. https://medium.com/cryptoadvance/how-schnorr-signatures-may-improve-bitcoin-91655bcb4744
 52. https://bitcoincore.org/en/2017/03/23/schnorr-signature-aggregation/
 53. https://blockstream.com/2018/01/23/musig-key-aggregation-schnorr-signatures/
 54. https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki
 55. https://bitcoinmagazine.com/articles/scriptless-scripts-how-bitcoin-can-support-smart-contracts-without-smart-contracts/
 56. https://download.wpsoftware.net/bitcoin/wizardry/mw-slides/2017-03-mit-bitcoin-expo/slides.pdf
 57. https://joinmarket.me/blog/blog/flipping-the-scriptless-script-on-schnorr/
 58. https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-April/001221.html
 59. http://diyhpl.us/wiki/transcripts/layer2-summit/2018/scriptless-scripts/
 60. https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f
 61. https://bitcoinmagazine.com/articles/the-next-step-to-improve-bitcoin-s-flexibility-scalability-and-privacy-is-called-mast-1476388597/
 62. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015614.html
 63. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015700.html
 64. https://www.reddit.com/r/Bitcoin/comments/7vcyip/graftroot_private_and_efficient_surrogate_scripts/
 65. https://bitcoinmagazine.com/articles/graftroot-how-delegating-signatures-allows-near-infinite-spending-variations/
 66. https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b#worked-example-for-tumbler-replacement
 67. https://www.reddit.com/r/joinmarket/comments/3c7hnm/joinmarket_is_smart_contracts/
 68. https://blockstream.com/2018/08/08/improving-privacy-using-pay-to-endpoint/
 69. https://medium.com/@nopara73/pay-to-endpoint-56eb05d3cac6
 70. https://gist.github.com/AdamISZ/4551b947789d3216bacfcb7af25e029e
 71. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-August/016340.html
 72. https://joinmarket.me/blog/blog/coinswaps/
 73. https://joinmarket.me/blog/blog/coinjoinxt/
 74. https://joinmarket.me/blog/blog/the-steganographic-principle/
 75. https://www.reddit.com/r/Bitcoin/comments/7t1q5x/deanonymization_risks_on_lightning_network/
 76. https://github.com/lightningnetwork/lightning-rfc/blob/master/04-onion-routing.md
 77. https://diyhpl.us/wiki/transcripts/scalingbitcoin/milan/onion-routing-in-lightning/
 78. https://www.reddit.com/r/Bitcoin/comments/7rrjp3/is_onion_routing_appropriate_for_lightning_network/
 79. https://www.reddit.com/r/Bitcoin/comments/8hwzbh/chainalysis_on_the_ln/
 80. https://github.com/lightningnetwork/lightning-rfc/wiki/Rendez-vous-mechanism-on-top-of-Sphinx
 81. https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-November/001498.html
 82. https://bitcoinops.org/en/newsletters/2018/11/20/
 83. https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-February/000993.html
 84. L2 Summit Hosted by MIT DCI and Fidelity Labs, Boston 2018, Andrew Poelstra talk on Scriptless Scripts http://diyhpl.us/wiki/transcripts/layer2-summit/2018/scriptless-scripts/
 85. Giulio Malavolta, Pedro Moreno-Sanchez, Aniket Kate, Matteo Maffei, and Srivatsan Ravi. 2017. Concurrency and Privacy with Payment-Channel Networks. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (CCS '17). ACM, New York, NY, USA, 455-471. DOI: https://doi.org/10.1145/3133956.3134096 https://eprint.iacr.org/2017/820.pdf
 86. https://diyhpl.us/wiki/transcripts/scalingbitcoin/stanford-2017/concurrency-and-privacy-with-payment-channel-networks/
 87. See first 20 minutes of this: https://www.youtube.com/watch?v=H1yPkPXLDVc
 88. Jordi Herrera-Joancomarti, Guillermo Navarro-Arribas, Alejandro Ranchal-Pedrosa, Cristina Perez-Sola, Joaquin Garcia-Alfaro (2019), "On the Difficulty of Hiding the Balance of Lightning Network Channels" IACR Cryptology ePrint Archive: https://eprint.iacr.org/2019/328
 89. https://github.com/jlopp/physical-bitcoin-attacks
 90. https://gist.github.com/chris-belcher/00255ecfe1bc4984fcf7c65e25aa8b4b#worked-example-for-tumbler-replacement
 91. https://www.reddit.com/r/joinmarket/comments/7614ea/how_to_properly_spend_tumbled_coins/
 92. https://twitter.com/msuiche/status/863082346014224385
 93. https://bitcointalksearch.org/topic/monitoring-wannacry-hackers-bitcoin-addresses-in-real-time-1916199
 94. https://www.reddit.com/r/Bitcoin/comments/anycg2/electrum_targeted_phishing_malware_warning/
 95. https://twitter.com/GossiTheDog/status/1078308649158664194
 96. https://twitter.com/LaurentMT/status/1078638385256902656
 97. https://www.reddit.com/r/Bitcoin/comments/2ww4eb/how_does_wallet_explorer_know_which_wallets/
 98. https://www.walletexplorer.com/txid/5ac0210febf7ce07a737bae8c32f84c1c54d131c21a16ca6b02b6f1edcad15c3
 99. https://www.coinjoinsudoku.com/
100. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015606.html
101. https://p2sh.info/dashboard/db/p2sh-repartition-by-type?orgId=1
102. https://www.youtube.com/watch?v=Tiyvrh53Yp8
103. https://www.reddit.com/r/Bitcoin/comments/4vupa6/p2shinfo_shows_movement_out_of_multisig_wallets/
104. https://web.archive.org/web/20170309231819/https://www.reddit.com/r/Bitcoin/comments/4v28jl/how_have_fungiblity_problems_affected_you_in/
105. https://www.reddit.com/r/Bitcoin/comments/69duq9/50_bounty_for_anybody_recovering_445_btc_stolen/
106. Goldfeder, S., Kalodner, H., Reisman, D., & Narayanan, A. (2018). When the cookie meets the blockchain: Privacy risks of web payments via cryptocurrencies, Proceedings on Privacy Enhancing Technologies, 2018(4), 179-199. doi: https://doi.org/10.1515/popets-2018-0038
107. https://web.archive.org/web/20150607131623/http://www.reddit.com/r/DarkNetMarkets/comments/2rhaqc/deanonimyzing_bitcoinfog_and_other_tumblers/
108. Juhasz PL, Steger J, Kondor D, Vattay G (2018) A Bayesian approach to identify Bitcoin users. PLOS ONE 13(12): e0207000. https://doi.org/10.1371/journal.pone.0207000
109. D. Y. Huang et al., "Tracking Ransomware End-to-end," 2018 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, 2018, pp. 618-631. doi: 10.1109/SP.2018.00047 https://www.youtube.com/watch?v=H5bPmzsVLF8
legendary
Activity: 2464
Merit: 2377
August 10, 2019, 06:03:28 AM
#14
Пример из реальной жизни - Анализ кошелька биржы QuadrigaCX

1. В начале 2019 года биржа QuadrigaCX закрылась, и многие ее клиенты, вероятно, навсегда лишились доступа к своим средствам в биткоинах.
2. Клиент хотел проанализировать блокчейн, чтобы найти информацию о кошельке QuadrigaCX.
3. Он просил на форумах других клиентов раскрывать их адреса депозитов и транзакции, многие клиенты так и сделали.
4. Используя www.walletexplorer.com, аналитик смог найти большой кластер кошельков, содержащий все эти адреса, скорее всего, это горячий кошелёк QuadrigaCX.  Горячий кошелек совершал множество транзакций, часто происходило повторное использование адресов и не использовалас CoinJoin, поэтому вполне вероятно, что этот анализ верен.
5. Кластер на Walletexplorer под названием MtGoxAndOthers вводит аналитика в заблуждение, заставляя его поверить, что QuadrigaCX имеет какое-то отношение к MtGox, когда в действительности кластер образуется из-за CoinJoin.
6. Аналитик не смог найти ни одного кластера со значительным количеством биткоинов, который мог бы быть холодным кошельком. Однако холодные кошельки, скорее всего, создадут несколько транзакций и никогда не будут использовать адреса повторно, поэтому такой кластер никогда не появится на walletexplorer.com, который использует эвристику собственности общих входов. Однако возможна ситуация, когда биржа является неплатежеспособной и, следовательно, не имеет холодного кошелька.

Основная статья: https://blog.zerononcense.com/2019/02/04/quadrigacx-chain-analysis-report-pt-1-bitcoin-wallets/

Комментарии редактора: https://www.reddit.com/r/Bitcoin/comments/amut05/investigation_proves_an_exchange_quadriga_ran_a/

Пример из реальной жизни - Бан клиентов Bustabit casino на бирже Coinbase.com

1. Coinbase.com - это биткоин биржа. Bustabit - это онлайн казино, использующее биткоины.
2. В Соединенных Штатах азартные онлайн игры являются незаконными (хотя правительство штатов часто проводит свои собственные лотереи, а азартные игры в реальности, например в Вегасе, являются законными).  
3. Coinbase.com придерживается такой политики, предупреждая и в конечном счете запрещая клиентам онлайн казино пользоваться своей торговой площадкой.
3. Некоторые клиенты Bustabit были предупреждены и получили бан на Coinbase.com.
4. На Bustabit было реализовано предотвращение сдачи [100], поэтому многие из их выходов транзакций не имеют выхода сдачи.
5. Bustabit также импортировал много тысяч повторно используемых адресов в JoinMarket и начал их использовать в качестве входов во многих CoinJoin транзакциях.
6. Больше на Coinbase.com никогда не предупреждали и не банили клиентов Bustabit casino.
7. Похоже, что сочетание двух этих методов нарушило эвристику собственности общих входов и уменьшило утечку приватной информации для выходов сдачи. Это привело к тому, что наблюдатели за транзакциями с Coinbase.com больше не смогли идентифицировать адреса кошелька Bustabit.

Пример из реальной жизни - Редкие мультиподписные скрипты

1. По состоянию на январь 2019 года мультиподписные скрипты видны любому наблюдателю за блокчейном.
2. Сюда входят M-из-N мультиподписи, наиболее распространенными из которых на сегодняшний день являются 2-из-3 мультиподписи [101].
3. Некоторые очень необычные скрипты, такие как 12-из-14 мультиподписей, использовались несколько раз в блокчейне. Они легко обнаруживаются как чей-то кошелек, который получил средства, а затем потратил их.
4. Биткоин хранилище компании Xapo использовало схему 3-из-5 мультиподписи. В какой-то момент, когда они переместили его, в результате чего 90% монет, удерживаемых на 3-из-5 мультиподисных адресах переместились в блокчейне. Это показало количество биткоинов в кошельке Xapo [102].
5. В 2016 году биржа Bitfinex была взломана и часть средств с ее кошелька была украдена. Для хранения монет Bitfinex использовалась схема 2-из-3 мультиподписных адресов. Когда вор переместил украденые монеты на обычные не мультиподписные адреса, в блокчейне было хорошо видно движение 120 000 биткоинов из 2-из-3 мультиподписных адресов , и это показало размер кражи [103].

Пример из реальной жизни - Внештатный ИТ-подрядчик позволил своему коллеге выяснить размер заработной платы из-за повторного использования адреса

1. На форуме bitcoin reddit [104] пользователь опубликовал информацию о своем опыте общения с коллегой, который выяснил его заработную плату за счет повторного использования адреса.
2. "В качестве внештатного ИТ-подрядчика у меня был один случай, когда их местный специалист выяснил мою ежедневную заработную плату. Конечно, он был немного расстроен и пожаловался своему менеджеру на свою заработную плату. Мое агентство оштрафовало меня на 50% от месячной заработной платы. Нет необходимости говорить, что теперь я создаю уникальный адрес для каждой оплаты труда и использую другой набор адресов для ежедневных личных расходов".

Урок: Повторное использование адреса нежелательно для сохранения приватности.

Пример из реальной жизни - Хакер скрывает 445 BTC с помощью CoinJoin

1. В мае 2017 года пользователь reddit опубликовал тему в которой рассказал, что о хранении на веб-кошельке blockchain.info 445 BTC, которые были украдены у него [105].
2. Он предложил 50%-ную награду за любую помощь или информацию, которая бы привела правоохранительные органы к повторному нахождению его биткоинов.
3. Украденные монеты оказались смешанными через JoinMarket. Похоже, хакер поместил монеты в скрипт JoinMarket и смешивал их с помощью CoinJoin не один раз. CoinJoin цепочка смешивания монет хорошо видна.
4. Но никто так и не смог найти каких-то следов украденных монет.

Плохой пример приватности - Объединение данных из блокчейна и cookie-файлов при оплате интернет покупок в биткоинах

1. Интернет-магазины имеют несколько потенциальных утечек приватной информации. Примерами могут служить файлы cookie сторонних разработчиков (например, с сайтов Doubleclick, Google Analytics или Facebook) или данные, передаваемые продавцам умышленно, такие как имя, адрес доставки или адрес электронной почты.
2. Блокчейн биткоина может привести к утечке большого количества информации, имеющей отношение к приватности.
3. Объединение данных этих двух категорий утечек может раскрыть много информации о людях, использующих биткоин для совершения покупок в интернете. Этой теме посвящена статья 2018 года, названная "When The Cookie Meets The Blockchain" [106].
4. Например, если биткоин-пользователь покупает новую шляпу и заказывает доставку домой, а затем с того же самого биткоин кошелька отправляет пожертвование в Wikileaks, то продавец шляп и сторонние наблюдатели (которые знают настоящее имя и почтовый адрес пользователя) могут обнаружить, что этот же пользователь сделал пожертвование в Wikileaks.

Этот пример хорошо демонстрирует как при объединении двух разных утечек приватной информации можно получить гораздо больше информации, по сравнению с каждой отдельной утечкой.

Проблемы приватности сторонних веб-сайтов, отслеживающих cookie-файлы, известны уже почти десять лет, но ситуация не сильно улучшилась. Приватность в такой ситуации не может быть нарушена, если:
1) использовать браузерные расширения, такие как uBlock Origin, Adblock Plus или Ghostery, блокирующие cookie-файлы сторонних производителей.
2) использовать off-chain транзакции для осуществления платежей.
Начиная с 2019 года, для совершения покупок в интернете будет использоваться сеть Lightning Network.

Плохой пример приватности - Корреляция сумм позволяет деанонимировать смешивание монет централизованным миксером

BitcoinFog - это централизованный миксер биткоинов, он взимает 1-3% от смешиваемых монет.
Кто-то из reddit легко отслеживает смешивание сервиса BitcoinFog, используя корреляцию сумм [107].

Плохой пример приватности - Объединение данных из блокчейна и данных о транзакциях с IP-адресами, транслирующих данные

1. В документе 2018 года [108] для деанонимизации пользователей биткоина используется анализ блокчейна и отслеживание трансляций транзакций.
2. Исследователи используют повторное использование адреса и эвристику собственности общих входов (авторы статьи не упоминают о технологии CoinJoin).
3. Исследователи подключаются к каждому прослушивающему биткоин узлу и пытаются отслеживать транзакции по мере их трансляции. Это дает им представление об исходном IP-адресе.
4. В документе идентифицируется около 22 000 пользователей биткоина, связывая их IP-адрес с биткоин адресами. Около 20 000 из этих пользователей приходят с одного IP-адреса, который, вероятно, является популярным веб-кошельком.
5. Документ собрал данные в конце 2013 года, но алгоритм ретрансляции транзакций Bitcoin Core был значительно изменен, чтобы улучшить приватность. Таким образом, используемый метод на сегодняшний день должен работать не очень хорошо.

Урок: трансляция приватных транзакций (например, через TOR) необходима для повышения уровня приватности.

Пример из реальной жизни - Документ по анализу транзакций ПО биткоин-вымогателей 2018 г.

1. В статье 2018 г. используются методы отслеживания для изучения ПО биткоин-вымогателей [109].
Некоторые программы-вымогатели используют статические адреса (что подразумевает повторное использование адреса), в то время как другие требуют от жертв подключения к http-серверу, который выдает новые биткоин адреса.
2. Чтобы найти адреса программ-вымогателей, исследователи обнаружили онлайн отчеты жертв и двоичные файлы программ-вымогателей с реверсивной разработкой, чтобы найти адреса внутри.
3. Они также использовали платежи тайных покупателей, посылая 0,001 BTC на адреса программ-вымогателей и наблюдали куда эти монеты отправляется. Два оператора программ-вымогателей (Cerber и Locky) завладели наживкой, но один оператор (Sage) этого не сделал, и поэтому его кластер так и не был обнаружен.
4. Исследователи используют эвристику собственности общих входов для нахождения групп адресов. Они знают, что CoinJoin нарушает это предположение и поэтому ищут обнаруживаемые транзакции CoinJoin внутри кластеров, которые бы указывали на разрыв. Это было до изобретения или реализации PayJoin, так что предполагается, что все монеты могут быть обнаружены.
5. Исследователи пытаются сопоставить кластеры входящих платежи программ-вымогателей со скачками в поисковых системах Google и загрузки программ-вымогателей на веб-сайты. Если есть всплески в поисковых запросах Google или бинарных загрузках без соответствующего увеличения входящих платежей биткоина, то это указывает на то, что исследователи пропустили некоторые кластеры, относящиеся к кошелькам программ-вымогателей. Используется корреляция по времени. Исследователи приходят к выводу, что на самом деле им недостает большинства кластеров для CryptoDefense, CryptoLocker и CryptoWall, но, вероятно, у них есть все кластеры для других программ-вымогателей, которые они изучают.
6. Компания по наблюдению за транзакциями под названием Chainalysis используется для поиска владельцев определенных адресов. Особенно хорошо она работает для обмена данными с Chainalysis. С помощью этой программы можно отследить назначение средств, предназначенных для получения выкупа. Крупнейшим известным пунктом назначения является BTC-E, ныне закрытая российская биржа со слабым контролем, который, как известно, широко использовался преступниками. Однако подавляющее большинство средств направляется в неизвестных направлениях. Одна программа-вымогатель под названием CryptoXXX отправляла примерно 95% средств в неизвестном направлении, WannaCry - 100%. Исследователи пишут про BTC-E в своем резюме и выводах, потому что это самый большой пункт назначения, который они могли найти, но в действительности большинство программ-вымогателей отследить так и не удалось.

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 06:01:54 AM
#13
Плохой пример приватности - Отправка пожертвований на статический адрес без принятия необходимых мер предосторожности

1. У вас есть биткоины и вы храните их на кастодиальном кошельке.
2. Вы хотите пожертвовать средства на благотворительность или для какой-то политической группы.
3. Вы создаете транзакцию на веб-сайте кастодиального кошелька, отправляя деньги на адрес пожертвования политической группы.
4. Сервер кастодиального кошелька может определить, куда вы отправляете ее (особенно, если группа использует статический адрес для пожертвований).
5. Они не согласны с вашими политическими взглядами, и решают заблокировать ваш аккаунт.

Урок: Использование кастодиального кошелька может нарушить вашу приватность, так как сервер может наблюдать за всем тем, что вы делаете. Повторное использование адреса может нарушить приватность (что очень часто встречается с адресами для пожертвований).

Плохой пример приватности - Получение пожертвований, за которыми следит тайный покупатель

1. Вы хотите принимать пожертвования в биткоине, но также хотите, чтобы общая сумма пожертвований оставалась приватной.
2. Вы настраиваете веб-сервер для выдачи уникальных адресов каждому посетителю.
3. Злоумышленник, который хочет получить представление о вашем общем доходе от пожертвований, пожертвовал вам небольшое количество биткоинов.
4. Вы объединяете все пожертвования, используя в качестве входов в одну транзакцию, связывая их вместе (эвристика собственности общих входов).
5. Злоумышленник получает хорошее представление о вашем общем доходе от пожертвований.

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

Пример из реальной жизни - Вредоносные программы для кражи биткоинов с использованием статических адресов

1. Вы являетесь создателем вредоносного ПО (вредоносных программ, которые крадут деньги у своих жертв).
2. Вы встраиваете какой-то биткоин-адрес в ваше вредоносное ПО, и распространяете это ПО в сети.
3. Любой аналитик вредоносных программ сможет увидеть, сколько биткоинов вы украли, просто вставив адрес в веб-сайт анализирующий блокчейн.

Это было сделано во многих случаях, включая: the Wannacry malware [92][93] и Electrum stealware [94][95].

Плохой пример приватности - Вредоносное ПО для кражи биткоинов, за которым следит тайный покупатель

1. Вы - специалист-аналитик, занимающийся исследованиями вредоносных программам, которые крадут биткоины.
2. Автор вредоносного ПО закодировал схему ECDH адресов в своем вредоносном ПО.
3. Проанализировав вредоносное ПО вы обнаруживаете только открытый ключ ECDH, а не биткоин адреса, поэтому автор вредоносного ПО полагает, что его анонимность достаточно высока.
4. Вы отправляете небольшое количество биткоинов на адрес, полученный из открытого ключа ECDH в качестве платежа тайного покупателя.
5. Автор вредоносного ПО отправляет все украденные им средства на биржу одной транзакцией, включающей и ваш платеж.
6. Теперь вы можете взглянуть на блокчейн и используя эвристику собственности общих входов, можете получить представление об общем количестве биткоинов, украденных вредоносным ПО.
7. Также теперь вы можете связаться с биржей, которая сообщит в правоохранительные органы реальную личность автора вредоносного ПО, которого затем можно будет посадить в тюрьму.

Урок: Платежи тайного покупателя вместе с эвристикой собственности общих входов могут быть использованы для деанонимизации даже тех, кто избегает повторного использования адреса.

Пример - Одноразовый легкий кошелек через TOR

1. Вы хотите анонимно купить что-то или пожертвовать средства в интернете.
2. Вы устанавливаете кошелек Electrum и настраиваете его на использование через TOR или на Tails OS.
3. Вы покупаете биткоины анонимно за наличные и отправляете их на свой кошелек Electrum.
4. Вы тратите всю сдачу на покупку желаемого или делаете пожертвование.
5. После того, как вы закончили, вы удаляете кошелек и больше никогда не используете его.

Ваш кошелек Electrum использовал сторонний сервер, который может видеть все ваши биткоин адреса и транзакции. Поскольку вы подключались к нему через TOR, сервер не узнает ваш реальный IP-адрес. Поскольку вы используете только один адрес, причем единожды, сервер не сможет связать его с другими адресами. Так как вы потратили весь баланс, нет адреса сдачи, что могло бы привести к утечке информации. Такая схема на самом деле обеспечивает достаточно высокий уровень приватности, даже если используется сторонний сервер.

Плохой пример приватности - Использование легкого кошелька через TOR несколько раз

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

1. Вы хотите использовать биткоин для оплаты более одного раза, например, купить новую шляпу и оплатить VPN.
2. Вы устанавливаете кошелек Electrum и настраиваете его на использование через TOR.
3. Вы платите за новую шляпу и заказываете ее на свой почтовый адрес.
4. Вы платите за VPN для повышения приватности при работе в интернет.
5. Так как кошелек Electrum делает запросы на сторонний сервер Electrum, то он может связать эти две транзакции и определить, какой адрес является адресом сдачи.
6. Поэтому сервер может легко определить и хранить информацию, что один и тот же человек купил шляпу и заплатил за VPN. Поскольку покупка шляпы требует указания вашего почтового адреса, он может быть связан с вашей учетной записью VPN.

Урок 1: Сторонний сервер Electrum смог связать между собой две ваши транзакции. Избегайте этого, запустив свой собственный сервер Electrum, который поддерживается вашим собственным полным узлом.

Урок 2: Обратите внимание, что TailsOS с 2018 года использует эту модель приватности для Electrum.

Пример из реальной жизни - Публичный адрес для пожертвований в сочетании с эвристикой собственности общих входов

1. Зайдите на веб-сайт, который принимает пожертвования в биткоин, например, на страницу пожертвований Tails OS.
2. Запишите адрес для пожертвований (в данном случае 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2) и найдите его на веб-сайте www.walletexplorer.com
3. Веб-сайт использует эвристику собственности общих входов, повторное использование адресов и, возможно, другие методы группирования адресов.
4. Мы можем увидеть суммы и объем пожертвований на проект Tails OS: https://www.walletexplorer.com/wallet/04d3d17f766c4e53?from_address=1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2. Эти суммы выглядят реалистично, поэтому мы, вероятно, находимся на правильном пути.

Пример из реальной жизни - Цифровая криминалистика помогает в исследовании по бирже Mt. Gox

1. Mt. Gox - это прекратившая свою деятельность биржа, которая была закрыта в 2013 году в связи с банкротством.
2. В марте 2014 года произошла утечка внутренней базы данных биржы, из которой стало возможным составить почти полную картину депозитов и снятия средств с кошельков.
3. Большое значение имеет также повторное использование адреса. Эвристика собственности общих входов была менее важным фактором, потому что эвристика была нарушена функцией импортирования закрытого ключа Mt. Gox.
4. Анализ информации также был перепроверен путем поиска в интернете всех сообщений на форумах, в которых клиенты пишут что-то вроде: "Помогите! Я сделал депозит в Mt. Gox на сумму 0.12345 BTC. Пока я пишу, моя транзакция имеет 20 подтверждений, но депозит не появился на бирже". Сообщения на форуме включают дату и время. Эти сообщения содержат достаточно информации для поиска соответствующей транзакции в блокчейне.
5. Анализ показал, что с биржы Mt. Gox было совершено несколько краж и биржа была неплатежеспособной на протяжении большей части своего существования.

Пример из реальной жизни - Некорректное использование эвристики собственности общих входов преувеличивает доход от пожертвований

1. Зайдите на веб-сайт, который принимает пожертвования в биткоин, например, ThePirateBay.
2. Запишите их адрес для пожертвований (в данном случае 1z8Tep4BNS79W3kYH8CHA8tWj6nuHYcCM) и найдите его на сайте www.walletexplorer.com
3. Веб-сайт использует эвристику собственности общих входов, повторное использование адресов и, возможно, другие методы группирования адресов.
4. Большую часть сумм и объем пожертвований ThePirateBay можно увидеть на сайте https://www.walletexplorer.com/wallet/00005c945dba011c?from_address=1z8Tep4BNS79W3kYH8CHA8tWj6nuHYcCM.
5. Результаты показывают, что ThePirateBay получает пожертвования в сотни миллионов долларов в день, что невероятно.
6. Возможное объяснение тому, что происходит на самом деле - ThePirateBay принимает пожертвования прямо на адрес своего аккаунта биржы, что приводит к тому, что анализ, основанный на эвристике собственности общих входов, дает сильно завышенные показатели, поскольку фактически выявляет все депозиты на бирже. Для ThePirateBay это опасно тем, что биржа может блокировать или подвергать цензуре поступающие пожертвования.
7. Другая возможная причина тому, что ThePirateBay использует CoinJoin.

Пример из реальной жизни - Неправильные кластеры, найденные при помощи эвристики общей собственности

1. Веб-сайт www.walletexplorer.com использует эвристику общей собственности, повторное использование адресов и, возможно, другие методы группирования адресов.
2. Там имеется большой кластер под названием MtGoxAndOthers, с которым по состоянию на январь 2019 года связано 8,8 млн транзакций и 3,6 млн адресов.
3. Старая биржа Mt. Gox имела функцию, позволяющую пользователям импортировать закрытые ключи биткоина из своего личного кошелька прямо на веб-сайт [96]. Там они будут объединены с UTXO собственного кошелька MtGox.
4. Похоже, что некоторые CoinJoin транзакции также попали в этот кластер [97].
5. Например, транзакция 5ac0210febf7ce07a737bae8c32f84c1c54d131c21a16ca6b02b6f1edcad15c3, которая, вероятно, является транзакцией JoinMarket, входящей в кластер MtGoxAndOthers [98].
6. Другим примером может служить транзакция 52757ed33a235ce8e48aeaab7f6dd9cd3445c3642630123103b154ee59f3f5, являющаяся CoinJoin транзакцией, созданной старой централизованной службой SharedCoin [99], также входящей в кластер MtGoxAndOthers по данным walletexplorer.  

Пример из реальной жизни - Ручная CoinJoin транзакция вводит в заблуждение наблюдателя

1. Изобретатель CoinJoin Грег Максвеллл опубликовал тему на форуме https://bitcointalksearch.org/topic/i-taint-rich-raw-txn-fun-and-disrupting-taint-analysis-51kbtc-linked-139581 под названием "I taint rich!", целью которой была продемонстрировать CoinJoin и как эвристика собственности общих входов не всегда является правильной.
2. Читателям форума предлагалось вручную создать CoinJoins с адресом Грега Максвелла, что, как он надеялся, станет хорошим примером недостатков эвристики собственности общих входов.
3. Много лет спустя биткоин транзакция на 40000 биткоинов транслировалась в сеть, что вызвало некоторые неверные предположения на форуме. Из-за ручной CoinJoin транзакции некоторые пришли к неверному выводу, что Грег Максвелл был владельцем 40000 BTC.
4. Цитата от аналитика:
"Изначально они принадлежали кому-то с vanity адресом GMaxweLLL: 14947302eab0608fb2650a05f13f13f6f6f30b27a0a314c41250000f77ed904475dbb.

Если вы проследите 40k из этой транзакции (щелкните выходы), вы получите транзакцию, с которой вы связаны. Это короткая серия транзакций.

В принципе, кто-то, кто владеет этим адресом, смог разблокировать монеты с этого адреса, а также с другого адреса, который содержал 40,000, в той же транзакции. Таким образом, этот человек должен был владеть обоими адресами (по крайней мере, 4 года назад)".

Урок: эвристика собственности общих входов не всегда верна.

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:59:58 AM
#12
Пример - Приватное получение пожертвований

1. Вы имеете один адрес для получения пожертвований для вашей группы или проекта, любой желающий может увидеть все пожертвования и их суммы, введя адрес для пожертвований в веб-анализаторе блокчейна.
2. Вы хотите потратить пожертвования так, чтобы никто не узнал об этом в интернете.
3. Адрес для пожертвований является частью кошелька, поддерживаемого полным узлом, таким как Armory.
4. Транслируйте транзакцию через TOR для внесения пожертвованных средств на веб-сайт биткоин сервиса, который позволяет анонимно пополнять и снимать средства.
5. Введите средства на другой похожий веб-сайт биткоин сервиса.
6. Позаботьтесь о том, чтобы использовать различные транзакции, чтобы не допустить корреляции сумм.
7. Не забудьте подождать некоторое время, чтобы остановить тайминги, используемые для объединения транзакций.
8. Повторите это для многих других веб-сайтов [90], прежде чем отправить монеты обратно на ваш собственный кошелек.

Возьмем пример с 1 BTC. Каждая стрелка -> является новой транзакцией вывода средств.

Code:
Кошелек    Казино1           Биржа альткоинов         Казино2         Биржа фьючерсов           Кошелек
1BTC  ->  Адрес А 1BTC   ->  Адрес B 0.1BTC    ->  Адрес E 0.1BTC  ->  Адрес G 0.4BTC   ->  Адрес I 0.25BTC
                         ->  Адрес C 0.2BTC    ->  Адрес F 0.9BTC  ->  Адрес H 0.6BTC   ->  Адрес J 0.25BTC
                         ->  Адрес D 0.7BTC                                             ->  Адрес K 0.25BTC
                                                                                        ->  Адрес L 0.25BTC

Как и прежде, кошелек использующий свой полный узел позволяет вам узнавать свою личную историю и баланс приватно, в то время как трансляция через TOR скрывает ваш IP-адрес, используемый при отправке транзакции. Использование транзакций с различным количеством монет предотвращает корреляцию сумм, которая может нарушить вашу приватность. Использование нескольких биткоин сервисов означает, что одного веб-сайта, сотрудничающего со злоумышленником, будет недостаточно, чтобы полностью нарушить вашу приватность. Существует некоторый риск, связанный с возможной потерей средств, так как любой такой сервис способен украсть ваши средства, так что подходите к их выбору с особой осторожностью.

Пример - Приватное хранение средств

1. Вы хотите хранить средства в биткоине так, чтобы никто кроме вас не знал, сколько средств вы имеете, или даже, что у вас вообще имеется биткоин.
2. Купите монеты каким-то образом и отправьте их на ваш кошелек JoinMarket, который вы настроили на использование своего собственного полного узла, полностью работающего через TOR.
3. Запустите тумблер-скрипт JoinMarket, который создает множество транзакций CoinJoin с целью разорвать связи между адресами.
4. Отправьте монеты на другой кошелек, который будет использоваться для хранения биткоинов на протяжении длительного времени. Кошелек должен использовать полный узел, например, Electrum, настроенный на ваш собственный сервер Electrum.

Обратите внимание, что технология приватности, такая как JoinMarket, может скрывать личную информацию и связи ваших транзакций с вами, но она не может добавить приватности в других местах; например, если вы покупаете биткоин неанонимным способом, например, с помощью биржы, которая требует прохождения AML/KYC. Такая биржа будет иметь информацию, связывающую вашу реальную личность с вашими транзакциями.

Использование JoinMarket является альтернативой предыдущему методу, при котором монеты отправляется через многие веб-сайты биткоин сервисов, поэтому такой метод полезен там, где риск хранения является неприемлемо высоким (например, когда все ваши сбережения приватны). Все кошельки в этом примере поддерживаются полными узлами, чтобы предотвратить возможность связать ваши адреса сторонними службами или связывать их с вашим IP-адресом. Полный узел запускается полностью через TOR, чтобы ваш интернет-провайдер или любой атакующий на сетевом уровне не увидел, что вы запускаете биткоин узел.

Пример - Разрушение связи входящих платежей из разных источников

1. Если у вас два платежа приходят на один и тот же кошелек, то они могут быть связаны с помощью эвристики общей собственности.
2. У вас есть работа в качестве медсестры, но вы также подрабатываете стриптизершей для дополнительного заработка.  Обе работы оплачиваются в биткоинах и вы не хотите, чтобы они были связаны друг с другом.
3. Вы посылаете доход медсестры в один JoinMarket, а доход стриптизерши - в другой JoinMarket.
4. Вы запускаете тумблер-скрипт JoinMarket, который объединит оба баланса, не связывая их вместе.

Возможно сделать это другим способом, но с возможным риском потери средств. Например, отправив доход с работы медсестры на веб-сайт биткоин сервиса (например, казино), а позже отправить доход с работы стриптизерши, но на другой депозитный адрес. В итоге вывести все средства, вместе со многими выводами средств большого количества пользователей. Но, вероятно, самый лучший способ сделать это - получать один или оба вида дохода через Lightning Network.

Пример - Вывод выигрыша с казино на биржу без ведома ни одной из сторон (источник и назначение средств)

1. Вы выиграли 10 BTC в биткоин казино и хотите вывести их на биржу для последующей продажи без ведома ни одной из сторон (возможно, потому что азартные онлайн игры запрещены в вашей стране).
2. Установите JoinMarket и настройте его на свой собственный полный узел.
3. Получите выигрыш от казино, отправив его на ваш кошелек JoinMarket тремя различными платежами по 5 BTC + 2 BTC + 3 BTC, они должны перейти на отдельные глубины смешивания.
4. Запустите тумблер-скрипт JoinMarket, чтобы смешать монеты и отправить их на три разных депозитных адреса биржы с суммами, например, 1 BTC + 2 BTC + 7 BTC.
5. Тогда ни онлайн казино, ни биржа не могут использовать корреляцию сумм для выяснения источника или назначения средств. CoinJoin транзакции блокируют эвристику собственности общих входов, а другие функции JoinMarket блокируют повторное использование адреса и анализ графа транзакций [91].

Плохой пример приватности - Использование веб-сайта анализатора блокчейна

1. Вы получаете оплату в биткоинах на один из своих адресов.
2. Вы копируете и вставляете адрес на веб-сайт анализатор блокчейна и нажимаете кнопку "Обновить" , пока входящая транзакция не достигнет 3-х подтверждений.
3. Веб-сайт анализатор блокчейна получает информацию, что с вашего IP-адреса проявлен интерес к конкретному биткоин адресу.
4. Лучше всего избегать этого, используя в работе свой собственный биткоин кошелек (с полным узлом), с помощью которого вы можете приватно узнавать, когда поступили платежи и сколько подтверждений они получили, не давая узнать об этом какой-либо организации.

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

Плохой пример приватности - Смешивание приватных альткоинов не удается из-за корреляции сумм

1. На вашем адресе хранится 1.456225 BTC, по которому произошла утечка приватной информации (возможно, вы купили BTC на бирже с требованием пройти AML/KYC) и хотите отправить средства на другой адрес, разорвав связь между ними.
2. Вы обмениваете биткоины на приватный альткоин, который реализует некоторую технологию приватности в блокчейне, так называемую "privacy coin", а затем вы обмениваете их обратно на биткоин после совершения нескольких транзакций с приватными альткоинами.
3. Вы отправляете биткоины обратно на свой кошелек одной транзакцией.
4. Поскольку сумма сделки очень близка к первоначальной 1.456225 BTC, атакующему нетрудно проанализировать блокчейн и связать две транзакции с почти одинаковыми суммами, входящими и исходящими из используемой вами биржы альткоинов.

Урок: Транзакции имеют видимые для всех суммы, к которым следует относиться с осторожностью, соблюдая приватность.

Пример - Смешивание приватных альткоинов

1. Как и в предыдущем примере, у вас есть биткоины, которые вы хотите смешать. Вы обмениваете их на приватные альткоины и совершаете несколько транзакций чтобы повысить уровень приватность.
2. Для обмена обратно в биткоины, вы вносите приватные альткоины на депозитный счет биржы для продажи, используя несколько транзакций, так чтобы биржа и любой атакующий, анализирующий блокчейн, не смог связать адреса при помощи корреляции сумм.

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

Пример - Ежедневная коммерческая деятельность с помощью Lightning Network

1. У вас есть немного биткоинов и вы хотите потратить их на обычные товары и услуги (кофе, оплата мобильного, VPN, хостинг, аренда гостиницы или квартиры, авиарейсы, питание, напитки, одежда и т.д.) и вы хотите быть как можно более приватными.
2. Вы загружаете и устанавливаете кошелек Lightning Network и используете его для всех покупок.
3. Атаки на приватность, такие как эвристика собственности общих входов, повторное использование адреса и определение адреса сдачи, принципиально не работают ни на одной из технологий Off-Chfin транзакций.

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:58:01 AM
#11
Уровень приватности значительно повышается благодаря многократному использованию Coinjoin, поэтому в проекте JoinMarket предусмотрен сценарий тумблера (перекидывания), в котором Coinjoin создаются автоматически в произвольное время и в произвольном количестве. Биткоины могут быть помещены в HD кошелек JoinMarket, и скрипт тумблера будет отправлять их через множество Coinjoin на три или более адреса назначения. Возможность использования более чем одного адреса назначения необходима для разрушения анализа на основе корреляции сумм. Например, пользователь, который хочет внести монеты в обмен, может использовать кнопку "Создать новый адрес депозита" для получения более чем одного адреса назначения, обмен может затем объединить эти монеты с депозитами от других клиентов, которые должны противостоять любому отслеживанию на основе сумм.

JoinMarket может взаимодействовать с полным узлом Bitcoin Core для того, чтобы приватно получить историю своего собственного кошелька. Существует также возможность использования сервера Electrum, но пользователям не рекомендуется пользоваться ими. Планируется заменить интерфейс Electrum на интерфейс, использующий фильтрацию блоков со стороны клиента.

Программное обеспечение представляет собой проект с открытым исходным кодом, над которым работает сообщество пользователей. К сожалению, JoinMarket достаточно трудно установить людям, не привыкшим к Linux и интерфейсу командной строки. Можно надеяться, что однажды будет проделана работа, чтобы облегчить эту задачу, но поскольку все развитие осуществляется добровольцами, то у проекта нет никакой дорожной карты.

JoinMarket

Wasabi Wallet

Wasabi Wallet - это кошелек, который реализует CoinJoin. Он имеет открытый исходный код и написан на C#, .NET Core. Пакет включает в себя TOR и весь трафик между клиентами и сервером проходит через него, поэтому IP адреса скрыты. Он прост в установке и использовании. Кошелек включает в себя все стандартные технологии приватности, такие как иерархический детерминированный кошелек и предотвращение повторного использования адреса, а также обязательный контроль монет. Кошелек использует фильтрацию блоков со стороны клиента для приватного получения собственной истории транзакций.

Транзакции с использованием CoinJoin происходят между пользователями без посредников поставщика ликвидности. По состоянию на начало 2019 года они осуществляются раз в полтора часа.

Кошельки пользователей соединяются с сервером, который координирует CoinJoin. В кошельке используются слепые подписи Schnorr (которые аналогичны используемым в криптографии chaumian blind signatures и blinded bearer certificates), чтобы этот сервер или кто-либо другой не смог связать между собой входы и выходы смешанных транзакций. Сервером управляет компания zkSNACKs, которая разработала Wasabi Wallet, компания получает доход, получая комиссию (0,17% с каждого участника по состоянию на 2019 год) с каждой CoinJoin транзакции.

Wasabi Wallet

Samourai Wallet

Samourai Wallet - это кошелек для смартфонов, в который были встроены некоторые функции приватности. Stowaway - это внедрение PayJoin. Stonewall - это схема, которая создает похожие на CoinJoin транзакции, но на самом деле используемые только одним человеком (эти поддельные CoinJoin предназначены для запутывания компаний по наблюдению за транзакциями). PayNyms - это внедрение ECDH адресов. Кошелек также имеет функцию, называемую "like-type change outputs", где он генерирует адрес для сдачи такого же типа как и платежный адрес (это позволяет избежать анализа сигнатуры кошелька с использованием типов адресов, который приводит к обнаружению адреса сдачи).

По умолчанию Samourai Wallet получает информацию об истории и балансе пользователя, запрашивая информацию со своего собственного сервера. Этот сервер владеет всеми пользовательскими адресами и транзакциями, и может шпионить за пользователем. Поэтому использование стандартной конфигурации Samourai Wallet полезно только при модели угроз, когда злоумышленник может проанализировать блокчейн, но не может получить доступ к этому серверу. В июне 2019 года, когда был выпущен Samourai Wallet server - Dojo с открытым исходным кодом у пользователей появилась возможность разместить свой собственный сервер и привязать подключение своего Samourai Wallet для к нему.

Боковая цепочка Liquid (Liquid sidechain)

С 2018 года боковая цепочка Liquid реализуется на конфиденциальных транзакциях (CT), которая позволяет передавать биткоины по этой боковой цепочке, не раскрывая при этом суммы транзакций. Продукт разработан компанией Blockstream и предназначен для бирж и трейдеров. Это позволяет быстро и приватно передавать биткоины.

Поскольку Liquid - это федеративная боковая цепочка, пользователи, как правило, должны пройти проверку на наличие признаков отмывания денег и предоставить свои персональные данные для ее использования (KYC/AML). Ее модель безопасности очень близка к модели хранения биткоинов на бирже, поэтому если достаточное количество функциональности будет взломано, то все биткоины в боковой цепочке могут быть украдены. Однако в рамках этой модели безопасности вы получаете превосходную приватность, а сама боковая цепь продвигается среди трейдеров и хеджеров, которые, безусловно, хотят сохранить приватность своей торговой деятельности.

Примеры и тематические исследования

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

Плохой пример приватности - Повторное использование адреса

1. Вы являетесь крупным трейдером и имеете аккаунт на криптовалютной бирже.
2. Вы хотите внести на депозит большое количество биткоинов для продажи.
3. Вы отправляете биткоины на тот же самый адрес депозита, что и в прошлый раз.
4. Из-за повторного использования адреса, анализируя блокчейн, очень легко увидеть, что биткоины были отправлены на биржу.
5. Биржа требует 3 подтверждений перед зачислением средств на ваш аккаунт, но за это время цена изменяется не в вашу пользу, поскольку другие крупные трейдеры узнают о вашей транзакции.
6. Вы продаете биткоины по менее привлекательной цене, чем планировали.
7. Этого можно легко избежать, нажав на кнопку "Создать новый адрес депозита" на сайте биржи и отправить средства на него.

Плохой пример приватности - Повторное использование адреса при хранении

1. Вы храните биткоины, используя единственный адрес бумажного кошелька, что приводит к повторному использованию адреса.
2. Все ваши сбережения на этом адресе, допустим, составляют $1000000.
3. Вы покупаете небольшое количество биткоинов для пополнения своих сбережений, отправляя их в бумажный кошелек.
4. Человек, который продал вам биткоины, анализирует блокчейн и находит ваш бумажный кошелек, содержащий $1000000.
5. Он упоминает об этом кому-то в кафе или баре.
6. Ходят слухи. Вор врывается в ваш дом и держит вас в заложниках до тех пор, пока вы не переведете ему биткоины на сумму $1000000 [89].

Плохой пример приватности - Сбор персональных данных

1. Вы храните средства в биткоине, также вы занимаетесь торговлей на бирже, на которой требуется раскрывать свои персональные данные.
2. В основном вы покупаете монеты, но иногда и продаете. Вы используете только эту биржу для торговли.
3. Независимо от используемой вами технологии обеспечения приватности в блокчейне, у биржи есть доступ ко всем вашим сделкам и ее сотрудники легко могут узнать точное количество биткоинов, которые вы имеете в любой момент времени.

Пример - Уклонение от санкций

1. Вы живете в стране на которую распространяются международные торговые санкции других стран.
2. Из-за этого вы не можете купить нужную вам онлайн-газету.
3. Вы переходите на веб-сайт газеты используя TOR, чтобы атакующие не могли определить страну вашего проживания по IP-адресу.
4. Вы покупаете биткоины за наличные и отправляете их на кошелек на вашем компьютере, а затем используете биткоины для покупки газеты.
5. Биткоин транзакции не имеют привязки к местности, поэтому ваш платеж не привлечет внимания, даже, если ваша странна находится под санкциями.

Пример - Приватные сделки с вашими знакомыми при игре в онлайн покер

1. Вы играете в онлайн покер с несколькими людьми (на реальные деньги).
2. Вы выигрываете по-крупному. Крупная сумма средств уходит вам и ваши знакомые недовольны.
3. Ставки делаются в биткоинах, которые вы и получаете. Вы продаете монеты за наличные или через биржу, или используете их для непосредственной покупки товаров и услуг.
4. Ваши недовольные приятели по покеру не могут узнать ваше настоящее имя.

В данном примере используется модель умеренной угрозы, когда злоумышленник не может получить доступ к записям AML/KYC биржи (если вы не торговали наличными), также злоумышленник не является провайдером услуги интернет, поэтому достаточно сложно связать ваши биткоин адреса с IP адресом (в случае, если вы использовали легкий узел вместо полного узла).

Пример - Пожертвование без ведома вашего работодателя

1. Вы зарабатываете деньги в биткоине, ваш работодатель прислал вам биткоины в качестве зарплаты.
2. Вы хотите поддержать благотворительный фонд или политическую группу пожертвованием в размере 0.1 BTC, но не хотите, чтобы ваш работодатель знал об этом.
3. Вы отправляете 0.3 BTC на депозит в биткоин казино, на биржу альткоинов или другой веб-сайт биткоин сервиса, который позволяет анонимно вносить и снимать биткоины своим пользователям.
4. Вы выводите 0.1 BTC и указываете в качестве адреса для вывода монет желаемый адрес пожертвования.
5. Вы выводите оставшиеся 0,2 BTC обратно на свой кошелек (по совершенно новому адресу, избегая повторного использования адреса).

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

Пример - Пожертвование, о котором никто не знает

1. Вы хотите поддержать благотворительный фонд или политическую группу без ведома окружающих.
2. Скачайте и установите кошелек, который поддерживается полным узлом, такой как Bitcoin Core.
3. Купите точное количество биткоинов за наличные (купите немного больше нужного количества из-за возможных расходов на транзакционные комиссии и волатильность), отправьте монеты на ваш кошелек.
4. Отправьте монеты в благотворительный фонд для пожертвования. Транзакция должна транслироваться через TOR.

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

Полный узел необходим для такой модели угроз, поскольку в противном случае провайдер интернет услуг или другой злоумышленник может шпионить за соединениями легких узлов и обнаруживать биткоин адреса пользователей. Трансляция транзакции через TOR необходима для того, чтобы ваш провайдер интернет услуг или компания, осуществляющая наблюдение за транзакциями, не узнали ваш IP-адрес, транслирующий транзакцию в сеть.

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:55:50 AM
#10
Наложение луковой маршрутизации на топологию сети

Луковая маршрутизация Lightning Network обычно сравнивается с луковой маршрутизацией TOR. Однако сеть TOR является полносвязанной; каждый узел TOR напрямую связан (или имеет потенциал для прямого подключения) с каждым другим узлом. Это означает, что пакеты могут быть переданы с любого узла на любой другой узел. Это не так в Lightning Network, где каналы платежей не полностью соединяют всю сеть и где топология сети публично известна для узлов маршрутизации. Сочетания данных топологии сети и небольшого количества информации из пакетов луковой маршрутизации может быть достаточно для раскрытия информации в определенных условиях [78][79]. Например, если кошелек узла Lightning имеет только одно соединение канала оплаты, идущее к одному промежуточному узлу, то любые платежи, отправленные на кошелек узла и из него, должны будут пройти через промежуточный узел, который сможет получить много информации о платежах кошелька узла независимо от используемой луковой маршрутизации.

Смягчение этой проблемы топологии может заключаться в том, что вся топология сети Lightning неизвестна. Только узлы, которые намерены маршрутизировать транзакции, должны быть публично объявлены. Это возможно для "приватных каналов", которые являются платежными каналами, но существование которых не публикуется.

Это не означает, что луковая маршрутизация, используемая в Lightning Network, бесполезна, но приватность не так хороша, по сравнению с TOR.

Rendez-vous маршрутизация

Луковая маршрутизация требует от отправителя, чтобы конечный узел Lightning был ему известен (вместе со всей соответствующей информацией, такой как канал UTXO). Это означает, что пользователь не может получать платежи Lightning без выявления одного или нескольких UTXO, связанных с их платежными каналами. Решением этого является Rendez-vous маршрутизация [80][81] или также называемая Hidden Destinations [82], которая позволяет отправлять Lightning платежи от исходного узла к конечному узлу без необходимости раскрывать свои узлы и связанную с ними информацию.

Хорошей аналогией этого является то, что источник луковой маршрутизации похож на TOR соединение, проходящее через узел выхода TOR к месту назначения, а Rendez-vous луковая маршрутизация - как TOR соединение, проходящее к скрытой службе TOR.

Atomic Multipath Payments

Atomic Multipath Payments (AMP) - это протокол в Lightning, который позволяет направлять один платеж по нескольким транзакциям в сети Lightning [83]. Например, если у пользователя есть пять каналов, каждый из которых имеет баланс 2 BTC, он может отправить один платеж в 7 BTC по протоколу AMP по нескольким Lightning сетевым путям. С точки зрения приватности, AMP приведет к тому, что промежуточные узлы не будут передавать полную сумму оплаты в 7 BTC, а только частичные суммы оплаты в 2 BTC или 1 BTC (или любую другую комбинацию). Это положительно сказывается на приватности, так как маршрутизированные платежи больше не будут пропускать точную сумму платежа, а только ее нижний предел.

Общее значение hashlock

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

Безскриптовые сценарии, используемые в качестве замены контрактов с временной блокировкой хэшей, могут быть использованы для решения распространенной проблемы hashlock. На каждом шаге к зафиксированной случайной величине можно добавить разное случайное значение настройки, в результате чего может существовать многоканальный путь через каналы оплаты, в котором отдельные участники пути не смогут узнать, что находятся на одном и том же пути, если они напрямую не связаны из-за этого перекрытия [84].

В документе 2017 года под названием Concurrency and Privacy with Payment-Channel Networks [85][86] описывается схема, в которой используются доказательства нулевого уровня знаний, позволяющие различать значения каждого хэша в маршруте платежа. Схема намного дороже с точки зрения вычислений, но она все еще может быть практичной.

Кастодиальные кошельки

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

Использование такого типа кошельков приведет к тому, что все пользовательские транзакции Lightning Network будут видны этой компании, и у них не будет приватности, точно так же, как использование веб-кошелька не имеет приватности при анализе блокчейна биткоина. С 2019 года Zap Wallet и Lightning Peach работают над этой моделью. В графическом интерфейсе Lightning Peach кошелька есть флажки "Я согласен с политикой конфиденциальности", и просмотр политики конфиденциальности указывает на то, что кошелек отслеживает все виды приватной информации. Нет необходимости говорить, что пользователь стремящийся к высокому уровню приватности не должен использовать такие кошельки для Lightning, а использовать вместо этого некастодиальные кошельки [87].

Кошельки с поддержкой Lightning все еще должны взаимодействовать с базовой сетью биткоина, что может привести к утечке приватной информации. Например, если кошелек получает информацию о транзакции в блокчейне от централизованного сервера, то этот сервер может шпионить за всеми транзакциями открытия и закрытия канала. Легкие кошельки с защитой приватности обычно используют фильтрацию блоков на стороне клиента, которая очень хорошо подходит для кошельков с поддержкой Lightning Network.

Приватные типы скриптов

Обеспечение приватности достигается такими скриптов как: Schnorr, безскриптовые сценарии, taproot и ECDSA-2P, это способствуют приватности Lightning Network, делая платежные транзакции в блокчейне неотличимыми от обычных транзакций с одной подписью в блокчейне.

Проверка платежей на предмет выявления состояния каналов

Состояние баланса каждого канала скрыто от публики и известно только двум лицам, которые создают платежный канал. Это обеспечивает хорошую приватность, так как суммы и изменения этих сумм скрыты от всех. Возможный способ нарушить эту приватность заключается в том, чтобы активный атакующий посылал зондирующие платежи до тех пор, пока не будет достигнут баланс. Такая атака оказалась возможной, как описано в статье с начала 2019 года [88], благодаря той степени детализации, с которой Lightning реализует ошибки маршрутизации. Хотя может показаться, что такая атака должна будет оплачивать сборы за маршрутизацию пробных платежей, атакующий может предоставить поддельный счет, поэтому даже когда платеж проходит через весь маршрут, последний узел отправит обратно сообщение об ошибке и не сможет выполнить платеж. Таким образом, стоимость такой атаки снижается до стоимости, необходимой для открытия и закрытия каналов, используемых для этой атаки.

Такая атака может быть использована для раскрытия балансов одного канала или выбранной группы узлов сети и даже в больших масштабах для получения баланса каждого канала в сети. В случае, если атакующий повторит эту процедуру для каждого канала оплаты во всей сети Lightning Network и будет проводить зондирование очень часто, то, наблюдая за изменением состояния каналов, он сможет заметить, как платежи направляются по сети. Возможным способом противостоять такой атаке было бы случайное (например, 1 из 20 раз) возвращение ошибки маршрутизации в случайном порядке (1 из 20), даже если состояние баланса канала действительно адекватно. Это, скорее всего, не сильно ухудшит пользовательский комфорт Lightning Network, но наложит серьезные траты для атакующего.

Существующие решения в области приватности

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

Приватность не может быть легко отделена от любого другого аспекта биткоина. Весьма необычно иметь полностью отдельные решения только для приватности, идея заключается в том, что однажды все биткоин кошельки будут включать в себя уже встроенные технологии приватности. Но по состоянию на конец 2018 года многие решения приватности являются отдельными приложениями.

Lightning Network

В начале 2019 года было реализовано несколько проектов по созданию Lightning Network, таких как LND, c-lightning, eclair и т.д.

Сама по себе сеть может использовать основную сеть биткоина и ряд субъектов и других проектов смогут ее взять на вооружение. Эта технология все еще не доступна широкой публике. Ожидается, что однажды каждый биткоин кошелек сможет отправлять и получать транзакции Lightning Network, что позволит увеличить уровень приватности для всех пользователей сети биткоина.

Кошельки Lightning Network обычно обеспечивают пользователей стандартными технологиями приватности, такими как детерминированные кошельки с предупреждением против повторного использования адреса.

Некоторые кошельки LN, такие как Zap Wallet и Lightning Peach, на самом деле являются кастодиальными, т.к. поддерживаются централизованным сервером, который может шпионить за всем, что делает пользователь, поэтому их следует избегать.

Транзакции CoinJoin в ручном режиме

Транзакции CoinJoin могут быть сделаны в ручном режиме без специального кошелька, только с помощью Raw Transactions. Это может быть очень удобно, так как CoinJoin могут принимать различные формы. Это могло бы быть удобным для биткоинеров, несколько из которых могли бы объединить какие-то из своих транзакций таким образом, чтобы эвристика общей собственности подразумевала, что они все являются одним и тем же кластером кошельков.

JoinMarket

JoinMarket - это кошелек с реализацией CoinJoin, при которой необходимая ликвидность оплачивается на рынке. В терминологии JoinMarket есть пользователи, которые могут создать Coinjoin на любую сумму в любое время, они также платят небольшую комиссию за Coinjoin. Производители ликвидности находятся в режиме онлайн 24 часа в сутки и готовы создать Coinjoin в любое время и на любую сумму, в обмен на это они получают комиссионные от покупателей ликвидности. Благодаря этому рынку для Coinjoin пользователи JoinMarket могут создавать Coinjoin в любое время и на любую сумму (вплоть до лимита на основе доступной ликвидности).

Другие люди всегда могут присоединиться к Coinjoin, потому что они получают комиссии. Coinjoin могут быть любой суммы и создаваться в любое время. JoinMarket также может быть небольшим источником дохода для операторов ботов производителей ликвидности, которые зарабатывают комиссионные, позволяя другим людям создавать Coinjoin со своими биткоинами.
legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:54:29 AM
#9
TumbleBit

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

С точки зрения наблюдателя за блокчейном, транзакции TumbleBit выглядят как две транзакции с большим количеством (в примере автора их 800) выходов и все выходы транзакций должны быть одинаковыми.

Off-chain транзакции

Off-chain транзакции относятся к любой технологии, которая позволяет осуществлять биткоин транзакции на уровне, находящимся над блокчейном. Биткоин платежи, осуществляемые вне блокчейна, транслируются не на каждый узел сети и не выплачивают комиссию майнерам, также они не хранятся в публичном блокчейне, что автоматически повышает уровень приватности, поскольку большинство наблюдателей видят гораздо меньше информации. В случае Off-chain транзакций отсутствуют публичные адреса, кластеры адресов, публичные транзакции, суммы транзакций или любая другая информация, которая может быть использована против вас в on-chain транзакциях.

Off-Chain Transactions

Слепые сертификаты на предъявителя (Blinded bearer certificates)

Это еще один способ выполнения Off-Chain транзакций, основанный на слепых подписях. Платежи через такую систему были бы очень приватными. Об этом известно с 1983 года. Но система является кастодиальной, так как сервер-эмитент является центральной точкой сбоя, которая может украсть все средства. Однако эта концепция все еще может быть полезна в некоторых ситуациях, когда Lightning отсутствует, например, слепые сертификаты на предъявителя поддерживают платежи, когда получатель находится вне сети.

Blinded bearer certificates

Боковые цепи (Sidechains)

Боковые цепи - это когда создается другая цепочка блоков, использующая биткоины в качестве единицы валюты. Биткоины могут быть перемещены из основного блокчейна в боковую цепь, что позволяет им осуществлять транзакции в соответствии с различными правилами консенсуса. Боковые цепи могут иметь другие и лучшие свойства приватности, чем обычный блокчейн биткоина.

Sidechain

Конфиденциальные транзакции (Confidential transactions)

Конфиденциальные транзакции (CT) - это криптографический протокол, в результате выполнения которого, сумма транзакции шифруется. Шифрование является особенным, так как остается возможность проверить, что биткоины не были созданы или уничтожены в рамках транзакции, но без указания точных сумм транзакции. Конфиденциальные транзакции требуют внесения изменений в основу консенсуса биткоина, хотя они могут быть добавлены и в боковую цепь.

Confidential transactions

Обсуждение

Приватность против масштабируемости

Многие из упомянутых выше технологий приватности работают, добавляя дополнительные данные в блокчейн биткоина, которые используются для сокрытия информации, имеющей отношение к приватности. Побочным эффектом этого является ухудшение масштабируемости биткоина путем добавления дополнительных данных, которые должны обрабатываться системой. Это вредит приватности, потому что полные узлы становятся более ресурсозатратными, а ведь они являются наиболее приватным способом узнать свою историю и баланс. Добавление данных в блоки также ухудшает безопасность системы, и нет особого смысла иметь приватный биткоин, если плохая безопасность приводит к его успешной атаке и уничтожению. Стоимость ресурсов при использовании большего количества блочного пространства отображается на рядовом пользователе как более высокая комиссия майнерам; поэтому технология приватности, которая использует слишком много блочного пространства, просто не используется, если пользователи находят ее слишком дорогой. В период высокого спроса на блочное пространство в конце 2017 года транзакции JoinMarket CoinJoin с малоценной стоимостью в основном исчезли (как и большинство транзакций с малоценной стоимостью).

Off-Chain транзакции являются одним из способов избежать компромисса между приватностью и масштабируемостью. Такие решения улучшают приватность, полностью удаляя данные из блокчейна, а не добавляя их туда для улучшения приватности. Предотвращение использования сдачи и приватные скрипты также снижают затраты в системе, улучшая при этом приватность. CoinJoinXT, CoinJoin с равными выходами, TumbleBit используют много места в блоке относительно увеличения уровня приватности. PayJoin не использует много дополнительного пространства в блоке по сравнению с обычной транзакцией; по сравнению с выигрышем от разрушения эвристики собственности общих входов, он очень эффективен с точки зрения используемого пространства. CoinSwap использует очень мало места в блоке относительно уровня приватности, так как его можно понимать как off-chain систему транзакций, которая совершает одну транзакцию, а затем возвращается в блокчейн. Конфиденциальные транзакции требуют много места в блоке вместе с соответствующей пропускной способностью и стоимостью процессора, но их приватность значительно повышается, поэтому обсуждение этой темы может идти в любом направлении.

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

Стеганография

Стеганография используется в криптографии для сокрытия того факта, что что-то скрывается. Например, зашифрованное сообщение не может быть прочитано атакующим, но оно все равно показывает, что что что-то скрыто. Стеганографическое шифрование сообщения можно выполнить, вставив зашифрованное сообщение в аудиофайл или изображение, которое скрывает его в шуме.

CoinJoin с равными выходами скрывает источник и назначение определенной монеты, но структура транзакции показывает, что что-то скрывается. Таким образом, несмотря на то, что CoinJoin разрушает эвристику собственности общих входов, тот факт, что CoinJoin с равными выходами могут быть обнаружены (даже если обнаружение является несовершенным), позволяет аналитику исключить их из анализа. Кроме того, опознаваемость CoinJoin может вызывать подозрения и способствовать проведению более тщательного расследования.

Идея стеганографии - хорошая идея, к которой стоит стремиться [74]. Она значительно повышает уровень приватности, поскольку транзакции, совершаемые с помощью таких технологий, неотличимы от обычных транзакций. Кроме того, улучшается приватность пользователей, которые даже не используют эту технологию, так как их транзакции всегда можно спутать с фактическими конфиденциальными транзакциями. Безскриптовые сценарии являются прекрасным примером технологии стеганографической приватности, при которой важная для приватности информация скрывается в случайных числах цифровых подписей. PayJoin, CoinSwap и CoinJoinXT являются хорошими технологиями стеганографической приватности, поскольку их можно сделать неотличимыми от обычных биткоин транзакций. CoinJoin с равными выходами и TumbleBit не являются стеганографическими. Используя эвристику собственности общих входов, обычно легко заметить использование централизованного сервиса смешивания, но пополнение и последующее снятие большого количества биткоинов с таких веб-сайтов как казино или биржа альткоинов лучше, поскольку существует вероятность, что пользователь просто захотел поиграть.

Lightning Network

Lightning Network - это технология off-chain транзакций на основе платежных каналов. Она имеет почти ту же модель безопасности, что и биткоин транзакции в блокчейне. Не будет преувеличением сказать, что Lightning Network - это революция для сети биткоина.

Помимо значительного улучшения приватности, транзакции Lightning Network также намного быстрее (обычно мгновенные) и дешевле, чем транзакции в сети. Узлы Lightning создают между собой двусторонние каналы оплаты, и Lightning транзакции направляются от одного узла к другому. Узел-источник и целевой узел не должны иметь канал оплаты непосредственно между собой, так как транзакции могут быть направлены через многие промежуточные узлы.

Поскольку транзакции Lightning Network происходят вне цепи, они не передаются на все узлы сети и не хранятся общедоступном блокчейне. Злоумышленник не может просмотреть публичный учет всех транзакций, потому что его просто нет. Вместо этого злоумышленнику, возможно, придется запускать промежуточные узлы и, возможно, извлекать информацию таким образом. Атаки на приватность в блокчейне, такие как эвристика собственности общих входов, повторное использование адреса, обнаружение адреса сдачи, определение количества входов, раскрытие состояния отправителя или тайных платежей покупателя, принципиально не работают, поскольку нет адресов или транзакций, которые работают одинаковым образом.

Однако Lightning Network может иметь другие проблемы с приватностью, в основном из-за того, что сеть состоит из узлов, имеющих связи между между собой [75]. Части этой сети, которые могут быть промежуточными узлами маршрутизации, обычно являются публичными, и эта сетевая информация может быть наложена на информацию о маршрутизированных пакетах, такую как их количество. Узлы Lightning также раскрывают свои IP-адреса, если только они не используют TOR, а каналы оплаты формируются из транзакций в цепочке, которые можно анализировать с помощью обычных методов анализа блокчейна. Платежные каналы выглядят как мультиподписная 2-из-2 транзакция в блокчейне. Билатериальное закрытие транзакций выглядит так, как будто 2-из-2 выходов были потрачены, но односторонние закрытые транзакции имеют сложные HTLC скрипты, которые видны в блокчейне.

С 2019 года Lightning Network находится в стадии бета-тестирования и продолжает развиваться; сообщество разработчиков все еще изучает все свойства приватности. Безусловно, приватность Lightning Network лучше, чем приватность транзакций в блокчейне.

Луковая маршрутизация (Onion routing)

Протокол Lightning использует луковую маршрутизацию [76][77] для улучшения приватности промежуточных узлов маршрутизации. Протокол направлен на то, чтобы промежуточные узлы вдоль маршрута оплаты не узнавали, какие еще узлы, помимо их предшественников или преемников, являются частью маршрута пакета, а также на то, чтобы скрыть длину маршрута и положение узла внутри него.

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:53:14 AM
#8
Graftroot - это схема смарт контракта, аналогичная taproot. Она позволяет пользователям включать другие возможные скрипты расходования монеты, но с меньшими затратами ресурсов, даже по сравнению с taproot. Компромисс заключается в том, что требуется взаимодействие между участниками [63][64][65].

nLockTime - это поле в формате сериализованных транзакций. Оно может быть использовано в определенных ситуациях для создания более приватной  блокировки по времени (timelock), которая позволяет избежать использования операционных кодов сценария.

ECDH адреса

ECDH адреса могут быть использованы для улучшения приватности, помогая избежать повторного использования адресов. Например, пользователь может опубликовать ECDH адрес в качестве адреса для пожертвований, который может быть использован людьми, желающими сделать пожертвование. Злоумышленник может увидеть ECDH адрес для пожертвований, но ему будет нелегко найти какие-либо транзакции, отправленные на него или с него.

Однако ECDH адреса не решают всех проблем приватности, поскольку они все еще уязвимы для платежей тайных покупателей; злоумышленник может пожертвовать немного биткоина и посмотреть, куда пойдут средства после этого, используя эвристику, такую как эвристику собственности общих входов, чтобы получить больше информации, такой как объемы пожертвований и конечное назначение средств.

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

Централизованные сервисы смешивания

Это старый метод разрушения графа транзакций. Метод также называют "tumblers" или "washers". Пользователь отправляет биткоины в сервис смешивания, а сервис отправляет другие биткоины обратно пользователю, за исключением комиссии. Теоретически, аналитик, наблюдающий за блокчейном, не сможет связать входящие и исходящие транзакции.

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

Существует лучшая альтернатива сервисам смешивания, которая по существу имеет те же самые риски для приватности и безопасности. Пользователь может отправить, а затем вывести монеты с любого обычного веб-сайта биткоин сервиса, который использует горячий кошелек.
До тех пор, пока такой сервис не требует от пользователя никакой личной информации, он имеет те же аспекты приватности и безопасности, что и централизованный сервис смешивания, но значительно дешевле. Примерами подходящих сервисов в этой области являются биткоин казино, биткоин покерные веб-сайты, биржи альткоинов или торговые площадки [66].

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

Mixing service

CoinJoin

CoinJoin - это особый вид биткоин транзакции, в рамках которой несколько людей или организаций сотрудничают для создания одной транзакции, включающей все их входы. Это приводит к разрушению эвристики собственности общих входов и позволяет использовать присущую биткоину взаимозаменяемость в транзакциях. Технология CoinJoin стала возможной с самого начала существования биткоина и не может быть заблокирована за исключением способов, которыми могут быть заблокированы любые другие биткоин транзакции. Просто взглянув на транзакцию, невозможно с уверенностью сказать, является ли она CoinJoin. Технология CoinJoin работает как смарт контракты, так что за безопасность такого рода транзакций можно не беспокоиться [67].

CoinJoin с равным выходом

Допустим, эта транзакция является CoinJoin, это означает, что входы: 2 BTC и 3 BTC фактически принадлежали различным организациям или людям.

Code:
2 BTC --> 3 BTC
3 BTC     2 BTC

Эта транзакция разрушает эвристику собственности общих входов, поскольку не все входы принадлежат одному и тому же лицу, но при этом достаточно легко можно определить куда были отправлены биткоины с каждого входа. Если посмотреть на суммы (и предположить, что обе организации не платят друг другу), очевидно, что вход 2 BTC отправляется на выход 2 BTC, то же самое касается входа и выхода 3 BTC. Чтобы действительно улучшить приватность ваша CoinJoin транзакция должна иметь более чем один одинаковый выход:

Code:
2 BTC --> 2 BTC
3 BTC     2 BTC
          1 BTC

В этой транзакции два выхода по 2 BTC не могут быть связаны со входами. Они могли поступить с любого из входов. В этом и заключается суть того, как CoinJoin можно использовать для улучшения приватности, не столько для нарушения графа транзакций, сколько для его запутывания. Обратите внимание, что выход 1 BTC не имеет приватности, так как его легко связать с входом 3 BTC. Приватность транзакций CoinJoin увеличивается, если они повторяются несколько раз.

По состоянию на конец 2018 года CoinJoin является единственным децентрализованным методом обеспечения приватности биткоина, который был реализован. Примерами (вероятных) CoinJoin транзакций в блокчейне биткоина являются ID 402d3e1df685d1fdfdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a и 85378815f6ee170aa8c26694ee2df493b99cff7f1f2f799999f2f2f3f7. Обратите внимание, что в этих CoinJoin транзакциях участвуют более двух пользователей, поэтому каждый отдельный пользователь не может знать истинную связь между входами и выходами (если только они не находятся в сговоре).

PayJoin

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

PayJoin (также известный как pay-to-end-point или P2EP) [68][69][70] представляет собой особый вид CoinJoin между двумя сторонами, когда одна сторона платит другой. Тогда транзакция не имеет отличительных нескольких выходов с одинаковым значением и поэтому явно не видна как CoinJoin с равным выходом. Рассмотрим эту транзакцию:

Code:
2 BTC --> 3 BTC
5 BTC     4 BTC

Эту транзакцию можно интерпретировать как простую, производящую оплату со сдачей (пока не обращайте внимания на вопрос, какой выход является платежом, а какой сдачей). Другой способ интерпретации этой транзакции заключается в том, что вход 2 BTC принадлежат продавцу, а 5 BTC принадлежат клиенту, и что эта транзакция подразумевает оплату клиентом 1 BTC продавцу. Невозможно сказать, какая из этих двух интерпретаций является правильной. В результате получается CoinJoin транзакция, которая разрушает эвристику собственности общих входов и улучшает приватность, но также является обнаруживаемой и неотличимой от любой обычной биткоин транзакции.

Если бы транзакции PayJoin использовались даже умеренно, то это сделало бы эвристику собственности общих входов полностью ошибочной на практике. Поскольку они не обнаруживаются, мы даже не знаем, используются ли они сегодня. Поскольку компании, осуществляющие наблюдение за транзакциями, в основном зависят от этой эвристики, с 2019 года идея PayJoin вызывает большой ажиотаж [71].

CoinSwap

CoinSwap - это альтернативный метод обеспечения приватности для биткоина, основанный на идее атомарных свопов [72]. Если Алиса и Боб хотят произвести CoinSwap, то это можно понимать так: Алиса меняет свои биткоины на то же количество биткоинов Боба (минус комиссия) , но это делается с помощью смарт-контрактов биткоина, чтобы исключить возможность мошенничества с любой из сторон.

CoinSwaps разрушает граф транзакций между отправленными и полученными биткоинами. В блокчейне это выглядит как два набора полностью несвязанных транзакций:

Code:
Адрес Алисы ---> эксроу адрес 1 ---> Адрес Боба
Адрес Боба  ---> эксроу адрес 2 ---> Адрес Алисы

Очевидно, что Алиса и Боб генерируют новые адреса, чтобы избежать потери приватности из-за повторного использования адреса.

Возможно производить CoinSwaps, которые полностью неотличимы от любых других транзакций в блокчейне. Можно сказать, что они позволяют биткоину незаметно переноситься куда угодно в блокчейне. Транзакции, не связанные с CoinSwap, были бы более выгодны, потому что достаточно крупный аналитик блокчейна, такой как компания по надзору за транзакциями, никогда не сможет быть уверен, что обычные транзакции на самом деле не являются CoinSwaps. Они также не требуют много места в блоке по сравнению с увеличением уровня приватности.

CoinSwaps требуют большого количества взаимодействий между вовлеченными сторонами, что может усложнить проектирование системы и избежать атак типа "отказ в обслуживании". У них также есть требование к доступности и отсутствие цензуры. Это означает, что участники всегда должны иметь доступ к сети биткоин; если интернет будет отключен на несколько дней или недель, то наполовину завершенный CoinSwap может закончиться кражей средств одной из сторон.

По состоянию на 2018 год реализация CoinSwap не была развернута.

CoinJoinXT

CoinJoinXT - это альтернативный метод повышения приватности, который тесно связан с CoinJoin [73]. Он позволяет любому количеству лиц создавать между собой так называемый граф декларируемых транзакций (proposed transaction graph, PTG), представляющий собой список связанных транзакций. В PTG биткоины, принадлежащие этим лицам, отправляются туда-сюда во всех транзакциях, но в итоге все они возвращаются их законным владельцам. Система построена таким образом, что процесс PTG является атомарным, так что либо весь PTG подтверждается в блокчейне, либо ни одна из транзакций, это означает, что ни одна из участвующих сторон не сможет украсть средства.

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

Как и CoinJoin, CoinJoinXT легко сделать DOS-устойчивым и он не требует чрезмерного количества шагов взаимодействия. В отличие от CoinSwap нет никаких требований к живучести системы или отсутствии цензуры, поэтому средства защищены, даже если биткоин находится под временной цензурой. Однако CoinJoinXT занимает много места в блоке по сравнению с повышением уровня приватности. Также для CoinJoinXT требуется, чтобы все транзакции в PTG были только segwit. По состоянию на 2019 год только около 40% транзакций являются segwit транзакциями, поэтому аналитик, наблюдая за блокчейном, может легко исключить транзакции, не относящиеся к PTG, проверив, являются ли они legacy или segwit.

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:51:10 AM
#7
Интерактивная трансляция

Некоторые технологии приватности, такие как CoinJoin и CoinSwap, требуют интерактивности между различными объектами, работающими с биткоин. Они также могут быть использованы для трансляции транзакций с большей приватностью, поскольку пиры по протоколам приватности могут отправлять друг другу неподтвержденные транзакции, используя уже существующий протокол, который они используют для взаимодействия друг с другом.

Например, в JoinMarket пользователи могут отправлять транзакции маркет-мейкерам, которые будут транслировать их и тем самым улучшать приватность пользователей. Это может быть более удобно для пользователя, чем настройка TOR.

Прием данных со спутника

Как минимум одна компания предлагает такую услугу [44]. Это бесплатная услуга, в рамках которой спутники транслируют блокчейн биткоина практически в любую точку мира. Если пользователь настроит спутниковую антенну на нужный спутник, то он может получать блоки, необходимые для работы полного узла. Поскольку спутниковые антенны используются только для приема, никто не может определить, что пользователь использует биткоин, и уж точно не может определить, какие адреса или транзакции принадлежат ему.

С 2019 года компания предлагает платный API, позволяющий транслировать любые данные со спутника в любую точку мира, что, похоже, является способом их заработка. Но, скорее всего базовый сервис трансляции блокчейна всегда будет бесплатным.

Blockstream Satellite

Методы повышения уровня приватности (в блокчейне)

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

Предотвращение повторного использования адреса

Использование адреса более одного раза очень негативно сказывается на приватности, так как это связывает больше транзакций в блокчейне с доказательством того, что они были созданы одним и тем же лицом. Самый приватный и безопасный способ использования биткоина - это отправление совершенно нового адреса каждому, кто вам платит. После того, как полученные монеты были потрачены, адрес больше никогда не должен использоваться. Также, при отправке биткоина одному и тому же лицу вами должен быть запрошен совершенно новый адрес для транзакции. Все хорошие биткоин кошельки имеют пользовательский интерфейс, препятствующий повторному использованию адресов.

Утверждалось, что фраза "биткоин адрес" была плохим названием для этого объекта, поскольку подразумевает, что он может быть повторно использован как адрес электронной почты. Лучшее название было бы что-то вроде "биткоин счета".

Биткоин не анонимен, а псевдонимен, и псевдонимы - это биткоин адреса. Избегать повторного использования адреса все равно, что выбрасывать псевдоним после его использования.

Bitcoin Core 0.17 включает в себя обновление для улучшения приватности в ситуациях при повторном использовании адреса [45]. При многократной оплате адреса монеты из этих отдельных платежей могут быть потрачены отдельно, что наносит ущерб приватности, так как в противном случае отдельные адреса будут связаны между собой. Добавлен флаг -avoidpartialspends (значение по умолчанию =false), при включении которого, кошелек всегда будет тратить существующие UTXO на один и тот же адрес, даже если это приведет к увеличению комиссии. Если кто-то должен был отправить монеты по адресу после их использования, то они будут включены в будущие выборки монет.

Предотвращение принудительного повторного использования адреса

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

Dust-b-gone - это старый проект [46], целью которого является безопасное использование платежей, которые присылаются пользователям для принудительного повторного использования адреса. Такие монеты можно отправить на сервер Dust-b-gone и вместе с монетами других лиц, где они объединяются в одну транзакцию и расходуются на комиссию майнерам. В транзакциях используются редкие флаги OP_CHECKSIG sighash, поэтому они могут быть легко исключены из анализа атакующего, ну по крайней мере, в таком случае принудительное повторное использование адреса не приведет к потере приватности.

Контроль над монетами

Контроль над монетами - это опция некоторых биткоин кошельков, которая позволяет пользователю выбирать, какие из монет должны быть потрачены в качестве входов в исходящую транзакцию. Контроль над монетами направлен на то, чтобы избежать как можно большего количества транзакций, в которых утечка приватной информации может быть вызвана суммами, адресами для сдачи, графом транзакций и эвристикой собственности общих входов [47][48].

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

Множественные транзакции

Платежи кому-то с более чем одной транзакцией в цепочке могут значительно снизить эффективность атак на приватность на основе сумм, таких как корреляция сумм и круглых чисел. Например, если пользователь хочет заплатить кому-то 5 BTC и не хочет, чтобы значение 5 BTC было легко найти, то он может отправить две транзакции на сумму 2 BTC и 3 BTC, которые вместе составляют 5 BTC.

Торговцы и службы, заботящиеся о приватности, должны предоставлять клиентам более одного биткоин адреса, на которые можно вносить платежи.

Предотвращение использования сдачи

Предотвращение использования сдачи - это когда входы и выходы транзакции тщательно подобраны таким образом, чтобы исключить выход для сдачи. Отсутствие выхода для сдачи прекрасно сказывается на приватности.

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

Change avoidance

Другой способ избежать использование сдачи это когда в транзакции не важна точная сумма и весь UTXO или группа UTXO могут быть полностью израсходованы. Например, при открытии канала платежей Lightning Network. Другим примером может служить опустошение (sweeping) средств на адресе хранения и их перевод, когда точное количество монет не имеет значения.

Улучшение приватности скриптов

Скрипт каждого выхода биткоинов приводит к утечке информации. Например, по состоянию на конец 2018 года около 70% биткоин адресов имеют индивидуальную подпись, а 30% - мультиподпись [49]. Много исследований было направлено на улучшение приватности скриптов, чтобы сделать несколько различных видов скриптов одинаковыми. Эти идеи не только улучшили бы приватность, но и повысили бы масштабируемость сети за счет снижения требований к хранению и пропускной способности.

ECDSA-2P - это криптографическая схема, которая позволяет создавать схему с мультиподписью 2-из-2, но в результате ее работы в блокчейн будет включена индивидуальная ECDSA подпись [50]. Никаких изменений в консенсус не требуется, так как биткоин уже использует ECDSA.

Шнорр (Schnorr) - это схема цифровой подписи, которая имеет много преимуществ по сравнению с ECDSA [51][52]. Одним из побочных эффектов которой является то, что любая мультиподпись N-из-N [53] и M-из-N может быть легко представлена в виде индивидуальной подписи при включении в блокчейн. Добавление схемы Шнорра в биткоин требует внесения изменений в консенсус. С 2019 года был предложен проект схемы подписи [54]. Для чего требуется проведение софтфорка для изменения консенсуса и по состоянию на начало 2019 года все еще находится на стадии разработки.

Безскриптовые сценарии (Scriptless scripts) представляют собой набор криптографических протоколов, которые обеспечивают способ репликации логики скрипта без видимости условий скрипта, что повышает приватность и масштабируемость путем удаления информации из блокчейна [55][56][57][58]. Это, как правило, направлено на протоколы, включающие Hash Time Locked Contracts, такие как Lightning Network и CoinSwap.

В случае безскриптовых сценариев почти единственное, что видно, это открытые ключи и подписи. Более того, в многопартийной среде будет единый открытый ключ и единая подпись для всех участников. Все выглядит одинаково - платежные каналы Lightning Network будут выглядеть так же, как платежи c индивидуальной подписью, эскроу, атомарные свопы или sidechain federation pegs. Почти все, что вы можете только представить, совершающееся в сети биткоин в 2019 году, можно заставить выглядеть по существу одинаково [59].

MAST - сокращение от Merkelized Abstract Syntax Tree (идеи дерева Меркла совмещены с идеями абстрактного синтаксического дерева), MUST - концепция, которая представляет собой схему сокрытия неисполненных ветвей скриптового контракта. Она улучшает приватность и масштабируемость, удаляя информацию из блокчейна [60][61].

Taproot - это способ комбинирования подписей Шнорра с MAST [62]. Подпись Шнорра может быть использована для расходования монеты, а MAST дерево может быть выявлено только тогда, когда пользователь хочет его использовать. Подпись Шнорра может быть любой N-из-N или использовать любой контракт безскриптовых сценариев. Следствием этого является гораздо высокий уровень анонимности, предусмотренный для смарт контрактов, поскольку любой контракт, такой как Lightning Network, CoinSwap, мультиподпись и т.д., кажется неотличимым от обычной транзакции с индивидуальной подписью в блокчейне.

Схема taproot полезна, потому что почти всегда интересные скрипты имеют логическую ветвь верхнего уровня, которая позволяет удовлетворить контракт только подписью всех сторон. Другие ветви будут использоваться только в тех случаях, когда некоторые участники отказываются от сотрудничества.
legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:50:00 AM
#6
Обмен наличных

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

В этом разделе не будут перечислены веб-сайты, чтобы найти такие услуги, потому что информация может устареть, но попробуйте поискать в интернете с помощью запроса "Купить биткоин за наличные <ваше местоположение>". Обратите внимание, что некоторые службы все еще требуют ID, так что это нужно учитывать. Некоторые сервисы требуют ID только для продавцов биткоина, размещающего объявление. По состоянию на конец 2018 года в стадии разработки находится, по крайней мере, один децентрализованный биржевой проект с открытым исходным кодом, целью которого является содействие этому виду торговли без централизованной третьей стороны, а вместо этого используется одноранговая (пиринговая) сеть.

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

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

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

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

Заменители наличности

Заменители наличности, такие как подарочные карты, кредиты на мобильные телефоны или предоплаченные дебетовые карты, часто можно купить в обычных магазинах за наличные, а затем обменять их на биткоин в интернете.

Трудоустройство

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

Майнинг

Наиболее анонимным способом получения биткоина является майнинг. Это относится к соло-майнингу, поскольку пулы для майнеров, как правило, знают IP-адрес майнера. В зависимости от масштабов деятельности, майнинг оборудование может потреблять достаточно много электроэнергии, что также может вызывать подозрения. Также могут возникнуть сложности в возможности анонимно получить доступ к специализированному майнинг оборудованию (хотя это уже другой вопрос).

Кража

Теоретически, еще один способ получения анонимных биткоинов - это их кража [23].

По крайней мере была такая ситуация. В мае 2015 года хакер по имени Финеас Фишер [24] взломал компанию, которая продавала продукты для шпионажа авторитарным правительствам [25]. Хакер использовал украденные у других людей биткоины для анонимной аренды инфраструктуры для последующих атак.

Покупки за биткоин анонимно

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

Синхронизация истории кошелька

Биткоин кошельки должны каким-то образом получать информацию об их балансе и истории. По состоянию на конец 2018 года наиболее практичными и приватными существующими решениями являются использование полнофункционального узлового кошелька (который является максимально приватным) и фильтрация блоков со стороны клиента (что очень хорошо).

Одна из проблем этих технологий заключается в том, что они тратят больше ресурсов (время, пропускная способность, хранение и т.д.), чем такие не приватные решения, как веб-кошельки и централизованные серверы Electrum. Имеются данные, указывающие на то, что очень немногие люди на самом деле используют BIP37 из-за его низкой скорости [26], поэтому даже фильтрация блоков со стороны клиента может использоваться не очень часто.

Полный узел

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

Поиск приватной информации

В криптографии используется протокол извлечения информации (PIR) - это протокол, который позволяет пользователю извлекать элемент с сервера, владеющего базой данных, не раскрывая, какой элемент извлекается. Существует возможность использования этого протокола для приватной синхронизации истории кошельков, но поскольку PIR достаточно ресурсоемкий, то пользователи, которые не желают снижать пропускную способность и тратить время, могут просто запустить полный узел.

Фильтрация блоков на стороне клиента

Фильтрация блоков на стороне клиента работает путем создания фильтров, содержащих все адреса для каждой транзакции в блоке. Фильтры могут проверить, находится ли элемент в наборе; ложные срабатывания возможны, но не ложные отрицания. Легкий кошелек загрузит все фильтры для каждого блока в блокчейне и проверит совпадения со своими адресами. Блоки, содержащие совпадения, будут полностью загружены из одноранговой (пиринговой) сети. Эти блоки и будут использоваться для получения истории кошелька и текущего баланса.

Запрос адреса через TOR маршрутизацию

Историю кошелька можно получить с централизованных серверов (таких как Electrum), но используя при этом новую цепь TOR для каждого адреса. Еще одна похожая идея заключается в подключении серверов Electrum между собой через сеть TOR [27]. При создании такой схемы следует избегать корреляции времени между адресами, иначе сервер может использовать тот факт, что адреса запрашиваются в слишком коротком интервале времени.

Контрмеры по анализу трафика

Bitcoin Core и его форки имеют контрмеры против атак Сивиллы и атаки за счет создаваемых помех (Eclipse). Атака Eclipse похожа на атаку Сивиллы, при которой злоумышленник пытается контролировать всех пиров в сети и блокировать или контролировать доступ к остальной части сети [28]. Такие атаки были подробно изучены в работе "Eclipse Attacks on Bitcoin's Peer-to-Peer Network", опубликованной в 2015 году, в результате чего был разработан новый код для Bitcoin Core для предотвращения подобных атак. [29][30][31][32][33].

Bitcoin Core и его форки используют алгоритм, известный как "trickling" (метод замедленной передачи данных) при ретрансляции неподтвержденных транзакций, с целью максимально затруднить злоумышленникам атаку Сивиллы по поиску IP-адреса источника транзакции. Для каждого пира узел ведет список транзакций, которые он отправляет в сообщении Inv ему. Он периодически отправляет inv для транзакций со случайной задержкой между каждым inv. Входящие в сообщение inv транзакции выбираются случайным образом и в соответствии с некоторыми показателями, связанными с комиссией. Он выбирает ограниченное количество транзакций для inv. Алгоритм создает возможность того, что пиринговый узел может получить информацию о неподтвержденной транзакции от соседнего узла, а не от самого узла создателя транзакции [34][35][36][37]. Однако злоумышленники все еще могут иногда получать приватную информацию.

Шифрование сообщений между пирами, как в BIP 151, затруднит пассивному наблюдателю, такому как провайдер ISP или Wifi, просмотр точных сообщений, отправляемых и получаемых узлом.

TOR и трансляция через TOR

Если атакующий, контролирующий соединение, вызывает беспокойство, биткоин может быть полностью запущен через TOR. Он зашифрован и скрывает конечные точки, поэтому провайдеры ISP или Wifi провайдеры даже не будут знать, что вы используете биткоин. Другие подключенные биткоин узлы не смогут увидеть ваш IP-адрес, так как TOR скрывает его. Bitcoin Core и его форки имеют функции, облегчающие настройку и использование TOR. Некоторые лёгкие кошельки также полностью могут работать через TOR.

Полный переход на TOR имеет обратную сторону - синхронизация узла требует загрузки всего блокчейна через TOR, что происходит очень медленно. Загрузка блоков через TOR помогает только в ситуации, если вы хотите скрыть от интернет провайдера, что используете биткоин [38]. Можно загружать блоки и неподтвержденные транзакции через видимый интернет, но транслировать свои собственные транзакции через TOR, что позволит использовать быстрое интернет соединение, обеспечивая при этом приватность при трансляции транзакций.

Настройка Bitcoin Core с опцией Walletbroadcast=0 не позволит транзакциям, принадлежащим пользователю, транслироваться и ретранслироваться напрямую, позволяя им транслироваться через TOR или другим способом, сохраняющим приватность [39].

Технология Dandelion (одуванчик)

Dandelion - это еще одна технология для приватной трансляции транзакций. Основная идея заключается в том, что распространение транзакции происходит в два этапа: сначала фаза "стебля" (stem), а затем фаза - "пуха" (fluff). Во время фазы "стебля" каждый узел ретранслирует транзакцию отдельному пиру. После случайного количества переходов "по стеблю" транзакция переходит в фазу "пуха", которая ведет себя так же, как обычная транзакция - ретранслируется на несколько пиров. Атакующий может определить с какого узла началась фаза "пуха", но ему гораздо труднее определить источник фазы "стебель". [40][41][42][43]

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:48:16 AM
#5
Временная корреляция

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

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

Атаки на приватность вне блокчейна

Анализ трафика

Биткоин ноды взаимодействуют друг с другом через пиринговую сеть для передачи транзакций и блоков. Ноды ретранслируют пакеты на все свои соединения, что очень хорошо для приватности, поскольку подключенная нода не может знать, исходят ли полученные данные от ноды, которая передала их или она просто ретранслировала их.

Атакующий, способный прослушивать ваше интернет соединение (например, ваш ISP, Wifi или VPN провайдер), может видеть данные, отправленные и полученные вашем узлом. Это может дать ему информацию о том, что вы используете биткоин. Если атакующий видит транзакцию или блок, выходящий из вашего узла, который не входил в него, то он может с полной уверенностью сказать, что транзакция была совершена вами или блок был смайнен вами. При подключении к интернету атакующий сможет связать IP-адрес с обнаруженной информацией о биткоин.

Определенный вид атаки Сивиллы может быть использован для обнаружения источника транзакции или блока без полного контроля интернет соединения со стороны атакующего. Им создается множество собственных фейковых узлов на разных IP-адресах, которые агрессивно заявляют о себе, пытаясь привлечь больше узлов для подключения к ним, они также пытаются подключиться к как можно большему количеству других прослушивающих узлов. Такая высокая связанность помогает атакующему обнаружить источник новых транслируемых транзакций и блоков по мере распространения по сети [18][19][20][21]. Некоторые кошельки периодически ретранслируют свои неподтвержденные транзакции, с тем чтобы они с большей вероятностью широко распространялись по сети и были подтверждены.

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

Кастодиальные сервисы кошельков

Некоторые биткоин кошельки являются лишь интерфейсами, которые соединяются с внутренним сервером, управляемым какой-либо компанией. Пользователи таких кошельков вообще не имеют приватности, компания-оператор может видеть все адреса пользователей и все их транзакции, большую часть времени они будут видеть и IP-адрес пользователя. Использовать такие кошельки не рекомендуется.

Browser-based wallet

История кошелька, полученная от третьих лиц

Все биткоин кошельки должны каким-либо образом получать информацию о своем балансе и истории, что может привести к утечке данных и злоумышленник может узнать какие адреса и транзакции принадлежат вам.

Веб-анализаторы блокчейна

Часто пользователи сети биткоин используют веб-сайты анализирующие блокчейн. Некоторые пользователи даже ищут свою транзакцию на этих веб-сайтах и обновляют страницу до тех пор, пока транзакция не достигнет 3-х подтверждений. Это очень плохо сказывается на приватности, поскольку веб-сайт может легко связать IP-адрес пользователя с его биткоин транзакцией (если не используется TOR).

Для получения информации о ваших транзакциях лучше использовать программное обеспечение кошелька, а не какой-нибудь веб-сайт анализатор блокчейна.

BIP 37

Многие легкие кошельки используют стандарт BIP37, который имеет серьезные внутренние недостатки, приводящие к утечке приватной информации. Любой кошелек, использующий BIP37, не обеспечивает нужный уровень приватности. Это эквивалентно отправке всех адресов кошелька на случайный сервер, который может легко шпионить за кошельком. Уроки, извлеченные из неудачи BIP37, могут быть полезны при проектировании и понимании других решений в области приватности, особенно с точки зрения объединения данных при слиянии утечек фильтра BIP37 с утечками информации о транзакциях в блокчейне.

BIP37 privacy problems

Общедоступные серверы Electrum

Electrum - это популярный программный кошелек, который работает путем подключения к серверам специального назначения. Эти серверы получают хэши биткоин адресов в кошельке и отвечают информацией о транзакциях. Кошелек Electrum быстрый и не требовательный, но по умолчанию он подключается к этим серверам, которые могут легко шпионить за пользователем. Некоторые другие программные кошельки, кроме Electrum, используют общедоступные серверы Electrum. С 2019 года это более быстрая и лучшая альтернатива для легких кошельков, чем BIP37.

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

Нетрудно запустить собственный сервер Electrum и указать кошельку, чтобы он использовал только его. Это повышает уровень приватности и безопасность Electrum так же, как и для полного узла, где никто другой не может видеть, какие адреса или транзакции интересуют кошелек. Electrum вполне может стать полным узлом кошелька.

Подслушивание обмена данных

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

Иногда прослушивание может быть очень тривиальным, например, некоторые пользователи форума публикуют биткоин адрес для пожертвований на своем веб-сайте, в подписи форума, профиле, странице Twitter и т.д., откуда он легко попадает в поисковые системы. В примере неанонимного покупателя китайской газеты биткоин адрес для пожертвований находился в подписи на форуме, что стало критической ошибкой для приватности. Решение такой проблемы заключается в том, чтобы показать каждому потенциальному спонсору новый адрес для пожертвований, например, настроив веб-сервер для раздачи уникальных адресов каждому посетителю.

Раскрытие личных данных при проведении биткоин транзакций

Иногда пользователи могут добровольно раскрывать данные о себе или по требованию организации, с которой они взаимодействуют. Например, многие биржи требуют от пользователей проходить проверку на предмет отмывания денежных средств и знаний своего клиента (AML/KYC), которые требуют от них раскрытия всех видов личной информации, такой как их настоящее имя, место жительства, род занятий и доход. Вся эта информация затем связывается с биткоин адресами и транзакциями.

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

Цифровая криминалистика

Программное обеспечение кошелька обычно хранит информацию, необходимую для работы на диске компьютера, на котором оно работает. Если злоумышленник имеет доступ к этому диску, он может извлекать биткоин адреса и транзакции, которые, как известно, связаны с владельцем этого диска. На том же диске может содержаться другая личная информация (например, отсканированная ID-карта). Цифровая криминалистика - одна из причин, по которой все хорошее программное обеспечение кошельков шифрует файлы кошелька, хотя эту защиту можно обойти, если пользователь использует слабый пароль шифрования.

Например, если у вас на компьютере установлен биткоин кошелек и вы отдаете компьютер в ремонтную мастерскую для какой-то починки, оператор ремонтной мастерской может найти файл кошелька и записи обо всех ваших транзакциях. Другим примером может служить выброшенный старый жесткий диск. Программное обеспечение, установленное на том же компьютере (например, вредоносное), также может считывать данные с диска или оперативной памяти для шпионажа за биткоин транзакциями, совершаемыми пользователем.

Для сохранения приватности не оставляйте данные на вашем компьютере доступными для других. Шифрование и физическая защита может достигаться путем использования специальных операционных систем, таких как Tails OS, которая не считывает и не записывает данные с жесткого диска, а использует только оперативную память, а затем удаляет все данные при выключении.

Методы повышения уровня приватности (вне блокчейна)

Получение биткоина анонимно

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

Многие биржи требуют от пользователей проходить проверку на соответствие принципам отмывание денежных средств и знай своего клиента (AML/KYC), которая требует от них раскрытия всех видов личной информации, такой как их настоящее имя, место жительства, род занятий и доход. Вся эта информация затем связывается с биткоин адресами и транзакциями, которые затем используются.

Отказ от этих процедур (AML/KYC), вероятно, является самой важной вещью, которую человек может сделать для сохранения своей приватности. Это работает намного лучше, чем любая реальная технология приватности, такая как CoinJoin. Действительно, все криптографические и приватные трюки не имеют значения, если вы когда-либо совершали транзакции, которые можно связать с вашей личностью [22].

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:47:09 AM
#4
Отправка на другой тип скрипта

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

Например, для транзакции с 1 входом, тратящим монету p2pkh и создающим 2 выхода: один p2pkh, а другой p2sh, очень вероятно, что выход p2pkh - это сдача, а p2sh - это платеж.

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

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

Баги кошелька

Некоторое программное обеспечение кошельков использует не очень анонимный подход к сдаче. Например, некоторые старые кошельки всегда помещали выход сдачи в последнюю строку транзакции. Старая версия Bitcoin Core добавляла в транзакцию UTXO до тех пор, пока сумма сдачи не достигнет 0.1 BTC, поэтому сумма немного больше 0.1 BTC всегда была сдачей.

Equal-output-CoinJoin

Транзакции Equal-output-CoinJoin очень легко выявляют адреса сдачи, поскольку именно выходы не имеют одинакового значения. Рассмотрим, например, эту транзакцию:

Code:
             A (1BTC)
X (5BTC) ---> B (1BTC)
Y (3BTC)      C (4BTC)
              D (2BTC)

Существует большая вероятность того, что выход D является сдачей, принадлежащей владельцу входа Y, а выход C - сдача, принадлежащая входу X. Однако CoinJoin может разрушить эвристику собственности общих входов и эффективно скрывает владение выходами платежей (A и B), поэтому выбор по-прежнему в значительной степени в пользу использования CoinJoin.

Рост кластера

Кластеры кошельков, созданные с помощью эвристики собственности общих входов, обычно растут (количеством адресов) медленно и постепенно [11]. Слияние двух крупных кластеров происходит редко и может свидетельствовать о наличии недостатков в эвристике. Таким образом, еще один способ вычислить адрес сдачи - это определить, какой выход приводит к медленному росту кластеров. Точное значение "насколько медленно" кластер может расти, остается открытым вопросом.

Граф транзакций

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

Обычно считается, что транзакции соответствуют реальным экономическим транзакциям, но иногда транзакции фактически представляют собой просто отправку биткоина самому себе.


Анализ на "запятнаность" (Taint analysis)

Taint analysis - это метод, который иногда используется для изучения потока биткоинов и получения приватной информации. Если адрес А связан с информацией, имеющей отношение к приватности (например, с настоящим именем), и с него совершается транзакция монет на адрес В, то адрес В считается "запятнанным" монетами с адреса А. Таким образом, "пятно" распространяется путем соприкосновения монет через транзакции [12]. Неясно, насколько полезен Taint analysis для наблюдения, поскольку в нем не учитывается передача прав собственности. Например, владелец "запятнанных" монет может пожертвовать часть из них на благотворительность. Можно сказать, что пожертвованные монеты были "запятнаны", но благотворительный фонд не заботится об этом и не может дать никакой информации о происхождении этих монет. Taint analysis может быть полезен только для раскрытия схем, когда кто-то пытается скрыть происхождение монет, отправляя десятки поддельных транзакций сам себе.

Суммы

Транзакции в блокчейне содержат информацию о суммах входов и выходов, а также неявный размер комиссии майнерам. Это может видеть каждый.

Часто сумма платежа транзакции представляет собой круглое число (возможно, при конвертации в другую валюту). Анализ круглых чисел биткоин транзакций уже использовался для оценки стран или регионов, в которых осуществлялись платежи [13].

Суммы входов указывают на благосостояние отправителя

Расхождение между суммами входов и того какие суммы требуются для платежа может привести к утечке приватной информации о благосостоянии отправителя. Например, при намерении отправить кому-либо 1 BTC, если у пользователя имеется только вход 10 BTC. Он создает транзакцию, при которой 1 BTC отправляется к получателю и 9 BTC отправляется на адрес сдачи. Получатель может просмотреть транзакцию в блокчейне и сделать вывод, что отправитель владеет не менее 10 BTC.

По аналогии с бумажными деньгами, если вы отдаете 100 долларовую купюру, чтобы оплатить напиток стоимостью всего 5 долларов, бармен узнает, что ваш баланс составляет не менее 95 долларов. Конечно, он может быть и выше, но не ниже [14].

Точные суммы платежей (без сдачи)

Платежи, которые отправляются точными суммами и не используют в транзакциях адрес сдачи, являются вероятным признаком того, что BTC не перемещались вручную.

Обычно это означает, что пользователь использовал функцию "отправить максимальную сумму" для перевода средств на свой новый кошелек, на биржевой счет, на канал Lightning Network или в других подобных случаях, когда биткоины остаются в том же владении.

Другие возможные причины для отправки точных сумм без сдачи заключаются в том, что алгоритм выбора монет был достаточно продуман, чтобы найти подходящий вход для предполагаемой суммы платежа, который не требует сдачи (или требует сдачу, которая является незначительной, чтобы отказаться от нее в пользу майнеров), или в том, что опытный пользователь отправляет пожертвование, используя ручной выбор монет, чтобы полностью избежать сдачи.

Пакетирование платежей

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

Политика приватности заключается в том, что получатели могут видеть суммы и адреса получателей [15].

Когда вы получаете вывод средств, например с биржы Kraken, вы можете просмотреть вашу транзакцию через веб-сайт анализирующий блокчейн и увидеть адреса всех остальных, кто получил платеж в той же транзакции. Вы не знаете, кто эти получатели, но вы знаете, что они получили биткоины с Kraken так же как и вы.

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

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

Необычные скрипты

Большинство, но не все скрипты биткоина имеют одну подпись. Наиболее распространенные скрипты могут использовать мультиподпись. Необычный скрипт может привести к утечке информации просто потому, что он достаточно уникален.

По состоянию на 2019 год наиболее распространенным скриптом, не использующим одну подпись, является мультиподпись 2-из-3.

Платеж тайного покупателя

Это метод работает так, что атакующий платит биткоин атакуемому для получения информации, имеющей отношение к приватности. Такой метод будет работать, даже если будет исключено повторное использование адреса. Например, если целью является интернет-магазин, то атакующий может купить недорогую вещь. В платежном интерфейсе ему будет указан один из биткоин адресов продавца. Атакующий точно знает, что этот адрес принадлежит продавцу и, наблюдая за транзакциями в блокчейне, находит другую информацию, которая в сочетании с другими методами, может раскрыть дополнительную информацию о продавце. Эвристика собственности общих входов и обнаружения адреса сдачи владельца может выявить другие адреса, принадлежащие продавцу (при условии, что контрмеры, такие как CoinJoin, не используются). Этот метод работает практически всегда, потому что любой человек в интернете может запросить один из адресов продавца.

Принудительное повторное использование адресов

Принудительное повторное использование адресов - это когда атакующий отправляет небольшие суммы биткоинов на адреса, которые уже использовались в блокчейне. Атакующий надеется, что пользователи или их программное обеспечение кошелька использует эти платежи в качестве входов для более крупной транзакции, которая покажет другие адреса через эвристику собственности общих входов. Такие платежи используются как способ преднамеренного повторного использования адреса [16][17].

Правильное поведение в таком случае - не использовать монеты, которые были отправлены неизвестными.

Корреляция сумм

Корреляция сумм относится к поиску сумм выходов в блокчейне.

Например, мы используем любую технологию приватности BlackBox, которая нарушает граф транзакций.

Code:
V --> [технология приватности BlackBox] --> V - комиссия

Технология приватности используется для того, чтобы смешать V количество биткоинов и возвратить столько же биткоинов за вычетом комиссии. Метод корреляции сумм может быть использован для устранения использования такой технологии путем поиска в блокчейне транзакций с выходом, близким к V.

Существует способ противостоять использованию метода корреляции сумм. Необходимо разделить отправку V биткоинов, при возвращении к пользователю на множество транзакций с выходами (w0, w1, w2), которые вместе составляют V за вычетом комиссии.

Code:
V --> [технология приватности] --> w0
       --> w1
       --> w2

Другой способ использования корреляции сумм - использовать ее для поиска отправной точки. Например, если Боб хочет шпионить за Алисой. Допустим, что Алиса случайно упоминает в разговоре, что она вместе со своим парнем собирается в отпуск стоимостью $5000, Боб может посмотреть все транзакции в блокчейне в нужный период времени и найти транзакции с суммами выходов, близкими к $5000. Даже если будет найдено несколько совпадений, все равно это дает Бобу хорошее представление о том, какие биткоин адреса могут принадлежать Алисе.

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:45:18 AM
#3
Обнаружение адреса сдачи

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

Адрес для сдачи приводит к общему шаблону использования, называемому цепочкой отслаивания. Это хорошо видно в крупных транзакциях бирж, рынков, майнинг компаний и по транзакциям выплаты заработной платы. В цепочке отслаивания один адрес начинается с относительно большого количества биткоинов. Затем меньшая сумма отделяется от этой большой суммы, создавая транзакцию, в которой небольшая сумма переводится на один адрес, а остальная - на одноразовый адрес для сдачи. Этот процесс повторяется до сотен или тысяч раз - до тех пор, пока не будет уменьшена большая сумма, и в этот момент (при одном использовании) оставшаяся сумма на адресе может быть объединена с другими такими адресами, чтобы снова получить большую сумму на одном адресе, и процесс отслаивания снова повторяется [5].

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

Повторное использование адреса

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

Некоторое очень старое программное обеспечение (2010-2011 гг., которое не имело детерминированных кошельков) не использовало адреса для сдачи, а отправляло сдачу обратно на адрес входа.

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

Сигнатура кошелька

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

В качестве примера рассмотрим пять типичных транзакций, которые состоят из одного входа и двух выходов. A, B, C, D, E относятся к транзакциям. A1, A2 и т.д. относятся к выходным адресам этих транзакций.

Code:
          --> C1
A1 --> B1  --> C2
   --> B2  --> D1
           --> D2 --> E1
                  --> E2

Если при анализе сигнатуры кошелька обнаруживается, что транзакции A, B, D и E выполняются одним и тем же программным обеспечением, а остальные транзакции выполняются совершенно другим программным обеспечением, то мы можем определить адреса для сдачи. Показаны те же транзакции с несовпадающими адресами, замененными на X. Цепочка отслаивания дает понять, что B2, D2, E1 - это адреса для сдачи, принадлежащие тому же кошельку, что и A1.

Code:
          --> X
A1 --> X   --> X
   --> B2  --> X
           --> D2 --> E1
                  --> X

Существует целый ряд способов получения доказательств, используемых для идентификации программного обеспечения кошелька:

  • Форматы адресов. Кошельки обычно используют только один тип адреса. Если все входы транзакции и один из выходов имеют один и тот же тип адреса (например, p2pkh), а оставшийся выход относится к другому типу (p2sh), то разумно предположить, что выход того же типа адреса (p2pkh) является адресом для сдачи, а выход другого типа (p2ph) является переводом другому лицу.
  • Типы скриптов. Каждый кошелек обычно использует только один скипт. Например, отправляющим кошельком может быть p2sh 2-из-3 мультиподписной кошелек, который совершает транзакцию с двумя выходами: первый на 2-из-3 мультиподписной адрес, второй на 2-из-2 мультиподписной адрес. Другой скрипт является сильным индикатором того, что первый выход является платежным, а второй выход адресом для сдачи.
  • BIP69 Лексикографическое индексирование транзакционных входов и выходов. Этот BIP описывает стандартный способ выбирать входы и выходы для кошельков, что позволяет сохранять приватность. В настоящее время система кошельков состоит из различных кошельков, некоторые из них реализуют эту функцию, некоторые нет. Это может помочь атакующему при анализе сигнатуры кошелька. Обратите внимание, что обычная транзакция "один-вход-два-выхода" с произвольным выбором входов будет использовать BIP69 с вероятностью 50%.
  • Количество входов и выходов. Разные пользователи часто создают транзакции по-разному. Например, физические лица часто совершают транзакции только с двумя выходами: платежом и сдачей, в то время как крупные учреждения, такие как казино или биржи, используют консолидацию и пакетирование [6][7]. Вывод, который позже используется для создания пакетной транзакции, вероятно, не был сдачей. Эта эвристика также называется "потребительской эвристикой".
  • Поля транзакций. Значения в полях транзакции могут изменяться в зависимости от программного обеспечения кошелька: nLockTime - это поле в транзакциях, заданное некоторыми кошельками, чтобы сделать сверхточную комиссию менее выгодной. Некоторые кошельки в системе реализуют эту функцию, а некоторые нет. nLockTime также может использоваться и в некоторых протоколах приватности, таких как CoinSwap. nSequence является еще одним примером.
  • Low-R подписи. Формат DER, используемый для кодирования биткоин подписи, требует добавления дополнительного байта только для указания того, когда значение R подписи находится в верхней половине эллиптической кривой, используемой для биткоина. Значение R получается случайным образом, поэтому половина всех подписей имеет этот дополнительный байт. Начиная с июля 2018 года [8] Bitcoin Core генерирует только Low-R подписи, которые не требуют этого дополнительного байта. Таким образом, транзакции Bitcoin Core будут сохранять один байт на каждые две подписи (в среднем). По состоянию на 2019 год ни один другой кошелек не делает этого, поэтому High-R подпись является доказательством того, что Bitcoin Core не использовался [9].
  • Сжатые и несжатые публичные ключи. Старое программное обеспечение кошельков использует несжатые публичные ключи [10]. Для определения сигнатуры кошелька можно использовать смешивание сжатых и несжатых ключей.
  • Комиссии майнерам. Различные программное обеспечение для кошельков может по-разному реагировать на загруженность сети, что может привести к различного рода комиссиям майнерам. Это также может быть способом определения сигнатуры кошелька.
  • Выбор монет. Различное программное обеспечение кошельков может по-разному выбирать, какие UTXO проводить, используя различные алгоритмы, которые можно использовать для определения сигнатуры кошелька.

Если несколько пользователей используют одно и то же программное обеспечение кошелька, то обнаружение сигнатуры кошелька не сможет помочь при обнаружении адреса для сдачи. Также возможно, что один пользователь владеет двумя разными кошельками, которые используют разное программное обеспечение (например, горячий и холодный кошельки), и тогда транзакции между разными кошельками не будут означать смену владельца. Сигнатуры кошелька сами по себе никогда не являются решающим доказательством, но, как и в случае со всеми другими утечками приватной информации, может сыграть важную роль при объединении данных сразу нескольких утечек.

Круглые числа

Многие суммы в платежах являются круглыми числами, например, 1 BTC или 0.1 BTC. Тогда сумма, которая будет отправлена на адрес для сдачи будет не круглым числом (например, 1.78213974 BTC). Это может быть полезно для определения адреса сдачи. Сумма может быть круглой не только в BTC. Сумма 0.01163223 BTC не круглая в биткоине, но при конвертации в USD она может быть близка к $100.

Повышение комиссии

BIP 0125 определяет механизм замены неподтвержденной транзакции другой транзакцией, которая уплачивает более высокую комиссию. В контексте рынка блочного пространства пользователь может обнаружить, что его транзакция не достаточно быстро подтверждается, поэтому он предпочитает "повышение комиссии" или платить более высокую комиссию майнерам. Однако, в целом, новая более высокая комиссия майнерам произойдет за счет уменьшения суммы сдачи. Таким образом, если аналитик наблюдает за всеми неподтвержденными транзакциями, то он может увидеть как более раннюю низкооплачиваемую транзакцию, так и более позднюю высокооплачиваемую транзакцию, а выход с уменьшенной суммой будет выходом сдачи.

Это можно было бы смягчить за счет некоторого времени, сократив количество обоих мероприятий или уменьшив только сумму платежа (в модели "отправитель платит комиссию").

Ненужная эвристика входа

Также можно назвать "эвристика оптимальной сдачи". Рассмотрим эту биткоин транзакцию. Она имеет два входа:  2 BTC и 3 BTC и два выхода: 4 BTC и 1 BTC.

Code:
2 BTC --> 4 BTC
3 BTC     1 BTC

Предположим, что один из выходов является сдачей, а другой - является платежом. Существует две интерпретации: выход платежа - это выход 4 BTC или выход 1 BTC. Но если выход 1 BTC является суммой платежа, то вход 3 BTC можно было не делать, поскольку кошелек мог израсходовать лишь вход 2 BTC и заплатить за это меньшую комиссию майнерам. Это указывает на то, что реальный выход платежа - 4 BTC, а выход сдачи - 1 BTC.

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

Code:
2 BTC --> 4 BTC
3 BTC     6 BTC
5 BTC

Теперь обе интерпретации подразумевают, что некоторые входы не нужны. К сожалению, это увеличивает комиссию майнерам и может быть сделано только в том случае, если кошелек имеет другие UTXO.

Некоторые кошельки имеют алгоритм выбора монет, который нарушает эту эвристику. Примером может служить желание пользователя кошелька объединить входы, когда комиссии майнерам являются низкими. Так что эта версия не является решающим доказательством.
legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:41:17 AM
#2
Модель угрозы

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

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

Для более подробной информации прочтите англоязычную лекцию Opsec for Hackers by grugq. В ней в основном речь идет о политических активистах, которым необходима приватность со стороны государства, но многие советы, как правило, применимы ко всем нам.

Метод объединения данных

Многочисленные утечки приватной информации при объединении могут нанести гораздо больший ущерб для приватности, чем любая из таких утечек. Представьте себе, что получатель транзакции пытается деанонимизировать отправителя. Каждая утечка приватной информации исключает возможных кандидатов, которые могли бы быть отправителями, но две объединенные утечки приватной информации позволяют сузить круг, оставив при этом гораздо меньше кандидатов.


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

Вот почему следует избегать утечек даже небольшого объема информации, поскольку они могут полностью разрушить приватность в сочетании с другими утечками. Возвращаясь к примеру покупателя неанонимной китайской газеты, который был деанонимизирован из-за сочетания информации из транзакции и его адреса в подписи на форуме. Существует множество транзакций в блокчейне, которые сами по себе не раскрывают ничего о личности отправителя или получателя. В подписях на криптовалютных форумах многие используют адреса для пожертвований, которые также не раскрывают личность владельца или информацию о тратах средств, потому что это просто случайная криптографическая информация, которая не хранит в себе ни имен, ни фамилий. Но объединив эти две утечки данных покупатель газеты лишился приватности, что привело к поездке в "места не столь отдаленные". Метод объединения данных очень важен при понимании приватности в сети биткоин (и других ситуациях).


Пример схемы объединения данных с покупателем газеты.

Почему приватность

Финансовая приватность является важным элементом взаимозаменяемости в сети биткоин: если вы можете отличить одну монету от другой, то их взаимозаменяемость слаба. Если на практике взаимозаменяемость слишком слаба, то мы не можем быть децентрализованы: если кто-то важный объявляет список украденных монет, которые не будут приниматься, вы должны будете тщательно проверять монеты, которые вы получаете, ориентируясь на этот список, и вернуть те, которые были украдены. Все застряли, проверяя черные списки, выпущенные различными органами власти, потому что никто не хотел бы оказаться с "грязными" монетами. Это добавляет разногласие и транзакционные издержки и делает биткоин менее ценным в денежном выражении.

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

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

Финансовая приватность также важна в отношении человеческого достоинства: никому не нужна "сопливая" бариста в кафе или шумные соседи, комментирующие свои доходы или привычки тратить деньги. Никто не хочет, чтобы их сумасшедшие тетки спрашивали, зачем они покупают контрацептивы (или сексуальные игрушки). Ваш работодатель не имеет никакого права знать, в какую церковь вы жертвуете деньги. Только в совершенно просвещенном мире, свободном от дискриминации, где никто не обладает чрезмерной властью над кем-либо еще, мы можем сохранить наше достоинство и свободно совершать свои законные сделки без цензуры.

Самое главное, что финансовая приватность не несовместима с такими вещами, как правоохранительные органы или прозрачность. Вы всегда можете вести учет, предоставлять его по требованию (или добровольно) кому угодно, чтобы судьи не действовали против ваших интересов, когда вы не можете предоставить документы (как это происходит сегодня). Все это не требует общедоступных публичных записей.

Общедоступные публичные записи в области финансов совершенно неслыханны. Они нежелательны, и, возможно, неприемлемы. Стандарт биткоина обозначил как бы мы могли обойти открытость бухгалтерского учета с помощью псевдонимов, но экосистема нарушила надежду на это в многих местах, и мы должны это исправить. Биткоин мог бы закодировать ваше имя или IP-адрес в каждой транзакции, но это не было сделано специально. В Белой бумаге даже есть раздел о приватности. Неверно говорить, что биткоин не ориентирован на приватность. Достаточный уровень приватности является необходимым условием жизнеспособной цифровой валюты [2].

Атаки на приватность в блокчейне

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

Биткоин использует модель UTXO. Транзакции имеют входы и выходы, они могут иметь один или несколько входов и выходов. Предыдущие выходы могут быть использованы в качестве входов для последующих транзакций. Выход, который еще не был использован, называется неизрасходованным выходом транзакции (UTXO). UXTO часто называют "coins" или "монета". UTXO ассоциируются с биткоин адресом и могут быть потрачены путем создания действительной подписи, соответствующей scriptPubKey адреса.

Адреса - это криптографическая информация, по сути случайные числа. Сами по себе, адреса не раскрывают информации о их реальном владельце и кому принадлежат биткоины на них. Обычно злоумышленник пытается связать несколько адресов, которые, по его мнению, принадлежат одному и тому же кошельку. Такие коллекции адресов называются "кластеры" или "кластеры кошельков", а деятельность по их созданию - "кластеризация кошельков". Как только кластеры будут получены, злоумышленник может попытаться связать их с идентичностями лиц, за которыми он хочет шпионить. Например, он может найти кошелек A, принадлежащий Алисе, и другой кошелек B, принадлежащий Бобу. Если видна биткоин транзакция, оплачиваемая из кластера A в кластер B, то злоумышленник знает, что Алиса отправила монеты Бобу.

Может быть очень сложно точно построить эвристику для кластеризации кошельков, что приведет к получению действительно правильной информации [3].

Эвристика собственности общих входов

Это эвристика или предположение, которое гласит, что если сделка имеет более одного входа, то все эти входы принадлежат одному и тому же лицу.

Рассмотрим, например, эту транзакцию с входами A, B и C; и выходами X и Y.

Code:
A (1 BTC) --> X (4 BTC)
B (2 BTC)     Y (2 BTC)
C (3 BTC)

Эта транзакция будет свидетельствовать о том, что адреса B и C принадлежат одному и тому же лицу, которому также принадлежит и адрес A.

Одна из целей технологии CoinJoin - нарушить эту эвристику. Тем не менее, эта эвристика очень часто верна и широко используется компаниями по надзору за транзакциями начиная с 2019 года. Такая эвристика обычно сочетается с рассуждениями о повторном использовании адреса, что вместе с несколько централизованной экономикой биткоин с 2018 года является причиной того, почему эта эвристика может быть неоправданно эффективной [4]. Успех эвристики также зависит от поведения кошелька: например, если кошелек обычно получает небольшие суммы и отправляет большие суммы, то он создает много транзакций с несколькими входами.

legendary
Activity: 2464
Merit: 2377
August 10, 2019, 05:38:49 AM
#1

Приватность биткоина


Тема самомодерируемая и является переводом статьи Privacy

Статья написана в феврале 2019 года.

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

По состоянию на 2019 год большинство биткоин энтузиастов считают, что биткоин очень легко отслеживается - это совершенно не так. Например, в 2011 году большинство биткоин энтузиастов считали, что биткоин полностью приватен - это также не верно. Существует один нюанс - в некоторых ситуациях биткоин может быть очень приватным. Но этого непросто добиться и чтобы понять это потребуется не мало времени.


Резюме

Чтобы вы не читали остальную часть статьи, вот краткий обзор того, как обычные пользователи биткоина могут улучшить свою приватность:

Подумайте о том, от чего вы скрываетесь, какая у вас модель угрозы и кто ваш противник. Следует отметить, что существуют компании по надзору за транзакциями, которые осуществляют широкомасштабный надзор за экосистемой биткоина.
Не допускайте повторного использования адреса. Каждый новый адрес должен быть указан лишь одному человеку для получения средств, и больше никогда не использоваться после того, как средства с него будут потрачены.
Старайтесь раскрывать как можно меньше информации о себе при совершении транзакций, например, избегайте проверок AML/KYC и будьте осторожны при указании своего реального почтового адреса.
Используйте кошелек, поддерживаемый собственным полным узлом или используйте фильтрацию блоков со стороны клиента, но не веб-кошелек.
Транслируйте транзакции через TOR, если ваш кошелек не поддерживает его, то скопируйте и вставьте данные транзакции в шестнадцатеричном формате в форму для веб-трансляции через TOR браузер.
По возможности старайтесь использовать Lightning Network.
Если нет возможности использовать Lightning Network, используйте кошелек, который правильно реализует технологию CoinJoin.
Старайтесь избегать создания адресов сдачи, например, когда финансируете Lightning Network, тратьте на него весь UTXO без сдачи.
Если у вас есть повод полагать, что ваше устройство может представлять интерес для "цифровых" криминалистов, то используйте такие решения, как операционная система Tails.

Введение

Пользователи взаимодействуют с сетью биткоин через программное обеспечение, которое может привести к утечке информации различными способами, что может нарушить приватность пользователей.

Биткоин регистрирует транзакции в блокчейне, что является видимым для всех и поэтому наносит наиболее серьезный ущерб приватности. Биткоины перемещаются между адресами; адреса отправителей известны, адреса получателей известны, суммы известны. Неизвестна только идентичность каждого адреса.


Перемещение биткоинов является очень публичным

Связи между адресами, указанными в транзакциях, часто называют графом транзакций. Сама по себе эта информация не может никого идентифицировать, потому что адреса и идентификаторы транзакций являются просто случайными числами. Однако, если любой из адресов в прошлой или будущей транзакции может быть привязан к фактической личности, то с этого момента можно будет определить, кто может владеть всеми другими адресами. Такая идентификация адреса может быть получена в результате анализа сети, наблюдения, поиска в интернете или с помощью различных других методов. Поощряемая практика использования новых адресов для каждой транзакции призвана затруднить эту атаку.

Пример - Злоумышленник контролирует источник и назначение монет


Поиск идентичности одного адреса позволяет нарушить приватность транзакций.

На рисунке выше показан простой пример. Злоумышленник управляет как обменником, так и сайтом-ловушкой, предназначенным для заманивания людей. Если кто-то использует обменник для покупки биткоинов, а затем переводит монеты на сайт-ловушку, то блокчейн покажет:

Транзакция монет с адреса A на адрес B <подписана адресом A>.
Транзакция монет с адреса B на адрес C <подписана адресом B>.

Теперь злоумышленнику известно, что на банковский счет Mr. Doe's была отправлена валюта, которая использовалась для покупки монет, которые затем были переведены на адрес B. Злоумышленнику также известно, что на адрес C сайта-ловушки были получены монеты, которые были потрачены с адреса B. Вместе это является очень веским предположением того, что адрес B принадлежит Mr. Doe's и что он отправил средства на сайт-ловушку. Это предположение не всегда верно, поскольку адрес B может быть адресом, принадлежащим третьей стороне от имени Mr. Doe's, и сделка с C может быть не связана, или же две сделки могут фактически включать смарт-контракт (Off-Chain транзакцию), который перемещает монеты вне цепочки на совершенно другой адрес в блокчейне.

Пример - Неанонимная покупка китайской газеты

В этом примере атакующий контролирует назначение и находит источник из метаданных.

1. Вы живете в Китае и хотите купить онлайн-газету оплатив в биткоине.
2. Вы общаетесь на биткоин форуме и используете свой биткоин адрес в качестве подписи. Поскольку вы очень полезны для форума, через какое-то время вам удается получить скромную сумму в качестве пожертвований.
3. К сожалению, вы не очень хорошо разбираетесь у кого купить газету и покупаете ее у государственного агента.
4. Государственный агент анализирует транзакцию по покупке газеты в блокчейне и просматривает все соответствующие адреса в сети интернет. Он находит ваш адрес в подписи на биткоин форуме. Вы оставили достаточно личной информации в своих сообщениях, чтобы быть идентифицированными, так что ваша приватность нарушена.
5. Основная причина, по которой это произошло, заключается в повторном использовании адреса. Ваша подпись на форуме содержала биткоин адрес, который было не так сложно найти.

Пример - Идеальное анонимное пожертвование

Это хороший пример того, как кто-то использует биткоин для совершенно анонимного пожертвования.

1. Цель заключается в том, чтобы сделать пожертвование организации, которая принимает биткоин.
2. Вы используете Bitcoin Core только через TOR.
3. Вы загрузили весь блокчейн через TOR.
4. Только что добытые в соло майнинге монеты за нахождение блока вы отправляете на ваш кошелек.
5. Весь остаток средств вы отправляете на адрес этой организации, предназначенный для пожертвований.
6. В конце вы уничтожаете используемое оборудование.

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

Множество интерпретации транзакций в блокчейне

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

Рассмотрим пример транзакции:

Code:
1 BTC  ---->  1 BTC
3 BTC         3 BTC

Эта транзакция имеет два входа: 1 BTC и 3 BTC и два выхода: 1 BTC и 3 BTC.

Если бы вы посмотрели на блокчейн, что бы вы подразумевали под этой транзакцией? (Например, мы обычно предполагаем, что биткоин транзакция является платежом, но она необязательно будет платежом).

Существует, по крайней мере, девять возможных интерпретаций [1]:

1. Алиса создает входы. Выход 3 BTC отправляется Бобу, а выход 1 BTC отправляется Алисе (сдача)
2. Алиса создает входы. Выход 1 BTC отправляется Бобу, а выход 3 BTC отправляется Алисе (сдача)
3. Алиса создает вход 1 BTC. Боб создает вход 3 BTC. Выход 1 BTC отправляется Алисе. Выход 3 BTC отправляется Бобу. Такая транзакция похожа на CoinJoin.
4. Алиса отправляет Бобу 2 BTC. Алиса создает вход 3 BTC, выход 1 BTC отправляется Алисе. Боб создает вход 1 BTC, выход 3 BTC отправляется Бобу. Такой тип транзакции - PayJoin.
5. Алиса отправляет Бобу 4 BTC (по какой-то причине использует два выхода).
6. Поддельная транзакция - Алиса создает входы, выходы также отправляются ей (перемещение монет между своими адресами).
7. Алиса отправляет Бобу 3 BTC и Кэрол 1 BTC (пакетный платеж без сдачи).
8. Алиса отправляет 3 BTC, Боб отправляет 1 BTC, Кэрол получает 3 BTC, а Дэвид - 1 BTC (пакетный платеж без сдачи).
9. Алиса и Боб платят 4 BTC Кэрол (используют два выхода).

Для такой простой транзакции существует множество интерпретаций. Поэтому совершенно неверно говорить, что биткоин транзакции всегда отлично отслеживаются, в действительности это намного сложнее.

Атакующие, анализирующие блокчейн, обычно полагаются на эвристику (или идиомы использования), когда делаются определенные предположения о том, что является более правдоподобным. Затем аналитик игнорирует или исключает некоторые из этих предположений, которые он считает неверными. Тот, кто хочет большей приватности может сознательно нарушать те предположения, которые введут в заблуждение аналитика.

Единицы в биткоин транзакции не имеют водяных знаков (другими словами, у них нет маленьких серийных номеров). Например, вход 1 BTC в транзакцию может стать выходом 1 BTC или частью выхода 3 BTC, или смесью того и другого. Транзакции - это многочисленные преобразования, поэтому невозможно ответить на вопрос о том, где оказался 1 BTC. Такая взаимозаменяемость биткоина в рамках одной транзакции является важной причиной различных возможных интерпретаций вышеуказанной транзакции.
Jump to: