Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Petr Krenzelok
    @pekr

    We use PRTG monitoring at work, and I have found their article about the upcoming Facebook's Libra cryptocurrency. They don't seem to be all-positive about it. On an interesting side, they are introducing a statically typed language, called Move. The code looks kind of readable, but far from the DSL cleanness. Would it be worth to support Libry by C3? Or better - is that even technically possible, if it does not follow some cryptocurrency principles?

    https://blog.paessler.com/the-unbearable-lightness-of-bitcoin

    Gregg Irwin
    @greggirwin

    First, let me opine (state an opinion). The whitepaper says:

    The Libra mission is to enable a simple global currency and financial infrastructure that empowers
    billions of people

    I believe that is disingenuous. Maybe the development team believes that, but if that was FB's mission for Libra, while FB's own mission, by law, is profit, they would have gone about it a different way. They want to empower people the same way FB wants to connect people.

    That said, they want to ride the blockchain wave as well, and we've learned a lot from our time there. Like, having cryptographers design computing systems doesn't make for foolproof systems. It can make for an incredibly secure infrastructure that people can't use safely. Like having a bank vault door on your house, but you can easily lock yourself out, or accidentally leave it unlocked and not know it.

    Let's look at a couple move samples:

    public deposit(payee: address, to_deposit: Coin) {
    let to_deposit_value: u64 = Unpack<Coin>(move(to_deposit));
    let coin_ref: &mut Coin = BorrowGlobal<Coin>(move(payee));
    let coin_value_ref: &mut u64 = &mut move(coin_ref).value;
    let coin_value: u64 = *move(coin_value_ref);
    *move(coin_value_ref) = move(coin_value) + move(to_deposit_value);
    }
    
    public withdraw_from_sender(amount: u64): Coin {
    let transaction_sender_address: address = GetTxnSenderAddress();
    let coin_ref: &mut Coin = BorrowGlobal<Coin>(move(transaction_sender_address));
    let coin_value_ref: &mut u64 = &mut move(coin_ref).value;
    let coin_value: u64 = *move(coin_value_ref);
    RejectUnless(copy(coin_value) >= copy(amount));
    *move(coin_value_ref) = move(coin_value) - copy(amount);
    let new_coin: Coin = Pack<Coin>(move(amount));
    return move(new_coin);
    }

    If you want to avoid mistakes, that doesn't look like a language to help you do it.

    Gregg Irwin
    @greggirwin

    But the name "Move" sparked a thought. It's just that, with no analysis. If what you want is the ability to move assets from one place to another, shouldn't that all be built in? You may have conditions to check, but if you just had one move method, with a source, destination, and amount, it either works (atomically) or fails for some reason that it gives you (e.g. source account doesn't have enough funds).

    In a world of separate systems, sure, you need deposit and withdraw, with some conversions possibly taking place as well. But within a single system, where there are X assets of a single type, that can only move from place to place, never being created or destroyed, you only need move. Build that into the system and avoid the gobbledygook above, that will be done wrong by many people.

    Can we support Libra? Yes. It's just a VM and bytecode. Should we? Not just yet.

    FLuX LoOP
    @x8x
    State of Blockchains Q2 2019: Blockchain Founders Raise over $822 million by Q2
    https://outlierventures.io/research/state-of-blockchains-q2-2019-blockchain-founders-raise-over-822-million-by-q2/
    dsgeyser
    @dsgeyser
    If I remember correctly, it was mentioned at the last RedCon that functional languages aren't a good fit when building cryptocurrency related technologies. Care to state why this is so? Thanks.
    Vladimir Vasilyev
    @9214
    @dsgeyser care to cite the source?
    Gregg Irwin
    @greggirwin
    @dsgeyser it's a broad brush, but you have to eliminate or severely limit recursion (at least on the EVM), and the blockchain is all about state.
    Vladimir Vasilyev
    @9214
    To elaborate: account-based blockchains (e.g. Ethereum and recently Libra) are all about state. Functional programming is well suited for UTXO model (e.g. Bitcoin). @dsgeyser if you meant usage of functional paradigm for smart-contract languages, then I can elaborate a bit further and dust over my initial R&D on C3 design.
    dsgeyser
    @dsgeyser
    @greggirwin If I am not mistaken, I heard you mentioning state and recursion as being reasons for functional languages not being suitable for
    a smarr contract platform.
    Vladimir Vasilyev
    @9214
    @/all coming from the main chat room: RED Wallet 0.4.0 is out.
    dsgeyser
    @dsgeyser
    @9214 I had Cardano in mind with Haskell. Please do some dusting... I am in the dark atm.
    dsgeyser
    @dsgeyser
    @greggirwin I meant sometime in the past.
    Vladimir Vasilyev
    @9214

    "Smart-contract" itself is a very misleading term: in SCL (smart-contract language) research, it means any kind of automation of legal contracts and agreements between multiple parties, so, most papers that I've found concentrate only on this aspect.

    I had Cardano in mind with Haskell

    One of the seminal work in this area is, in fact, a Haskell parser combinator library (a DSL, basically) from Peyton-Jones, who IIRC worked on GHCi compiler and later established a fintech company that used this DSL. Most of home-brewed / academic SCL implementations are inspired by this work, like e.g. Findel or Simplicity. Findel's author also maintains a curated list of SCL resources, which you should check out.

    Yoichi Hirai (one of the Ethereum researchers) has this repo, but it seems to be abandoned. Bamboo is interesting though.
    dsgeyser
    @dsgeyser
    @9214 Thanks. It seems to me that Cardano is going nowhere slowly. I am interested in the contrast between using Haskell and Red on a platform. Red is familiar to me.
    Zelos
    @Zelos39482837_twitter
    hi I have a question
    I know the blockchain structure and I want to build an app using blockchain but I didn't understand how blockchain handle p2p connection
    I need help with p2p
    Vladimir Vasilyev
    @9214
    @Zelos39482837_twitter that's not the right place to ask these kind questions, consider to join Ethereum community channels. Resources linked in this room's description are a good starting point though.
    redsea
    @15926222352
    Is RED TOKEN could be used to develop the following program agent development business community such as a page can be set in the community or the website I want to develop a program for community members interaction can project to the community programmers pay the corresponding remuneration using RED TOKEN to pay for this can increase the activity and practicability of the community at the same time can also be used to release the RED TOKEN of liquidity
    I now want to develop a DAPP in EOS block chain don't know if the community have the programmer would like to help me develop the DAPP I would like to pay with RED TOKEN
    redsea
    @15926222352
    Red team you should let the Red Community Token can play out the value of ICO for one year I didn't find Red scrip have any real value can not correctly reflect value
    redsea
    @15926222352
    why can't I get RED TOKEN for people with development needs to use and pay the RED scrip to language developed by programmers in RED so bad
    redsea
    @15926222352
    Red project team should organize more activities, such as using red language as the basis of application development or DAPP game development contract
    redsea
    @15926222352
    Red community is to get block chain? I doubt that there is no one answered me
    When it's time to commercial red language?
    lucindamichele
    @lucindamichele
    @15926222352 , thank you for your enthusiasm! The Red core team is moving forward with many applications for Red Language, blockchain among them. The best way to stay updated on future plans is at https://www.red-lang.org/ .
    redsea
    @15926222352
    @lucindamichele :) Can be a bit more information?
    lucindamichele
    @lucindamichele
    Frankly @15926222352 , no, because all the information we have, is free and available to all at github: https://github.com/red or at our website. I wish you all the best in exploring.
    Cong Ye
    @siriusye
    So finally the blockchain project is cancelled or it is not feasible to implement the proposed idea?
    Gregg Irwin
    @greggirwin
    Not cancelled, just subject to roadmap adjustments and logistics.
    GiuseppeChillemi
    @GiuseppeChillemi
    @greggirwin where has been written such change?
    Gregg Irwin
    @greggirwin
    @GiuseppeChillemi we don't publish all internal plans, as things can change quickly.
    GiuseppeChillemi
    @GiuseppeChillemi
    @greggirwin I meant: where has Cong Ye got this information?
    Gregg Irwin
    @greggirwin
    Ah, I see. I have no idea.
    Maciej Łoziński
    @loziniak
    Hey. Any ideas how random/secure should be implemented? I'm currently in need of it, and could spend some time on implementation.
    Maciej Łoziński
    @loziniak
    Would it be sufficient to use AES in CTR mode with IV and key initialized from /dev/random?
    Boleslav Březovský
    @rebolek
    This may be a question for @BeardPower . Cryptography is hard.
    Maciej Łoziński
    @loziniak
    Or perhaps just using /dev/urandom is ok? In lack of entropy in Linux ChaCha20 is used (kernel > 4.8), Yarrow in macOS and Fortuna in FreeBSD, so generally, it should be secure. And in Windows there is CryptGenRandom, also meant to be secure.
    Boleslav Březovský
    @rebolek
    That's probably the way to go, Red tries to use OS functions whenever possible, so it's a good start. If there are problems, it can be improved later, but it's IMO better than having no random/secure at all.
    Gregg Irwin
    @greggirwin
    Agreed.