Pages:
Author

Topic: Idea about a new blockchain - page 3. (Read 560 times)

legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
May 22, 2018, 12:17:48 AM
#15
I don't think everybody needs to run their own copy of the ledger.
Here I agree, but a certain decentralization is healthy. At least businesses should be able to run full nodes with standard hardware.

The point is very simple. I don't want final users (think of a distributed Twitter, or a Facebook) to have to buy my native crypto currency in order to participate or interact with smart contracts.
OK, I got it - for usability. Then PoW as anti-spam measure is reasonable. But this is also the reason why I mentioned the Ardor child-chain model. In this model you wouldn't pay fees in the native currency but in the "child-chain" currency (think of it as if it was an ERC20 token).

I'm not completely against your idea of pruning, I just don't see how to do that.
Simply check the NXT code (some hints are here). In NXT, however, the transaction header is preserved. Cryptonite (XCN) has a pruning feature, but for all transactions, and only block headers are preserved. Maybe you get some inspiration from one of both. Ardor has a more advanced pruning feature but the version allowing pruning has still not been released.

Quote
I will take a closer look on how Steem is solving that. I don't see how to limit the participation of nodes (based on their IP I guess) without a certain degree of centralisation.
No, as far as I know the restriction is based on the account's address -  a transaction simply will be rejected as invalid by the protocol if you exceed your "quota". So this part doesn't need centralization, nor does it need masternodes. To avoid that spammers simply create hundreds or thousands of addresses, there is a fee for address creation if you use the client/wallet directly (if you register through Steemit the fee is paid by the site owners/developers, that's why it looks so centralized, but "under the hood" it's relatively decentralized, apart from the DPoS consensus). It's a pretty complex system but it seems to work pretty fine.
newbie
Activity: 25
Merit: 1
May 21, 2018, 11:43:14 PM
#14

If only mining pools (individual miners do not really need that) would run full nodes, then we'd have a centralized system like EOS is.

I don't think everybody needs to run their own copy of the ledger.

https://www.youtube.com/watch?v=vM_Ski2eK6A

Where do I miss the point, can you elaborate? The reason why a fee is charged is anti-spam protection, as you already admit proposing to "charge" a PoW for every transaction, like Iota and RaiBlocks/Nano do. If you don't charge a fee in GAS or whatever then you have two choices: 1) try that interactions with smart contracts consume less resources, e.g. by ledger pruning, or 2) limit the transaction throughput by other means (see below).

The point is very simple. I don't want final users (think of a distributed Twitter, or a Facebook) to have to buy my native crypto currency in order to participate or interact with smart contracts.

Do you see yourself buying ETH (Which is fairly easier than buying any tinier coin) with credit card? Getting out of exchanges just to use steem (or something similar?). That's not going to take off

(BTW: If you accept an "oligarchic" network where only miners run full nodes, then you could even fork something like Bitcoin Cash or Unlimited, add smart contracts - e.g. with Counterparty - and you're fine. Blocks would never get full and so zero-fee transactions would be realistic.).

I'm not an oligarchic, but I believe the ledger should be an append only database no matter what. I think the clients should compress blocks if they wanted to.

I'm not completely against your idea of pruning, I just don't see how to do that.


If you don't like ledger pruning: Have you looked at Steem? They have a different anti-spam technique, they don't charge a fee but allow only a fixed number of interactions (transactions) per node. The exact number depends on your stake in the network, so you can "buy" more throughput. So in the end for high-frequency users it's a fee, but occasional users that aren't a real "burden" for the blockchain can publish without any cost. (Steem, however, has a registration barrier/cost and is pretty centralized, but the principle would work in other blockchains, too). You even could combine it with your "PoW-fee" if you want.

I will take a closer look on how Steem is solving that. I don't see how to limit the participation of nodes (based on their IP I guess) without a certain degree of centralisation. Which again, many projects have masternodes. If masternodes is the way to go, I think each masternode can throttle each node's activity. I think PoW is simpler though. I'm just thinking out loud and I love your feedback.

(I'm sorry if my last post sounded like if I wasn't liking your idea - I like it but it needs more elaboration. You need a solution for the spam problem, and as I wrote, PoW is just another kind of fee.)

On the contrary mate, I love this thread already.
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
May 21, 2018, 06:34:15 PM
#13
  • Do you run a full node if you're not a miner?
  • Miners can afford to buy more disks space
If only mining pools (individual miners do not really need that) would run full nodes, then we'd have a centralized system like EOS is.

A more "sustainable" solution could be ledger pruning. For interactions which are not important for the state of the blockchain, the message that interacted with the contract would be pruned after it has achieved its purpose.
That's what IOTA is doing every once in a while. And they have to stop the entire network for that. That is just silly.
At least in NXT they don't need to stop the network for that. The pruning mechanism is automatic and happens constantly. It could be adapted by every other blockchain.

If you don't like ledger pruning: Have you looked at Steem? They have a different anti-spam technique, they don't charge a fee but allow only a fixed number of interactions (transactions) per node. The exact number depends on your stake in the network, so you can "buy" more throughput. So in the end for high-frequency users it's a fee, but occasional users that aren't a real "burden" for the blockchain can publish without any cost. (Steem, however, has a registration barrier/cost and is pretty centralized, but the principle would work in other blockchains, too). You even could combine it with your "PoW-fee" if you want.

(I'm sorry if my last post sounded like if I wasn't liking your idea - I like it but it needs more elaboration. You need a solution for the spam problem, and as I wrote, PoW is just another kind of fee.)
hero member
Activity: 994
Merit: 513
May 21, 2018, 06:04:25 PM
#12
I like where this is going. Decentralized Twitter? Sign me up Grin Depending on the direction, I might have some ideas regarding sybil attacks, spam prevention and reputation in my drawers Wink

While I agree that you'll have to find a way to make users "pay without realizing that they are paying", which is pretty much what PoW per transaction looks like, you'll still have a problem with users who would be able to completely flood the network due to their vast computing power, while it is virtually impossible to get the needed PoW done on a Samsung Galaxy S III. Any thoughts on how to tackle this problem?
newbie
Activity: 25
Merit: 1
May 21, 2018, 05:46:29 PM
#11
If people had to pay for every interaction with the Internet it would have never become this big.

You nailed. That's exactly how I think of it.
newbie
Activity: 25
Merit: 1
May 21, 2018, 05:40:25 PM
#10
I think fees are fair is you want to transfer value, for instance sending ether from one address to another. I don't think it is fair to interact with smart contracts.

  • Do you run a full node if you're not a miner?
  • Miners can afford to buy more disks space

The problem is that one of the main bottlenecks of blockchains is space, and every "non-value" transaction use space, too, so charging a fee for it is fair.

You're missing the point though. I'm a developer, I dream of building something like twitter but descentralized. I can't unless my users are willing to pay in Ethereum for posting. That makes no sense. I should pay as a developer for posting an smart contract, but my users shouldn't pay gas.

PoW is just another kind of fee (if it should be effective in spam-reduction, then the electricity costs needed to create the PoW should be as high as a standard transaction fee. Otherwise, you could simply charge a smaller fee and have the same anti-spam effect as with a "easy PoW".).

Read my reply from above.

A more "sustainable" solution could be ledger pruning. For interactions which are not important for the state of the blockchain, the message that interacted with the contract would be pruned after it has achieved its purpose. Such a system (albeit without smart contracts) is used, for example, in NXT/Ardor. Burst uses NXT's pruned transactions and supports turing-complete smart contracts, but it charges a mandatory fee, so it's also not ideal.

That's what IOTA is doing every once in a while. And they have to stop the entire network for that. That is just silly.
full member
Activity: 378
Merit: 101
May 21, 2018, 05:37:26 PM
#9
Pretty sure Raiblocks has implemented ledger pruning. Never understood why more crypto don't implement it. I like the PoW concept with zero fees, sure some people would still fill ledger with crap but unless they find a way to monetize it that traffic would be limited.

If people had to pay for every interaction with the Internet it would have never become this big.
newbie
Activity: 25
Merit: 1
May 21, 2018, 05:33:07 PM
#8
I can't imagine a way to prevent spam without some type of fee. You could do something like a PoW to let someone interact with a smart contract, which might be neat, but that is just a hidden fee.

Another way might be permissioned smart contracts, where you'd need "tickets" to interact with them, which could be granted to certain addresses… Or bought, so back to a fee then.

I see you point, I just don't see a good solution. I'm interested, though.


You nailed it. My idea is rather simple. PoW on your transaction.

Hmm, this might be an interesting idea indeed, but how do you determine the amount of PoW needed? You'll have to set it rather high to prevent spam – interacting with a smart contract from a smartphone will likely not be possible, unless you rent computing power.

I don't want to com off too much as a Negative Nelly here, because I like new ideas and new approaches, but you have to ask the hard questions before they are your downfall.

I posted here exactly for that. For the hard questions. I won't do any single of code unless it makes complete sense.

I think the 'gas' approach that Ethereum has is the correct way of doing. I just don't think gas should come from ether, but rather by showing some PoW that you have done. I haven't thought on too much detail, but I my idea is to perform more than PoW task if needed.

To avoid cheating the PoW should has:

  • A reference (hash) to the last known header (there should be a threshold for 10 or 20 last header). This to prevent doing PoW in parallel to spam the network. The PoW that people do have an expiration date.
  • The hash of your transaction (Before the signature, the whole block should be signed). If your transaction needs a lot of gas, you can simple perform two or more PoW hashes..
.

From the top of my head I think the format could be something like

:::

The goal is to find a hash with 4 or 5 zeros (sha256). And each PoW block should have a fixed gas value.

The PoW is attached to your transaction, and it can have 0 or more. In case you're transferring the native currency, it should have none because you should pay a fee (like in Ethereum).

It should also be optional, if you can't or don't want to do any PoW, you can always pay a 'fee'.

To incentivize miners, *each* PoW block should generate them a 'fee'. So they would get `block reward + fee + generated fees for each PoW block`.

legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
May 21, 2018, 05:30:56 PM
#7
I think fees are fair is you want to transfer value, for instance sending ether from one address to another. I don't think it is fair to interact with smart contracts.
The problem is that one of the main bottlenecks of blockchains is space, and every "non-value" transaction use space, too, so charging a fee for it is fair.

PoW is just another kind of fee (if it should be effective in spam-reduction, then the electricity costs needed to create the PoW should be as high as a standard transaction fee. Otherwise, you could simply charge a smaller fee and have the same anti-spam effect as with a "easy PoW".).

A more "sustainable" solution could be ledger pruning. For interactions which are not important for the state of the blockchain, the message that interacted with the contract would be pruned after it has achieved its purpose. Such a system (albeit without smart contracts) is used, for example, in NXT/Ardor. Burst uses NXT's pruned transactions and supports turing-complete smart contracts, but it charges a mandatory fee, so it's also not ideal.

The Ardor child-chain feature could also be a solution if adapted to a chain with support for turing-compĺete smart-contracts, because it allows different asset types in separate "child-chains" which don't bloat the main chain and can be pruned, and in these "child-chains" transactions are not charged a main-chain fee. So there could be a specific "child-chain" for smart contract interaction.

There's currently  - to my knowledge - no blockchain supporting all needed features (solution: fork Burst, adapt Ardor's child-chains and thrash the mandatory fee?).

The "pruning" solution is not a complete solution - analyzing it deeply, the validation work (the other blockchain scalability bottleneck besides space) would not be lowered by it. However, the space saved by pruning could be enough to allow very-low-fee or even fee-less transactions.
hero member
Activity: 994
Merit: 513
May 21, 2018, 05:12:11 PM
#6
I can't imagine a way to prevent spam without some type of fee. You could do something like a PoW to let someone interact with a smart contract, which might be neat, but that is just a hidden fee.

Another way might be permissioned smart contracts, where you'd need "tickets" to interact with them, which could be granted to certain addresses… Or bought, so back to a fee then.

I see you point, I just don't see a good solution. I'm interested, though.


You nailed it. My idea is rather simple. PoW on your transaction.

Hmm, this might be an interesting idea indeed, but how do you determine the amount of PoW needed? You'll have to set it rather high to prevent spam – interacting with a smart contract from a smartphone will likely not be possible, unless you rent computing power.

I don't want to come off too much as a Negative Nelly here, because I like new ideas and new approaches, but you have to ask the hard questions before they are your downfall.
newbie
Activity: 25
Merit: 1
May 21, 2018, 05:11:11 PM
#5
Have you explored the idea of an EOS platform? I think, interacting with the blockchain will be free for end users on the EOS.



EOS does not exists yet. And when it does it will be super centralized. Think of it on a VISA-like company own by ~20 something nodes. Not for me, thank you.
newbie
Activity: 25
Merit: 1
May 21, 2018, 05:02:45 PM
#4
I can't imagine a way to prevent spam without some type of fee. You could do something like a PoW to let someone interact with a smart contract, which might be neat, but that is just a hidden fee.

Another way might be permissioned smart contracts, where you'd need "tickets" to interact with them, which could be granted to certain addresses… Or bought, so back to a fee then.

I see you point, I just don't see a good solution. I'm interested, though.


You nailed it. My idea is rather simple. PoW on your transaction.
sr. member
Activity: 560
Merit: 273
May 21, 2018, 05:01:23 PM
#3
Have you explored the idea of an EOS platform? I think, interacting with the blockchain will be free for end users on the EOS.

hero member
Activity: 994
Merit: 513
May 21, 2018, 04:56:32 PM
#2
I can't imagine a way to prevent spam without some type of fee. You could do something like a PoW to let someone interact with a smart contract, which might be neat, but that is just a hidden fee.

Another way might be permissioned smart contracts, where you'd need "tickets" to interact with them, which could be granted to certain addresses… Or bought, so back to a fee then.

I see you point, I just don't see a good solution. I'm interested, though.
newbie
Activity: 25
Merit: 1
May 21, 2018, 04:49:56 PM
#1
Hello,

Lately I've been thinking in creating a new blockchain but I decided to share the reason why before doing it.

I firmly belive that what's holding great platforms such as Ethereum (and their clones) from massive adoption is the gas price which is paid in Ethereum. I believe that having to pay a 'fee' to interact with the ledger is incovenient
  • Buying ETH with a credit card is complex, expensive and annoying
  • Most people don't want to register into 3 or 4 pages to buy crypto

I think fees are fair is you want to transfer value, for instance sending ether from one address to another. I don't think it is fair to interact with smart contracts.

I know that fees are also to prevent spam attacks.

I'm thinking in creating a new cryptocurrency, similar to Ethereum, but does not require 'gas' to be paid in the currency.

Things that will be free:
  • Interact with smart contracts
  • Create transactions with `0` of the native currency.

Things that will require a 'fee' to be paid:
  • Transfer the native currency
  • Create smart contacts.


Why do we need this?

I think we need an ubiquitous blockchain, free to use, in which developers can create mainstream applications. For instance, move centralized applications to a blockchain. Think of a Twitter-clone running entirely on the blockchain. It cannot happen in the Ethereum network because of the `gas`.

If this seems a good idea I will discuss in further details how I'm planning to prevent spam, reward miners (beside the block reward itself).

Cheers,
Zhang

PS: Please excuse any typos, English is not my first language.
Pages:
Jump to: