Bitcoin Forum
June 08, 2024, 05:06:08 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 [110] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 »
2181  Economy / Service Discussion / Re: Fake Bitcoin Futures volume at 796.com, be aware! on: July 26, 2013, 05:04:27 PM

Remains the question who the hell is paying all that much for those stocks!


Answer is clear: arbitrageurs
2182  Economy / Service Discussion / Re: Fake Bitcoin Futures volume at 796.com, be aware! on: July 26, 2013, 04:37:51 PM
Ok so i read for VIP2 level: for each bitcoin futures trading when open a position cumulative to 8 BTC, Gift 1 share.

VIP2 level pays 0.5% in commission on each trade so you have to pay 8*0.005=0.04 BTC fee to get a free share right?
Same results for higher vip levels.

How can someone find it profitable since stocks until yesterday have always traded lower then 0.04BTC each ??



I think they explained: they dropped the rate after people trying to arbitrage. The rate shown is the current rate.

So my question is: what is the rate before adjustment?

Also an unanswered question: What about the price? Why didn't the volume spike move the price?
2183  Local / 中文 (Chinese) / Re: 一笔sd的交易,导致我整个钱包无法使用 on: July 26, 2013, 04:34:14 PM
可能是blockchain.info根本沒有廣播出去. 等一下吧
2184  Economy / Service Discussion / Re: Fake Bitcoin Futures volume at 796.com, be aware! on: July 26, 2013, 04:10:19 PM
Since our company has free shares give out policy.  And some investors found that they can make profit by opening several accounts and do huge amount of trades aiming at getting our free shares.  We noticed that already and we did raise the difficulty of getting the free shares at 18:00 Peking time.  All the transactions are real.  And we have chat rooms with more than 1000 users and over their conversations, you can easily find out that a lot of them are willing to pay the commission for the trades in order to get the free 796 xchange shares.  All we can do is to raise the difficulty again and again.  And actually, we have raised the difficulty for 4 times already......


So what about the price? Why didn't the volume spike move the price?
2185  Local / 中文 (Chinese) / Re: 疯子,傻子,骗子,我们需要一点冷静…… on: July 26, 2013, 02:46:00 PM
有人在英文板指控你們的交易量作假, 你們有沒有回應? https://bitcointalk.org/index.php?topic=262198.0
2186  Bitcoin / Development & Technical Discussion / Lamport signature in script 2.0? on: July 26, 2013, 04:27:19 AM
Is there any chance to support Lamport signature in the future? Comparing with traditional private key cryptography, Lamport signature is much more easy to implement. It is also QC hard. There are 2 major problems for Lamport signature: one-time-use only and large size.

The one-time-use only problem can be improved by using a merklelized public key (http://en.wikipedia.org/wiki/Lamport_signature#Public_key_for_multiple_messages).

For sig size, it's actually not that big. Using Hash160, the public key will consume 800bytes, and the signature will consume 400bytes, so the total will be 1.2kB (a few more bytes if merklelized public key is used). A transaction like this: http://blockchain.info/tx/8e17ed76cf51a9adcbb284365c2aff6bf28f7fa8259286dd1a93ec1cd47a81ca already takes 1.5kB. However, using the  CHECKSIG 2.0 I proposed at https://bitcointalk.org/index.php?topic=258931.0, it is possible to sign multiple inputs with only one signature. Therefore, using Lamport signature would not be a big problem.
2187  Local / 中文 (Chinese) / Re: 求助! 84.27个比特币 24小时都无一确认,我已经无奈了 on: July 25, 2013, 04:27:10 PM
不用担心。这种情况我们之前试过一次。72小时后自动取消交易,退回币到钱包。这笔交易在我们的钱包也跟本看不到记录。不知是什么原因。

你們看不到, 但卻已經轉發出去: https://blockchain.info/tx-index/81962598

應該會有另一位客戶投訴收不到錢
沒有了解事實,請不要做不負責任的猜測。

嗯, 是我講錯了, 你們有一個bot專門把錢轉到離線錢包吧
2188  Local / 中文 (Chinese) / Re: 求助! 84.27个比特币 24小时都无一确认,我已经无奈了 on: July 25, 2013, 04:10:11 PM
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.01768136 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(43.8895 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(40 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.01663948 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.09286568 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.17736568 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.08000392 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7(0.0000546 BTC-产量)


193vBkTSaZ2wCm8vTvFqjX7hGsas5kggtR  84.27 BTC
18YCABy53MHhTFmL6UgEhf7vARhdo5VDi7  0.00260212 BTC

看起来有点像你收到的币还没有确认完毕?
这个我也看到了 楞是把我的一笔拆成这么多,我也很无语。。。。

是你自己玩SD弄成這樣的. 你還是好好學習一下bitcoin的原理
2189  Bitcoin / Development & Technical Discussion / Re: Sending use's money back? on: July 25, 2013, 03:06:58 PM
Making a bitcoin-spending bot without knowing how bitcoin works? It's just flushing your money to the toilet
2190  Local / 中文 (Chinese) / Re: MTGOX开通双重验证,依然被盗。盗取途径wow gold (to echopisces) on: July 25, 2013, 02:35:15 PM
如果只有提現認証, 但沒有security centre認証, 也是沒有用的

我的比特币也被盗了,11.31个.虽然不多,但是黑客手段未见过。请大家重视!
我开通了提现google验证,实在想不通被盗的原因。
我的账户本来是不能提现的,昨天刚刚通过认证,可以提现了。
但是今天就被黑客盗走了。

  
提现身份认证的邮件日期
发件人:Mt.Gox <aml@mtgox.com>      
时   间:2013年7月22日(星期一) 中午11:33  
收件人:
 <649013194@qq.com>


今天被盗记录 (这些记录都不是本人操作) 疑点就是wow gold,难道不需要GOOGLE验证码?
2013/07/23 17:47:16   Withdraw      11.21000000 BTC   0.00118048 BTC
wow gold (to echopisces)
2013/07/23 17:46:48   Fee      0.01329975 BTC   11.21118048 BTC
BTC bought: [tid:1374572808423516] 2.41813700 BTC at $94.45000 (0.55% fee)
2013/07/23 17:46:48   In      2.41813700 BTC   11.22448023 BTC
BTC bought: [tid:1374572808423516] 2.41813700 BTC at $94.45000
2013/07/23 17:46:48   Fee      0.00051122 BTC   8.80634323 BTC
BTC bought: [tid:1374572808384355] 0.09294882 BTC at $94.44996 (0.55% fee)
2013/07/23 17:46:48   In      0.09294882 BTC   8.80685445 BTC
BTC bought: [tid:1374572808384355] 0.09294882 BTC at $94.44996
2013/07/23 17:46:48   Fee      0.00180084 BTC   8.71390563 BTC
BTC bought: [tid:1374572808332908] 0.32742459 BTC at $94.44994 (0.55% fee)
2013/07/23 17:46:48   In      0.32742459 BTC   8.71570647 BTC
BTC bought: [tid:1374572808332908] 0.32742459 BTC at $94.44994
2013/07/23 17:46:47   Fee      0.03044374 BTC   8.38828188 BTC
BTC bought: [tid:1374572807623005] 5.53522562 BTC at $94.44992 (0.55% fee)
2013/07/23 17:46:47   In      5.53522562 BTC   8.41872562 BTC
BTC bought: [tid:1374572807623005] 5.53522562 BTC at $94.44992
2013/07/23 17:45:45   Withdraw      0.10000000 BTC   2.88350000 BTC
Buy wow gold (to echopisces)

目前MTGOX给的回复
Marcus, Jul 23 20:29 (JST):
Hello Xiang,

Thank you for your email. We apologize for the inconvenience that this may have caused and looks like your funds where not withdrawn through a normal BTC address and we should research this further and we will keep you updated on the status once the research is completed.

Best regards,

Mt.Gox Team
https://www.mtgox.com

[Attention: Please protect your account using OTP to ensure that your funds are safe and secure. Failing to do so makes your information vulnerable to hackers.
Please visit https://mtgox.com/security]
2191  Local / 中文 (Chinese) / Re: 求助! 84.27个比特币 24小时都无一确认,我已经无奈了 on: July 25, 2013, 02:31:59 PM
不用担心。这种情况我们之前试过一次。72小时后自动取消交易,退回币到钱包。这笔交易在我们的钱包也跟本看不到记录。不知是什么原因。

你們看不到, 但卻已經轉發出去: https://blockchain.info/tx-index/81962598

應該會有另一位客戶投訴收不到錢
2192  Local / 中文 (Chinese) / Re: 求助! 84.27个比特币 24小时都无一确认,我已经无奈了 on: July 25, 2013, 11:38:15 AM
事情是这样的,24号想充值到796买股票,结果冲了一笔84.27比特币到账户里,却一直在处理,点开地址一看,24个小时无一确认,我现在已经不知道该怎么办了,有好心人指导下吗?我用的是blockchain在线钱包。  充值地址为193vBkTSaZ2wCm8vTvFqjX7hGsas5kggtR。 交易链接为ab497952714bcc8970aa186b9557880473b6f449e53dc8107bb3d19bcca0a4d6 。84.27也不是个小数目了 耽误一天损失巨大啊。真心求帮助~谢谢

是blockchain.info的bug吧. https://blockchain.info/tx/4de10bcf8a7967e5b98e6116a4bb5723c0371b3c52e85f5fa84e07d76eea47fb 你的這個交易沒有確認, blockchain.info又替你轉發出去, 當然不能確認

4de10bcf8a7967e5b98e6116a4bb5723c0371b3c52e85f5fa84e07d76eea47fb 付的費用不足, 基本上不可能得到確認. 無論如何你的84.27BTC還是很安全的, 但要弄回來就有點麻煩
2193  Local / 中文 (Chinese) / Re: 求助! 84.27个比特币 24小时都无一确认,我已经无奈了 on: July 25, 2013, 11:33:16 AM
事情是这样的,24号想充值到796买股票,结果冲了一笔84.27比特币到账户里,却一直在处理,点开地址一看,24个小时无一确认,我现在已经不知道该怎么办了,有好心人指导下吗?我用的是blockchain在线钱包。  充值地址为193vBkTSaZ2wCm8vTvFqjX7hGsas5kggtR。 交易链接为ab497952714bcc8970aa186b9557880473b6f449e53dc8107bb3d19bcca0a4d6 。84.27也不是个小数目了 耽误一天损失巨大啊。真心求帮助~谢谢

796有嚴重的bug, 竟然把未確認的bitcoin轉發出去
2194  Bitcoin / Development & Technical Discussion / Re: Which clients fully support P2SH and/or multisig ? on: July 25, 2013, 10:38:00 AM
The merchant doesn't need to see the full tx1 before he signs tx2. He just needs the hash of tx1 and the corresponding output index. If the merchant uses a brand new private key, he can blindly sign the tx2:

1. Merchant sends a new public key (Pu-M) to user

2. User creates a transaction (tx1) to send bitcoin to 2-of-2 multisig of Pu-M and Public key of user (Pu-U). DO NOT BROADCAST

3. User creates a timelock transaction (tx2) to send the multisig output of tx1 back to himself; sign it; pass it to merchant

4. Merchant signs tx2 WITHOUT KNOWING tx1

5. User sees the fully signed tx2. Broadcast tx1

6. Merchant acknowledge the tx1 after several confirmations

Yup, you're absolutely right, which means jspilman's micropayment system is completely secure for both parties once tx1 confirms, and until then simply has zero-conf security.

It's also still compatible with replace-by-fee scorched-earth: if the user double-spends the unconfirmed tx1 paying into the multisig output, and has signed a non-timelocked tx2, sign tx2 spending the amount that doesn't get refunded back to the user 100% to fees and they'll still pay for whatever they owe. Exactly the same as scorched-earth for a non-micropayment-channel transaction.

Heh, the confusion we've all had in examining this stuff makes me think when it comes to OP_CODESEPARATOR we should always consider the possibility that Satoshi simply made a mistake in the design.


But anyway, I always love the idea of OP_PUSHBLOCKHEIGHT. This has been discussed many times here. It simplifies the process a lot and could be wrapped as P2SH. User can keep sending bitcoin to the same P2SH address without those timelock txs.

I am just not sure how it could be done as a soft-fork. I think a soft-fork new OP code could only be "nothing or fail". Unless you wrap it as a serialized script and run it with a re-defined OP_NOP, and make it looks like send-to-anyone to old clients, i.e.

Code:
<serialized script> OP_RUN OP_DROP OP_TRUE 
        Basically the best way to do it is to make script-v2 based on merklized abstract syntax trees and push it all into one opcode:

        <MAST-top-level-hash> OP_NOP1/OP_MAST_EVAL

        For pre-soft-fork nodes the OP_NOP1 does nothing, and the top-level-hash will make the script evaluate as true. (the hash would never be == 0 for a valid script)

        The scriptSig is then the fragments of the abstract syntax tree of the part of the script that is actually executed. For instance, lets say all the script is executed:

        scriptPubKey: <hash> OP_MAST_EVAL
        scriptSig: <sig> (<pubkey> OP_CHECKSIG)

        Basically this looks just like P2SH. But lets suppose a more complex scriptPubKey:

        IF <pubkey1> OP_CHECKSIG
        ELSE <pubkey2> OP_CHECKSIG
        ENDIF

        You spend it with either:

        scriptSig: <sig1> 1
        scriptSig: <sig2> 0

        But with MAST you only have to reveal the branch actually being executed, so your scriptSig now looks like this:

        <sig1> 1
        (IF <pubkey1> OP_CHECKSIG
         ELSE Hash(<pubkey2> OP_CHECKSIG)
         ENDIF)

        For two branches, it's not a big savings, but I could have embedded a hundred possible pubkeys into that script with nested if statements, yet to spend the script I only have to provide the data required to execute one short path. I also don't have to reveal any parts of the script that weren't executed if I don't want to.

        Can we do this way:

        • 1. Redefine OP_NOP1 as OP_MAST_EVAL
        • 2. Format of scriptPubKey: <20 bytes script merkle root hash> OP_MAST_EVAL. (Any other data /OP codes in the script are invalid)
        • 3. scriptSig: Pushing a single serialized script including all signature(s), hash(es) and script(s). Any other data / OP codes are invalid. This makes sure the script can't be edited after hash check (ref: P2SH)
        • 4. There could be many sub-scripts for OP_MAST_EVAL. For example, if we want a 3-of-8 multi-sig. There will be 9 sub-scriptPubKey (sspk), numbered from 1-9.
          • The sspk2 to sspk9 are normal pay-to-public key scripts with different public keys:<pubKey-n> OP_CHECKSIG
          • The sspk1 is the main script, which will call the other sspk. To avoid looping (e.g. sspk2 calling sspk3 and sspk3 calling sspk2), only sspk1 may call other sspk.
          • Calling of sspk is done by OP_SSPK. It pops the top stake (the sspk-ID) and runs the sspk. Each sspk has its own sub-stake. No matter what is left in the sub-stake, OP_SSPK will only return either 0 (if the sspk failed) or 1 (if the sspk succeed) as top stake.(*)
          • For a 3-of-8 multi-sig, the sspk1 will be: <2> OP_SSPK <3> OP_SSPK OP_ADD <4> OP_SSPK OP_ADD <5> OP_SSPK OP_ADD <6> OP_SSPK OP_ADD <7> OP_SSPK OP_ADD <8> OP_SSPK OP_ADD <9> OP_SSPK OP_ADD <3> <OP_EQUAL>
        • 5. Calculation of script merkle root is same as transaction merkle root, but done by hash160.
        • 6. For example, we want use pubKey-2, 4, 5 to redeem the bitcoin. We need to provide these information:
          • Total number of sub-scripts (i.e. 9)
          • Full sspk1, sspk2, sspk4, sspk5
          • hash(sspk3), hash(sspk6), hash(sspk9), and hash(hash(sspk7) concat hash (sspk8))
          • sub-scriptSigs (sss) for sspk1, sspk2, sspk4, sspk5 (the sss1 is empty in this example)
          Concatenate all these things in a format without any ambiguity and push as the only item of the main scriptSig
        • 7. OP_MAST_EVAL will
          • a. match the merkle root
          • b. run sss1 (which is empty here) with sspk1 (the whole transaction fails if sspk1 is not provided)
          • c. hit the first OP_SSPK, call sspk2, and run it with sss2, return a 1 when succeed
          • d. hit the second OP_SSPK, try to call sspk3. Since sspk3 is not available, a 0 is returned
          • e. keep running sspk1. The result of sspk1 is the final result
        • 8. Failing of a individual sspk will not fail the whole transaction. It just pushes a 0 to the main stake.
        • 9. All sspk must be called at least once in sspk1.
        (* We may allow it to push the items in sub-stakes back to the main-stake. This allows greater flexibility but makes the system more complicated and may introduced unexpected behavior. I don't think it's necessary)[/list]
        2195  Local / 中文 (Chinese) / Re: [發報]亞洲新紀元比特幣交易推出 - 推廣期間不收取任何交易費用! on: July 25, 2013, 09:02:30 AM
        繁体中文和简体中文除了字体表现不同,句式也不同吗?好多地方读不懂啊。。。。。。

        一看就知是英文寫成再翻譯
        2196  Bitcoin / Development & Technical Discussion / Re: A cautionary note: I just forked webbtc.com/bitcoin-ruby via two different ways on: July 23, 2013, 09:26:05 AM
        I am not a software engineer. I can't even read C++ code. But IMHO OP_CHECKSIG is just too complicated while not flexible. For each sighash type there is different procedure. With more procedure, there is higher risk of bug.

        That's why I propose the CHECKSIG 2.0 ( https://bitcointalk.org/index.php?topic=258931.msg2768432#msg2768432 ). The logic of CHECKSIG 2.0 is simple: "I will release my fund from inputs a, b, c to outputs d, e, f, given that inputs h, i, j are also involved". Preparing subset, hashing, and signature check are separated into 3 OP codes, and it does not depends on OP_CODESEPARATOR. I think it is simpler and more flexible than the current CHECKSIG, easier to standardize, and less likely to have bug.

        I have rewritten the proposal and defined the detailed behaviors of the new OP codes. I am looking forward to your comments
        2197  Bitcoin / Development & Technical Discussion / Risk of anyone-can-take output on: July 21, 2013, 04:46:16 PM
        Currently, newly generated coins require 100 confirmations before it could be spent, since reward for orphaned blocks will never come back (if Gavin does not bail them out: https://bitcointalk.org/index.php?topic=156641.0  Grin ). However, any transactions relaying on "anyone-can-take" outputs, such as

        Quote
        OP_TRUE
        ,

        or

        Quote
        OP_HASH256 <hash> OP_EQUAL

        face similar level of risks. In case there is a block re-org, a miner may grab these outputs for themselves. Should we also flag any transactions without using ECDSA signature as generated coins?
        2198  Bitcoin / Development & Technical Discussion / Re: Changing the re-targeting rules with a soft fork on: July 21, 2013, 04:07:39 AM
        I proposed something related but got moved to alt-coin section: https://bitcointalk.org/index.php?topic=257135.msg2739332#msg2739332
        2199  Bitcoin / Development & Technical Discussion / Re: CHECKSIG 2.0 on: July 20, 2013, 06:19:37 PM
        I find an interesting idea here: https://en.bitcoin.it/wiki/User:Gmaxwell/alt_ideas

        Quote
        Transaction checkpoints. Each transaction (or signature?) should contain a block index and 32 (?) least significant bits of the block hash. The transaction's fees are only valid (or only their full value?) if they are mined in a chain they agree with. This would let people making bitcoin transactions 'vote with their wallets' on the identity of the chain they consider important. This isn't a viable POW replacement, but would greatly reduce the economic benefit of mining moderate depth forks, esp as fees begin to dominate the block reward. "You don't get (all) of my fee payment if you are mining a chain I don't like!"
        Nodes would typical checkpoint a few blocks in the past from their current height to avoid overstating their opinion unnecessarily.
        Deep checkpoints could be automatically triggered by observing a critical mass of coins-day-destroyed confirming them— creating a PoS-ish system, though this is subject to the 'nothing at stake' problem of PoS, and is probably very dangerous. (e.g. isolation risk for newly bootsrapping nodes)

        It could be incorporated into CHECKSIG 2.0. To make it an optional function, I propose 2 new OP codes:

        OP_JOIN: It keeps popping the stake, until the stake becomes empty or the top stake is -1. In the latter case, the -1 is removed. It returns the concatenated popped items (but not the -1). The first popped stake item is the beginning of the concatenated string.

        OP_PUSHBLOCKHASH: Giving it a blockheight, it returns the block hash


        Now the ScriptSig would be:

        Code:
        <sig> <-1> <height> OP_BLOCKHASH <0x1802> <0x0C02>
        <serialized OP_PUSHOUTPUT OP_SWAP OP_PUSHINPUT OP_JOIN OP_HASH256 <public key> OP_CHECKSIG2>
         


        scriptPubKey would be:

        Code:
        Code:
        OP_DUP
        OP_HASH160
        <hash of serialized OP_PUSHOUTPUT OP_SWAP OP_PUSHINPUT OP_JOIN OP_HASH256 <public key> OP_CHECKSIG2>
        OP_EQUALVERIFY
        OP_EVAL2

        So that the "<height> OP_BLOCKHASH" part is optional.

        EDIT: It's different from the original idea. My proposal makes a transaction invalid if it is not mined in the designated chain. This seems not very good since it would become a big trouble in case there is network split / major re-org
        2200  Bitcoin / Development & Technical Discussion / Re: CHECKSIG 2.0 on: July 20, 2013, 03:23:33 PM
        Some definitions:
        Input index: order of an input in a final transaction. The first input is index 0
        Output index: order of an output in a final transaction. The first output is index 0
        OutPoint: <hash of previous tx|output index of previous tx>. A 36 bytes identifier of previous outputs, describe at https://en.bitcoin.it/wiki/Protocol_specification#tx
        InputID: An unique identifier for an input, in a format of <value of the input|OutPoint> (36+8=44bytes)
        OutputID: <value of the output|pk_script length|pk_script>, same format as TxOut describe at https://en.bitcoin.it/wiki/Protocol_specification#tx


        Some new OP codes:
        OP_EVAL2: basically the OP_EVAL of BIP12, but will run the now disabled OP_CAT and support some new OP codes
        OP_CHECKSIG2: it pops the top 3 stakes <sig> <hash> <public key>, and check the validity of <sig> against <hash> with <public key>. If it is, 1 is returned, 0 otherwise.
        OP_PUSHINPUT: it pops the top stake. From the top stake, it pops the least significant byte. If the least significant byte is:
        • 0x00:
          • The script fails if the remaining string is not empty
          • Returns InputID of the input
        • 0x01:
          • The script fails if the remaining string is not empty
          • Returns InputID of all inputs in a concatenated form by the order of input index, with Input 0 at the beginning.
          • Appends a 0xff at the end of the concatenated string
        • 0x02:
          • Enumerate the number of inputs, divide by 8, round up to the next integer if not an integer.
          • The script fails if the length (in bytes) of the remaining string is larger than the integer.
          • Read the remaining string as a bitmap. Each bit refers the an input, with the least significant bit refers to input 0.
          • If there is any positive bit for an non-existing input, the script fails.
          • For every positive bit, returns the InputID of the corresponding input by the order of input index.
          • Concatenate the results, with the InputID of the lowest index at the beginning.
        • 0x03:
          • Enumerate the number of inputs, take log256, round up to the next integer if not an integer.
          • The script fails if the length (in bytes) of the remaining string is not equal to 2 times the integer.
          • Split the remaining string in half. Call the more significant halve x and the less significant halve y.
          • If x>y, the script fails.
          • If y is greater than the largest input index, the script fails.
          • Return the InputID of all inputs with index from x to y (inclusive) in a concatenated form by the order of input index, the InputID of the lowest index at the beginning.
        OP_PUSHOUTPUT: it pops the top stake. From the top stake, it pops the least significant byte. If the least significant byte is:
        • 0x00:
          • The script fails if the remaining string is not empty
          • Returns an empty output
        • 0x01, 0x02, 0x03: Same as OP_PUSHINPUT, just replace inputs with outputs.
        OP_PUSHSCRIPTSIG:
        • Pops the top stake, an interger (z)
        • The script fails if z is greater than the highest input index
        • Return the ScriptSig of the input z

        To make this a soft-fork, OP_EVAL2 will use one of the unused OP_NOP (e.g. OP_NOP3); The other new codes will use currently unspecified codes, and they will fail the script if not called by OP_EVAL2

        For example, in a standard transaction, the ScriptSig would look like (in a bitmap mode):

        Code:
        <sig> <0x1802> <0x0C02>
        <serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2>
         

        scriptPubKey would be:

        Code:
        OP_DUP
        OP_HASH160
        <hash of serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2>
        OP_EQUALVERIFY
        OP_EVAL2

        Running the script
        • 1. stake = <sig> <0x1802> <0x0C02> <serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2>
        • 2. OP_DUP, stake = <sig> <0x1802> <0x0C02> <serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2> <serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2>
        • 3. OP_HASH160, stake = <sig> <0x1802> <0x0C02> <serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2> <hash1>
        • 4. stake = <sig> <0x1802> <0x0C02> <serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2> <hash1> <hash of serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2>
        • 5. OP_EQUALVERIFY, stake = <sig> <0x1802> <0x0C02> <serialized OP_PUSHINPUT OP_SWAP OP_PUSHOUTPUT OP_CAT OP_HASH256 <public key> OP_CHECKSIG2>
        • 6. OP_EVAL2, stake = <sig> <0x1802> <0x0C02>
        • 7. OP_PUSHINPUT, stake = <sig> <0x1802> <concatenated InputIDs for inputs 2 and 3>
        • 8. OP_SWAP, stake = <sig> <concatenated InputIDs> <0x1802>
        • 9. OP_PUSHOUTPUT, stake = <sig> <concatenated InputIDs> <concatenated OutputIDs for outputs for outputs 3 and 4>
        • 10. OP_CAT, stake =  <sig> <concatenated InputIDs and OutputIDs>
        • 11. OP_HASH256, stake = <sig> <hash of concatenated InputIDs and OutputIDs>
        • 12. stake = <sig> <hash of concatenated InputIDs and OutputIDs> <public key>
        • 13. OP_CHECKSIG2, stake = <1>. Script ends.
        -----------------------

        To prepare a signature:

        • List the InputID of all required inputs (including inputs to be signed by the key pair, and any required inputs owned by other key pair)
        • Concatenate the InputID, by the desired order
        • Append an 0xff at the end if the exact inputs are required (no more, no less)
        • List the OutputID of all required outputs
        • Concatenate the OutputID, by the desired order
        • Append an 0xff at the end if the exact outputs are required (no more, no less)
        • Concatenate the InputIDs and OutputIDs, take double SHA256, sign with private key

        -----------------------

        To prepare a transaction:
        • Arrange the order of inputs and outputs to make sure they are coherent with all signatures
        • ScriptSig will be <signature> <command for OP_PUSHOUTPUT> <command for OP_PUSHINPUT> <serialized script>
        • If a key pair is signing for 2 or more outputs, the ScriptSig for the rest of inputs is simply <input index> OP_PUSHSCRIPTSIG

        ------------------------

        Example of a full transaction:

        There are 4 key pairs: Alice, Bob, Carl, David
        5 inputs, the InputIDs are: Alice-1, Alice-2, Bob-1, Carl-1, David-1
        5 outputs the OutputIDs are: A, B, C, D, E

        As long as outputs A, B, C are paid, Alice is willing to sign and don't care where other BTC comes from and where the rest of BTC goes
        As long as outputs D, E are paid, and Carl-1 is involved, Bob is willing to sign and don't care where other BTC comes from and where the rest of BTC goes
        Carl will sign if Bob-1 is involved. He doesn't care where other BTC comes from and where the BTC goes
        David will sign if all 5 inputs and 5 outputs are involved. No more, no less.

        Alice will construct this message: "Alice-1|Alice-2|A|B|C", take double SHA256, sign with her key (Alice-sig)*
        Bob will construct this message: "Bob-1|Carl-1|D|E", take double SHA256, sign with his key (Bob-sig)
        Carl will construct this message: "Bob-1|Carl-1", take double SHA256, sign with his key (Carl-sig)
        David will construct this message: "Alice-1|Alice-2|Bob-1|Carl-1|David-1|0xff|A|B|C|D|E|0xff", take double SHA256, sign with his key (Carl-sig)

        The raw, unsigned transaction is arranged this way:

        Input index 0: Alice-1
        Input index 1: Alice-2
        Input index 2: Bob-1
        Input index 3: Carl-1
        Input index 4: David-1

        Output index 0: A
        Output index 1: B
        Output index 2: C
        Output index 3: D
        Output index 4: E

        The ScriptSig for input 0: <Alice-sig><0x0702><0x0302><serialized script>
        The ScriptSig for input 1: OP_0 OP_PUSHSCRIPTSIG
        The ScriptSig for input 2: <Bob-sig><0x1802><0x0C02><serialized script>
        The ScriptSig for input 3: <Carl-sig><0x00><0x0C02><serialized script>
        The ScriptSig for input 4: <David-sig><0x01><0x01><serialized script>

        The tx is completed. Broadcast.
        Pages: « 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 [110] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 »
        Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!