December 25, 2017

Leaping into the future: Red goes blockchain!

Here we are, ready to leap into the future. This is a new page opening in the Red history book. It is a great day for us to finally be able to share with everyone some great news for Red and its community. Fasten your seat belts and enjoy the ride! ;-)



Why the blockchain?

Unless you just woke up from prolonged hibernation under Artic ice crust, you cannot miss the hype around blockchains and their related coins. If you are new to cryptocurrencies and blockchains, let me give you the simple bird view on that: speculation on cryptocurrencies is currently very high, but whether it is a bubble or not, bursting soon or never, is not really relevant. The important part, shadowed by the coins market hype, is that the blockchain technologies are a new infrastructure that should help solve many issues we have. It is a missing piece that we need in order to rebalance the modern Internet landscape, and bring back the decentralization that was once promised in the early Internet days.

Though, the impact of such disruptive change goes way beyond just Internet infrastructure (for example, IPFS or Storj), it has the potential to reshape many industries (see the Brave browser and its Basic Attention Token, bringing a saner alternative to online advertisement) and human activities, including in our daily lives. We are currently still just seeing the first generation of blockchains. Those pioneers have inefficiencies, like scalability and power consumption issues, though, after following and studying the evolution of blockchains during a year, I am now confident enough that those issues will be solved in a not-too-distant future by the next wave of blockchains (or upgraded versions of existing ones). For example, zero-knowledge proof and especially the non-interactive variant are really impressive and promising approaches.

So, how does Red fit there?

As Red aims to be a fullstack programming solution, we naturally look at what are the potential next big platforms we should support. Since last year, we are watching and studying the various blockchains, especially focusing on the ones supporting smart contracts, Ethereum being the leading chain in that domain. Basically, it is like a distributed computer, where you can run arbitrary sandboxed code, using the distributed ledger as its database. There are a few programming languages which can be used to implement those smart contracts, but Solidity is the default one now for such tasks. If you are a Red follower, you know how much we care about simplicity and efficiency in our programming tools. Well, those concerns do not seem to be shared by people who created the existing tools for smart contracts coding and testing. Let's put it bluntly, the current state is a nightmare. It takes several hours, up to a full day to just figure out and set up a development environment the first time, even for a senior developer. The sheer complexity in such toolchains is really high. The Remix initiative is still young, but it is a lifesaver compared to other existing toolchains. Still, you have to put up with a language that has many questionable design choices, for coding contracts which could handle billions of dollars worth of assets. Guess what happens under such conditions.

So, there is a huge need for a better, much simpler and safer contract development tool. We know that Red can deliver such solution, because that's our fight and our mission since the first release of Rebol 20 years ago. Still, people who work with me know how skeptical I am. So it took me several months of studying and discussions to figure out where and how Red could help in that domain.

Why now?

We are at an early point of a new revolution.We do know that much better development tools are needed, and the current offer is poor and disappointing to say the least. We know that we can provide a great solution based on Red, in an acceptable timeframe. This is an amazing opportunity, like we haven't seen since late 90's and the rise of the world wide web. This is our time now.

So this is what we will build, in a new branch of the Red project:

Red/C3

A new Red dialect (DSL) whose code-name is Red/CCC (Cross Chain Code) or just Red/C3, for smart contracts programming. Such dialect will compile to the Ethereum VM (EVM) bytecode directly as first target, and more backends will be added later to support other chains, like NEO. We are at the design stage, the first alpha (prototype) is planned for end of Q1 2018. Our current design involves a combination of two small languages:
  • A very high-level layer: a symbolic and highly declarative language with restricted computing semantics and restricted control flow (turing-incomplete), reading mostly like natural language (compared to mainstream languages). Coarse-grained code produced at this level by the compiler will exhibit higher safety, close to the level provided by templates, while still providing much greater flexibility. An intelligent visual program builder will also be considered for pre-generating such code.
  • A lower-level layer: a general-purpose, statically typed, subset of Red language.

Moreover, for testing such contracts, we plan to create:
  • a simulator for the EVM (and later for other chains VM) coded in Red/System for fast performances.
  • a generative testing environment, for auto-testing user contracts extensively in addition to manually written tests using a simple testing framework we will provide too.
  • a GUI interface to handle all that in an easy way, without requiring deep knowledge of the blockchain infrastructure.
The toolchain will be an extension of the current Red toolchain, so it will be a standalone binary of 1-2MB.

Red Dapps

Smart contracts are used to power what is called Decentralized Apps (Dapps)-- Basically a user-facing application operating on blockchains through smart contracts. Currently such Dapps are built using web stacks, but still need to connect to a blockchain node in order to interact with it. Light nodes could help solve that, but they break the decentralization model. So, in order to facilitate the deployment of the required blockchain nodes, such apps are often wrapped in a standalone native installer using an Electron framework. This results in big downloads (50-150MB) and big memory usages inherent to web stacks.

The Red stack, with its ~1MB runtime (~300KB if compressed) can provide a much better alternative, and Red GUI capabilities can lower drastically the entrance barrier and costs for coding apps and Dapps. In order to achieve that, we need to add a blockchain node connector in our runtime library, preferably wrapping a node in C library form, though using JSON-RPC is also an option.

For old Rebolers, maybe you remember Rebol/IOS in early 2000's, for handling the X-Internet? Well, guess what? Carl was right all along (as usual). ;-) You can look at the Red Dapps as a modern blockchain-powered incarnation of that concept!

What about the existing Red roadmap?

The Red core language development continues with the same roadmap, we are just delaying a bit the 0.6.4 and 0.6.5 releases, in order to pass the big wave of changes in the incoming weeks. In order to achieve that, while opening a new branch of development, we need to grow bigger and structure the whole thing differently. Here are the plans to move the whole project to the next stage:

Red Foundation

We were thinking about that since last year, but now is the right time to do it for many reasons. We need a dedicated organization to handle the community and contributors' efforts for the work on Red core language. We also have plans for business activities, and it would be easier to separate the teams working on the open-source project and the ones working on commercial products and services. It is not an unseen set up, the Clojure project structured itself in a similar way.

So, we have filed an application to set up a Red Foundation in France, and will transfer to it the rights and governance for the open source parts of Red. The managers of that structure will be: Gregg Irwin, Peter W A Wood, François Jouen and myself, for starting. The foundation has a complex job and will require resources to operate, hence:

Red community 2.0: RCT token

We are embracing the blockchain philosophy fully and will empower the Red users and community using a decentralized organization (DAO), supported by a new ERC20 token called Red Community Token (RCT). There is no other programming language or tool that I have heard of, attempting to move their existing community to a DAO, so we will be exploring uncharted territories there, and setting an example for others to follow. The foundation will be setting up the rules with the help of the community, for the usages of the RCT token. Some of the target usages for the token holders, will include:
  • voting rights: influence the Red roadmap, vote for features and issue tickets.
  • tipping: useful chat posts, code contributions, learning materials providers, etc.
  • intra-community cryptoeconomics (or rather tokenomics): selling/buying services from other community members (coding tasks, consulting, learning help, bug fixing, decentralized gaming, etc.)
  • paid Dapps, or in-app purchases.

In addition to that, the foundation will hold a significant amount of RCT, which will be used for rewarding:
  • code contributions
  • Red-related online learning or presenting materials (blog, documentations, etc.)
  • promotional actions (presenting Red at a conference)
  • any other actions that will help spread Red and make the community grow up. 

There will be an initial distribution of RCT tokens to the existing Red contributors (once the foundation defines the rules and allocation amounts), that will retro-actively cover existing contributions (like merged PR, tickets resulting in code changes, past donations, etc.).

Last but not least, the RCT might be used in the future as a gas token, to pay for cross-chain different gas currencies, or to power a future Red's own blockchain.

Those are just scratching the surface of the possibilities that such token and DAO (powered by smart contracts) could open. This gives you an idea of the disruptive potential of blockchains, when rightly used. It is not yet clear how far we can go into the decentralized model, it is something we will explore all together (we'll set up dedicated chat rooms on Gitter and other sites for that).

This will be our greatest challenge, but I trust we have enough brain power in the Red foundation and community to figure out the best rules for a healthy organization.

Initial coin offering

In order to kickstart the RCT token, and fund all the resources needed to accomplish the above tasks and roadmap, we need to raise some money. Initial Coin Offering (ICO) are the new way to achieve that. I have been reluctant to do that for a while, given how young and controversial it can be (the amount of scams in that domain is really high), but after studying many other ICO, I am convinced now that this is not just a short-lived fad, but a real new model to fund projects, and especially open-source projects related to blockchains.

We have produced a whitepaper earlier this year in October (co-authored by Tamas Herman and myself), to describe with more details and context what we are building. We will release it publicly in a few days.

The ICO itself should be held in early January 2018, starting with an angel round, then pre-sale and open rounds following right after. A new website will be available in a few days, giving the full information required for the ICO.

The ICO should provide us with enough funds to cover all the needs for this ambitious roadmap. A job list will be available after it, as we hope to hire the best profiles from the Red community, so update your CV and clean-up the source code of your Red apps. ;-)

Final words

These are intense and exciting days for us and the Red community, I wish you all a Merry Christmas, and have a good beer, maybe someday you'll pay it on your smartphone with a Red Dapp powered by RCT tokens. ;-)

Cheers!

46 comments:

  1. This is awesome. Looking forward to this.

    ReplyDelete
  2. For those readers who code professionally, but haven't had a closer look at blockchains, here is a great guide for Ethereum specifically:

    https://medium.com/@mattcondon/getting-up-to-speed-on-ethereum-63ed28821bbe

    ReplyDelete
  3. I new something big must had been in the works when the Roadmap development suddenly stalled.
    Not that I fully understand what's going on but surely looks exciting.

    Joaquim

    ReplyDelete
  4. Very exciting development. A word about targets: while Ethereum is clearly the leader in terms of a Turing-complete smart contracts, Bitcoin (BTC) itself supports much more scriptabity than most folks realize, albeit not Turing-complete scripts (though that could be accomplished via a side-chain or payloading.) A major obstacle to the use of BTC this way has been the low-level nature of its script language. At least one other project, Ivy, has targeted BTC’s script language as a compile target for a higher-level language. You might want to check them out and consider this approach as well.

    Cf. https://blog.chain.com/ivy-for-bitcoin-a-smart-contract-language-that-compiles-to-bitcoin-script-bec06377141a?gi=a5c7eefbd548

    ReplyDelete
    Replies
    1. Thanks for the ivy-lang link; that was new to me!

      I do realize there is a lot more potential in bitcoin's scriptability.
      I was a long-time forth programmer before I got into Rebol. :)

      MAST is an amazing technique too:
      https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f

      worth reading the related paper too; it's short and clear:
      http://www.mit.edu/~jlrubin/public/pdfs/858report.pdf

      Delete
  5. so, april fools is still some time away

    ReplyDelete
  6. this was quite surprising, though I do concur that prioritizing crowd funding and getting on new technology wave is a good PR and strategic move

    ReplyDelete
  7. Can we get more information on how to get involved in the ICO?

    ReplyDelete
  8. Do you have an estimate how long establishing that foundation will take, couple weeks?

    ReplyDelete
  9. Surprising news!
    Merry Red Christmas!

    ReplyDelete
  10. Great news. How can we participate in the angel round and pre-sale event?

    ReplyDelete
  11. In case that the horizon can be wider than Ethereum I can recommend neo.org.
    It’s an open source Community with great amount of programing-languages... :)

    ReplyDelete
  12. Can't wait. How will you get the information out to intetested parties ?

    ReplyDelete
  13. What an amazing move, Nenad !
    I'm totally ignorant in Blockchain field, but your post makes me feel like learning ! I've already gathered a few links.
    Not that easy to enter this new world, I think !
    Rebol / Red community has been searching for a killer app or use for years, missing different occasions like World Wide Web and Mobile...
    As you said, this new technology may be the perfect opportunity for Red to show its full potential !
    I wish you the best for the coming weeks and the ICO !
    Does Red has to reach version 1.0 (or more) to be used on such architectures as Blockchains ? Does it need stuff like concurrency for instance ?
    This time, it has to be ready before the "blockchain opportunity" window closes, i.e. before there are too many languages and actors in the place ! Regarding blockchain technology spreading, we are a little like at the beginning of the 90's, just before WWW emerging, no ?

    You said that the current Red roadmap will be delayed by a few weeks. You don't think it will be much more with all activities created by this big move ?

    Tous mes voeux pour cette nouvelle année, et pour le décollage de Red sur la Blockchain !

    Thanks / Merci !

    ReplyDelete
  14. Love to see blockchain being used all over the place now! Love to know about pre-sale?

    ReplyDelete
  15. Let me predict something for the Roadmap:
    * No ICO in "early January 2018", mid-March 2018 at best.
    * No 0.6.4 and 0.6.5 in the first half of 2018.
    * No meaningful Android support in 2018.

    It may be a smart move to ride the ICO and Blockchain hype to extract some money much necessary by the Red project. Ignoring the hype, there is nothing here which could not be done better with traditional funding. Bending Red to become Red/C3 just to be able to ICO is genius. But there is nothing Red has to offer in this area. No safe coding background at all. It will become yet another Solidity, better in some aspects and worse in others. So lets hope the hype and ICO money scam works out, then all this will just sidetrack Red for a year or two but provide necessary funding.

    Good luck.

    ReplyDelete
    Replies
    1. Frank, I also share the worry that this blockchain project would delay the Android support which might have an even larger impact on the software industry on the short term, than blockchain support. BUT as Nenad said in the post, he didn't make this decision easily.

      Look at the good side of it though!
      Defining this specific, practical, real-world project of providing a blockchain development toolchain, should help informing Red's future development and I think it will help to mature it faster.

      Delete
  16. New to Red, But after reading this, Not anymore. Nicely explained roadmap and It’s good to see more focus on Blockchain and the technology rather than just creating a new currency.

    ReplyDelete
  17. Build a bureaucracy before finishing the language? You don't really believe that'll work, do you?

    Look, if you need money to get Red to v1, add a Patreon button and a few other crowdsourcing buttons to bring it in. Don't go chasing pie-in-the-sky methods to get it.

    ReplyDelete
    Replies
    1. I'm supporting some projects on Patreon:
      https://www.patreon.com/user?u=2375354

      One of them is the Matrix/Riot.im project.
      As a supported I get access to their project update videos.
      From those videos I've learnt about how troublesome is it to accept money through their crowdfunding platforms and they can't even get enough support that way.
      (they have raised some of their funding in cryptocurrencies, btw ;)

      On the other hand, please look beyond the funding aspect!
      There is a pressing need to simplify blockchain application development.
      Given Red's track record of being able to effectively remove complexity, Red is a very likely candidate for solving such problems.

      Delete
    2. This is not very cautious to pretend being able to revolution a prospective and immature domain and not having finished the basic bricks of it's own tools before. Even less to tie up a whole community on it.

      I'm not against, everyone takes the risks he wants, but it seems to drift further and further from the initial idea of Carl.

      I only hope that the community does not turn around to see that it has lost focus to lock itself into a niche. If it's done well it can also open several parallel channels to finish the language and provide connectors for many applications.



      Wait and see.

      Delete
    3. My worry is they've caught Rebol Inc's disease of starting new stuff before finishing what they were already working on. How does the addition of blockchain support not reduce the number of man-hours they can put into getting Red to v1?

      I think they should read this: http://paulgraham.com/top.html

      The main point being: "I'd noticed startups got way less done when they started raising money, but it was not till we ourselves raised money that I understood why. The problem is not the actual time it takes to meet with investors. The problem is that once you start raising money, raising money becomes the top idea in your mind. That becomes what you think about when you take a shower in the morning. And that means other questions aren't."

      Maybe an ICO will get them the money they need to continue - I don't know. But I can't see how it'll get them to focus on getting Red to v1.

      As to Patreon, well the button could be added today as a suck it and see experiment, even if they go ahead with an ICO - it's not an either/or choice. And it'd give a good indication of how many really care about Red. Knowing that might impact on an ICO, of course. Maybe for the better, or maybe not...

      Delete
  18. That’s funny. Every one knows what it kinda is but has no idea how to bring it to market (aka corporate America). Let the new race begin! I know what I am going. 😂😂😂😂😂

    ReplyDelete
  19. Welcome to the 21st Century...Very exciting...A new evolutionary transformation..

    ReplyDelete
  20. Welcome to the 21st Century. This evolutionary approach is very exciting...

    ReplyDelete
  21. Welp might take a break from Nim lol

    ReplyDelete
  22. Also interested in how to be a part of the ICO.

    ReplyDelete
  23. This comment has been removed by the author.

    ReplyDelete
  24. Here is another great, technical, but very digestable and well illustrated intro video for those who are just getting into blockchains:
    https://www.youtube.com/watch?v=bBC-nXj3Ng4

    It was recommended by @9214 on the red/blockchain gitter.im chat:
    https://gitter.im/red/blockchain?at=5a41340aba39a53f1a9fae74

    ReplyDelete
  25. I largely agree with Frank on this issue.
    Building blockchain tech without proper GC, or 64 bit support and just basic I/O imo again putting first things last.
    Then we can go and buy in for voting rights to what should be done first and then get a place in the community development where we can work on it and getting 'paid' from our own ICO results? If priorities had been set right earlier the community would have been way bigger and development on CCC stuff on its way too.
    I wish you all the best, but everywhere I show off Red language I come across all the same objections over and over again and I can assure you that doing Red advocacy does not wear well.

    ReplyDelete
    Replies
    1. "Blockchain tech" is a bit broad term...

      A lot of the current tooling, like sending transactions, compiling smart contracts or the test environment doesn't have to be long-running processes, hence the GC is largely irrelevant for those applications and these are actually the primary areas where Red can help a lot.

      Regarding advocacy, I totally feel your pain; I had the same experience with Rebol in the past.
      Red is open-source though and exhibits a steady progress, so its story should pan out differently!
      It takes more time than we all would like, but then no one else managed to pull the same results off what Red is aiming for...

      Delete
    2. The problem on Red is not the open source vs closed source, it is the other stuff that bloatware *can already do* that proves bloatware to be right because obviously you need bloatware to provide the missing necessities.

      Delete
    3. And for the visitors that do not already know: onetom is Tamas from the article.

      Delete
    4. Strange.. my reply to this post still not visible after a few hours.

      Delete
  26. Be sure to show demos of your work to the Vyper team at Ethereum Research.

    https://github.com/ethereum/vyper

    You can also post partial deaigns for feedback at https://ethresear.ch.

    Looking forward to your progress.



    ReplyDelete
  27. I have been investing in cryptocurrencies since 2012, and look forward to the Red team growing and the opportunity to invest in it.

    Even so, I would've loved for Red to be more complete first. However, with the additional resources that the ICO will provide, we may end up getting to 1.0 faster in the end.

    BTW, from recent conversations I've had with Carl in the past week, I believe he is on a similar page to Doc regarding this direction. If Carl wasn't so invested in Roku, he might be working in the same direction.

    ReplyDelete
  28. Wow! Une sacré nouvelle.

    I'm happy to see the project continuing to progress. But I also wonder about the approach.

    On one side, I'm strongly convinced that "blockchain styles" of technologies will have a huge impact on the future of IT. In the same time I'm sure that RED is a fantastic programming language, even more than a programming language.

    After reading the article of Nenad, my question is: doing both in one project... isn't too ambitious ?

    I hope not, and I still believe in you. I expect to see the Red project progressing faster and reach a critical mass of users quickly.

    I wish you all the best for this project. I'll continue to follow and support it.

    ReplyDelete
  29. Hi - I'm from France but living in Toronto and with links in SF. I've been diving into the blockchain over the past few months and got my company to do so as well. We have over 50 coders, and are looking to get further into a big play like the one you describe above, focused on fintech. Based on my observations, the consortium/private blockchain and smart contract golddiggers urgently need better tools...
    If you want to chat, please let me know in the reply, and provide an email address where I can reach you.
    Greg

    ReplyDelete
  30. My post from the #Red group on AltME rebol4 world reposted here:

    Here is my understanding of the Red announcement.

    Red's goal is to be a full-stack language. Blockchain is a part of the full stack.

    Red's goal is to complete its roadmap to 1.0. I believe the extra work required by the blockchain target is going to delay the roadmap when considering the existing human resources available.

    Red needs additional funding to expand the human resources available. An ICO is a very valid way to raise a lot of capital. One of my employees has over $500,000 in crypto assets and is very interested in investing in the RCT ICO, although he doesn't use Red or really understand why Red is important. I don't have quite as much in crypto assets as this employee, but it is still a significant amount. I intend to also invest in the RCT ICO. Of course, both of us are only going to invest a portion of our crypto assets, but when combined with others, it should be a significant amount.

    There are no good solutions for scripting smart contracts presently. There needs to be a tool that is easy and complete for developing smart contracts. Red is in a prime position to fill this void in an emerging market. If it is successful, this could be Red's big break (and validation of the Rebol philosophy). If it isn't wildly successful, all that is lost is some time that would need to be invested at a later date anyway in order to maintain the full-stack target of Red.

    Institutional investors don't understand blockchain because they are trying to use old knowledge to validate a new approach to currency, which doesn't necessarily map over. The Dot Com bubble bursting wasn't the end of the Internet or ecommerce, and ecommerce has moved on since then to displace many traditional forms of commerce. If we are in a cryptocurrency bubble, it won't be the end of cryptocurrency when the bubble bursts, and I believe cryptocurrency will displace much of the way currency presently works. My point in all this is that Doc needs to be looking forward. Carl was looking forward when he developed Rebol/IOS from which AltME was born. With proper marketing and development resources, AltME could be where Facebook is today (but most likely even farther). If Doc has a path planned and he has the resources and the "magic touch" of connecting with the global community, Red could be the new hot language and the backbone of something that the future is built upon.

    Honestly, I was excited for Red before, because I want to make efficient apps for a variety of OS targets. But there are too many other alternatives that aren't painful enough for most developers to warrant switching from the tools that they are already using. So Red was most likely going to be a tool only used by a small, elite group of developers. If Red/C3 can make an impact in the nascent field of smart contracts, then that could blow the doors open for Red to be a leader, and the developers that use Red/C3 could then extend their knowledge to create full-stack solutions. But first there has to be an open door for them to come through so they can see the light.

    We live in a time where there are only a few years between big leaps in technology. Surprisingly, there are always the "talking heads" that downplay or discredit those leaps before they are proven. I heard the "experts" downplay the impact of the personal computer, internetworking, email, the Internet, PDAs (personal digital assistants), mobile phones, ecommerce and cryptocurrency (among others), all which happened in the past 30 years and all which hugely impacted and shaped the way the world operates. I'd much rather prefer that Red would be part of the technology that shapes the future instead of being one of the pieces of technology that exists to fulfill a smaller purpose.

    ReplyDelete
  31. Having just woke up from a long hibernation here in the near arctic next to the polar ice cap; I see how massive this new direction could impact what I'm doing. This would be ideal for what I'm developing as well. A Rebol3, (and eventually RED), based full accounting software - soon with BlockChain support.

    ReplyDelete
  32. This is one of two industries that are becoming hyped enough that it makes sense for Red to be focusing on. The other being Machine Learning/AI that could also benefit from a Red dialect. This one has the opportunity to bring in funding from a source of dare I say younger individuals, and not corporations that are mainly pushing machine learning.

    I look forward to continue learning Red, and thanks for all the hard work.

    ReplyDelete
  33. https://developers.slashdot.org/story/17/12/30/1715210/blockchain-brings-business-boom-to-ibm-oracle-and-microsoft?utm_source=rss1.0mainlinkanon&utm_medium=feed

    ReplyDelete

Fork me on GitHub