Author

Topic: BtcIO - Опенсорсный, холодный, BTC-кошелёк (Read 199 times)

gov
member
Activity: 196
Merit: 40
Добавил пользовательскую энтропию, функционал открытия и сохранения кошельков, анонимные транзакции через TOR, скрыл WIF и seed.

https://www.youtube.com/watch?v=Oytmq7KVDPE
Нафиг нужны поля с сидом и приватом, если они скрыты и есть кошелёк? Достаточно одного адреса и баланс туда же поместить, зачем разделять.




PS А где можно тестовых битков получить в большем количестве чем 0.01 ? Они же я так понимаю бесплатные, где их люди изначально берут?  Я слышал что битки тестовой сети прошлой версии уже продаются за деньги.
newbie
Activity: 19
Merit: 11
Добавил пользовательскую энтропию, функционал открытия и сохранения кошельков, анонимные транзакции через TOR, скрыл WIF и seed.

https://www.youtube.com/watch?v=Oytmq7KVDPE
newbie
Activity: 19
Merit: 11
Ну вот, немного получше стало, не так пугающе, гуи рулит верно ведь?

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

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

Второе, у вас в коде простым ГСЧ создаётся сид-фраза, это фэйспалм, такие приваты хакаются на раз-два. Почитайте про "энтропию" и как это делается в серьёзных приложениях.

ГСЧ  поменял на более "сильный", позже добавлю юзерскую энтропию.

ИМХО копипаст ключей не более опасен чем ввод паролей от кошелька, если устройство атаковано(есть доступ к дискам и все действия пользователя доступны злоумышленнику)

Но возможно Вы правы, я подумаю над этим.
gov
member
Activity: 196
Merit: 40
может из этого отдельный кейс сделать? или вообще мобильную апку?

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

Если хотите что бы программа была интересной другим, а не только вам лично, сделайте её предельно простой, без JSON и бинарного кода в ответах, вы что издеваетесь?

Кроме того ИМХО десктоп уже не в тренде, 90% пипла всё делают на смартфонах и вебе на крайняк, процесс "скачивания" или "инсталяции" остался в 20м веке, всё в браузере должно быть, никакого напряга, общее настроение такое: "пипил кайф ловит, а между делом на тусовке с депутатами и фотомоделями, одним касанием пальчика по экрану, миллионы баксов делает на битке", такова новая парадигма, никакого напряга, всё в кайф, без мышек, клавиатур и консолей, это ключ к юзеру 21го века.

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

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

В общем я сподобился выложить бетку на гитхаб https://github.com/avadhuta/BtcIO/releases

И пример использования с тестовой сетью на ютуб(с майновой работает аналогично):

Для консоли https://youtu.be/Mnm2dWqRP8g

Для варианта с GUI https://youtu.be/JiTr551-veE

screenshots:





Прошу заценить  и прокоментить, кому не лень.  Smiley
Ну вот, немного получше стало, не так пугающе, гуи рулит верно ведь?

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

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

Второе, у вас в коде простым ГСЧ создаётся сид-фраза, это фэйспалм, такие приваты хакаются на раз-два. Почитайте про "энтропию" и как это делается в серьёзных приложениях.

https://github.com/avadhuta/BtcIO/blob/master/BtcWalletTools/Tech.cs
Code:
       private static string[] words = ReadResource("words.txt").Split('\n');

        public static string RandomSeed()
        {
            var r = new Random();
            string res = "";
            for (int i = 0; i < 12; i++) res += words[r.Next(0, words.Length - 1)].ToLower() + (i < 11 ? " " : "");

            return res;
        }

 Shocked Shocked Shocked
newbie
Activity: 19
Merit: 11
может из этого отдельный кейс сделать? или вообще мобильную апку?

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

Если хотите что бы программа была интересной другим, а не только вам лично, сделайте её предельно простой, без JSON и бинарного кода в ответах, вы что издеваетесь?

Кроме того ИМХО десктоп уже не в тренде, 90% пипла всё делают на смартфонах и вебе на крайняк, процесс "скачивания" или "инсталяции" остался в 20м веке, всё в браузере должно быть, никакого напряга, общее настроение такое: "пипил кайф ловит, а между делом на тусовке с депутатами и фотомоделями, одним касанием пальчика по экрану, миллионы баксов делает на битке", такова новая парадигма, никакого напряга, всё в кайф, без мышек, клавиатур и консолей, это ключ к юзеру 21го века.

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

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

В общем я сподобился выложить бетку на гитхаб https://github.com/avadhuta/BtcIO/releases

И пример использования с тестовой сетью на ютуб(с майновой работает аналогично):

Для консоли https://youtu.be/Mnm2dWqRP8g

Для варианта с GUI https://youtu.be/JiTr551-veE

screenshots:
https://i.imgur.com/ZxuXYuV.jpeg
https://i.imgur.com/6evZ7YW.jpeg
https://i.imgur.com/M8tslVi.jpg
https://i.imgur.com/kjvhsnS.jpg


Прошу заценить  и прокоментить, кому не лень.  Smiley
sr. member
Activity: 1064
Merit: 332
может из этого отдельный кейс сделать? или вообще мобильную апку?
Тебе зачем? Им виднее, они кодеры. Ты лучше передай лудоману Дмитрию Васильеву чтобы деньги вернул
gov
member
Activity: 196
Merit: 40

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

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

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

На картинке же топик-стартера бинарный код в консоли. Shocked Shocked Shocked
legendary
Activity: 3486
Merit: 1100

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

Это характеристика очень гнилых и безответственный юзеров.
Когда одно касание пальчика стоит очень большое количество человекочасов реально проделанной работы, юзер должен понимать, что произойдет в последствии и как скоро.
gov
member
Activity: 196
Merit: 40
В общем написал я пару лет назад для собственного пользования, утилитку на .NET для того что бы быстро генерировать приваты и адреса, смотреть балансы, а главное слать битковые транзакции, со своих приватов.

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

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

Вот пример её работы:



Если возникнет интерес, выложу на гитхаб код и бинарники для винды и линукса, код очень простой, без ООП-излишеств и GUI в отличии от аналогов, можно проверить за 10 минут, что там нет никаких подлянок в виде пересылок wif мне на почту и тп.,

Понятно что такие апки без исходников не имеют смысла, хотя "профессиональные" опенсорс проекты за 50к строк кода тоже могут таить подводные камни, проверять такое творчество придётся месяцами, а у меня функция отправки транзакции несколько десятков строк, используются библиотеки NBitcoin и QbitNinja, а также API blockcypher.com.
Картинка на первый взгляд выглядит устрашающе, как хардовое сисадминство.

Если хотите что бы программа была интересной другим, а не только вам лично, сделайте её предельно простой, без JSON и бинарного кода в ответах, вы что издеваетесь?

Кроме того ИМХО десктоп уже не в тренде, 90% пипла всё делают на смартфонах и вебе на крайняк, процесс "скачивания" или "инсталяции" остался в 20м веке, всё в браузере должно быть, никакого напряга, общее настроение такое: "пипил кайф ловит, а между делом на тусовке с депутатами и фотомоделями, одним касанием пальчика по экрану, миллионы баксов делает на битке", такова новая парадигма, никакого напряга, всё в кайф, без мышек, клавиатур и консолей, это ключ к юзеру 21го века.
newbie
Activity: 7
Merit: 2
В общем написал я пару лет назад для собственного пользования, утилитку на .NET для того что бы быстро генерировать приваты и адреса, смотреть балансы, а главное слать битковые транзакции, со своих приватов.

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

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

Вот пример её работы:

https://d.radikal.ru/d41/2101/98/869d6d46bfbf.jpg

Если возникнет интерес, выложу на гитхаб код и бинарники для винды и линукса, код очень простой, без ООП-излишеств и GUI в отличии от аналогов, можно проверить за 10 минут, что там нет никаких подлянок в виде пересылок wif мне на почту и тп.,

Понятно что такие апки без исходников не имеют смысла, хотя "профессиональные" опенсорс проекты за 50к строк кода тоже могут таить подводные камни, проверять такое творчество придётся месяцами, а у меня функция отправки транзакции несколько десятков строк, используются библиотеки NBitcoin и QbitNinja, а также API blockcypher.com.
может из этого отдельный кейс сделать? или вообще мобильную апку?
newbie
Activity: 19
Merit: 11
используются библиотеки NBitcoin и QbitNinja, а также API blockcypher.com.

обычно АПИ сторонних сервисов имеют ограничения для количества запросов и могут меняться всяко разно без уведомлений.
Все таки RPC родного кошелька надежней будет. Синхронизироваться можно в prune mode если "винт не резиновый". Хотя, если серьезно к делу подходить, то лучше не пожалеть 15 тыщь на гигабайтный ssd который закриптовать трукриптом и целиком пустить под блокчейн проекты.
Согласен, RPC конечно надежнее, у кого блокчейн битка постоянно в сети или хотя бы каждый день обновляться и в коре синхронизация\доступ к средствам за 5 мин происходит. Если какая нить биржа, обменник, или сервис некий, то разумеется RPC.

Ну а если с ноута или планшета, отправить, посмотреть баланс, раз в месяц, то уж простите это перебор, а веб-кошельки даже такие уважаемые как blockchain.com/wallet могут тоже в любой момент учудить КИС или что то подобное, страшно. Помнится я как то 2fa потерял пароль к веб кошельку, не очень весело было. Приваты доверять кому то стрёмно.

Я вообще эту утилитку сделал когда разбирался как транзакции формировать и с битком в .net работать, по началу тоже и не думал гонять раельный биток собственной поделкой, только тестовый. А потом попробовал и оказалось достаточно удобно, по сравнению с кором, из за ожидания загрузки, так как я редко гоняю биток с биржи- на биржу, может раз в пол года, обычно когда движуха сильная на рынке, как недавно была и приходится долго ждать когда десятки гигов зальются.
copper member
Activity: 1540
Merit: 487
Stop the war!
используются библиотеки NBitcoin и QbitNinja, а также API blockcypher.com.

обычно АПИ сторонних сервисов имеют ограничения для количества запросов и могут меняться всяко разно без уведомлений.
Все таки RPC родного кошелька надежней будет. Синхронизироваться можно в prune mode если "винт не резиновый". Хотя, если серьезно к делу подходить, то лучше не пожалеть 15 тыщь на гигабайтный ssd который закриптовать трукриптом и целиком пустить под блокчейн проекты.
newbie
Activity: 19
Merit: 11
Десктопная апка(консольная и GUI) для виндовс и линукс на .NET CORE для того что бы быстро генерировать приваты и адреса по сиду, смотреть балансы и слать транзакции, со своих приватов и кошельков.

Гитхаб https://github.com/avadhuta/BtcIO/releases

Пример использования с тестовой сетью(с майновой работает аналогично):

Для консоли https://youtu.be/Mnm2dWqRP8g

Для варианта с GUI https://youtu.be/JiTr551-veE


Используются библиотека NBitcoin, а также API blockcypher.com.

screenshots:
https://i.imgur.com/ZxuXYuV.jpeg
https://i.imgur.com/6evZ7YW.jpeg
https://i.imgur.com/M8tslVi.jpg
https://i.imgur.com/kjvhsnS.jpg
Jump to: