Bitcoin Forum
October 18, 2026, 12:55:33 AM *
News: Latest Bitcoin Core release: 31.1 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 3 »
1  Alternate cryptocurrencies / Tokens (Altcoins) / [ANN] Chromia - a better dapp platform on: November 05, 2019, 07:58:59 PM
Hi, I wonder if anyone here remembers me Smiley

https://chromia.com/

Chromia (by ChromaWay) is a new blockchain platform for decentralized applications, conceived in response to the shortcomings of existing platforms and designed to enable a new generation of dapps to scale beyond what is currently possible. Chromia is both a blockchain and a relational database. This means that decentralized applications (dapps) can be written in a way that is familiar to developers all over the world, whether they work on large enterprise applications, games, or smaller projects.

Whitepaper: https://chromia.com/indexwp.html

Programming dapps: http://rell.chromia.com/en/master/ https://try.chromia.dev/
2  Bitcoin / Project Development / Sentiment: use Bitcoin signatures to vote up messages on: September 13, 2015, 09:49:20 PM
Sentiment is a bulletin board which uses Bitcoin for a Sybil-attack-resistant message ranking. User which supports a particular message can sign its hash using one of his addresses which holds some amount of bitcoins and submit this signature to Sentiment. Sentiment collects all signatures, computers a total amount of bitcoins which support a particular message and uses that for ranking. The idea is that this ranking corresponds to the sentiment of Bitcoin users weighted by the amount of bitcoins they own.

http://sentiment.memeexchange.com/

Note: Signing a message with your private key might have some security and privacy implications, effectively the same as Bitcoin address reuse. Publishing signatures increases risk in case of use of flawed wallet software or discovery of ECDSA vulnerabilities.
3  Economy / Service Announcements / [ANN] SimplyBook.me: Online Reservation Tool | accept bitcoins during booking! on: December 03, 2013, 02:04:36 PM
http://SimplyBook.me/

Description: Booking system for dentists, medical services, hair & beauty salons, repair services, event planners, rental agencies, educational services, government agencies, school counsellors and more ...

It comes with Bitcoin payments integration, that is, you can accept bitcoins this way. (Customer pays during booking.)

There is a video talk plug-in, i.e. somebody can book a video talk, pay for it with bitcoin... (Sadly, adult video is not allowed.)

Service also accepts bitcoins for premium packages. (SMS, plug-ins, etc.)
4  Local / Кодеры / colored coins... уже не ищем программистов. on: October 27, 2013, 04:17:33 PM
EDIT: Программистов уже нашли.

Мы разрабатываем новый colored coins клиент... Грубо говоря, это Bitcoin wallet с дополнительными возможностями. (EDIT: суть дополнительных возможностей: децентрализованный рынок ценных бумаг.) Написан практически с нуля на Python.

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

Хотелось бы всё-таки как-то ускорить разработку, поэтому я всё ещё ищу программистов.

Спонсоры на разработку выделяют 70 BTC денег, т.о. работа оплачивается. Есть разные варианты.

Код: https://github.com/bitcoinx/ngcccbase/
Примерный список задач (он будет меняться): https://github.com/bitcoinx/ngcccbase/issues?state=open

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

(Я уже написал основную часть клиента за две-три недели, но он нуждается в доработках, к примеру, сейчас можно смотреть баланс, принимать и присылать коины, но историю транзакций он не показывает.)
5  Bitcoin / Development & Technical Discussion / merged mining vs side-chains (another kind of merged mining) on: October 18, 2013, 10:39:51 AM
Currently merged mining mechanism is often recommended as a consensus mechanism for alt-currencies and whatnot: merged mining enables reuse of Bitcoin proof-of-work, which is nice.

However, it isn't the only way to re-use Bitcoin consensus. The alternative is to create a block chain which is fully dependent on Bitcoin.

It is usually called timestamping, see here: https://bitcointalk.org/index.php?topic=113337.0

Let's call a block chain based on timestamping a side-chain. (I don't know whether it's consistent with previous use, but at least side-chains were mentioned in a topic about timestamping.)

Side-chain is NOT an alternative chain as it doesn't use block chain algorithm, that is, rules for finding the best chain are different.

However, they share a lot of similarities with merged mining: they can use identical machinery on the Bitcoin side, as it's only necessary to reference a hash of side-chain block in the Bitcoin block, and it is what merged mining is about on the Bitcoin side.

The difference is in the rules used to validate blocks and to build the best chain:

  • side-chain ignores blocks not references by Bitcoin blocks which are part of best-chain (and this means that Bitcoin reorg triggers side-chain reorg)
  • side-chain ignore blocks which do not extend the longest chain
  • otherwise, it is just a longest chain of blocks which are referenced from Bitcoin blocks which are part of the best chain

Let's summarize the difference between merged-mined chains and side-chains:

Merged-mined chains re-use Bitcoin proof-of-work, but their best chain is fully independent from Bitcoin best chain. Thus it is possible that merged-mined chain will have a reorganization when there is no Bitcoin chain reorganization; and vice-versa: Bitcoin reorganization has no effect on a merged-mined chain. Thus we can say that merged-mined chains constitute an independent consensus system which merely re-uses Bitcoin proof-of-work, but doesn't depend on Bitcoin chain.

On the other hand, side-chain consensus is fully dependent on Bitcoin consensus: side-chain reorganization is impossible without Bitcoin reorganization. (But Bitcoin reorgs can easily trigger side-chain reorgs.) This means that side-chain consensus is almost as strong as Bitcoin consensus.

I hope now you see why I brought up this topic: if only a fraction of Bitcoin miners uses merged-mining, side-chain s are more secure against double-spends and "51% attacks" than merged-mined chains!

Thus, side-chains are, in a way, superior. Then why merged-mining is the recommended method?

Well, of course, side-chain design has its own trade-offs, and probably the biggest one is longer confirmation times.

Let's compare two situations:

1. 10% of Bitcoin hashpower works on a certain side-chain: side-chain is as strong as Bitcoin, but delay until first confirmation is 10x bigger. (On the other hand, getting 6 confirmations on the side chain will require only 2.7 more time than getting 6 confirmations on Bitcoin chain.)
2. 10% of Bitcoin hashpower works on a certain merged-mined chain: confirmations are fast, but a Bitcoin mining pool having more than 10% of hashpower can brutally destroy it basically for free.

6  Bitcoin / Development & Technical Discussion / the theory of colored coins on: September 30, 2013, 12:17:34 PM
(This is based on an article which I posted on colored coins mailing list back in June. Since colored coins are mentioned here fairly frequently, it would help if settle on a concrete terminology, and so I'm posting it here.)

EDIT: A more rigorous definition which uses slightly different terminology: https://github.com/bitcoinx/colored-coin-tools/wiki/colored_coins_intro

Previously we were associating term "colored coins" with a concrete protocol/algorithm, called "order-based coloring". Sadly, it had certain deficiencies, especially after anti-dust patch made it impossible to send tiny amounts of coins, and for this reason we decided against standardizing on it.

Instead, I decided to generalize the concept; so "colored coins" is a concept now, not a particular technology. So what is it, exactly?

The core idea is this:

  • we are going to associate a property or a set of properties with transaction outputs
  • this property can be transferred when these transaction outputs are spent in a transaction, i.e. outputs of this transaction can somehow inherit properties of inputs

So the characteristic trait of 'colored coins' concept is that it uses Bitcoin transaction graph and works on 'transaction output' level.

Let's formalize this:

  • color associates color states with transaction outputs, e.g. color X associates color state Y with transaction output Z. Perhaps we can write it down as X(Z)=Y
  • color can't be an arbitrary function, it must be defined in terms of coloring kernel, which is a function which can be applied to each transaction in isolation
  • coloring kernel is a function which gets a particular transaction and color states of all of its inputs as parameters, and yields color state for each transaction output. Basically, coloring kernel "colors" outputs
  • we can apply coloring kernel to each transaction in a blockchain, and if it is deterministic, a certain color state will be deterministically associated with each transaction output in the blockchain
  • this also applies to transactions in mempool: if transaction isn't orphan, color states of its outputs can be computed, and they won't change in future

"Order-based coloring" is a kind of a coloring kernel: you get specific coloring kernel when you combine genesis of a color with an order-based coloring algorithm. (In other words, a generic coloring function which performs order based coloring is parametrized by genesis transaction output; and when color's genesis transaction output is provided you get the concrete coloring function for this particular color.)

You can find an implementation of this coloring kernel here (Python): https://github.com/bitcoinx/coloredcoinlib/blob/master/colordef.py#L24

Smart Property protocol which was described by Mike Hearn here: https://en.bitcoin.it/wiki/Smart_Property#Theory
fits into this new colored coin model. And so do many other things which are based on it, e.g. bonds which are marked with a special transaction scripts (see here: https://en.bitcoin.it/wiki/Distributed_markets).

However, Mastercoin doesn't fit into colored coins model, for two reasons:

  • it associates balances with addresses, not with transaction outputs
  • it uses non-local state transitions. It is sensitive to order, i.e. even if you have exactly same transactions, but they are in a different order, you can get a very different state.

Mastercoin can only be described in terms of a more general model, and it can implement features which cannot be implemented within colored coin model. But since it doesn't make use of Bitcoin transaction graph, it is no longer protected with mechanism which prevent double-spends. I.e. we cannot say anything conclusive about Mastercoin transactions which are still in memory pool, state is fixed only if is buried in the blockchain.

OK, well, so why do we care about a formal model for colored coins?

As it turns out, coloring kernel can be separate from other aspects of colored coin implementation (such as blockchain traversal, for example). Thus we can create a colored coin client which is able to work with several different kinds of kernels, and so compatibility problems are less pressing: to add support for a different kind of colored coins we simply need to include implementation of kernel and implementation of send function.

We can also develop coloring kernels for specific purposes: we are no longer limited to a simple rule of conservation. We can implement advanced kernels which can have interesting features like demurrage, taxation, built-in referral program etc. It is also possible to design them specifically for use in derivative and prediction markets.

(In other news, I believe it is possible to create a fully decentralized prediction market. It is fairly hairy and relies on assumptions of economic nature, e.g. rationality of actors. But as far as I can tell, it is actually viable. Consequences will never be the same.)
7  Bitcoin / Project Development / WebcoinX: colored coin web client demo on: July 31, 2013, 08:42:06 AM
THIS DEMO IS NO LONGER AVAILABLE

The current version is just a demo: it works on Bitcoin testnet and is not secure. But it isn't just a mock-up: it actually uses blockchain, traverses transaction graph to identify colors, etc.

Basically, to make a client which can be used on mainnet out of it we need to add some crypto checks and optimize the way it works with blockchain.

So, here's a link to client: http://bitcoinx.github.io/webcoinx/

Notes on usage:

1. Colored coins are made of Bitcoins, so you need to have some in your wallet before you can issue your own coins.
2. The way it works now, you have to select currency you want in the drop-down menu BEFORE you choose what to do with it (send, trade, receive).
3. If color was created after you loaded the client, you need to reload page (or use 'reload / sync' button) to see it in drop-down.

Also note that p2ptrade section is ugly and not well tested... But, probably, it works.

I'll pay 0.05 BTC per usability report, for the first 10 reports. To claim bounty you need to reply to this with following:

1. How would you rate ease of use, 1 to 10 (10 is best)?
2. Which features did you try? Did they work?
3. Did you encounter any problems?
4. What things would you change and how?
5. Any comments you want to include which do not fit in categories above.
6. Your Bitcoin address.

I plan to redesign user interface, making separate tabs: receive/send/issue/trade. I want to measure the baseline now to see whether there are improvements.

Testing instructions: You need more than one wallet to test sending and trading.

You can create mulitple wallets if you open it in different browsers (e.g. in Chrome and in Firefox), or one in normal window and another in incognito window.

(Wallet is stored in local storage so it is persisted as long as you do not clear storage. Incognito mode destroys local storage after you close window, so wallet won't be persisted.)
8  Bitcoin / Bitcoin Discussion / Bitcoin word-of-mouth spread / Bitcoin Business Club on: July 10, 2013, 05:14:58 PM
http://www.reddit.com/r/Bitcoin/comments/1i04rd/bitcoin_wordofmouth_spread_bitcoin_business_club/

Quote
I bet a lot of people learn about Bitcoin through word-of-mouth, but how many of them become Bitcoin users?

If it was really effective, I guess some small, but non-negligible fraction of population (say, 1%) would become Bitcoin users, but that doesn't seem to be the case, so it looks like people are just not motivated.

 Let's consider the contexts in which Bitcoin can be mentioned, and how people can get motivated to become Bitcoin users:

 * Bitcoin as investment: Some people might like it, other will see it being too risky/shoddy.
 * Mining: ...
 * Politics: Some people might like payment system which is independent of banks and government interventions, but others do not see problems in existing financial system, so they won't be motivated.
 * Bought some item which is sold only for Bitcoins: That's pretty rare, since merchants who accept Bitcoin often accept other payment systems too.
 * Earned some money with help of Bitcoin: That's actually interesting, but I'm afraid few people actually earned something with help of Bitcoin (aside from investing, mining and sites which give sub-penny amounts)

I believe we can try to improve the last one: many people would not mind getting extra income (especially unemployed/underemployed ones), so they will be motivated to learn more about Bitcoin if they hear that it gives some earning opportunities or relevant for entrepreneurship.

So now we need to find how exactly Bitcoin can help to earn money. Some ideas:

1. New businesses which are Bitcoin-related. Examples: BitVPS (buy VPS for Bitcoins), Satoshi Dice (gambling), mining-related services and goods, exchanges, etc. This is very cool, but probably not well aligned with word-of-mouth in general population.
2. People might get financial capital for their ventures on Bitcoin capital markets. Bitcoin gives people an opportunity to invest globally and anonymously, and such investments are usually not a subject to regulations, so they might give people more opportunities to raise capital without much of hassle associated with traditional capital markets. See examples below.
3. People can work from home and earn Bitcoins, the advantage is is easy to pay and it works globally and anonymously.
4. At some point we might see network effect where existing Bitcoin companies create demand for Bitcoin services. (E.g. a Bitcoin-related startup might prefer using BitVPS to avoid unnecessary conversions.)

Here are some examples of 'real world' businesses (not related to mining) which were funded via cryptocurrency capital markets (most of them via Litecoin Global, somehow):

1. [Tabita](https://www.litecoinglobal.com/security/TABITA): A small bakery in Mexico, uses money it got from capital market to buy equipment for more efficient baking.
2. [OPCU](https://www.litecoinglobal.com/security/OPCU): Hosting provider in Mexico, uses money to expand business.
3. [ART](https://www.litecoinglobal.com/security/ART): A small-scale ceramic art studio, used money to buy equipment.
4. [BitPride](https://bitfunder.com/asset/BitPride): They sell Bitcoin merchandise

(Also Esecurity/KoDDoS, Kenilworth, S.WIHEE, BitVPS.)

So, well, it works. I know at least first three companies I mentioned are more-or-less legit and pay dividends.

But currently Bitcoin capital market platforms are sort of PITA to use, and few people know about such opportunities, so this is an area which can be improved.

Anyway, here's what I'm getting to: just saying that Bitcoin is cool does not motivate people to start using Bitcoin. We need to motivate people by showing how they might be useful.

I think it would help if we start creating local groups interested specifically in Bitcoin business, where business might mean anything, like:

 * selling something (e.g. used computers) for Bitcoin
 * providing services for Bitcoin, like mowing lawns, teaching, fixing computers etc.
 * funding new ventures via Bitcoin capital markets
 * making new Bitcoin-related startups
 * etc.

I am a software developer, and I'm thinking of making software which would help to organize such groups. It would work like:

 * social network, i.e. users register, discover who of their friends are in club (i.e. are interesting in Bitcoin business) etc.
 * marketplace/classified ads.
 * reputation system
 * escrow
 * funding campaigns/capital market exchange

Software alone won't work, though, it is just a tool for people to organize communities. We also need to develop marketing strategies and materials which would engage people in optimal way, and to minimize possible problems, of course.

E.g. it's important to highlight that users help to bootstrap the local Bitcoin economy when they list their stuff in marketplace/ads section. If somebody has an old laptop, he might sell it for $50 via craigslist ad, but it might be not worth the effort. But if he sells that laptop for Bitcoins, he not only gets $50 worth of Bitcoins, he also feels like he have helped the local Bitcoin community, so this gives warm and fuzzy feeling too Smiley.

So it's important to list things even if they aren't likely to be bought, just so that people who join the club would see how many things they can buy with Bitcoin, I believe this will work against the argument is that Bitcoin is fake/plat/virtual money: if you can buy so many real, physical things locally, then it is definitely real money Smiley
9  Bitcoin / Project Development / next-generation colored coin client on: June 24, 2013, 06:28:08 PM
    We are starting development of next-generation colored coin client/wallet: stand-alone one, but without problems ArmoryX had (resource-hungry, crashes, etc). Other features:

  • API for integration with other software
  • available as a library for integration with other software
  • support for multiple coloring kernels, which can reduce impact of anti-dust patch, or provide other benefits compared to order-based coloring
  • support for advanced color states: this will enabled advanced features you could get from an alt-coin, but without a need of maintain an alt-coin. Example of such advanced features: coins with mandatory taxation (yikes), decentralized prediction markets, etc.
  • fast bootstrapping: it won't need to scan whole blockchain to initialize a color, it can fetch transaction history and verify it

We are currently in research phase.

Most likely it will be a stand-alone wallet which works together bitcoind/Bitcoin-Qt, implemented in Python.

Wiki: https://github.com/bitcoinx/colored-coin-tools/wiki/The-next-gen-colored-coin-client

In the research phase, to encourage participation we'll be paying bounties for informative posts and relevant code samples.

0.10 BTC per post. To claim a bounty either:

1. edit a wiki page adding some details (or create a new page), then
reply to this message with URL to wiki page and your Bitcoin address
2. or just post info you want to post here

Here are examples of what I consider informative posts:

https://github.com/bitcoinx/colored-coin-tools/wiki/NGCCC%20colored%20coin%20store
https://github.com/bitcoinx/colored-coin-tools/wiki/NGCCC%20transactions

The basic idea is that they need to have some non-trivial, useful
details. For example, I would like someone to check whether it is
feasible to borrow transaction-parsing code from Electrum, and I want
a link to such code.


If you want to start coding something right away, you can write a code
sample in addition to informative post. In this case you get 0.1-0.5
BTC bounty depending on size of code, whether it works, whether it is
useful etc.

Total value of bounties will not exceed 5 BTC, if we reach that sum
we'll need to reconsider the process.

Also we are looking for developers interested in implementing this, for larger bounties, of course. (Contact: alex.mizrahi@gmail.com)

In parallel, we are developing a web client, WebcoinX, see here: https://github.com/bitcoinx/webcoinx

A live demo running on testnet: http://bitcoinx.github.io/webcoinx/ (warning: user-interface is somewhat broken atm.)[/list]
10  Local / Обменники / [потенциально] продаю биткоины за безнал г on: June 15, 2013, 11:26:35 PM
Пока что просто изучаю интерес.
11  Bitcoin / Development & Technical Discussion / unique identifier of a transaction on: May 04, 2013, 03:53:59 PM
What can be an unique identifier of a transaction in view of BIP 30?

Apparently transactions with same hash can appear in different blocks.

What's about txhash+block_number?

Is it possible to have transactions with same hash in one block? BIP 30 doesn't say anything about it, but perhaps it is mentioned in some other rule.

If it is possible, then I guess the only identifier is a position in the blockchain, i.e. block hash + index of transaction within block.
12  Local / Работа / BOUNTIES for colored coin projects (275+ BTC total) on: March 21, 2013, 12:15:13 AM
https://bitcointalk.org/index.php?topic=155597.msg1650031#msg1650031

В общем, нужны программисты на C++, Python, JS, (возможно) Java; желательно хорошо разбирающиеся в биткоинах, криптографии, безопасности, алгоритмах. Ну и вообще умные люди Smiley

Оплата в форме bounties, то есть сделал задачу -- получи деньги.

К примеру за сравнительно небольшие задачи, так, на день работы мы платили по 5 BTC. Но курс подрос, так что наверное уменьшим =)
Есть возможность брать задачи побольше, но тогда нужно предоставить информацию о сроках выполнения, прогресс и т.д.

В общем, если интересует, пишите PM (да в принципе можно и в коменты, мне без разницы =) ):

 * что умеете
 * что уже делаели
 * чем хотите заниматься
 * сколько на это требуется денег
 * сколько времени можете отвести на работу в неделю (минимум)

Тогда мы сможем более конкретно выделить задачи и т.д.

13  Bitcoin / Project Development / BOUNTIES for colored coin projects (275+ BTC total) on: March 20, 2013, 11:45:09 PM
1. ArmoryX overhaul (50 BTC): ArmoryX is a proof-of-concept colored coin wallet. Basically, it is the only one in existence (if you do not count bitpaint) and the only one which implements p2ptrade. However, the problem is that it is based on an outdated version of Armory. And I have very little interest to maintain it.

So, what's required: merge ArmoryX with changes in later versions of Armory. I'm not sure what is possible/feasible, but at very least we need support for bitcoind 0.8 blockchain format.

Required skills: C++, Python.

Bounty: 50 BTC is a total budget for overhaul, maintenance and further development. We don't want to spend that much on overhaul alone. But, say, 25 BTC can go into it... If you're interested, please contact me so we can discuss it further.

2. ArmoryX TerraCoin port (?? BTC) Once we do an overhaul, we can enable TerraCoin support in ArmoryX. It is easy to do, and it would be really great because Armory would require much less resources to run on TerraCoin network, so it would be feasible to run it on cheapo laptops and whatnot.

(Currently I cannot run ArmoryX for Bitcoin mainnet on my laptop, I kid you not.)

3. Standard development and research (25+ BTC). So far only a part of colored coin tech is properly documented. Other parts either exist in code without any documentation in English, or exist only in our imagination, with discussions scattered over dozens of forum posts. So we need to develop standards, and to solve all pending problems.

4. Bounties for thin clients (200+ BTC). See here: https://bitcointalk.org/index.php?topic=141858.0
100 BTC is allocated for development of JS-based web client, 12 BTC is already paid in bounties.
However, we want mobile and/or thin desktop clients too. Particularly, we consider Electrum, MultiBit and a wallet for Android. (However, only one or two will be implemented.)

14  Alternate cryptocurrencies / Altcoin Discussion / colored coins on Terracoin on: March 17, 2013, 09:44:48 AM
Motivation. Please understand me correctly, colored coins work fine on Bitcoin, and that's our target. However, the only functional implementation we have now is ArmoryX, it has performance issues. Basically, it requires running bitcoind or Bitcoin-Qt (which means multi-hour blockchain download process and ~10 GB on disk), also it eats about 1.5 GB of RAM... I can't run it on my own laptop!

We'll have a lightweight implementation in about a month, but there is some desire to play with it earlier.

So what I want is to port ArmoryX to Terracoin. It would allow people to play with colored coins without PITA. (testnet doesn't count because testcoins are worthless).

Why Terracoin.

1. Its blockchain size is currently small.
2. Current version is based on Bitcoin 0.8, which means that sync time is fast.
3. Also confirmations are fast, which is nice.

Benefits for Terracoin. Basically you get something like a stock exchange... With free listing. I believe the reason why 'real sector of economy' companies have registered on LTC-GLOBAL is that fee was relatively small.

Possible negative effects. Some people say it might generate lots of transactions and pollute blockchain... But, in any case, there will be approximately zero activity in near future (lots of activity is a nice problem to have), also colored coin transactions are not different from normal trade transactions w.r.t. blockchain usage.

What's required. ArmoryX needs to be updated to work with 0.8 blockchain format. Also it needs to be patched to work with Terracoin. I think it just needs to be pointed to a different genesis block and default ports need to be changed, that's all.

I can do this myself, but I'm too lazy for that. I have some budget to update ArmoryX to a new version (backport changes from newer Armory version), so I can pay somebody to do this.

I estimate that it (updating to 0.8 format) shouldn't take more than a day of coding for an experienced C++ and Python programmer.

Whoever wants to grab this task/bounty please post here or PM me and mention how much money you want for this (separate for 0.8 update and for terracoin support, I need it for accounting reasons).
15  Bitcoin / Development & Technical Discussion / UTXO set size does not increase storage costs, you just suck at computer science on: March 16, 2013, 01:29:12 PM
Haha, sorry, I didn't mean to offend anyone, I'm just somewhat disappointed that people consider only the simplest solutions and do not want to see a bigger picture.

Let's start with an example... Suppose I am a miner who is in kinda exotic situation: I have unlimited computational and networking resources, and enough temporary storage (RAM) to verify blockchain, but local permanent storage is incredibly scarce. But if I want to store something, I can store it externally over network. Say, in a DHT like Freenet, Tahoe-LAFS or something like that.

So I want to download and scan blockchain up to block N just once, then I need to be able to verify validity of any transaction. Is it possible?

Of course. As I go through blockchain I will build an index and will store it in an external DHT. I only need to keep hash of the latest block locally, 32 bytes that is.

Having this hash, I can retrieve things from DHT until I find transaction outputs I need to verify in index I've built. (I do not care whether DHT is secure: if something was tampered with, hashes won't match.)

This is kinda obvious: if secure distributed file systems can exist, then I can simply store data in such file systems instead of a local file system.

But... how much would it cost me to verify a transaction? Well, tree-like datastructures generally have look-up costs on scale of log2 N where N is a number of elements. In the worst case each individual satoshi is an individual UTXO, so we have 21000000*100000000 = 2100000000000000 ~= 2^51 UTXOs. Thus I need something like 51 lookups to find an UTXO in a binary search tree. Or just 9 lookups if I have a 64-ary tree.

But people can argue that 9 lookups per UTXO is a lot... Network latency yada yada. How about zero?

That's possible. Suppose that person which sends transaction knows how I store index in DHT, it isn't secret. To make sure that I'll include his transaction into block, he will fetch all the data I need from DHT himself, and will send me a message with his transaction and all information I need.

I don't need to look up anything in a DHT myself, I only need data which was stored in the message. And this is secure: if data was tampered with, hash won't match.
 
So, basically, number of transactions I can include into a block is limited by my computational and network abilities, but storage capability/cost is irrelephant.

But what's about blocks mined by others? Oh...

Well, it is possible to do 9 DHT lookups per UTXO mentioned in block. Number of outputs is limited, I can do lookups in parallel, so it isn't such a big problem. But still...

You know, miners are friendly guys, how about they all use same DHT, and then include confirmation information together with the block they have just mined?

So I receive a new block and supplementary information which is all what is needed to confirm that block is valid.

In the end, it is possible to do all mining having only 32 bytes of permanent secure storage. It requires somewhat more bandwidth, though. But extra bandwidth costs are approximately proportional to block size. So maybe not a big problem...

E.g. I either need 128 GB of RAM, array of hard drives and 100 MBit/sec pipe. Or I need 1 GB of RAM, no hard drives at all and 1 GBit/sec pipe. Which is cheaper?

So what I'm talking about storage/bandwidth trade-off. Using less storage might increase latency, but possible in such a way that it won't be critical.

Next time I will teach you how to implement a blockchain-based cryptocurrency in such a way that new miners can start mining right away without downloading whole blockchain, stay tuned...
16  Bitcoin / Project Development / [ANN] BitContracts.org on: March 12, 2013, 09:20:51 AM
BitContracts.org  is a vaporware organization which develops technologies based to advanced features of Bitcoin. Particularly, BitContracts.org is going to utilize multi-signature transactions and basic forms of smart contracts to develop solutions for

  • dispute mediation
  • instant secure payments
  • secure handling of users' funds

and other facilities which fall in a broad category of “escrow”.

Organization will develop open source software and standards, offer consultancy and host services.

In future BitContracts.org might expand its developments into adjacent areas.

Q&A:

How exactly are you going to do that? Plug-ins/add-ons for Bitcoin software (or modified versions), a web service used to communicate... Bitcoin protocol already supports everything, we just need some GUI and a little bit of code for communications and logic.

Is it related to colored coins and smart property? No. There might be some interactions with colored coin technology (e.g. for things which involve both escrow and colored coins), but colored coin software is being developed by BitcoinX.org community, which is completely independent. Some people can work on both projects, of course, but it doesn't mean that projects are same.

What is the source of funding? Currently it is uncertain. Crowdfunding is being considered. Consultancy and service fees might bring in some revenue.

What's about other initiatives and standards for signed invoices, payment protocols etc.? We'll take a pragmatic approach: we will not wait for a standard to be developed, we will aim to offer a complete solution as soon as possible. However, if standard already exist we will use it or interoperate with it. There is always a risk that BitContracts.org's solutions will be considered a ghetto of sorts, in that case we'll try to offer migration.

At this point I just want to see if there is interest. If you think your business/project might use something which is offered by BitContracts.org please comment here or send me PM.

Users are also welcome to comment on this. Do you want deposit solutions which will be actually secure? I.e. so that business won't be able to simply ran away with your money, even if it is hacked? If answer is yes, please post here, ask businesses you interact with to consider this etc.

EDIT: This post explains why I want to do this and possible use cases: http://www.reddit.com/r/Bitcoin/comments/1a6ewu/ive_been_waiting_for_a_usable_blockchain_escrow/c8ui49g

This post explains how I might do it: https://bitcointalk.org/index.php?topic=141536.msg1507716#msg1507716 (whole thread might be relevant, by the way).

Possible overlap between colored coins and escrow: http://wiki.bitcoinx.org/index.php/PredictionMarketImplementationStrategy
17  Bitcoin / Development & Technical Discussion / coin mixing using Chaum's blind signatures on: March 08, 2013, 07:05:20 PM
Fairly easy to implement, if I'm not missing something:

Suppose there is a mixer service.

First of all, user needs to prepare outpoints for mixing: they should have exactly the bitcoin amount service requests, say, 1 BTC.

User submits a pair: outpoint he wants to mix and a blinded hash of receiving address. He also needs to pay a small fee. Server responds with a blind signature of an address. (I'm sorry if I'm using terminology incorrectly: I've just read blind signature algo description.)

Some time later user submits his address together with unblinded signature. Service can confirm validity of signature, thus it knows that this address is linked to some outpoint, but it cannot know with which one.

After enough users have submitted their outpoints for mixing, service will create a mixing transaction: it will include all outpoints and all addresses. Since addresses appear in a different order, it isn't possible to tell which outpoints are linked to which addresses.

Users then sign their outpoints after confirming that their addresses are included in transaction's outputs.

There are two possible problems:

1. User refuses to sign his input. It's easy to deal with it: asshole's outpoint is banned, everybody else re-submits their blinded and non-blinded addresses. Thus this DoS attack costs asshole money. Also service might require minimal age of 1 day for outpoints. It would mean that to sabotage signing 100 times per day asshole needs at least 100 BTC.

2. NSA submits their own outpoints for mixing, subtracts them from transaction and thus reduces mixing entropy. I don't see it is a big problem because mixing entropy is always log2 N where N is number of honest participants who will never reveal their (outpoint, address) pairs. So NSA can only instill a sense of false security if number of honest participants is low. And it will cost NSA some money...

In an ideal case commonly used Bitcoin clients should do mixing from time to time, even if users doesn't really need it. This will make sure that number of honest participants is quite large. Then Bitcoin will be statistically anonymous.

EDIT: Oh, the third possible problem: mixer service is run by NSA and they will make sure that your coins are not mixed with coins of honest people. This problem needs to be addressed, but I think solution is fairly simple: it is possible to check quality of mixing externally. Say, if have some sort of web of trust, WoT members can sign messages like "my coins were mixed in transaction xxx". If you see that enough WoT members sign certain transaction you can make sure that some mixing entropy exists. (As long as you trust WoT, that is.)
18  Alternate cryptocurrencies / Altcoin Discussion / solution for blockchain scalability problem on: February 22, 2013, 10:22:47 PM
(I've previously posted it in 'Development & Technical Discussion', but Bitcoin people said that blockchain bloat is not a problem and they don't care. So I'm posting it here, perhaps alt-chain developers will find it interesting...)

tl;dr for pros: UTXO set is stored in "cloud database", special measures are taken so that "cloud database" can be trusted. No need to store UTXO set locally, no need to download whole blockchain to build local UTXO set.

To prove that coin is valid we need two things: 1) chain of signatures; 2) proof that it wasn't double-spent anywhere in blockchain.

With blockchain design used in Bitcoin one can confirm lack of double-spends only once he have downloaded whole blockchain (or a potentially large part of it). This doesn't scale so well and might be a problem in future when transaction volume grows. It creates barrier for entry for miners etc.

It doesn't need to be so expensive.

To confirm that TXO was not spent we need a list of all spent TXOs. However, we can organize this spend list into multiple independent bins. Basically, it's same strategy as used with hash tables.

E.g. suppose transaction spends outpoint 123456:1. We need to confirm that this outpoint isn't spent yet. If we have 10000 bins, we'll look in bin number 1234. So effectively we need to scan 1/10000 of transaction history instead of a whole transaction history.

This approach will allow 'thin miners' to exist: thin miners need to download only a tiny fraction of blockchain to be able to verify transactions.

Thin miners have to trust existing information contained in blockchain to some extent: they will be able to verify arbitrary parts of blockchain, but it's not possible to verify all blockchain without actually downloading it. But I believe that it is reasonable assumption that information deep in blockchain can be trusted: it would be incredibly expensive to insert fake info into it given that it CAN and WILL be detected sooner or later.

If anybody cares I can elaborate on protocols for thin miners and whatnot.

Why is this interesting/important?

I believe blockchain size is why we can't afford microtransactions, and if blockchain size problem gets solved we'll be able to afford them... and other things. Arbitrary data in blockchain, maybe.

19  Bitcoin / Project Development / [BOUNTY] 200 BTC for lightweight colored coin client(s) on: February 07, 2013, 09:47:55 PM
It would be cool if more people tried using colored coins: it would help us to gather feedback and develop protocol further. But right now the only client is ArmoryX, and trying it out is pretty involved: it requires fully synced Satoshi Bitcoin client, and besides that ArmoryX eats about 1 GB of RAM. Few people would do that just to play with it...

So we want to see a web-based Bitcoin client which would support colored coins. Support for colored coins means that

  • it should show balance for each installed color separately
  • it should allow sending coins of a certain color
  • it should implement p2ptrade protocol

Currently we 200 BTC for bounties for this project. We'll probably break the whole thing into smaller tasks and allocate bounty for each task.

As for architecture, we haven't settled on this now, but a perspective direction is to have server which can provide data about transactions in same way blockchain.info does, and client will identify colored transaction outputs using backward scan. Currently people are investigating whether it is feasible in terms of performance...

bitcoinjs seems to be a good basis both for client and for server.

If development of web client costs less than 200 BTC we will consider bounties for development of other color-aware thin clients like Electrum and MultiBit.

This is a preliminary announcement as there is no concrete plan yet, but people who are interested in doing this are welcome to apply. (Post here, send PM or post to bitcoinX mailing list: http://groups.google.com/group/bitcoinX/ )

Oh, by the way, of course it would be great if more people will chip in with bounty pledges. All results will be open source etc. It would be shame if we only do web but no Electrum.
20  Bitcoin / Development & Technical Discussion / Multi-signature user interface on: February 06, 2013, 10:45:01 AM
Is there already a client with an usable interface for multi-signature transactions?

I've found this: https://blockchain.info/wallet/escrow But I found no way to get there from My Wallet so I assume this functionality is currently disabled.

If there is none I'll try to implement it myself... I'm waiting this feature for 1.5 years or so, I wanted to implement a secure betting/derivative trading service...
Pages: [1] 2 3 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!