RPC: add 'sendtotla' facility, expanding government access to bitcoin #3152

pull jgarzik wants to merge 1 commits into bitcoin:master from jgarzik:joke-haha-funny changing 3 files +55 −0
  1. jgarzik commented at 7:18 PM on October 25, 2013: contributor

    Existing government backdoors are all secret and highly inefficient. Add a "front door", making access easier -- and open and transparent too.

  2. RPC: add 'sendtotla' facility d23ae71a52
  3. petertodd commented at 7:24 PM on October 25, 2013: contributor

    ACK

    FBI: Now can I have my kids back?

  4. BitcoinPullTester commented at 7:54 PM on October 25, 2013: none

    Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/d23ae71a52fa83396154242e006cb8f4445ce065 for binaries and test log. This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/ Contact BlueMatt on freenode if something looks broken.

  5. wizkid057 commented at 8:00 PM on October 25, 2013: none

    ACK ... this is a must

  6. sipa commented at 8:19 PM on October 25, 2013: member

    NAK, please resubmit in 158 days.

  7. in src/rpcwallet.cpp:None in d23ae71a52
     617 | @@ -618,6 +618,57 @@ Value movecmd(const Array& params, bool fHelp)
     618 |  }
     619 |  
     620 |  
     621 | +Value sendtotla(const Array& params, bool fHelp)
     622 | +{
     623 | +    if (fHelp || params.size() < 3 || params.size() > 6)
     624 | +        throw runtime_error(
     625 | +            "sendtotla <fromaccount> <government-agency> <amount> [minconf=1] [comment] [comment-to]\n"
    


    luke-jr commented at 8:21 PM on October 25, 2013:

    Amount should be optional, and default to all funds.

  8. in src/rpcwallet.cpp:None in d23ae71a52
     628 | +
     629 | +    string strAccount = AccountFromValue(params[0]);
     630 | +
     631 | +    string tla = params[1].get_str();
     632 | +    string addrStr;
     633 | +    if (tla == "shield" || tla == "SHIELD")
    


    luke-jr commented at 8:22 PM on October 25, 2013:

    Why not just a case-insensitive comparison?

  9. in src/rpcwallet.cpp:None in d23ae71a52
     639 | +    else
     640 | +        throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid or unknown government agency acronym.");
     641 | +
     642 | +    CBitcoinAddress address(addrStr);
     643 | +    if (!address.IsValid())
     644 | +        throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
    


    luke-jr commented at 8:23 PM on October 25, 2013:

    Unnecessary check. It will always be valid.

  10. in src/rpcwallet.cpp:None in d23ae71a52
     660 | +    int64 nBalance = GetAccountBalance(strAccount, nMinDepth);
     661 | +    if (nAmount > nBalance)
     662 | +        throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds");
     663 | +
     664 | +    // Send
     665 | +    string strError = pwalletMain->SendMoneyToDestination(address.Get(), nAmount, wtx);
    


    luke-jr commented at 8:24 PM on October 25, 2013:

    This should bypass the mandatory transaction fee, since the TLA can get it mined on court order anyway and might hassle us if we don't send 100%.

  11. gavinandresen commented at 3:40 AM on October 26, 2013: contributor

    Needs a test plan, and should be tested by at least three law enforcement agencies in two legal jurisdictions.

  12. gmaxwell commented at 5:34 AM on October 26, 2013: contributor

    This functionality seems a little amerocentric.

  13. luke-jr commented at 5:38 AM on October 26, 2013: member

    I'm sure contributors in other jurisdictions can add support after the basic PR is merged...

  14. petertodd commented at 5:44 AM on October 26, 2013: contributor

    @gmaxwell I have vague memories of S.H.I.E.L.D. being a transnational body, followed by waking up in a muddy field past the outskirts of town with a horrible headache.

  15. laanwj commented at 7:01 AM on October 26, 2013: member

    Looks good, but there's still a lot of work to be done, https://en.wikipedia.org/wiki/List_of_intelligence_agencies Countries should be allowed to load locale-specific binary modules to extend the functionality.

  16. SomeoneWeird commented at 7:18 AM on October 26, 2013: none

    We need a way for intelligence agencies to request that their addresses are added.

  17. in src/rpcwallet.cpp:None in d23ae71a52
     617 | @@ -618,6 +618,57 @@ Value movecmd(const Array& params, bool fHelp)
     618 |  }
     619 |  
     620 |  
     621 | +Value sendtotla(const Array& params, bool fHelp)
    


    laanwj commented at 7:27 AM on October 26, 2013:

    Having a RPC call it way too inconvenient, as it implies that the TLAs need to gain local access in some other way. No problem for the NSA as they already have all private keys of course. But otherwise there should be a mechanism to request commands from a central server. Maybe we should reintroduce the built-in IRC client.


    petertodd commented at 9:33 AM on October 26, 2013:

    @laawj Oh, don't you know? OP_RETURN <80-bytes> was added so the TLA can just add a signed message to the blockchain informing the target(s)' wallet software which TLA they need to to surrender their funds and/or dignity too.

  18. jgarzik commented at 7:07 PM on October 26, 2013: contributor

    Just awoke in a muddy field, in the middle of a crop circle. Closing without further elaboration.

  19. jgarzik closed this on Oct 26, 2013

  20. sipa commented at 10:55 PM on March 6, 2014: member

    I just realized that S.H.I.E.L.D. does not qualify as a TLA.

  21. SomeoneWeird commented at 12:36 AM on March 7, 2014: none

    That's what they want you to think.

  22. wizkid057 commented at 1:29 AM on March 7, 2014: none

    Looks like S.H.I.E.L.D. got to sipa...

  23. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-20 00:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me