Integer Factorization As a Service secured by a Proof-of-Work L1 blockchain funded by Coinbase finally a reality (Launch will be in the next 7 days) . We now briefly describe the mechanism implemented in the FACTOR blockchain to make this possible: we call Integer-Factorization-As-a-Service (IFAaS) the deadpool.

The process consists of three steps. Each step corresponds to a transaction on the blockchain:

  1. Place a bounty on some integer N of your choice.

  2. Announce a hash proving you have a factor.

  3. Claim your reward.

The mechanics for this 3 step process:

  1. Bounty:

  • Many bounties may be placed on the same integer. These amounts will just be added and can be claimed together in one transaction in step 3.

  • Max bit-length of N is 4159 bits. (Due to technical reasons)

  • By default the smallest number accepted is 180-bits.

2. Announcement:

  • New special transaction added to the blockchain.

  • MUST burn coins. A minimum amount is enforced by consensus rules.

  • Minimum burning amount is 1 cent, or 0.01 FACT.

  • Only 1 announcement per N per block is allowed.

  • By default: an announcement that burns more coins than current announcement for that N on the current block replaces it. (Miners can change this at will.)

  • There is a 100 block waiting period until this announcement may be used to claim the reward in step 3. Blockchain will reject any claims attached to this announcement within this window.

  • The blockchain will "forget" announcements after 672 blocks.

  • The window to claim any reward is 572 blocks. New announcements needed after this.

  • The hash announces the following: SHA256( wallet address where the reward will go, factor P of N).

3. Claim reward:

  • Especial transaction type added to the blockchain.

  • Transaction does not need to be signed or funded.

  • Transaction fee deducted from Reward Amount.

  • Transaction will only be accepted if: P divides N and the wallet address matches the wallet address hashed in the announcement.

It may, or may not, be clear why some of the rules or behaviors listed are in place, but every single one of them has a purpose: to protect the user who claims rewards and/or protect the blockchain from spam and other undesired behavior.

The waiting period for the announcement is to protect the user from malicious miners who may steal the reward if the factor P is sent in plain text without any intermediary step.

The burning amount is to protect against spam, and any other similar shenanigans that would otherwise be able to occur without penalty. A side effect of this rule is that the total supply will be tapered by the adoption of the blockchain; the more useful the blockchain becomes, the less effect on the supply newly mined coins have.

Having a default behavior for ties at the announcement level so that miners may decide through what gets included in the mempool what is the best way to break ties instead of enforcing a rule ourselves gives us flexibility.

There are no takesies-backsies on the announcement transactions; that is, once sent, the minimum amount will be burn not matter what, even if you do the replace transaction by another transaction process.

Stay tune for more articles about Integer Factorization As a Service, or as we call it: The Deadpool.

~Factor Team