[Haskell-cafe] Haskell to Ethereum VM ?

Takenobu Tani takenobu.hs at gmail.com
Fri Mar 30 12:40:30 UTC 2018


Hi cafe,

I implemented a toy code of EVM assembler on Haskell DSL.

  HAssembly-evm
  https://github.com/takenobu-hs/haskell-ethereum-assembly

Cheers,
Takenobu


2018-03-10 11:57 GMT+09:00 Takenobu Tani <takenobu.hs at gmail.com>:

> 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/20180330/60d3c38d/attachment.html>


More information about the Haskell-Cafe mailing list