<div dir="ltr">Hi,<br><br>Before exploring Cardano's virtual machine, I explored Ethereum virtual machine (EVM).<br>I'm sharing some figures I wrote for my self-study.<br><br> Ethereum EVM illustrated<br> <a href="http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf">http://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf</a><br> <a href="https://github.com/takenobu-hs/ethereum-evm-illustrated">https://github.com/takenobu-hs/ethereum-evm-illustrated</a><br><br>Haskell fits very well to DApps/Smart contracts :)<br><br>Regards,<br>Takenobu<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">2018-01-27 11:27 GMT+09:00 Takenobu Tani <span dir="ltr"><<a href="mailto:takenobu.hs@gmail.com" target="_blank">takenobu.hs@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Gregory,<br><br>Thank you for much information.<br>I have heard Cardano, but I did not know the details.<br><br>It's amazing!<br><br>Although Ethereum VM is stack based virtual machine, <br>Cardano's IELE(VM) is register based VM!, it's powerfull and beautiful!<br>In addition, it is protected by semantics.<br><br>Umm, High-level safety abstructed language (Haskell based) + register based VM (IELE) !<br>It's amazing.<br><br>Thank you for telling me details.<br>I will explore this.<span class=""><br><br>Thank you very much,<br>Takenobu<br><br></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2018-01-27 10:22 GMT+09:00 Gregory Popovitch <span dir="ltr"><<a href="mailto:greg7mdp@gmail.com" target="_blank">greg7mdp@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>
<div>
<div dir="ltr" align="left"><span class="m_7950651640952882076m_-1728815040249541742776561701-27012018"><font color="#000080" face="Calibri">Probably you are aware of Cardano (<a href="https://www.cardanohub.org/en/home/" target="_blank">https://www.cardanohub.org/en<wbr>/home/</a>),
a new generation blockchain platform which uses languages inspired from Haskell.
>From the whitepaper at <a href="https://whycardano.com/" target="_blank">https://whycardano.com/</a>:</font></span></div>
<div dir="ltr" align="left"><span class="m_7950651640952882076m_-1728815040249541742776561701-27012018"><font color="#000080" face="Calibri"></font></span> </div>
<div dir="ltr" align="left"><span class="m_7950651640952882076m_-1728815040249541742776561701-27012018"><font color="#000080" face="Calibri">"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.
<p style="BOX-SIZING:border-box;FONT-SIZE:13px;FONT-FAMILY:"Open Sans",sans-serif;WHITE-SPACE:normal;WORD-SPACING:0px;TEXT-TRANSFORM:none;FONT-WEIGHT:400;COLOR:rgb(85,85,85);FONT-STYLE:normal;MARGIN:0px 0px 10px;LETTER-SPACING:normal;BACKGROUND-COLOR:rgb(250,251,252);TEXT-INDENT:0px;font-variant-ligatures:normal;font-variant-caps:normal;text-decoration-style:initial;text-decoration-color:initial">Therefore,
we have chosen to design a new language called Simon<sup style="BOX-SIZING:border-box;FONT-SIZE:10px;VERTICAL-ALIGN:baseline;LINE-HEIGHT:0"><a style="BOX-SIZING:border-box;TEXT-DECORATION:none;COLOR:rgb(31,107,206);OUTLINE-WIDTH:0px!important;OUTLINE-STYLE:none!important;OUTLINE-COLOR:invert!important" href="https://whycardano.com/#footnote6" target="_blank">6</a></sup><span> </span>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<span> </span><em style="BOX-SIZING:border-box"><a style="BOX-SIZING:border-box;TEXT-DECORATION:none;COLOR:rgb(31,107,206);OUTLINE-WIDTH:0px!important;OUTLINE-STYLE:none!important;OUTLINE-COLOR:invert!important" href="https://www.lexifi.com/files/resources/MLFiPaper.pdf" target="_blank">Composing contracts:
an adventure in financial engineering</a></em>.</p>
<p style="BOX-SIZING:border-box;FONT-SIZE:13px;FONT-FAMILY:"Open Sans",sans-serif;WHITE-SPACE:normal;WORD-SPACING:0px;TEXT-TRANSFORM:none;FONT-WEIGHT:400;COLOR:rgb(85,85,85);FONT-STYLE:normal;MARGIN:0px 0px 10px;LETTER-SPACING:normal;BACKGROUND-COLOR:rgb(250,251,252);TEXT-INDENT:0px;font-variant-ligatures:normal;font-variant-caps:normal;text-decoration-style:initial;text-decoration-color:initial">The
principal idea is that financial transactions are generally composed from a
collection of foundational elements<sup style="BOX-SIZING:border-box;FONT-SIZE:10px;VERTICAL-ALIGN:baseline;LINE-HEIGHT:0"><a style="BOX-SIZING:border-box;TEXT-DECORATION:none;COLOR:rgb(31,107,206);OUTLINE-WIDTH:0px!important;OUTLINE-STYLE:none!important;OUTLINE-COLOR:invert!important" href="https://whycardano.com/#footnote7" target="_blank">7</a></sup>. 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.</p>
<p style="BOX-SIZING:border-box;FONT-SIZE:13px;FONT-FAMILY:"Open Sans",sans-serif;WHITE-SPACE:normal;WORD-SPACING:0px;TEXT-TRANSFORM:none;FONT-WEIGHT:400;COLOR:rgb(85,85,85);FONT-STYLE:normal;MARGIN:0px 0px 10px;LETTER-SPACING:normal;BACKGROUND-COLOR:rgb(250,251,252);TEXT-INDENT:0px;font-variant-ligatures:normal;font-variant-caps:normal;text-decoration-style:initial;text-decoration-color:initial">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<span> </span><a style="BOX-SIZING:border-box;TEXT-DECORATION:none;COLOR:rgb(31,107,206);OUTLINE-WIDTH:0px!important;OUTLINE-STYLE:none!important;OUTLINE-COLOR:invert!important" href="https://en.bitcoin.it/wiki/Value_overflow_incident" target="_blank">new money out of thin
air</a><span> </span>or<span> </span><a style="BOX-SIZING:border-box;TEXT-DECORATION:none;COLOR:rgb(31,107,206);OUTLINE-WIDTH:0px!important;OUTLINE-STYLE:none!important;OUTLINE-COLOR:invert!important" href="https://en.bitcoin.it/wiki/Transaction_Malleability" target="_blank">transaction
malleability</a>. Second, one can leave in extensions to add more elements by
way of soft forks if new functionality is required.</p>
<p style="BOX-SIZING:border-box;FONT-SIZE:13px;FONT-FAMILY:"Open Sans",sans-serif;WHITE-SPACE:normal;WORD-SPACING:0px;TEXT-TRANSFORM:none;FONT-WEIGHT:400;COLOR:rgb(85,85,85);FONT-STYLE:normal;MARGIN:0px 0px 10px;LETTER-SPACING:normal;BACKGROUND-COLOR:rgb(250,251,252);TEXT-INDENT:0px;font-variant-ligatures:normal;font-variant-caps:normal;text-decoration-style:initial;text-decoration-color:initial">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<span> </span><a style="BOX-SIZING:border-box;TEXT-DECORATION:none;COLOR:rgb(31,107,206);OUTLINE-WIDTH:0px!important;OUTLINE-STYLE:none!important;OUTLINE-COLOR:invert!important" href="https://github.com/input-output-hk/plutus-prototype" target="_blank">Plutus</a><span> </span>as
both a general purpose smart contract language and also a special purpose DSL
for interoperability.</p>
<p style="BOX-SIZING:border-box;FONT-SIZE:13px;FONT-FAMILY:"Open Sans",sans-serif;WHITE-SPACE:normal;WORD-SPACING:0px;TEXT-TRANSFORM:none;FONT-WEIGHT:400;COLOR:rgb(85,85,85);FONT-STYLE:normal;MARGIN:0px 0px 10px;LETTER-SPACING:normal;BACKGROUND-COLOR:rgb(250,251,252);TEXT-INDENT:0px;font-variant-ligatures:normal;font-variant-caps:normal;text-decoration-style:initial;text-decoration-color:initial">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.<span class="m_7950651640952882076m_-1728815040249541742776561701-27012018">"</span></p></font></span></div><br>
<div class="m_7950651640952882076m_-1728815040249541742OutlookMessageHeader" dir="ltr" lang="en-us" align="left">
<hr>
<font size="2" face="Tahoma"><b>From:</b> Haskell-Cafe
[mailto:<a href="mailto:haskell-cafe-bounces@haskell.org" target="_blank">haskell-cafe-bounces@h<wbr>askell.org</a>] <b>On Behalf Of </b>Takenobu
Tani<br><b>Sent:</b> Friday, January 26, 2018 8:05 PM<br><b>To:</b> Patrick
Mylund Nielsen<br><b>Cc:</b> haskell-cafe<br><b>Subject:</b> Re: [Haskell-cafe]
Haskell to Ethereum VM ?<br></font><br></div><div><div class="m_7950651640952882076h5">
<div></div>
<div dir="ltr">Hi Carter, Patrick,<br><br>Thank you for reply.<br>Quorum is
interesting!<br>It would be very nice to be able to describe Ethereum's contract
with Haskell DSL.<br>The characteristics about immutable and type will fit
DApps.<br><br>Thank you very much,<br>Takenobu<br><br><br></div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2018-01-27 2:55 GMT+09:00 Patrick Mylund Nielsen <span dir="ltr"><<a href="mailto:haskell@patrickmn.com" target="_blank">haskell@patrickmn.com</a>></span>:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex">The
Quorum[1] team has been dreaming about such a<br>Haskell-beginner-friendly
bytecode-generating DSL for a very long time.<br>The user experience of
writing applications in a language where pitfalls<br>are so non-obvious is one
of the biggest pain points of Ethereum in general.<br><br>We would warmly
welcome something like this, and would definitely look<br>to use it in Quorum.
(Our EVM is the same as public Ethereum.)<br><br>[1]: A permissioned/non-PoW
version of Ethereum with high throughput and<br>privacy - <a href="https://github.com/jpmorganchase/quorum/" rel="noreferrer" target="_blank">https://github.com/jpmorgancha<wbr>se/quorum/</a><br><span class="m_7950651640952882076m_-1728815040249541742im m_7950651640952882076m_-1728815040249541742HOEnZb"><br>On 1/26/2018 11:43 AM, Carter Schonwald wrote:<br>>
Hello Takenobu, <br>> while theres definitely a lot of haskell code
out there that deals with<br>> ethereum (or implementing it!), i'm not
aware of anything targeting the<br>> evm isa from haskell or any other
mature functional programming language<br>><br>> On Fri, Jan 26, 2018 at
8:09 AM, Takenobu Tani <<a href="mailto:takenobu.hs@gmail.com" target="_blank">takenobu.hs@gmail.com</a><br></span>
<div class="m_7950651640952882076m_-1728815040249541742HOEnZb">
<div class="m_7950651640952882076m_-1728815040249541742h5">> <mailto:<a href="mailto:takenobu.hs@gmail.com" target="_blank">takenobu.hs@gmail.com</a>><wbr>>
wrote:<br>><br>> Hi cafe,<br>><br>>
Does anyone know about the code generator from Haskell's syntax
to<br>> Ethereum VM language (bytecode)?<br>>
That is, what corresponds to Solidity in
Haskell.<br>><br>> Although Solidity is interesting,
it's difficult for me to achieve<br>> quality and
safety.<br>> Does such a project already
exist?<br>><br>> Regards,<br>>
Takenobu<br>><br>><br>><br>>
_____________________________<wbr>__________________<br>>
Haskell-Cafe mailing list<br>> To
(un)subscribe, modify options or view archives go to:<br>>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-b<wbr>in/mailman/listinfo/haskell-ca<wbr>fe</a><br>>
<<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-c<wbr>afe</a>><br>>
Only members subscribed via the mailman list are allowed to
post.<br>><br>><br>><br>><br>>
______________________________<wbr>_________________<br>> Haskell-Cafe
mailing list<br>> To (un)subscribe, modify options or view archives go
to:<br>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/haskell-caf<wbr>e</a><br>>
Only members subscribed via the mailman list are allowed to
post.<br>><br></div></div></blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>