[Haskell-cafe] Haskell to Ethereum VM ?

Takenobu Tani takenobu.hs at gmail.com
Sun Mar 11 01:37:37 UTC 2018


Thanks :)



2018-03-11 1:20 GMT+09:00 Steven Leiva <leiva.steven at gmail.com>:

> 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 <(305)%20528-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/20180311/fe5ead44/attachment.html>


More information about the Haskell-Cafe mailing list