[Haskell-cafe] Haskell to Ethereum VM ?

Steven Leiva leiva.steven at gmail.com
Sat Mar 10 16:20:24 UTC 2018


Fantastic write-up Takenobu.

On Sat, Mar 10, 2018 at 3:25 AM, Takenobu Tani <takenobu.hs at gmail.com>
wrote:

> Hi Will,
>
> Thank you for the information.
> There are various smart contract environments using Haskell.
> I will explore various projects.
>
> Thanks,
> Takenobu
>
> 2018-03-10 15:51 GMT+09:00 William Martino <wjmartino at gmail.com>:
>
>> Hi,
>>
>> You may also want to look at another (formerly) JPM project
>> https://github.com/kadena-io/masala -- standalone pure EVM. When it was
>> up to date it was pretty close to bug for bug compatible... yes, the EVM
>> unit tests checked for at least one bug's existence.
>>
>> FYI the degree to/ways in which the EVM is hilariously broken were large
>> influences on [disclosure: am co-founder] Kadena's smart contract language
>> Pact https://github.com/kadena-io/pact. I wouldn't say that Pact is a
>> competitor to Cardano's Plutus so much as a fundamentally different
>> approach.
>>
>> -Will
>>
>>
>>  - Will
>>
>> ----------
>> Will Martino
>> WJMartino at gmail.com
>> 203.887.6964 <(203)%20887-6964>
>>
>> Sent via Superhuman <https://sprh.mn/?vip=wjmartino@gmail.com>
>>
>>
>> On Fri, Mar 09, 2018 at 9:57 PM, Takenobu Tani<takenobu.hs at gmail.com>wro
>> te:
>>
>>> 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.
>>>>>> >
>>>>>>
>>>>>
>>>>>
>>>>
>>> _______________________________________________
>>> 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.
>>>
>>
>>
>
> _______________________________________________
> 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.
>



-- 
Steven Leiva
305.528.6038
leiva.steven at gmail.com
http://www.linkedin.com/in/stevenleiva
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180310/bd36cad4/attachment.html>


More information about the Haskell-Cafe mailing list