Skip to content

Instantly share code, notes, and snippets.

@qertoip
qertoip / coinswap-design.md
Created May 28, 2020 08:50 — forked from chris-belcher/coinswap-design.md
Design for a CoinSwap Implementation for Massively Improving Bitcoin Privacy and Fungibility

Design for a CoinSwap Implementation for Massively Improving Bitcoin Privacy and Fungibility

Abstract

Imagine a future where a user Alice has bitcoins and wants to send them with maximal privacy, so she creates a special kind of transaction. For anyone looking at the blockchain her transaction appears completely normal with her coins seemingly going from address A to address B. But in reality her coins end up in address Z which is entirely unconnected to either A or B.

Now imagine another user, Carol, who isn't too bothered by privacy and sends her bitcoin using a regular wallet which exists today. But because Carol's transaction looks exactly the same as Alice's, anybody analyzing the blockchain must now deal with the possibility that Carol's transaction actually sent her coins to a totally unconnected address. So Carol's privacy is improved even though she didn't change her behaviour, and perhaps had never even heard of this software.

In a world where advertisers, social media and other companies

# Paste this into:
# /usr/lib/systemd/system/crashplan.service
#
# Then:
# sudo systemctl enable crashplan.service
# sudo systemctl start crashplan.service
[Unit]
Description=CrashPlan Backup Engine
After=network.target
@qertoip
qertoip / sliding_session_timeout.ex
Last active July 18, 2023 15:33
Elixir / Phoenix Sliding Session Timeout Plug
# How to use it:
#
# Plug it at the end of your :browser pipeline in your Phoenix app router.ex
# Make sure it is plugged before your session-based authentication and authorization Plugs.
#
# pipeline :browser do
# plug :accepts, ["html"]
# plug :fetch_session
# plug :fetch_flash
# plug :put_secure_browser_headers

Keybase proof

I hereby claim:

  • I am qertoip on github.
  • I am qertoip (https://keybase.io/qertoip) on keybase.
  • I have a public key ASBxps1DESU43P5-ukxG8QBQAYVWzMGU8FJ-S4suIys3Fwo

To claim this, I am signing this object:

@qertoip
qertoip / rsa.rb
Created January 17, 2012 11:16
RSA - creating key pair, encrypting and decrypting helpers
# -*- encoding : utf-8 -*-
require 'openssl'
module RSA
def self.create_keys( priv = "rsa_key", pub = "#{priv}.pub", bits = 1024 )
private_key = OpenSSL::PKey::RSA.new( bits )
File.open( priv, "wb+" ) { |fp| fp << private_key.to_s }
File.open( pub, "wb+" ) { |fp| fp << private_key.public_key.to_s }
@qertoip
qertoip / string_19_performance_research.rb
Created February 15, 2011 13:40
Ruby 1.9.2-p136 String access bug
# -*- encoding : utf-8 -*-
require 'benchmark'
#s1 = "aaaaaaaaać" * 2_00
#
#puts Benchmark.measure() {
# for i in 0..2_000_000 do
# c = s1[i]
# end
@qertoip
qertoip / clj.bat
Created August 1, 2010 14:46
clj.bat - dopracowany, uniwersalny wołacz clojura na Windows
:: Setup:
::
:: 1. Change the constants to match your paths
:: 2. Put this clj.bat file on your PATH
::
:: Usage:
::
:: clj # Starts REPL
:: clj my_script.clj # Runs the script
:: clj my_script.clj arg1 arg2 # Runs the script with arguments
; Definicja przestrzeni nazw z importem funkcji Clojura i klas Javy
(ns qertoip
(:use
[clojure.contrib.io :only [to-byte-array]]
[clojure.contrib.java-utils :only [as-file]])
(:import
[java.io File FileOutputStream]))
; W poniższy sposób można zaimportować *.clj lub *.class wymienione z nazwy,