Bitcoin Forum
May 16, 2022, 04:33:27 PM *
News: Latest Bitcoin Core release: 23.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Local / Разное / Мысленный экономический эксперимент on: August 19, 2019, 09:29:52 AM
Допустим, в Вашей стране государство решило заботу об эмиссии денег (печать новых денег)
и инфляцию (обесценивание денег) переложить на совесть своих граждан.

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

Следует понимать, что если у Вас в кармане 200 монет при стоимости товара в 100 монет есть две крайние позиции.
1. Вы платите 100 монет, и это означает что остальные 100 монет оставшиеся у Вас не потеряют ценность.
2. Вы платите 75 монет а 25 платите за счет эмиссии и соответственно оставшиеся 100 монет теряют свою ценность.

Я бы хотел узнать Ваш выбор, как бы поступили Вы. Какой процент вы согласились бы оплачивать за товар? 100%-75%?
2  Local / Кодеры / генератор off-line карт on: March 05, 2014, 10:33:32 AM
Доверять можно только тому ключу который создал сам.

код общественное достояние
Данный код используется на свой страх и риск.
3  Local / Разное / Я купил машину! on: January 27, 2014, 07:27:22 AM
В май 2013 года когда жене дали декретные отпускные, часть была пущена на будущее пополнение, но осталось еще 50000 руб. Что-бы не потратить положили в биткоин.
В январе 2014 года, на выведенные средства был куплен Renault Grand Scenic 2



фото с интернетов

Если история интересна журналистам, могу предоставить пруфы.
4  Local / Идеи / Proof-of-work on: January 14, 2014, 02:12:59 PM
передача
хранение
выполнение

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

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

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

* cpu/gpu простаивает? Ставь виртуальную машину, определяй лимиты - зарабатывай. Необходимо что-то вычислить? Пишешь код, прикладываешь рейтинг, получаешь результат.

В качестве бреда.
5  Local / Кодеры / bitfury asic protocol on: October 11, 2013, 07:31:27 AM
по следам дампа:
https://bitcointalk.org/index.php?topic=242745.msg2865934#msg2865934
https://bitcointalk.org/index.php?topic=242745.msg3123444#msg3123444

Где можно еще найти информации о протоколе, кроме как в исходниках?
6  Local / Барахолка / bay FPGA X6000 on: April 15, 2013, 09:02:22 PM
куплю FPGA X6000 miner
работоспособность/не обязательно
писать в PM
7  Local / Русский (Russian) / Борьба с воровством. on: September 28, 2012, 09:04:41 PM
Прошу учесть что все события и имена вымышленные, любой совпадение считать случайным.
Действущие лица:
потерпевший
судья
взломщик (][)

сообщество разделенное на:
группа поддержки (good)
пассивная группа

Представим что у нас произошла кража, и у потерпевшего взломщик украл средства переведя их на счет addr][
После объявления о пропаже не сложно отследить путь куда ушли средства, важно чтобы злоумышленник не успел их потратить.
Потерпевший сообщает о краже, предаставив сообществу privkey в качестве доказательства что счет действительно его.
Тогда в дело вступает судья, он исследует ситуацию и честность потерпевшего. Если ситуация не вызывает сомнений судья выносит решение что средства со счета addr][ будут приняты только если будут переведенны на запасной счет потерпевшего, решение подписывается ключом судьи и распрастраняется в сети среди участников (good), чем больше участников (а это выгодно быть честным, ведь завтра могут украсть у тебя) тем больше вероятность что сеть отвергнет транзакцию со счета addr][. Вполне вероятно что взломщик не станет возвращать (из вредности) но воспользоваться средствами будет прблемой. Отвергать так же можно и блоки с tx addr][ препятствую его распрастранению, что делает не выгодным пулу обрабатывать такие tx.

К сожелению в международном не силен, поэтому не в курсе была ли такая идея уже на форуме в англоязычной ветке.
8  Local / Кодеры / XC6SLX150 on: June 08, 2012, 11:56:39 AM
Заказ чипа у русских поставщиков череват большими расходами. В то время как за бугром его можно достать за 158,75$ + расход на доставку.
Есть ли у кого опыт заказа с avnet.com digikey.com etc как частного лица?
9  Local / Кодеры / Переменные и константы клиента on: October 11, 2011, 07:21:32 AM
interval = http://blockexplorer.com/q/interval/144 (средняя количество секунд для создания блока расчет на 144 блока)
winning = http://blockexplorer.com/q/hashestowin (необходимое колличество попыток для создания блока)
общая скорость сети за 144 блока (около суток) = winning / interval

текущая сложность = 0xffff0000000000000000000000000000000000000000000000000000 (min target) / http://blockexplorer.com/q/hextarget (current target)

как происходит перерасчет current target через каждые 2016 блоков, подозреваю он связан со средним временем генерации за 2016 блоков?
10  Local / Кодеры / не обычный tx on: October 06, 2011, 03:15:18 PM
интересный tx попался на глаза, когда просматривал BBE
прошу обратить внимание на out
http://blockexplorer.com/rawtx/c67349ab0cf19781a9973383d878109b7ff1412ee478d638e5baf0e0ba5a26dd

обычно переводят на hesh_160 вот как тут
http://blockexplorer.com/rawtx/c666d7810fe9782ef423fde6c4e7767809856fd42ea962686b284fc8d2ad468a

А в этой не обычной tx был перевод (генерация) на open_key есть еще подобные в db или это чей-то кривой клиент (майнер) породил странность?

зы может есть у кого нить ссылочка на tx с ip на ip?
11  Local / Кодеры / SHA256 на лампах on: September 22, 2011, 08:19:06 AM
Под майн задействовано не мало реализаций, ASM, OpenCL, JS, Python, C и используется на различном железе CPU GPU ARM FPGA.
Быть может где нибудь есть маньяки которые пытались сделать алгоритм на высокочастотных транзисторах? Гугл мне ничего не дал.
12  Local / Кодеры / Ограничения сети on: September 16, 2011, 10:10:39 AM
на 09.2011
на основании:
версии блока 01
версии транзакции 01
----
ограничение по времени unix time
максимальное количество блоков в сети 4294967295
максимально количество вводов/выводов в транзакции 255
максимальная сумма перевода 184467440737.09552 (больше чем предел генерации)
максимальное количество транзакций в блоке ...
13  Local / Кодеры / [SOLVED] signature tx on: July 07, 2011, 09:31:59 AM
=========================================

Cпасибо Ukigo, тема закрыта, для интересующихся ответы там. http://forum.bitcoin.org/index.php?topic=27179.0

=========================================

Уважаемые, быть может кто подкован лучше в тех части, нужна помощь.
смотрим tx http://blockexplorer.com/rawtx/fa35e2379cb5fbee7dbd64100251ed78182d0d7e74fbbc5213a097bfce0e027a

собственно scriptSig
signature: 3045022100df6bff4908b5c039a43e1a080ddc28fd771909b12106a2403e2157756eaa334602203 6e19130d97f607b1c8d5121450fbdbc1a8e752c5e42794403c26a19bb206a8c01
pubkey:
0440f9f833a25c725402e242965410b5bb992dc4fea1328681f0a74571c3104e360882ea6ae14b6 b1316e71e76cc51867cba20cafabd349753058b8c4677be50ca

Как находиться хеш который необходимо подписать?
Подозреваю он связан с
[prev_out hash] 9bf8e6c6f2cb473df11a41bc79a549b5c116d1a2fce07bae9d48df532ffc9750
и
[prev_out n] 1
14  Local / Кодеры / [SOLVED] python secp256k1 on: June 27, 2011, 03:42:02 PM
Code:
#! /usr/bin/env python

import random

class CurveFp( object ):
  def __init__( self, p, a, b ):
    self.__p = p
    self.__a = a
    self.__b = b

  def p( self ):
    return self.__p

  def a( self ):
    return self.__a

  def b( self ):
    return self.__b

  def contains_point( self, x, y ):
    return ( y * y - ( x * x * x + self.__a * x + self.__b ) ) % self.__p == 0

class Point( object ):
  def __init__( self, curve, x, y, order = None ):
    self.__curve = curve
    self.__x = x
    self.__y = y
    self.__order = order
    if self.__curve: assert self.__curve.contains_point( x, y )
    if order: assert self * order == INFINITY
 
  def __add__( self, other ):
    if other == INFINITY: return self
    if self == INFINITY: return other
    assert self.__curve == other.__curve
    if self.__x == other.__x:
      if ( self.__y + other.__y ) % self.__curve.p() == 0:
        return INFINITY
      else:
        return self.double()

    p = self.__curve.p()
    l = ( ( other.__y - self.__y ) * \
          inverse_mod( other.__x - self.__x, p ) ) % p
    x3 = ( l * l - self.__x - other.__x ) % p
    y3 = ( l * ( self.__x - x3 ) - self.__y ) % p
    return Point( self.__curve, x3, y3 )

  def __mul__( self, other ):
    def leftmost_bit( x ):
      assert x > 0
      result = 1L
      while result <= x: result = 2 * result
      return result / 2

    e = other
    if self.__order: e = e % self.__order
    if e == 0: return INFINITY
    if self == INFINITY: return INFINITY
    assert e > 0
    e3 = 3 * e
    negative_self = Point( self.__curve, self.__x, -self.__y, self.__order )
    i = leftmost_bit( e3 ) / 2
    result = self
    while i > 1:
      result = result.double()
      if ( e3 & i ) != 0 and ( e & i ) == 0: result = result + self
      if ( e3 & i ) == 0 and ( e & i ) != 0: result = result + negative_self
      i = i / 2
    return result

  def __rmul__( self, other ):
    return self * other

  def __str__( self ):
    if self == INFINITY: return "infinity"
    return "(%d,%d)" % ( self.__x, self.__y )

  def double( self ):
    if self == INFINITY:
      return INFINITY

    p = self.__curve.p()
    a = self.__curve.a()
    l = ( ( 3 * self.__x * self.__x + a ) * \
          inverse_mod( 2 * self.__y, p ) ) % p
    x3 = ( l * l - 2 * self.__x ) % p
    y3 = ( l * ( self.__x - x3 ) - self.__y ) % p
    return Point( self.__curve, x3, y3 )

  def x( self ):
    return self.__x

  def y( self ):
    return self.__y

  def curve( self ):
    return self.__curve
  
  def order( self ):
    return self.__order
    
INFINITY = Point( None, None, None )

def inverse_mod( a, m ):
  if a < 0 or m <= a: a = a % m
  c, d = a, m
  uc, vc, ud, vd = 1, 0, 0, 1
  while c != 0:
    q, c, d = divmod( d, c ) + ( c, )
    uc, vc, ud, vd = ud - q*uc, vd - q*vc, uc, vc
  assert d == 1
  if ud > 0: return ud
  else: return ud + m

# secp256k1
_p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2FL
_r = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141L
_b = 0x0000000000000000000000000000000000000000000000000000000000000007L
_a = 0x0000000000000000000000000000000000000000000000000000000000000000L
_Gx = 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798L
_Gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8L

class Signature( object ):
  def __init__( self, r, s ):
    self.r = r
    self.s = s
    
class Public_key( object ):
  def __init__( self, generator, point ):
    self.curve = generator.curve()
    self.generator = generator
    self.point = point
    n = generator.order()
    if not n:
      raise RuntimeError, "Generator point must have order."
    if not n * point == INFINITY:
      raise RuntimeError, "Generator point order is bad."
    if point.x() < 0 or n <= point.x() or point.y() < 0 or n <= point.y():
      raise RuntimeError, "Generator point has x or y out of range."

  def verifies( self, hash, signature ):
    G = self.generator
    n = G.order()
    r = signature.r
    s = signature.s
    if r < 1 or r > n-1: return False
    if s < 1 or s > n-1: return False
    c = inverse_mod( s, n )
    u1 = ( hash * c ) % n
    u2 = ( r * c ) % n
    xy = u1 * G + u2 * self.point
    v = xy.x() % n
    return v == r

class Private_key( object ):
  def __init__( self, public_key, secret_multiplier ):
    self.public_key = public_key
    self.secret_multiplier = secret_multiplier

  def der( self ):
    hex_der_key = '06052b8104000a30740201010420' + \
                  '%064x' % self.secret_multiplier + \
                  'a00706052b8104000aa14403420004' + \
                  '%064x' % self.public_key.point.x() + \
                  '%064x' % self.public_key.point.y()
    return hex_der_key.decode('hex')

  def sign( self, hash, random_k ):
    G = self.public_key.generator
    n = G.order()
    k = random_k % n
    p1 = k * G
    r = p1.x()
    if r == 0: raise RuntimeError, "amazingly unlucky random number r"
    s = ( inverse_mod( k, n ) * \
          ( hash + ( self.secret_multiplier * r ) % n ) ) % n
    if s == 0: raise RuntimeError, "amazingly unlucky random number s"
    return Signature( r, s )

curve_256 = CurveFp( _p, _a, _b )
generator_256 = Point( curve_256, _Gx, _Gy, _r )
g = generator_256

if __name__ == "__main__":
  print '======================================================================='
  ### generate privkey
  randrange = random.SystemRandom().randrange
  n = g.order()
  secret = randrange( 1, n )
  ### set privkey
  #secret = 0xC85AFBACCF3E1EE40BDCD721A9AD1341344775D51840EFC0511E0182AE92F78EL
  ### print privkey
  print 'secret', hex(secret)

  
  ### generate pubkey
  pubkey = Public_key( g, g * secret )
  ### set pubkey
  #pubkey = Public_key(g, Point( curve_256, 0x40f9f833a25c725402e242965410b5bb992dc4fea1328681f0a74571c3104e36L,
  #                                         0x0882ea6ae14b6b1316e71e76cc51867cba20cafabd349753058b8c4677be50caL))
  ### print pubkey
  print 'pubkey', hex(pubkey.point.x()), hex(pubkey.point.y())

  privkey = Private_key( pubkey, secret )
  
  # set hash
  #hash = randrange( 1, n )
  hash = 0x0000000000000000000000000000000000000000000000000000000000000000L

  ### make signature on hash
  signature = privkey.sign( hash, randrange( 1, n ) )
  ### set signature
  #signature = Signature(0x0000000000000000000000000000000000000000000000000000000000000000L,
  #                      0x0000000000000000000000000000000000000000000000000000000000000000L)
                        
  ### print signature
  print 'signature', hex(signature.r), hex(signature.s)


  #print '======================================================================='
  print 'verifies', pubkey.verifies( hash, signature )
  print '======================================================================='


Умеет, генерировать privkey, делать из него pubkey, подписывать хеш проверять подпись.
Вопрос знатокам, у меня сигнатура получается 64 bytes 2x32b. Даже если добавить 0x30 спереди выходит 65b.
В то время как http://blockexplorer.com/rawtx/a2844948747244e5582b385e86de85b386443353cfe6803091ac50257baf7ee7
Code:
30440220681233302fad9cb4f9ea61653d19cdea635ae59270ebbb837b9287f75ae90dae02203bf9d2d0b52cd1734ccaf7bebc831c128737fb1309f83b79cab500dc274b532201
71 bytes
ЧЯДНТHuh

зы. спасибо Sipa, за то что терпел мое каверканье международного, мне стыдно  Embarrassed
ззы. код народное достояние.
15  Local / Разное / Merkle Tree on: June 19, 2011, 12:08:12 PM
Эпизодически натыкаюсь на сообщения в dev ветке об использовании Merkle Tree, Merkle Hash в цепочке.
Могут ли уважаемые знатоки, прояснить ситуацию, в каком качестве и где используется Merkle?
16  Local / Разное / Идея: новая модель бд on: April 30, 2011, 09:18:59 AM
Блоки, основа сети, бд о транзакциях.
Не все в состоянии позволить закачать себе более 100-200М даже единовременно.

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

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

Чем это отличается от ситуации когда твой кошелк находиться на сайте? пример https://www.instawallet.org
В описанном мною случае, сохраняется право владения кошельком за собой, а не разделения этого права с сайтом предлагающем услугу хранения счета.
17  Local / Майнеры / Список пулов on: April 28, 2011, 10:38:15 AM
http://deepbit.net [Tycho]
http://mining.bitcoin.cz slush
http://btcmine.com dbitcoin
http://bitcoinpool.com FairUser
http://www.btcguild.com eleuthria
http://swepool.net dinox
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!