<p dir="ltr"><br>
., <br>
 ,<br>
/. <br>
 , /,</p>
<p dir="ltr"> ,.<br>
   / ,<br>
.. <br>
,,,  . // .,      . </p>
<p dir="ltr"> _. ...  ..   ._. </p>
<p dir="ltr"> ,    _<br>
 <br></p>
<p dir="ltr"> <br>
 , </p>
<p dir="ltr"> <br>
  <br>
, <br>
, <br>
  , , ...     _  _.</p>
<p dir="ltr">,.</p>
<p dir="ltr">.  ,.,    _. <br>
.,    ,  ..      <br>
, <br>
   <br>
 ,, <br>
  <br>
._</p>
<p dir="ltr"> .  . </p>
<p dir="ltr">_<br>
. <br>
 ,<br>
,     ,    ,   /..,,      </p>
<p dir="ltr"> / ,  </p>
<p dir="ltr">.     .  <br>
 <br>
 _<br>
.,. _.. ,<br>
,<br></p>
<p dir="ltr"> .. _     <br>
   ..  <br>
  <br>
,.,, _<br>
 , _ <br>
,     <br>
/// <br>
. ,<br>
  <br>
   / . ,.<br>
  ,<br>
,.,<br>
 . ,  <br>
 , .,   ,. ._ ,  ,,,//  <br>
    <br>
,        , <br>
.</p>
<p dir="ltr">, <br>
 <br>
, <br>
  . . ,     </p>
<p dir="ltr">, //  .  <br>
,  ,<br>
 /  </p>
<p dir="ltr">      _,. </p>
<p dir="ltr">, . ,, .<br>
 </p>
<p dir="ltr">..     <br>
  /,/ .<br>
.<br>
     </p>
<p dir="ltr">  .   .,,_//<br>
,, <br>
 .,  .<br><br></p>
<p dir="ltr">.  /_. ,<br>
 / <br>
.  <br>
  / <br>
.._<br>
.<br>
,, / .<br>
   . _ ,<br>
,  ,  <br>
 /     ,    _ ., <br>
, ,,, ..  ,<br>
  ,<br>
    <br>
  /.,.<br>
  /. / <br>
. ,/  ,<br>
 <br>
. .   /,<br>
 /,<br>
._<br>
   ,/.  <br>
_<br>
., <br>
,// <br>
, .,,, , ,    , , <br>
,<br></p>
<p dir="ltr"> ,.   ,.,.  . </p>
<p dir="ltr">,  .    ,.  .,   ,<br>
 /   _<br>
.<br>
/<br>
  ,.,. ,  <br>
,._<br>
 <br>
  <br>
 ,,       <br>
  <br>
 , _ _ ,   <br>
   <br>
,<br>
. ,,   ,  _</p>
<p dir="ltr">  <br>
 _..,<br><br></p>
<p dir="ltr">  , <br>
 // , <br>
__ /<br>
!;&quot;$&#39;&#39;&#39;. b<br>
    __ </p>
<br><div class="gmail_quote"><div dir="ltr">On Sat, Dec 12, 2015, 3:01 PM Jorge Timón &lt;<a href="mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.linuxfoundation.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Dec 11, 2015 at 10:45 PM, Luke Durback &lt;<a href="mailto:luke.durback@gmail.com" target="_blank">luke.durback@gmail.com</a>&gt; wrote:<br>
&gt;&gt;If it&#39;s voting for something consensus, you will need something special. If<br>
&gt;&gt; it&#39;s not consensus (ie external) thw voting doesn&#39;t have to hit the chain at<br>
&gt;&gt; all.<br>
&gt;<br>
&gt; I had in mind voting for something that can&#39;t be trusted if done externally:<br>
&gt; Perhaps BIPs for instance.  People would somehow &quot;mark&quot; their BTC as being<br>
&gt; &quot;For Proposition X&quot; (as opposed to all other propositions) and the vote<br>
&gt; would be canceled as soon as the BTC is spent again.<br>
&gt;<br>
&gt; Unfortunately, I&#39;ve spent the past 2 days trying to find a design that would<br>
&gt; allow this (I don&#39;t think my original suggestion made sense in the context<br>
&gt; of how transactions work), and I haven&#39;t gotten much yet.<br>
<br>
Well, as said, if it&#39;s for consensus, you will need to adapt the<br>
system in a special way anyway, but I still don&#39;t see why turing<br>
completeness is required.<br>
This type of idea is not new. Since miners can censor votes (and<br>
that&#39;s undetectable for consensus), several solutions have been<br>
proposed, time lock the votes, for example.<br>
<br>
&gt;&gt;But each scriptSig is only executed once with its corresponding<br>
&gt;&gt; scriptPubKey. Are you proposing we change that?<br>
&gt;<br>
&gt; Sorry, I didn&#39;t understand Bitcoin&#39;s transaction model well enough when I<br>
&gt; first made the proposal.  If Turing Pseudo-Completeness is possible with<br>
&gt; Bitcoin, then I understand now that it could not require you to execute a<br>
&gt; script more than once.  My current thought is that recursion can be<br>
&gt; accomplished via checking if the next output&#39;s scriptPubKey is identical in<br>
&gt; every way to the current scriptPubKey.  Unfortunately, a lot more is needed<br>
&gt; than just recursion in order to do on-chain BTC voting the way I have in<br>
&gt; mind.  I&#39;ll keep working on this.<br>
<br>
What you call &quot;recursion&quot; seems similar to what we usually call &quot;covenants&quot;, see<br>
<br>
<a href="https://bitcointalk.org/index.php?topic=278122.0" rel="noreferrer" target="_blank">https://bitcointalk.org/index.php?topic=278122.0</a><br>
<br>
Although the thread says &quot;an amusingly bad idea&quot;, I think it&#39;s<br>
actually a great idea and there&#39;s some use cases that are very hard to<br>
support without covenants.<br>
Again, no Turing completeness required for this.<br>
<br>
&gt; On Fri, Dec 11, 2015 at 10:36 AM, Jorge Timón &lt;jtimon@jtimon.cc&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Dec 10, 2015 7:36 AM, &quot;Luke Durback&quot; &lt;<a href="mailto:luke.durback@gmail.com" target="_blank">luke.durback@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Tomorrow, I&#39;ll work on writing a way to do voting on proposals with BTC<br>
&gt;&gt; &gt; used as voting shares (This will be difficult as I do not know FORTH).  That<br>
&gt;&gt; &gt; seems like a fairly simple, useful example that will require loops and<br>
&gt;&gt; &gt; reused functions.  I&#39;ll add a fee that goes to the creator.<br>
&gt;&gt;<br>
&gt;&gt; If it&#39;s voting for something consensus, you will need something special.<br>
&gt;&gt; If it&#39;s not consensus (ie external) thw voting doesn&#39;t have to hit the chain<br>
&gt;&gt; at all.<br>
&gt;&gt; I don&#39;t see how &quot;loops and reused functions&quot; are needed in the scripting<br>
&gt;&gt; language for this use case, but I&#39;m probably missing some details. Please,<br>
&gt;&gt; the more concrete you make your example, the easiest it will be for me to<br>
&gt;&gt; understand.<br>
&gt;&gt;<br>
&gt;&gt; &gt; IMO, if you write a complicated system of scripts that&#39;s used<br>
&gt;&gt; &gt; frequently, it makes sense to charge a fee for its usage.<br>
&gt;&gt;<br>
&gt;&gt; But each scriptSig is only executed once with its corresponding<br>
&gt;&gt; scriptPubKey. Are you proposing we change that?<br>
&gt;&gt;<br>
&gt;&gt; &gt;  A decentralized exchange between colored coins, for instance might take<br>
&gt;&gt; &gt; a small fee on each trade.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ve been researching the topic of decentralized exchange from before the<br>
&gt;&gt; term &quot;colored coins&quot; was first used (now there&#39;s multiple designs and<br>
&gt;&gt; implementations); contributed to and reviewed many designs: none of them<br>
&gt;&gt; (colored coins or not) required turing completeness.<br>
&gt;&gt; I&#39;m sorry, but what you are saying here is too vague for me to concretely<br>
&gt;&gt; be able to refute the low level &quot;needs&quot; you claim your use cases to have.<br>
&gt;&gt;<br>
&gt;&gt; &gt; On Dec 10, 2015 10:10 AM, &quot;Luke Durback via bitcoin-dev&quot;<br>
&gt;&gt; &gt; &lt;<a href="mailto:bitcoin-dev@lists.linuxfoundation.org" target="_blank">bitcoin-dev@lists.linuxfoundation.org</a>&gt; wrote:<br>
&gt;&gt; &gt; &gt; This, combined with the ability to make new transactions arbitrarily<br>
&gt;&gt; &gt; &gt; would allow a function to pay its creator.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I don&#39;t understand what you mean by &quot;a function&quot; in this context, I<br>
&gt;&gt; &gt; assume you mean a scriptSig, but then &quot;paying its creator&quot; doesn&#39;t make much<br>
&gt;&gt; &gt; sense to me .<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Could you provide some high level examples of the use cases you would<br>
&gt;&gt; &gt; like to support with this?<br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
bitcoin-dev mailing list<br>
<a href="mailto:bitcoin-dev@lists.linuxfoundation.org" target="_blank">bitcoin-dev@lists.linuxfoundation.org</a><br>
<a href="https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" rel="noreferrer" target="_blank">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</a><br>
</blockquote></div>