[Haskell-cafe] Haskell to Ethereum VM ?

Takenobu Tani takenobu.hs at gmail.com
Sat Mar 10 02:57:59 UTC 2018


Hi,

Before exploring Cardano's virtual machine, I explored Ethereum virtual
machine (EVM).
I'm sharing some figures I wrote for my self-study.

  Ethereum EVM illustrated
  http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
  https://github.com/takenobu-hs/ethereum-evm-illustrated

Haskell fits very well to DApps/Smart contracts :)

Regards,
Takenobu


2018-01-27 11:27 GMT+09:00 Takenobu Tani <takenobu.hs at gmail.com>:

> Hi Gregory,
>
> Thank you for much information.
> I have heard Cardano, but I did not know the details.
>
> It's amazing!
>
> Although Ethereum VM is stack based virtual machine,
> Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful!
> In addition, it is protected by semantics.
>
> Umm, High-level safety abstructed language (Haskell based) + register
> based VM (IELE) !
> It's amazing.
>
> Thank you for telling me details.
> I will explore this.
>
> Thank you very much,
> Takenobu
>
>
> 2018-01-27 10:22 GMT+09:00 Gregory Popovitch <greg7mdp at gmail.com>:
>
>> Probably you are aware of Cardano (https://www.cardanohub.org/en/home/),
>> a new generation blockchain platform which uses languages inspired from
>> Haskell. From the whitepaper at https://whycardano.com/:
>>
>> "Systems such as Bitcoin provide an extremely inflexible and draconian
>> scripting language that is difficult to program bespoke transactions in,
>> and to read and understand. Yet the general programmability of languages
>> such as Solidity introduce an extraordinary amount of complexity into the
>> system and are useful to only a much smaller set of actors.
>>
>> Therefore, we have chosen to design a new language called Simon6
>> <https://whycardano.com/#footnote6> in honor of its creator Simon
>> Thompson and the creator of the concepts that inspired it, Simon Peyton
>> Jones. Simon is a domain-specific language that is based upon *Composing
>> contracts: an adventure in financial engineering
>> <https://www.lexifi.com/files/resources/MLFiPaper.pdf>*.
>>
>> The principal idea is that financial transactions are generally composed
>> from a collection of foundational elements7
>> <https://whycardano.com/#footnote7>. If one assembles a financial
>> periodic table of elements, then one can provide support for an arbitrarily
>> large set of compound transactions that will cover most, if not all, common
>> transaction types without requiring general programmability.
>>
>> The primary advantage is that security and execution can be extremely
>> well understood. Proofs can be written to show correctness of templates and
>> exhaust the execution space of problematic transaction events, such as the
>> creation of new money out of thin air
>> <https://en.bitcoin.it/wiki/Value_overflow_incident> or transaction
>> malleability <https://en.bitcoin.it/wiki/Transaction_Malleability>.
>> Second, one can leave in extensions to add more elements by way of soft
>> forks if new functionality is required.
>>
>> That said, there will always be a need to connect CSL to overlay
>> protocols, legacy financial systems, and special purpose servers. Thus we
>> have developed Plutus
>> <https://github.com/input-output-hk/plutus-prototype> as both a general
>> purpose smart contract language and also a special purpose DSL for
>> interoperability.
>>
>> Plutus is a typed functional language based on concepts from Haskell,
>> which can be used to write custom transaction scripts. For CSL, it will be
>> used for complex transactions required to add support for other layers we
>> need to connect, such as our sidechains scheme."
>>
>> ------------------------------
>> *From:* Haskell-Cafe [mailto:haskell-cafe-bounces at haskell.org] *On
>> Behalf Of *Takenobu Tani
>> *Sent:* Friday, January 26, 2018 8:05 PM
>> *To:* Patrick Mylund Nielsen
>> *Cc:* haskell-cafe
>> *Subject:* Re: [Haskell-cafe] Haskell to Ethereum VM ?
>>
>> Hi Carter, Patrick,
>>
>> Thank you for reply.
>> Quorum is interesting!
>> It would be very nice to be able to describe Ethereum's contract with
>> Haskell DSL.
>> The characteristics about immutable and type will fit DApps.
>>
>> Thank you very much,
>> Takenobu
>>
>>
>>
>> 2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <haskell at patrickmn.com>:
>>
>>> The Quorum[1] team has been dreaming about such a
>>> Haskell-beginner-friendly bytecode-generating DSL for a very long time.
>>> The user experience of writing applications in a language where pitfalls
>>> are so non-obvious is one of the biggest pain points of Ethereum in
>>> general.
>>>
>>> We would warmly welcome something like this, and would definitely look
>>> to use it in Quorum. (Our EVM is the same as public Ethereum.)
>>>
>>> [1]: A permissioned/non-PoW version of Ethereum with high throughput and
>>> privacy - https://github.com/jpmorganchase/quorum/
>>>
>>> On 1/26/2018 11:43 AM, Carter Schonwald wrote:
>>> > Hello Takenobu,
>>> > while theres definitely a lot of haskell code out there that deals with
>>> > ethereum (or implementing it!), i'm not aware of anything targeting the
>>> > evm isa from haskell or any other mature functional programming
>>> language
>>> >
>>> > On Fri, Jan 26, 2018 at 8:09 AM, Takenobu Tani <takenobu.hs at gmail.com
>>> > <mailto:takenobu.hs at gmail.com>> wrote:
>>> >
>>> >     Hi cafe,
>>> >
>>> >     Does anyone know about the code generator from Haskell's syntax to
>>> >     Ethereum VM language (bytecode)?
>>> >     That is, what corresponds to Solidity in Haskell.
>>> >
>>> >     Although Solidity is interesting, it's difficult for me to achieve
>>> >     quality and safety.
>>> >     Does such a project already exist?
>>> >
>>> >     Regards,
>>> >     Takenobu
>>> >
>>> >
>>> >
>>> >     _______________________________________________
>>> >     Haskell-Cafe mailing list
>>> >     To (un)subscribe, modify options or view archives go to:
>>> >     http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>> >     <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe>
>>> >     Only members subscribed via the mailman list are allowed to post.
>>> >
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > Haskell-Cafe mailing list
>>> > To (un)subscribe, modify options or view archives go to:
>>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>> > Only members subscribed via the mailman list are allowed to post.
>>> >
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180310/b6ea6de0/attachment.html>


More information about the Haskell-Cafe mailing list